blob: cb19587181ae2e2e4422d032c1524b66ea04bac0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
//
// This source code implements specifications defined by the Java
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
package javax.persistence;
import java.util.Calendar;
import java.util.Date;
/**
* Interface for constructing where-clause and having-clause conditions.
* Instances of PredicateOperand are used in constructing predicates passed to
* the where or having methods.
*/
public interface PredicateOperand {
/**
* Create a predicate for testing equality with the specified argument.
*
* @param arg -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate equal(PredicateOperand arg);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param cls -
* entity class
* @return conditional predicate
*/
Predicate equal(Class cls);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param arg -
* numeric
* @return conditional predicate
*/
Predicate equal(Number arg);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param arg -
* string value
* @return conditional predicate
*/
Predicate equal(String arg);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param arg -
* boolean value
* @return conditional predicate
*/
Predicate equal(boolean arg);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param arg -
* date
* @return conditional predicate
*/
Predicate equal(Date arg);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param arg -
* calendar
* @return conditional predicate
*/
Predicate equal(Calendar arg);
/**
* Create a predicate for testing equality with the specified argument.
*
* @param e -
* enum
* @return conditional predicate
*/
Predicate equal(Enum<?> e);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param arg -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate notEqual(PredicateOperand arg);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param cls -
* entity class
* @return conditional predicate
*/
Predicate notEqual(Class cls);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param arg -
* numberic value
* @return conditional predicate
*/
Predicate notEqual(Number arg);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param arg -
* string value
* @return conditional predicate
*/
Predicate notEqual(String arg);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param arg -
* boolean value
* @return conditional predicate
*/
Predicate notEqual(boolean arg);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param arg -
* date
* @return conditional predicate
*/
Predicate notEqual(Date arg);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param arg -
* calendar
* @return conditional predicate
*/
Predicate notEqual(Calendar arg);
/**
* Create a predicate for testing inequality with the specified argument.
*
* @param e -
* enum
* @return conditional predicate
*/
Predicate notEqual(Enum<?> e);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than the argument.
*
* @param arg -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate greaterThan(PredicateOperand arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than the argument.
*
* @param arg -
* numeric
* @return conditional predicate
*/
Predicate greaterThan(Number arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than the argument.
*
* @param arg -
* string
* @return conditional predicate
*/
Predicate greaterThan(String arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than the argument.
*
* @param arg -
* date
* @return conditional predicate
*/
Predicate greaterThan(Date arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than the argument.
*
* @param arg -
* calendar
* @return conditional predicate
*/
Predicate greaterThan(Calendar arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than or equal to the argument.
*
* @param arg -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate greaterEqual(PredicateOperand arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than or equal to the argument.
*
* @param arg -
* numeric
* @return conditional predicate
*/
Predicate greaterEqual(Number arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than or equal to the argument.
*
* @param arg -
* string
* @return conditional predicate
*/
Predicate greaterEqual(String arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than or equal to the argument.
*
* @param arg -
* date
* @return conditional predicate
*/
Predicate greaterEqual(Date arg);
/**
* Create a predicate for testing whether the PredicateOperand is greater
* than or equal to the argument.
*
* @param arg -
* calendar
* @return conditional predicate
*/
Predicate greaterEqual(Calendar arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* the argument.
*
* @param arg -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate lessThan(PredicateOperand arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* the argument.
*
* @param arg -
* numeric
* @return conditional predicate
*/
Predicate lessThan(Number arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* the argument.
*
* @param arg -
* string
* @return conditional predicate
*/
Predicate lessThan(String arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* the argument.
*
* @param arg -
* date
* @return conditional predicate
*/
Predicate lessThan(Date arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* the argument.
*
* @param arg -
* calendar
* @return conditional predicate
*/
Predicate lessThan(Calendar arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* or equal to the argument.
*
* @param arg -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate lessEqual(PredicateOperand arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* or equal to the argument.
*
* @param arg -
* numeric
* @return conditional predicate
*/
Predicate lessEqual(Number arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* or equal to the argument.
*
* @param arg -
* string
* @return conditional predicate
*/
Predicate lessEqual(String arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* or equal to the argument.
*
* @param arg -
* date
* @return conditional predicate
*/
Predicate lessEqual(Date arg);
/**
* Create a predicate for testing whether the PredicateOperand is less than
* or equal to the argument.
*
* @param arg -
* calendar
* @return conditional predicate
*/
Predicate lessEqual(Calendar arg);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* PredicateOperand instance or parameter
* @param arg2 -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate between(PredicateOperand arg1, PredicateOperand arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* PredicateOperand instance or parameter
* @param arg2 -
* numeric
* @return conditional predicate
*/
Predicate between(PredicateOperand arg1, Number arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* numeric
* @param arg2 -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate between(Number arg1, PredicateOperand arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* numeric
* @param arg2 -
* numeric
* @return conditional predicate
*/
Predicate between(Number arg1, Number arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* PredicateOperand instance or parameter
* @param arg2 -
* string
* @return conditional predicate
*/
Predicate between(PredicateOperand arg1, String arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* string
* @param arg2 -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate between(String arg1, PredicateOperand arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* string
* @param arg2 -
* string
* @return conditional predicate
*/
Predicate between(String arg1, String arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* PredicateOperand instance or parameter
* @param arg2 -
* date
* @return conditional predicate
*/
Predicate between(PredicateOperand arg1, Date arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* date
* @param arg2 -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate between(Date arg1, PredicateOperand arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* date
* @param arg2 -
* date
* @return conditional predicate
*/
Predicate between(Date arg1, Date arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* PredicateOperand instance or parameter
* @param arg2 -
* calendar
* @return conditional predicate
*/
Predicate between(PredicateOperand arg1, Calendar arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* calendar
* @param arg2 -
* PredicateOperand instance or parameter
* @return conditional predicate
*/
Predicate between(Calendar arg1, PredicateOperand arg2);
/**
* Create a predicate for testing whether the PredicateOperand lies between
* (inclusive) the two arguments.
*
* @param arg1 -
* calendar
* @param arg2 -
* calendar
* @return conditional predicate
*/
Predicate between(Calendar arg1, Calendar arg2);
/**
* Create a predicate for testing whether the PredicateOperand satisfies the
* given pattern.
*
* @param pattern
* @return conditional predicate
*/
Predicate like(PredicateOperand pattern);
/**
* Create a predicate for testing whether the PredicateOperand satisfies the
* given pattern.
*
* @param pattern
* @param escapeChar
* @return conditional predicate
*/
Predicate like(PredicateOperand pattern, PredicateOperand escapeChar);
/**
* Create a predicate for testing whether the PredicateOperand satisfies the
* given pattern.
*
* @param pattern
* @param escapeChar
* @return conditional predicate
*/
Predicate like(PredicateOperand pattern, char escapeChar);
/**
* Create a predicate for testing whether the PredicateOperand satisfies the
* given pattern.
*
* @param pattern
* @return conditional predicate
*/
Predicate like(String pattern);
/**
* Create a predicate for testing whether the PredicateOperand satisfies the
* given pattern.
*
* @param pattern
* @param escapeChar
* @return conditional predicate
*/
Predicate like(String pattern, PredicateOperand escapeChar);
/**
* Create a predicate for testing whether the PredicateOperand satisfies the
* given pattern.
*
* @param pattern
* @param escapeChar
* @return conditional predicate
*/
Predicate like(String pattern, char escapeChar);
}