All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.simpleflatmapper.poi.impl.RowGetterFactory Maven / Gradle / Ivy

The newest version!
package org.simpleflatmapper.poi.impl;


import org.apache.poi.ss.usermodel.Row;
import org.simpleflatmapper.reflect.getter.GetterFactory;
import org.simpleflatmapper.csv.CsvColumnKey;

import org.simpleflatmapper.reflect.Getter;
import org.simpleflatmapper.reflect.getter.GetterFactoryRegistry;
import org.simpleflatmapper.util.TypeHelper;

import java.lang.reflect.Type;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@SuppressWarnings("unchecked")
public class RowGetterFactory implements GetterFactory {


    private static final GetterFactoryRegistry getterFactories =
            new GetterFactoryRegistry();

    static {
        getterFactories.put(String.class, new GetterFactory() {
            @Override
            public 

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiStringGetter(key.getIndex()); } }); getterFactories.put(Date.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiDateGetter(key.getIndex()); } }); getterFactories.put(Byte.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiByteGetter(key.getIndex()); } }); getterFactories.put(Character.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiCharacterGetter(key.getIndex()); } }); getterFactories.put(Short.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiShortGetter(key.getIndex()); } }); getterFactories.put(Integer.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiIntegerGetter(key.getIndex()); } }); getterFactories.put(Long.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiLongGetter(key.getIndex()); } }); getterFactories.put(Float.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiFloatGetter(key.getIndex()); } }); getterFactories.put(Double.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiDoubleGetter(key.getIndex()); } }); getterFactories.put(Boolean.class, new GetterFactory() { @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { return (Getter) new PoiBooleanGetter(key.getIndex()); } }); getterFactories.mapFromTo(byte.class, Byte.class); getterFactories.mapFromTo(char.class, Character.class); getterFactories.mapFromTo(short.class, Short.class); getterFactories.mapFromTo(int.class, Integer.class); getterFactories.mapFromTo(long.class, Long.class); getterFactories.mapFromTo(float.class, Float.class); getterFactories.mapFromTo(double.class, Double.class); getterFactories.mapFromTo(boolean.class, Boolean.class); } @SuppressWarnings("unchecked") @Override public

Getter newGetter(Type target, CsvColumnKey key, Object... properties) { Class

targetClass = TypeHelper.toClass(target); if (TypeHelper.isEnum(target)) { return new PoiEnumGetter(key.getIndex(), TypeHelper.toClass(target)); } final GetterFactory rowGetterFactory = getterFactories.findFactoryFor(targetClass); Getter getter = null; if (rowGetterFactory != null) { getter = rowGetterFactory.newGetter(target, key, properties); } if (getter != null) { return getter; } return null; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy