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

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

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

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

import static it.amattioli.dominate.hibernate.specifications.HqlUtils.*;

public class HqlLongSpecification> extends LongSpecification {
	private String alias;
	
	public HqlLongSpecification() {

	}
	
	public HqlLongSpecification(String propertyName) {
		super(propertyName);
	}
	
	public HqlLongSpecification(String propertyName, String alias) {
		super(propertyName);
		this.alias = alias;
	}
	
	@Override
	public void itselfAssembleQuery(Assembler assembler) {
		addHqlCondition((HqlAssembler)assembler);
		setHqlParam((HqlAssembler)assembler);
	}
	
	public boolean itselfSupportsAssembler(Assembler assembler) {
		return assembler instanceof HqlAssembler;
	}

	public void addHqlCondition(HqlAssembler assembler) {
		if (wasSet()) {
	        assembler.newCriteria();
	        if (alias != null) {
	        	assembler.append(alias).append(".");
	        } else {
            	assembler.append(assembler.getAliasPrefix());
            }
	        assembler.append(hqlPropertyName(getPropertyName()))
	              .append(" " + getHqlOperator() + " :")
	              .append(normalizedPropertyName(getPropertyName()))
	              .append(" ");
		}
    }
	
	public void setHqlParam(HqlAssembler assembler) {
		if (wasSet()) {
			assembler.addParameter(normalizedPropertyName(getPropertyName()), getValue());
		}
    }
	
	private String getHqlOperator() {
		return HqlUtils.getTotalOrderOperator(getComparisonType());
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy