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

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

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

import org.hibernate.criterion.Restrictions;

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

public class CriteriaLongSpecification> extends LongSpecification {

	public CriteriaLongSpecification() {

	}

	public CriteriaLongSpecification(String propertyName) {
		super(propertyName);
	}

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

	@Override
	public boolean itselfSupportsAssembler(Assembler assembler) {
		return assembler instanceof CriteriaAssembler;
	}
	
	private void addCriteria(CriteriaAssembler assembler) {
        if (wasSet()) {
        	switch (getComparisonType()) {
        	case EQUAL:
        		assembler.addCriterion(Restrictions.eq(getPropertyName(), getValue()));
        		break;
        	case GREATER:
        		assembler.addCriterion(Restrictions.gt(getPropertyName(), getValue()));
        		break;
        	case GREATER_EQ:
        		assembler.addCriterion(Restrictions.ge(getPropertyName(), getValue()));
        		break;
        	case LOWER:
        		assembler.addCriterion(Restrictions.lt(getPropertyName(), getValue()));
        		break;
        	case LOWER_EQ:
        		assembler.addCriterion(Restrictions.le(getPropertyName(), getValue()));
        		break;
        	}
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy