io.pelle.mango.server.base.BaseEntityVOMapper Maven / Gradle / Ivy
package io.pelle.mango.server.base;
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 java.util.ArrayList;
import java.util.List;
import java.util.Map;
public abstract class BaseEntityVOMapper implements IEntityVOMapper {
protected abstract Map, Class> getClassMappings();
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override
public List> getEntityClasses() {
List> result = new ArrayList>();
for (Class clazz : getClassMappings().values()) {
if (IBaseEntity.class.isAssignableFrom(clazz)) {
result.add((Class) clazz);
}
}
return result;
}
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override
public List> getVOClasses() {
List> result = new ArrayList>();
for (Class clazz : getClassMappings().values()) {
if (IBaseVO.class.isAssignableFrom(clazz)) {
result.add((Class) clazz);
}
}
return result;
}
@Override
@SuppressWarnings("unchecked")
public Class getVOClass(Class clazz) {
if (IBaseVO.class.isAssignableFrom(clazz)) {
return (Class) clazz;
} else {
return (Class) getMappedClass(clazz);
}
}
@Override
@SuppressWarnings("unchecked")
public Class getEntityClass(Class clazz) {
if (IBaseEntity.class.isAssignableFrom(clazz)) {
return (Class) clazz;
} else {
return (Class) getMappedClass(clazz);
}
}
}