001: /*
002:
003: Derby - Class org.apache.derbyTesting.unitTests.store..QualifierUtil
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.derbyTesting.unitTests.store;
023:
024: import org.apache.derby.iapi.store.access.Qualifier;
025:
026: import org.apache.derby.iapi.types.DataValueDescriptor;
027:
028: class QualifierUtil implements Qualifier {
029: private int column_id;
030: private DataValueDescriptor key_val;
031: private int operator;
032: private boolean negateCompareResult;
033: private boolean orderedNulls;
034: private boolean unknownRV;
035:
036: /**
037: * Constuctor
038: */
039: public QualifierUtil(int column_id, DataValueDescriptor key_val,
040: int operator, boolean negateCompareResult,
041: boolean orderedNulls, boolean unknownRV) {
042: this .column_id = column_id;
043: this .key_val = key_val;
044: this .operator = operator;
045: this .negateCompareResult = negateCompareResult;
046: this .orderedNulls = orderedNulls;
047: this .unknownRV = unknownRV;
048: }
049:
050: /** Qualifier interface: **/
051:
052: /** Get the id of the column to be qualified. **/
053: public int getColumnId() {
054: return (this .column_id);
055: }
056:
057: /** Get the value that the column is to be compared to. **/
058: public DataValueDescriptor getOrderable() {
059: return (this .key_val);
060: }
061:
062: /** Get the operator to use in the comparison.
063: *
064: * @see DataValueDescriptor#compare
065: **/
066: public int getOperator() {
067: return (this .operator);
068: }
069:
070: /** Should the result of the compare be negated?
071: *
072: * @see DataValueDescriptor#compare
073: **/
074: public boolean negateCompareResult() {
075: return (this .negateCompareResult);
076: }
077:
078: /** Get the getOrderedNulls argument to use in the comparison.
079: *
080: * @see DataValueDescriptor#compare
081: **/
082: public boolean getOrderedNulls() {
083: return (this .orderedNulls);
084: }
085:
086: /** Get the getOrderedNulls argument to use in the comparison.
087: *
088: * @see DataValueDescriptor#compare
089: **/
090: public boolean getUnknownRV() {
091: return (this .unknownRV);
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: // No Orderable caching here
108: }
109:
110: /**
111: * This method reinitializes all the state of
112: * the Qualifier. It is used to distinguish between
113: * resetting something that is query invariant
114: * and something that is constant over every
115: * execution of a query. Basically, clearOrderableCache()
116: * will only clear out its cache if it is a VARIANT
117: * or SCAN_INVARIANT value. However, each time a
118: * query is executed, the QUERY_INVARIANT qualifiers need
119: * to be reset.
120: */
121: public void reinitialize() {
122: }
123: }
|