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

it.amattioli.dominate.hibernate.specifications.CriteriaMultipleEntitySpecification Maven / Gradle / Ivy

The newest version!
package it.amattioli.dominate.hibernate.specifications;

import java.io.Serializable;

import org.hibernate.criterion.Restrictions;

import it.amattioli.dominate.Entity;
import it.amattioli.dominate.specifications.Assembler;
import it.amattioli.dominate.specifications.MultipleEntitySpecification;

public class CriteriaMultipleEntitySpecification, I extends Serializable, U extends Entity> extends MultipleEntitySpecification {

	public CriteriaMultipleEntitySpecification() {

	}

	public CriteriaMultipleEntitySpecification(String propertyName, Class entityClass) {
		super(propertyName, entityClass);
	}

	@Override
	public void itselfAssembleQuery(Assembler assembler) {
		addCriteria((CriteriaAssembler) assembler);
	}

	public boolean itselfSupportsAssembler(Assembler assembler) {
		return assembler instanceof CriteriaAssembler;
	}
	
	private void addCriteria(CriteriaAssembler assembler) {
        if (wasSet()) {
        	assembler.addCriterion(Restrictions.in(getPropertyName(), getValue()));
        }
    }

}