001: /*
002:
003: Derby - Class org.apache.derby.iapi.types.StringDataValue
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to you under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021:
022: package org.apache.derby.iapi.types;
023:
024: import org.apache.derby.iapi.error.StandardException;
025:
026: public interface StringDataValue extends ConcatableDataValue {
027: // TRIM() types
028: public static final int BOTH = 0;
029: public static final int TRAILING = 1;
030: public static final int LEADING = 2;
031:
032: /**
033: * The SQL concatenation '||' operator.
034: *
035: * @param leftOperand String on the left hand side of '||'
036: * @param rightOperand String on the right hand side of '||'
037: * @param result The result of a previous call to this method,
038: * null if not called yet.
039: *
040: * @return A ConcatableDataValue containing the result of the '||'
041: *
042: * @exception StandardException Thrown on error
043: */
044: public StringDataValue concatenate(StringDataValue leftOperand,
045: StringDataValue rightOperand, StringDataValue result)
046: throws StandardException;
047:
048: /**
049: * The SQL like() function with out escape clause.
050: *
051: * @param pattern the pattern to use
052: *
053: * @return A BooleanDataValue containing the result of the like
054: *
055: * @exception StandardException Thrown on error
056: */
057: public BooleanDataValue like(DataValueDescriptor pattern)
058: throws StandardException;
059:
060: /**
061: * The SQL like() function WITH escape clause.
062: *
063: * @param pattern the pattern to use
064: * @param escape the escape character
065: *
066: * @return A BooleanDataValue containing the result of the like
067: *
068: * @exception StandardException Thrown on error
069: */
070: public BooleanDataValue like(DataValueDescriptor pattern,
071: DataValueDescriptor escape) throws StandardException;
072:
073: /**
074: * The SQL trim(), ltrim() and rtrim() functions.
075: *
076: * @param trimType Type of trim
077: * @param result The result of a previous call to this method,
078: * null if not called yet.
079: *
080: * @return A StringDataValue containing the result of the trim()
081: *
082: * @exception StandardException Thrown on error
083: */
084: public StringDataValue trim(int trimType, StringDataValue result)
085: throws StandardException;
086:
087: /**
088: * Convert the string to upper case.
089: *
090: * @param result The result (reusable - allocate if null).
091: *
092: * @return The string converted to upper case.
093: *
094: * @exception StandardException Thrown on error
095: */
096: public StringDataValue upper(StringDataValue result)
097: throws StandardException;
098:
099: /**
100: * Convert the string to lower case.
101: *
102: * @param result The result (reusable - allocate if null).
103: *
104: * @return The string converted to lower case.
105: *
106: * @exception StandardException Thrown on error
107: */
108: public StringDataValue lower(StringDataValue result)
109: throws StandardException;
110:
111: /**
112: * Position in searchFrom of the first occurrence of this.value.
113: * The search begins from position start. 0 is returned if searchFrom does
114: * not contain this.value. Position 1 is the first character in searchFrom.
115: *
116: * @param searchFrom - The string to search from
117: * @param start - The position to search from in string searchFrom
118: * @param result - The object to return
119: *
120: * @return The position in searchFrom the fist occurrence of this.value.
121: * 0 is returned if searchFrom does not contain this.value.
122: * @exception StandardException Thrown on error
123: */
124: public NumberDataValue locate(StringDataValue searchFrom,
125: NumberDataValue start, NumberDataValue result)
126: throws StandardException;
127:
128: /**
129: * Get a char array. Typically, this is a simple
130: * getter that is cheaper than getString() because
131: * we always need to create a char array when
132: * doing I/O. Use this instead of getString() where
133: * reasonable.
134: * <p>
135: * <b>WARNING</b>: may return a character array that has spare
136: * characters at the end. MUST be used in conjunction
137: * with getLength() to be safe.
138: *
139: * @exception StandardException Thrown on error
140: */
141: public char[] getCharArray() throws StandardException;
142:
143: }
|