
io.oasp.module.beanmapping.common.impl.orika.CustomMapperEto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of oasp4j-beanmapping Show documentation
Show all versions of oasp4j-beanmapping Show documentation
Minimal shim for bean mapping to convert between compatible Java beans (e.g. JPA entity to transfer-object and vice versa).
package io.oasp.module.beanmapping.common.impl.orika;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import ma.glasnost.orika.CustomMapper;
import ma.glasnost.orika.MappingContext;
import net.sf.mmm.util.entity.api.GenericEntity;
import net.sf.mmm.util.entity.api.PersistenceEntity;
import net.sf.mmm.util.pojo.descriptor.api.PojoDescriptor;
import net.sf.mmm.util.pojo.descriptor.api.PojoDescriptorBuilder;
import net.sf.mmm.util.pojo.descriptor.api.PojoDescriptorBuilderFactory;
import net.sf.mmm.util.pojo.descriptor.impl.PojoDescriptorBuilderFactoryImpl;
import net.sf.mmm.util.transferobject.api.EntityTo;
/**
* {@link CustomMapper} to map from {@link PersistenceEntity} to {@link EntityTo} to solve
* {@link EntityTo#getModificationCounter() modification counter issue}.
*
* @author hohwille
*/
// @Named
@SuppressWarnings("rawtypes")
public class CustomMapperEto extends CustomMapper {
private PojoDescriptorBuilder pojoDescriptorBuilder;
private PojoDescriptorBuilderFactory pojoDescriptorBuilderFactory;
private PojoDescriptor descriptor;
/**
* The constructor.
*/
public CustomMapperEto() {
super();
}
@Override
public void mapAtoB(GenericEntity source, EntityTo target, MappingContext context) {
this.descriptor.setProperty(target, "persistentEntity", source);
}
/**
* Initializes this class to be functional.
*/
@PostConstruct
public void initialize() {
if (this.pojoDescriptorBuilderFactory == null) {
this.pojoDescriptorBuilderFactory = PojoDescriptorBuilderFactoryImpl.getInstance();
}
if (this.pojoDescriptorBuilder == null) {
this.pojoDescriptorBuilder = this.pojoDescriptorBuilderFactory.createPrivateFieldDescriptorBuilder();
}
this.descriptor = this.pojoDescriptorBuilder.getDescriptor(EntityTo.class);
}
/**
* @param pojoDescriptorBuilderFactory the pojoDescriptorBuilderFactory to set
*/
@Inject
public void setPojoDescriptorBuilderFactory(PojoDescriptorBuilderFactory pojoDescriptorBuilderFactory) {
this.pojoDescriptorBuilderFactory = pojoDescriptorBuilderFactory;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy