private <P> Getter<GettableByIndexData, P> getterFromFactories(Type target, DatastaxColumnKey key, Object[] properties) { final GetterFactory<GettableByIndexData, DatastaxColumnKey> rowGetterFactory = getterFactories.findFactoryFor(target); if (rowGetterFactory != null) { Getter<GettableByIndexData, P> getter = rowGetterFactory.newGetter(target, key, properties); if (getter != null) return getter; } return null; }
getterFactories.put(Byte.class, new GetterFactory<GettableByIndexData, DatastaxColumnKey>() { @SuppressWarnings("unchecked") @Override getterFactories.mapFromTo(byte.class, Byte.class); getterFactories.put(Short.class, new GetterFactory<GettableByIndexData, DatastaxColumnKey>() { @SuppressWarnings("unchecked") @Override getterFactories.mapFromTo(short.class, Short.class); getterFactories.put(Integer.class, new GetterFactory<GettableByIndexData, DatastaxColumnKey>() { @SuppressWarnings("unchecked") @Override getterFactories.mapFromTo(int.class, Integer.class); getterFactories.put(Long.class, new GetterFactory<GettableByIndexData, DatastaxColumnKey>() { @SuppressWarnings("unchecked") @Override getterFactories.mapFromTo(long.class, Long.class); getterFactories.put(Float.class, new GetterFactory<GettableByIndexData, DatastaxColumnKey>() { @SuppressWarnings("unchecked") @Override getterFactories.mapFromTo(float.class, Float.class);
@Before public void setUp() { getterFactoryRegistry = new GetterFactoryRegistry<Object, Object>(); gf1 = new GetterFactory<Object, Object>() { @Override public <P> Getter<Object, P> newGetter(Type target, Object key, Object... properties) { return null; } }; getterFactoryRegistry.put(Long.class, gf1); }
public void mapFromTo(Class<?> target, Class<?> source) { GetterFactory<S, K> getterFactory = factoryPerType.get(source); if (getterFactory == null) throw new IllegalStateException("No getter factory defined for " + source); put(target, getterFactory); }
public void mapFromTo(Class<?> target, Class<?> source) { GetterFactory<S, K> getterFactory = factoryPerType.get(source); if (getterFactory == null) throw new IllegalStateException("No getter factory defined for " + source); put(target, getterFactory); }
@Test public void testDirectLookup() { assertSame(gf1, getterFactoryRegistry.findFactoryFor(Long.class)); }
@Test public void testNoMatch() { assertNull(getterFactoryRegistry.findFactoryFor(String.class)); }
factoryRegistry.findFactoryFor(clazz);
factoryRegistry.findFactoryFor(clazz);
@SuppressWarnings("unchecked") @Override public <P> Getter<Row, P> newGetter(Type target, CsvColumnKey key, Object... properties) { Class<P> targetClass = TypeHelper.toClass(target); if (TypeHelper.isEnum(target)) { return new PoiEnumGetter(key.getIndex(), TypeHelper.toClass(target)); } final GetterFactory<Row, CsvColumnKey> rowGetterFactory = getterFactories.findFactoryFor(targetClass); Getter<Row, P> getter = null; if (rowGetterFactory != null) { getter = rowGetterFactory.newGetter(target, key, properties); } if (getter != null) { return getter; } return null; } }