Search in sources :

Example 1 with CsvColumnDefinition

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());
}
Also used : ParsingContext(org.simpleflatmapper.csv.ParsingContext) ParsingContextFactoryBuilder(org.simpleflatmapper.csv.ParsingContextFactoryBuilder) CellValueReader(org.simpleflatmapper.csv.CellValueReader) Predicate(org.simpleflatmapper.util.Predicate) Type(java.lang.reflect.Type) Tuple2(org.simpleflatmapper.tuple.Tuple2) CsvColumnKey(org.simpleflatmapper.csv.CsvColumnKey) CellValueReaderFactory(org.simpleflatmapper.csv.CellValueReaderFactory) StringReader(java.io.StringReader) CsvColumnDefinition(org.simpleflatmapper.csv.CsvColumnDefinition) Test(org.junit.Test)

Example 2 with CsvColumnDefinition

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());
}
Also used : Type(java.lang.reflect.Type) ParsingContext(org.simpleflatmapper.csv.ParsingContext) ParsingContextFactoryBuilder(org.simpleflatmapper.csv.ParsingContextFactoryBuilder) DbObject(org.simpleflatmapper.test.beans.DbObject) CellValueReader(org.simpleflatmapper.csv.CellValueReader) CellValueReaderFactory(org.simpleflatmapper.csv.CellValueReaderFactory) StringReader(java.io.StringReader) CsvColumnDefinition(org.simpleflatmapper.csv.CsvColumnDefinition) Test(org.junit.Test)

Example 3 with CsvColumnDefinition

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);
}
Also used : ParsingContext(org.simpleflatmapper.csv.ParsingContext) ParsingContextFactoryBuilder(org.simpleflatmapper.csv.ParsingContextFactoryBuilder) CellValueReader(org.simpleflatmapper.csv.CellValueReader) TimeZone(java.util.TimeZone) Type(java.lang.reflect.Type) CellValueReaderFactory(org.simpleflatmapper.csv.CellValueReaderFactory) CsvColumnKey(org.simpleflatmapper.csv.CsvColumnKey) PropertyMeta(org.simpleflatmapper.reflect.meta.PropertyMeta) CsvColumnDefinition(org.simpleflatmapper.csv.CsvColumnDefinition) Test(org.junit.Test)

Example 4 with CsvColumnDefinition

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());
}
Also used : CsvColumnDefinition(org.simpleflatmapper.csv.CsvColumnDefinition) Test(org.junit.Test)

Example 5 with CsvColumnDefinition

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());
}
Also used : Db1DeepObject(org.simpleflatmapper.test.beans.Db1DeepObject) ParsingContext(org.simpleflatmapper.csv.ParsingContext) CsvMapperBuilder(org.simpleflatmapper.csv.CsvMapperBuilder) StringReader(java.io.StringReader) CsvColumnDefinition(org.simpleflatmapper.csv.CsvColumnDefinition) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)5 CsvColumnDefinition (org.simpleflatmapper.csv.CsvColumnDefinition)5 ParsingContext (org.simpleflatmapper.csv.ParsingContext)4 StringReader (java.io.StringReader)3 Type (java.lang.reflect.Type)3 CellValueReader (org.simpleflatmapper.csv.CellValueReader)3 CellValueReaderFactory (org.simpleflatmapper.csv.CellValueReaderFactory)3 ParsingContextFactoryBuilder (org.simpleflatmapper.csv.ParsingContextFactoryBuilder)3 CsvColumnKey (org.simpleflatmapper.csv.CsvColumnKey)2 TimeZone (java.util.TimeZone)1 CsvMapperBuilder (org.simpleflatmapper.csv.CsvMapperBuilder)1 PropertyMeta (org.simpleflatmapper.reflect.meta.PropertyMeta)1 Db1DeepObject (org.simpleflatmapper.test.beans.Db1DeepObject)1 DbObject (org.simpleflatmapper.test.beans.DbObject)1 Tuple2 (org.simpleflatmapper.tuple.Tuple2)1 Predicate (org.simpleflatmapper.util.Predicate)1