01: /**********************************************************************
02: Copyright (c) 2005 Erik Bengtson and others. All rights reserved.
03: Licensed under the Apache License, Version 2.0 (the "License");
04: you may not use this file except in compliance with the License.
05: You may obtain a copy of the License at
06:
07: http://www.apache.org/licenses/LICENSE-2.0
08:
09: Unless required by applicable law or agreed to in writing, software
10: distributed under the License is distributed on an "AS IS" BASIS,
11: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12: See the License for the specific language governing permissions and
13: limitations under the License.
14:
15: Contributors:
16: ...
17: **********************************************************************/package org.jpox.store.expression;
18:
19: /**
20: * Interface that allows one datastore adapt expression and operators
21: * @version $Revision: 1.2 $
22: */
23: public interface ExpressionOperatorAdapter {
24: /**
25: * Method to generate a modulus expression. The binary % operator is said to
26: * yield the remainder of its operands from an implied division; the
27: * left-hand operand is the dividend and the right-hand operand is the
28: * divisor.
29: * @param operand1 the left expression
30: * @param operand2 the right expression
31: * @return The Expression for modulus
32: */
33: NumericExpression modOperator(ScalarExpression operand1,
34: ScalarExpression operand2);
35:
36: /**
37: * <p>
38: * If only one operand expression is of type String, then string conversion
39: * is performed on the other operand to produce a string at run time. The
40: * result is a reference to a String object (newly created, unless the
41: * expression is a compile-time constant expression (§15.28))that is the
42: * concatenation of the two operand strings. The characters of the left-hand
43: * operand precede the characters of the right-hand operand in the newly
44: * created string. If an operand of type String is null, then the string
45: * "null" is used instead of that operand. "null" is used instead of that
46: * operand.
47: * </p>
48: * <p>
49: * Concatenates two or more character or binary strings, columns, or a
50: * combination of strings and column names into one expression (a string
51: * operator).
52: * </p>
53: * @param operand1 the left expression
54: * @param operand2 the right expression
55: * @return The Expression for concatenation
56: */
57: ScalarExpression concatOperator(ScalarExpression operand1,
58: ScalarExpression operand2);
59:
60: /**
61: * An operator in a string expression that concatenates two or more
62: * character or binary strings, columns, or a combination of strings and
63: * column names into one expression (a string operator).
64: *
65: * @return the operator String
66: */
67: String getOperatorConcat();
68: }
|