Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

reMap als Mapper aufgenommen #1

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions bean-mapper-test/pom.xml
Expand Up @@ -82,6 +82,11 @@
<artifactId>selma-processor</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.remondis</groupId>
<artifactId>remap</artifactId>
<version>1.0.3</version>
</dependency>

<!-- Tests -->
<dependency>
Expand Down
@@ -0,0 +1,84 @@
package de.rahn.performance.beanmapper.vendors;

import com.remondis.remap.Mapper;
import com.remondis.remap.Mapping;
import com.remondis.remap.Transform;
import de.frank_rahn.xmlns.types.testtypes._1.XmlRow;
import de.frank_rahn.xmlns.types.testtypes._1.XmlTable;
import de.rahn.performance.beanmapper.TestBeansMapperBean;
import de.rahn.performance.testbeans.DomainRow;
import de.rahn.performance.testbeans.DomainTable;
import java.util.Calendar;
import java.util.Date;
import org.springframework.stereotype.Component;

@Component
public class ReMapTestBeansMapperBean implements TestBeansMapperBean {

private Mapper<XmlRow, DomainRow> xmlRowToDomainRowMapper;

private Mapper<XmlTable, DomainTable> xmlTableToDomainTableMapper;

private Mapper<DomainRow, XmlRow> domainRowToXmlRowMapper;

private Mapper<DomainTable, XmlTable> domainTableToXmlTableMapper;

public ReMapTestBeansMapperBean() {
this.xmlRowToDomainRowMapper = Mapping
.from(XmlRow.class)
.to(DomainRow.class)
.mapper();
this.xmlTableToDomainTableMapper = Mapping
.from(XmlTable.class)
.to(DomainTable.class)
.replace(XmlTable::getDate, DomainTable::getDate)
.with(calendarToDate())
.useMapper(xmlRowToDomainRowMapper)
.mapper();
this.domainRowToXmlRowMapper = Mapping
.from(DomainRow.class)
.to(XmlRow.class)
.mapper();
this.domainTableToXmlTableMapper = Mapping.from(DomainTable.class)
.to(XmlTable.class)
.replace(DomainTable::getDate, XmlTable::getDate)
.with(dateToCalendar())
.useMapper(this.domainRowToXmlRowMapper)
.mapper();
}

@Override
public String getMapperName() {
return "reMap";
}

@Override
public XmlTable map(DomainTable source) throws Exception {
return domainTableToXmlTableMapper.map(source);
}

@Override
public DomainTable map(XmlTable source) throws Exception {
return xmlTableToDomainTableMapper.map(source);
}

private Transform<Calendar, Date> dateToCalendar() {
return source -> {
if (source == null) {
return null;
}
Calendar c = Calendar.getInstance();
c.setTime(source);
return c;
};
}

private Transform<Date, Calendar> calendarToDate() {
return source -> {
if (source == null) {
return null;
}
return source.getTime();
};
}
}
@@ -0,0 +1,16 @@
/*
* Copyright © 2014 by Frank W. Rahn. Alle Rechte vorbehalten. All rights
* reserved.
*/
package de.rahn.performance.beanmapper.vendors;

import org.junit.Before;

public class ReMapTestBeansMapperBeanTest extends AbstractTestBeansMapperBeanTest {

@Before
public void setUp() throws Exception {
mapperBean = new ReMapTestBeansMapperBean();
}

}