01: /**********************************************************************
02: Copyright (c) 2002 Mike Martin (TJDO) 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: 2003 Andy Jefferson - coding standards
17: ...
18: **********************************************************************/package org.jpox.store.expression;
19:
20: import java.math.BigInteger;
21:
22: /**
23: * Representation of a Substring expression in a Query.
24: *
25: * @version $Revision: 1.8 $
26: **/
27: public class SubstringExpression extends StringExpression {
28: /**
29: * Constructs the substring
30: * @param str the String Expression
31: * @param begin The start position
32: **/
33: public SubstringExpression(StringExpression str,
34: NumericExpression begin) {
35: super (str.getQueryExpression());
36:
37: st.append("SUBSTRING(").append(str).append(" FROM ").append(
38: begin.add(new IntegerLiteral(qs, mapping,
39: BigInteger.ONE))).append(')');
40: }
41:
42: /**
43: * Constructs the substring
44: * @param str the String Expression
45: * @param begin The start position
46: * @param end The end position expression
47: **/
48: public SubstringExpression(StringExpression str,
49: NumericExpression begin, NumericExpression end) {
50: super (str.getQueryExpression());
51:
52: st.append("SUBSTRING(").append(str).append(" FROM ").append(
53: begin.add(new IntegerLiteral(qs, mapping,
54: BigInteger.ONE))).append(" FOR ").append(
55: end.sub(begin)).append(')');
56: }
57: }
|