use of org.simpleflatmapper.csv.CsvColumnDefinition in project SimpleFlatMapper by arnaudroger.
the class CsvMapperCustomReaderTest method testCustomCsvReaderValueFactory.
@Test
public void testCustomCsvReaderValueFactory() throws IOException {
CsvMapper<Tuple2<String, String>> csvMapper = CsvMapperFactory.newInstance().addColumnDefinition(new Predicate<CsvColumnKey>() {
@Override
public boolean test(CsvColumnKey csvColumnKey) {
return true;
}
}, CsvColumnDefinition.customCellValueReaderFactoryDefinition(new CellValueReaderFactory() {
@SuppressWarnings("unchecked")
@Override
public <P> CellValueReader<P> getReader(Type propertyType, final int index, CsvColumnDefinition columnDefinition, ParsingContextFactoryBuilder builder) {
return (CellValueReader<P>) new CellValueReader<String>() {
@Override
public String read(char[] chars, int offset, int length, ParsingContext parsingContext) {
return "g" + index;
}
};
}
})).newMapper(Tuples.typeDef(String.class, String.class));
Tuple2<String, String> value = csvMapper.iterator(new StringReader("b0,b1\nc0,c1")).next();
assertEquals("g0", value.first());
assertEquals("g1", value.second());
}
use of org.simpleflatmapper.csv.CsvColumnDefinition in project SimpleFlatMapper by arnaudroger.
the class CsvMapperCustomReaderFactoryTest method testCustomReaderFactory.
@Test
public void testCustomReaderFactory() throws IOException {
CsvMapper<DbObject> mapper = CsvMapperFactory.newInstance().failOnAsm(true).cellValueReaderFactory(new CellValueReaderFactory() {
@Override
public <P> CellValueReader<P> getReader(Type propertyType, int index, CsvColumnDefinition columnDefinition, ParsingContextFactoryBuilder builder) {
return new CellValueReader<P>() {
@SuppressWarnings("unchecked")
@Override
public P read(char[] chars, int offset, int length, ParsingContext parsingContext) {
return (P) "Hello!";
}
};
}
}).newBuilder(DbObject.class).addMapping("name").mapper();
DbObject bop = mapper.iterator(new StringReader("bop")).next();
assertEquals("Hello!", bop.getName());
}
use of org.simpleflatmapper.csv.CsvColumnDefinition in project SimpleFlatMapper by arnaudroger.
the class CsvColumnDefinitionTest method testComposition.
@Test
public void testComposition() {
TimeZone tz = TimeZone.getTimeZone("Europe/Brussels");
CellValueReaderFactory cellValueReaderFactory = new CellValueReaderFactory() {
@Override
public <P> CellValueReader<P> getReader(Type propertyType, int index, CsvColumnDefinition columnDefinition, ParsingContextFactoryBuilder contextFactoryBuilder) {
return null;
}
@Override
public String toString() {
return "CellValueReaderFactory";
}
};
final Predicate<PropertyMeta<?, ?>> appliesTo = ConstantPredicate.falsePredicate();
CsvColumnDefinition compose = CsvColumnDefinition.identity().addDateFormat("yyyyMM").addRename("blop").addCustomReader(new CellValueReader<Integer>() {
@Override
public Integer read(char[] chars, int offset, int length, ParsingContext parsingContext) {
return 3;
}
@Override
public String toString() {
return "CellValueReader";
}
}).addCustomCellValueReaderFactory(cellValueReaderFactory).addTimeZone(tz).addKey(appliesTo);
assertEquals("blop", compose.rename(new CsvColumnKey("bar", -1)).getName());
assertEquals("blop", CsvColumnDefinition.renameDefinition("blop").rename(new CsvColumnKey("bar", -1)).getName());
assertArrayEquals(new String[] { "yyyyMM" }, compose.dateFormats());
assertEquals(new Integer(3), compose.getCustomReader().read(null, 0, 0, null));
assertEquals(cellValueReaderFactory, compose.getCustomCellValueReaderFactory());
assertEquals(tz, compose.getTimeZone());
assertEquals(tz, CsvColumnDefinition.timeZoneDefinition(tz).getTimeZone());
assertTrue(compose.hasCustomSourceFrom(Object.class));
assertFalse(compose.ignore());
assertEquals(Integer.class, compose.getCustomSourceReturnTypeFrom(Object.class));
assertTrue(CsvColumnDefinition.identity().addIgnore().ignore());
assertTrue(compose.isKey());
assertTrue(CsvColumnDefinition.key(appliesTo).isKey());
assertSame(appliesTo, compose.keyAppliesTo());
final String toString = compose.addIgnore().toString();
System.out.println("toString = " + toString);
}
use of org.simpleflatmapper.csv.CsvColumnDefinition in project SimpleFlatMapper by arnaudroger.
the class CsvColumnDefinitionTest method testIdentity.
@Test
public void testIdentity() {
CsvColumnDefinition identity = CsvColumnDefinition.identity();
try {
identity.dateFormats();
fail();
} catch (IllegalStateException e) {
}
assertNull(identity.getCustomCellValueReaderFactory());
assertNull(identity.getCustomReader());
}
use of org.simpleflatmapper.csv.CsvColumnDefinition in project SimpleFlatMapper by arnaudroger.
the class CsvMapperBuilderSubObjectTest method testMapDbObjectWithCustomReader.
@Test
public void testMapDbObjectWithCustomReader() throws Exception {
CsvMapperBuilder<Db1DeepObject> builder = new CsvMapperBuilder<Db1DeepObject>(Db1DeepObject.class, ReflectionService.newInstance(false));
CsvColumnDefinition columnDefinition = CsvColumnDefinition.customReaderDefinition(new CellValueReader<String>() {
@Override
public String read(char[] chars, int offset, int length, ParsingContext parsingContext) {
return "cv1";
}
});
builder.addMapping("db_Object_name", columnDefinition);
CsvMapper<Db1DeepObject> mapper = builder.mapper();
Db1DeepObject v1 = mapper.iterator(new StringReader("v1")).next();
assertEquals("cv1", v1.getDbObject().getName());
}
Aggregations