Search in sources :

Example 1 with StudentGS

use of org.simpleflatmapper.test.beans.StudentGS in project SimpleFlatMapper by arnaudroger.

the class DiscriminatorMapperTest method setUp.

@Before
public void setUp() {
    Mapper<Object[], Person> studentMapper = new Mapper<Object[], Person>() {

        @Override
        public Person map(Object[] source) throws MappingException {
            return map(source, null);
        }

        @Override
        public Person map(Object[] source, MappingContext<? super Object[]> context) throws MappingException {
            StudentGS studentGS = new StudentGS();
            try {
                mapTo(source, studentGS, context);
            } catch (Exception e) {
                ErrorHelper.rethrow(e);
            }
            return studentGS;
        }

        @Override
        public void mapTo(Object[] source, Person target, MappingContext<? super Object[]> context) throws Exception {
            StudentGS studentGS = (StudentGS) target;
            studentGS.setName((String) source[1]);
            studentGS.setId((Integer) source[2]);
        }
    };
    Mapper<Object[], Person> professorMapper = new Mapper<Object[], Person>() {

        @Override
        public Person map(Object[] source) throws MappingException {
            return map(source, null);
        }

        @Override
        public Person map(Object[] source, MappingContext<? super Object[]> context) throws MappingException {
            ProfessorGS professorGS = new ProfessorGS();
            try {
                mapTo(source, professorGS, context);
            } catch (Exception e) {
                ErrorHelper.rethrow(e);
            }
            return professorGS;
        }

        @Override
        public void mapTo(Object[] source, Person target, MappingContext<? super Object[]> context) throws Exception {
            ProfessorGS professorGS = (ProfessorGS) target;
            professorGS.setName((String) source[1]);
            professorGS.setId((Integer) source[2]);
        }
    };
    List<DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>> mappers = new ArrayList<DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>>();
    mappers.add(new DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>(new Predicate<Object[]>() {

        @Override
        public boolean test(Object[] objects) {
            return "student".equals(objects[0]);
        }
    }, studentMapper, new MappingContextFactoryFromRows<Object[], Object[][], RuntimeException>() {

        @Override
        public MappingContext<? super Object[]> newMappingContext(Object[][] objects) throws RuntimeException {
            return MappingContext.INSTANCE;
        }
    }));
    mappers.add(new DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>(new Predicate<Object[]>() {

        @Override
        public boolean test(Object[] objects) {
            return "professor".equals(objects[0]);
        }
    }, professorMapper, new MappingContextFactoryFromRows<Object[], Object[][], RuntimeException>() {

        @Override
        public MappingContext<? super Object[]> newMappingContext(Object[][] objects) throws RuntimeException {
            return MappingContext.INSTANCE;
        }
    }));
    mapper = new DiscriminatorMapper<Object[], Object[][], Person, RuntimeException>(mappers, new UnaryFactory<Object[][], Enumarable<Object[]>>() {

        @Override
        public Enumarable<Object[]> newInstance(Object[][] objects) {
            return new ArrayEnumarable<Object[]>(objects);
        }
    }, new UncheckedConverter<Object[], String>() {

        @Override
        public String convert(Object[] in) {
            return Arrays.toString(in);
        }
    }, RethrowConsumerErrorHandler.INSTANCE);
}
Also used : ArrayList(java.util.ArrayList) DiscriminatorMapper(org.simpleflatmapper.map.mapper.DiscriminatorMapper) MappingContextFactoryFromRows(org.simpleflatmapper.map.context.MappingContextFactoryFromRows) MappingException(org.simpleflatmapper.map.MappingException) Predicate(org.simpleflatmapper.util.Predicate) MappingContext(org.simpleflatmapper.map.MappingContext) ProfessorGS(org.simpleflatmapper.test.beans.ProfessorGS) DiscriminatorMapper(org.simpleflatmapper.map.mapper.DiscriminatorMapper) Mapper(org.simpleflatmapper.map.Mapper) UnaryFactory(org.simpleflatmapper.util.UnaryFactory) UncheckedConverter(org.simpleflatmapper.converter.UncheckedConverter) Person(org.simpleflatmapper.test.beans.Person) ArrayEnumarable(org.simpleflatmapper.util.ArrayEnumarable) StudentGS(org.simpleflatmapper.test.beans.StudentGS) Before(org.junit.Before)

Example 2 with StudentGS

use of org.simpleflatmapper.test.beans.StudentGS in project SimpleFlatMapper by arnaudroger.

the class DiscriminatorMapperTest method testMapStudentProfessor.

@Test
public void testMapStudentProfessor() {
    List<Person> list = mapper.forEach(new Object[][] { { "student", "sname", 1 }, { "professor", "pname", 2 } }, new ListCollector<Person>()).getList();
    assertEquals(2, list.size());
    StudentGS studentGS = (StudentGS) list.get(0);
    ProfessorGS professorGS = (ProfessorGS) list.get(1);
    assertEquals("sname", studentGS.getName());
    assertEquals("pname", professorGS.getName());
}
Also used : ProfessorGS(org.simpleflatmapper.test.beans.ProfessorGS) ListCollector(org.simpleflatmapper.util.ListCollector) Person(org.simpleflatmapper.test.beans.Person) StudentGS(org.simpleflatmapper.test.beans.StudentGS) Test(org.junit.Test)

Aggregations

Person (org.simpleflatmapper.test.beans.Person)2 ProfessorGS (org.simpleflatmapper.test.beans.ProfessorGS)2 StudentGS (org.simpleflatmapper.test.beans.StudentGS)2 ArrayList (java.util.ArrayList)1 Before (org.junit.Before)1 Test (org.junit.Test)1 UncheckedConverter (org.simpleflatmapper.converter.UncheckedConverter)1 Mapper (org.simpleflatmapper.map.Mapper)1 MappingContext (org.simpleflatmapper.map.MappingContext)1 MappingException (org.simpleflatmapper.map.MappingException)1 MappingContextFactoryFromRows (org.simpleflatmapper.map.context.MappingContextFactoryFromRows)1 DiscriminatorMapper (org.simpleflatmapper.map.mapper.DiscriminatorMapper)1 ArrayEnumarable (org.simpleflatmapper.util.ArrayEnumarable)1 ListCollector (org.simpleflatmapper.util.ListCollector)1 Predicate (org.simpleflatmapper.util.Predicate)1 UnaryFactory (org.simpleflatmapper.util.UnaryFactory)1