
org.ctoolkit.services.storage.criteria.BetweenExpression Maven / Gradle / Ivy
/*
* Copyright (c) 2017 Comvai, s.r.o. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.ctoolkit.services.storage.criteria;
/**
* Implementation of {@link Expression} which represent restrictions of value with low and high bound.
* It can by used to determine if for example date is in specified date interval.
*
* Low and high bound of expression can be set as follows:
*
* Low bound High bound Result
* {@link Bound#SOFT} {@link Bound#SOFT} e.date>=:p_0 and e.date<=:p_0
* {@link Bound#HARD} {@link Bound#SOFT} e.date>:p_0 and e.date<=:p_0
* {@link Bound#SOFT} {@link Bound#HARD} e.date>=:p_0 and e.date<:p_0
* {@link Bound#HARD} {@link Bound#HARD} e.date>:p_0 and e.date<:p_0
*
*
* @author Jozef Pohorelec
*/
public class BetweenExpression
implements Expression
{
private String propertyName;
private Object lowPropertyValue;
private Object highPropertyValue;
private Bound lowBound;
private Bound highBound;
private String parameterName;
private String highParameterName;
public BetweenExpression( String propertyName, Object propertyValue, Object highPropertyValue, Bound lowBound, Bound highBound )
{
this.propertyName = propertyName;
this.lowPropertyValue = propertyValue;
this.highPropertyValue = highPropertyValue;
this.lowBound = lowBound;
this.highBound = highBound;
}
@Override
public String getParameterName()
{
return parameterName;
}
@Override
public void setParameterName( String parameterName )
{
this.parameterName = parameterName;
}
public String getHighParameterName()
{
return highParameterName;
}
public void setHighParameterName( String highParameterName )
{
this.highParameterName = highParameterName;
}
@Override
public Object getPropertyValue()
{
return lowPropertyValue;
}
public Object getHighPropertyValue()
{
return highPropertyValue;
}
public String getPropertyName()
{
return propertyName;
}
public Bound getLowBound()
{
return lowBound;
}
public Bound getHighBound()
{
return highBound;
}
@Override
public Q build( CriteriaBuilder builder )
{
return builder.build( this );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy