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

io.pelle.mango.db.dao.AbstractVODAO Maven / Gradle / Ivy

The newest version!
package io.pelle.mango.db.dao;

import io.pelle.mango.client.base.vo.IBaseVO;
import io.pelle.mango.client.base.vo.query.AggregateQuery;
import io.pelle.mango.client.base.vo.query.CountQuery;
import io.pelle.mango.client.base.vo.query.DeleteQuery;
import io.pelle.mango.client.base.vo.query.SelectQuery;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import com.google.common.base.Optional;

public abstract class AbstractVODAO implements IVOEntityDAO {

	@Autowired
	private BaseVODAO baseVODAO;

	private final Class voEntityClass;

	@Override
	public Class getVOEntityClass() {
		return voEntityClass;
	}

	public AbstractVODAO(Class voEntityClass) {
		this.voEntityClass = voEntityClass;
	}

	@Override
	public VOTYPE create(VOTYPE entity) {
		return baseVODAO.create(entity);
	}

	@Override
	public VOTYPE save(VOTYPE entity) {
		return baseVODAO.save(entity);
	}

	@Override
	public VOTYPE read(long id) {
		return baseVODAO.read(id, getVOEntityClass());
	}

	@Override
	public List filter(SelectQuery query) {
		return baseVODAO.filter(query);
	}

	@Override
	public Optional read(SelectQuery query) {
		return baseVODAO.read(query);
	}

	@Override
	public void deleteAll() {
		baseVODAO.deleteAll(getVOEntityClass());
	}

	@Override
	public void delete(VOTYPE entity) {
		baseVODAO.delete(entity);
	}

	@Override
	public long count(CountQuery query) {
		return baseVODAO.count(query);
	}

	@Override
	public long aggregate(AggregateQuery query) {
		return baseVODAO.aggregate(query);
	}

	@Override
	public List getByNaturalKey(String naturalKey) {
		return baseVODAO.searchByNaturalKey(getVOEntityClass(), naturalKey);
	}

	@Override
	public void deleteQuery(DeleteQuery query) {
		baseVODAO.deleteQuery(query);
	}

	@Override
	public List getAll() {
		return baseVODAO.getAll(getVOEntityClass());
	}

	@Override
	public void delete(long id) {
		baseVODAO.delete(getVOEntityClass(), id);
	}

	@Override
	public long count() {
		return baseVODAO.count(getVOEntityClass());
	}

	@Override
	public VOTYPE getNewEntity(String className, Map properties) {
		return baseVODAO.getNewVO(className, properties);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy