001: /*
002:
003: Derby - Class org.apache.derby.impl.store.access.UTFQualifier
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.impl.store.access;
023:
024: import org.apache.derby.iapi.types.DataValueDescriptor;
025:
026: import org.apache.derby.iapi.store.access.Qualifier;
027:
028: /**
029: */
030: public class UTFQualifier implements Qualifier {
031: private UTF value;
032: private int columnId;
033:
034: public UTFQualifier(int columnId, String value) {
035:
036: this .columnId = columnId;
037: this .value = new UTF(value);
038: }
039:
040: /*
041: ** Qualifier interface
042: */
043:
044: /** Get the id of the column to be qualified. **/
045: public int getColumnId() {
046: return columnId;
047: }
048:
049: /**
050: * Get the value that the column is to be compared to.
051: *
052: * @exception StandardException Thrown on error
053: */
054: public DataValueDescriptor getOrderable() {
055: return value;
056: }
057:
058: /** Get the operator to use in the comparison.
059: *
060: * @see DataValueDescriptor#compare
061: **/
062: public int getOperator() {
063: return DataValueDescriptor.ORDER_OP_EQUALS;
064:
065: }
066:
067: /**
068: * Determine if the result from the compare operation is to be negated.
069: * <p>
070: * If true then only rows which fail the compare operation will qualify.
071: *
072: * @see DataValueDescriptor#compare
073: **/
074: public boolean negateCompareResult() {
075: return false;
076: }
077:
078: /**
079: *
080: * @see Qualifier#getOrderedNulls
081: **/
082: public boolean getOrderedNulls() {
083: return false;
084: }
085:
086: /** Get the getOrderedNulls argument to use in the comparison.
087: *
088: * @see DataValueDescriptor#compare
089: **/
090: public boolean getUnknownRV() {
091: return false;
092: }
093:
094: /** Clear the DataValueDescriptor cache, if one exists.
095: * (The DataValueDescriptor can be 1 of 3 types:
096: * o VARIANT - cannot be cached as its value can
097: * vary within a scan
098: * o SCAN_INVARIANT - can be cached within a scan as its
099: * value will not change within a scan
100: * o QUERY_INVARIANT- can be cached across the life of the query
101: * as its value will never change
102: * o CONSTANT - can be cached across executions
103: *
104: * @see Qualifier#getUnknownRV
105: */
106: public void clearOrderableCache() {
107: }
108:
109: /**
110: * This method reinitializes all the state of
111: * the Qualifier. It is used to distinguish between
112: * resetting something that is query invariant
113: * and something that is constant over every
114: * execution of a query. Basically, clearOrderableCache()
115: * will only clear out its cache if it is a VARIANT
116: * or SCAN_INVARIANT value. However, each time a
117: * query is executed, the QUERY_INVARIANT qualifiers need
118: * to be reset.
119: */
120: public void reinitialize() {
121: }
122: }
|