Search in sources :

Example 1 with Person

use of org.simpleflatmapper.test.beans.Person 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 Person

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

the class DiscriminatorJdbcMapperTest method testJoinTableCNoAsmMultiThread.

@Test
public void testJoinTableCNoAsmMultiThread() throws Exception {
    ExecutorService executor = Executors.newFixedThreadPool(4);
    try {
        final JdbcMapper<Person> mapper = JdbcMapperFactoryHelper.noAsm().addKeys("id", "students_id").<Person>newDiscriminator("person_type").when("student", StudentGS.class).when("professor", ProfessorGS.class).mapper();
        List<Future<Object>> futures = new ArrayList<Future<Object>>(100);
        for (int i = 0; i < 300; i++) {
            futures.add(executor.submit(new Callable<Object>() {

                @Override
                public Object call() throws Exception {
                    validateMapper(mapper);
                    return null;
                }
            }));
        }
        for (Future<Object> f : futures) {
            f.get();
        }
    } finally {
        executor.shutdown();
    }
}
Also used : ProfessorGS(org.simpleflatmapper.test.beans.ProfessorGS) ExecutorService(java.util.concurrent.ExecutorService) ArrayList(java.util.ArrayList) Future(java.util.concurrent.Future) Person(org.simpleflatmapper.test.beans.Person) Callable(java.util.concurrent.Callable) Test(org.junit.Test)

Example 3 with Person

use of org.simpleflatmapper.test.beans.Person 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)3 ProfessorGS (org.simpleflatmapper.test.beans.ProfessorGS)3 ArrayList (java.util.ArrayList)2 Test (org.junit.Test)2 StudentGS (org.simpleflatmapper.test.beans.StudentGS)2 Callable (java.util.concurrent.Callable)1 ExecutorService (java.util.concurrent.ExecutorService)1 Future (java.util.concurrent.Future)1 Before (org.junit.Before)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