/** * 自定义映射规则 * * @param customizedMapper 自定义映射规则 * @return this */ public Builder<F, T> customize(Mapper<F, T> customizedMapper) { builder.customize(customizedMapper); return this; }
/** * Set the custom mapper to use for this mapping. * * @param legacyCustomizedMapper * @return this ClassMapBuilder * @deprecated use {@link #customize(Mapper)} instead */ @Deprecated public final ClassMapBuilder<A, B> customize(ma.glasnost.orika.MapperBase<A, B> legacyCustomizedMapper) { customize(new ma.glasnost.orika.MapperBase.MapperBaseAdapter<A, B>(legacyCustomizedMapper)); return this; }
/** * Set the custom mapper to use for this mapping. * * @param legacyCustomizedMapper * @return * @deprecated use {@link #customize(Mapper)} instead */ @Deprecated public final ClassMapBuilder<A, B> customize(ma.glasnost.orika.MapperBase<A, B> legacyCustomizedMapper) { customize(new ma.glasnost.orika.MapperBase.MapperBaseAdapter<A, B>(legacyCustomizedMapper)); return this; }
@SuppressWarnings("unchecked") public void registerSourceConverters(MapperFactory mapperFactory, ClassMapBuilder<? extends SourceAware, ? extends SourceAwareEntity<?>> classMapBuilder) { @SuppressWarnings("rawtypes") SourceMapper sourceMapper = new SourceMapper(); mapperFactory.classMap(SourceAware.class, SourceAwareEntity.class).customize(sourceMapper).register(); }
@SuppressWarnings("unchecked") public void registerSourceConverters(MapperFactory mapperFactory, ClassMapBuilder<? extends SourceAware, ? extends SourceAwareEntity<?>> classMapBuilder) { @SuppressWarnings("rawtypes") SourceMapper sourceMapper = new SourceMapper(); mapperFactory.classMap(SourceAware.class, SourceAwareEntity.class).customize(sourceMapper).register(); }
private void mapFuzzyDateToStartDateEntityAndEndDateEntity(MapperFactory mapperFactory) { mapperFactory.classMap(FuzzyDate.class, StartDateEntity.class).customize(new CustomMapper<FuzzyDate, StartDateEntity>() { @Override public void mapAtoB(FuzzyDate fuzzyDate, StartDateEntity entity, MappingContext context) { mapperFactory.classMap(FuzzyDate.class, EndDateEntity.class).customize(new CustomMapper<FuzzyDate, EndDateEntity>() { @Override public void mapAtoB(FuzzyDate fuzzyDate, EndDateEntity entity, MappingContext context) {
private void mapFuzzyDateToStartDateEntityAndEndDateEntity(MapperFactory mapperFactory) { mapperFactory.classMap(FuzzyDate.class, StartDateEntity.class).customize(new CustomMapper<FuzzyDate, StartDateEntity>() { @Override public void mapAtoB(FuzzyDate fuzzyDate, StartDateEntity entity, MappingContext context) { mapperFactory.classMap(FuzzyDate.class, EndDateEntity.class).customize(new CustomMapper<FuzzyDate, EndDateEntity>() { @Override public void mapAtoB(FuzzyDate fuzzyDate, EndDateEntity entity, MappingContext context) {
/** * Constructs and registers a {@link ClassMapBuilder} into the {@link MapperFactory} using a {@link Mapper}. * * @param mapper */ @SuppressWarnings("rawtypes") public void addMapper(Mapper<?, ?> mapper) { factory.classMap(mapper.getAType(), mapper.getBType()) .byDefault() .customize((Mapper) mapper) .register(); }
@Test public void testDifferentLevelOfInheritance() { factory.registerClassMap(factory.classMap(ChildEntity.class, Child2DTO.class) .customize(new CustomMapper<ChildEntity, Child2DTO>() { public void mapAtoB(ChildEntity a, Child2DTO b, MappingContext context) { b.setMessage("Hello " + a.getName()); } }).byDefault()); BoundMapperFacade<ChildEntity,Child2DTO> mapper = factory.getMapperFacade(ChildEntity.class, Child2DTO.class); ChildEntity entity = new ChildEntity(); entity.setId(1L); entity.setName("Khettabi"); Child2DTO dto = mapper.map(entity); Assert.assertEquals(entity.getId(), dto.getId()); Assert.assertEquals(entity.getName(), dto.getName()); Assert.assertEquals("Hello Khettabi", dto.getMessage()); }
/** * Constructs and registers a {@link ClassMapBuilder} into the {@link MapperFactory} using a {@link Mapper}. * * @param mapper */ @SuppressWarnings({ "rawtypes", "unchecked" }) public void addMapper(final Mapper<?, ?> mapper) { factory.classMap(mapper.getAType(), mapper.getBType()) .byDefault() .customize((Mapper) mapper) .mapNulls(false) .mapNullsInReverse(false) .register(); }
@Test public void testDifferentLevelOfInheritance() { factory.registerClassMap(ClassMapBuilder.map(ChildEntity.class, Child2DTO.class) .customize(new MapperBase<ChildEntity, Child2DTO>() { @Override public void mapAtoB(ChildEntity a, Child2DTO b, MappingContext context) { b.setMessage("Hello " + a.getName()); } }).byDefault().toClassMap()); factory.build(); MapperFacade mapper = factory.getMapperFacade(); ChildEntity entity = new ChildEntity(); entity.setId(1L); entity.setName("Khettabi"); Child2DTO dto = mapper.map(entity, Child2DTO.class); Assert.assertEquals(entity.getId(), dto.getId()); Assert.assertEquals(entity.getName(), dto.getName()); Assert.assertEquals("Hello Khettabi", dto.getMessage()); }
@Test public void testCustomMapping() { MapperFactory factory = MappingUtil.getMapperFactory(); factory.classMap(PersonDTO.class, Person.class) .customize( new CustomMapper<PersonDTO, Person>() { @Override public void mapBtoA(Person b, PersonDTO a, MappingContext context) { a.setName(b.getFirstName() + " " + b.getLastName()); } }) .register(); Person person = new Person(); person.setFirstName("Abdelkrim"); person.setLastName("EL KHETTABI"); PersonDTO dto = factory.getMapperFacade().map(person, PersonDTO.class); Assert.assertEquals(dto.getName(), person.getFirstName() + " " + person.getLastName()); }
classMap.field("stage", "Integration_Stage__c"); classMap.field("resourceUrl", "Integration_URL__c"); classMap.customize(new CustomMapper<Integration, JSONObject>() { @Override public void mapBtoA(JSONObject b, Integration a, MappingContext context) {
@Test public void testFail() { MapperFactory factory = new DefaultMapperFactory.Builder().build(); factory.registerClassMap(factory.classMap(Base.class, BaseDto.class).customize(new CustomMapper<Base, BaseDto>() { @Override public void mapAtoB(Base base, BaseDto baseDto, MappingContext context) { baseDto.setBaseField(base.getBaseTrickField()); } }).toClassMap()); factory.registerClassMap(factory.classMap(Child.class, ChildDto.class).byDefault().toClassMap()); Child child = new Child(); child.setChildField("CHILD FIELD"); child.setBaseTrickField("BASE FIELD"); ChildDto dto = factory.getMapperFacade(Child.class, ChildDto.class).map(child); Assert.assertNotNull(dto); Assert.assertEquals(child.getChildField(), dto.getChildField()); Assert.assertEquals(child.getBaseTrickField(), dto.getBaseField()); }
@SuppressWarnings("deprecation") @Test public void testFail() { MapperFactory factory = new DefaultMapperFactory.Builder().build(); factory.registerClassMap(ClassMapBuilder.map(Base.class, BaseDto.class).customize(new MapperBase<Base, BaseDto>() { @Override public void mapAtoB(Base base, BaseDto baseDto, MappingContext context) { baseDto.setBaseField(base.getBaseTrickField()); } }).toClassMap()); factory.registerClassMap(ClassMapBuilder.map(Child.class, ChildDto.class).byDefault().toClassMap()); factory.build(); Child child = new Child(); child.setChildField("CHILD FIELD"); child.setBaseTrickField("BASE FIELD"); ChildDto dto = factory.getMapperFacade().map(child, ChildDto.class); Assert.assertNotNull(dto); Assert.assertEquals(child.getChildField(), dto.getChildField()); Assert.assertEquals(child.getBaseTrickField(), dto.getBaseField()); }
userClassMapBuilder.customize(new CustomMapper<BaseUser, BaseUserDto>() { @Override public void mapAtoB(BaseUser a, BaseUserDto b, MappingContext mappingContext) {
clientClassMap.fieldBToA("persistentTokensEnabled", "persistentTokensEnabled"); clientClassMap.customize(new CustomMapper<Client, ClientDetailsEntity>() {
clientClassMap.fieldBToA("persistentTokensEnabled", "persistentTokensEnabled"); clientClassMap.customize(new CustomMapper<Client, ClientDetailsEntity>() {
classMap.fieldBToA("Last_membership_start_date__c", "lastMembershipStartDate"); classMap.fieldBToA("Last_membership_end_date__c", "lastMembershipEndDate"); classMap.customize(new CustomMapper<Member, JSONObject>() { @Override public void mapAtoB(Member a, JSONObject b, MappingContext context) {
mapperFactory.classMap(ContributorOrcid.class, ContributorOrcid.class).customize(orcidIdBaseMapper).register(); mapperFactory.classMap(SourceOrcid.class, SourceOrcid.class).customize(orcidIdBaseMapper).register(); mapperFactory.classMap(SourceClientId.class, SourceClientId.class).customize(orcidIdBaseMapper).register(); mapperFactory.classMap(OrcidIdentifier.class, OrcidIdentifier.class).customize(orcidIdBaseMapper).register();