All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy