![JAR search and dependency download from the Maven repository](/logo.png)
io.pelle.mango.db.util.EntityVOMapper Maven / Gradle / Ivy
The newest version!
package io.pelle.mango.db.util;
import io.pelle.mango.client.base.vo.IBaseEntity;
import io.pelle.mango.client.base.vo.IBaseVO;
import io.pelle.mango.client.base.vo.IEntityVOMapper;
import io.pelle.mango.client.base.vo.IVOEntity;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
public final class EntityVOMapper implements IEntityVOMapper {
private static EntityVOMapper instance;
public static EntityVOMapper getInstance() {
if (instance == null) {
instance = new EntityVOMapper();
}
return instance;
}
@Autowired
private List entityVOMappers = new ArrayList();
private EntityVOMapper() {
}
public Class> getMappedClass(Class> clazz) {
for (IEntityVOMapper entityVOMapper : entityVOMappers) {
if (entityVOMapper.getMappedClass(clazz) != null) {
return entityVOMapper.getMappedClass(clazz);
}
}
return null;
}
public Class extends IBaseVO> getVOClass(String className) {
try {
Class> clazz = Class.forName(className);
if (IBaseEntity.class.equals(clazz)) {
return getVOClass(clazz);
}
return (Class extends IBaseVO>) clazz;
} catch (ClassNotFoundException e) {
throw new RuntimeException(String.format("class '%s' not found", className));
}
}
public Class extends IBaseEntity> getEntityClass(String className) {
try {
Class> clazz = Class.forName(className);
if (IBaseVO.class.equals(clazz)) {
return getEntityClass(clazz);
}
return (Class extends IBaseEntity>) clazz;
} catch (ClassNotFoundException e) {
throw new RuntimeException(String.format("class '%s' not found", className));
}
}
public Class> getMappedClass(String className) {
try {
return getMappedClass(Class.forName(className));
} catch (ClassNotFoundException e) {
throw new RuntimeException(String.format("class '%s' not found", className));
}
}
@SuppressWarnings("unchecked")
public Class extends IBaseVO> getMappedVOClass(Class extends IBaseEntity> entityClass) {
return (Class extends IBaseVO>) getMappedClass(entityClass);
}
@SuppressWarnings("unchecked")
public Class extends IBaseEntity> getMappedEntityClass(Class extends IVOEntity> voEntityClass) {
if (IBaseEntity.class.isAssignableFrom(voEntityClass)) {
return (Class extends IBaseEntity>) voEntityClass;
} else {
return (Class extends IBaseEntity>) getMappedClass(voEntityClass);
}
}
public List> getVOClasses() {
List> result = new ArrayList>();
for (IEntityVOMapper entityVOMapper : entityVOMappers) {
result.addAll(entityVOMapper.getVOClasses());
}
return result;
}
public void setEntityVOMappers(List entityVOMappers) {
for (IEntityVOMapper entityVOMapper : entityVOMappers) {
if (this != entityVOMapper) {
this.entityVOMappers.add(entityVOMapper);
}
}
}
@Override
public List> getEntityClasses() {
List> result = new ArrayList>();
for (IEntityVOMapper entityVOMapper : entityVOMappers) {
result.addAll(entityVOMapper.getEntityClasses());
}
return result;
}
@Override
@SuppressWarnings("unchecked")
public Class extends IBaseEntity> getEntityClass(Class> clazz) {
if (IBaseEntity.class.isAssignableFrom(clazz)) {
return (Class extends IBaseEntity>) clazz;
} else {
return (Class extends IBaseEntity>) getMappedClass(clazz);
}
}
@Override
@SuppressWarnings("unchecked")
public Class extends IBaseVO> getVOClass(Class> clazz) {
if (IBaseVO.class.isAssignableFrom(clazz)) {
return (Class extends IBaseVO>) clazz;
} else {
return (Class extends IBaseVO>) getMappedClass(clazz);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy