KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > booleanvalueexpression > predicates > EscapeSpecialComparator


1 package com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.predicates;
2
3 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.*;
4 import com.daffodilwoods.daffodildb.utils.*;
5 import com.daffodilwoods.daffodildb.utils.field.*;
6 import com.daffodilwoods.database.resource.*;
7
8 /**
9  * <p>Title: </p>
10  * <p>Description: </p>
11  * <p>Copyright: Copyright (c) 2003</p>
12  * <p>Company: </p>
13  * @author unascribed
14  * @version 1.0
15  */

16
17 public class EscapeSpecialComparator extends EscapeComparator {
18
19    public EscapeSpecialComparator(SRESERVEDWORD1206543922escapecharacter escpaeCharacter0, Object JavaDoc object0, boolean firstClob, boolean secondClob, boolean thirdClob) {
20       super(escpaeCharacter0, object0, firstClob, secondClob, thirdClob);
21    }
22
23    public int compare(_DComparator leftMatchValue, _DComparator rightPattern) throws DException {
24       FieldBase escape = ( (FieldBase[]) escpaeCharacter.run(object))[0];
25       byte[] matchValue = firstClob ? ( (DClobUpdatable) leftMatchValue).getBytes()
26           : ( (FieldBase) leftMatchValue).getBufferRange().getBytes();
27       byte[] matchPattern = secondClob ? ( (DClobUpdatable) rightPattern).getBytes()
28           : ( (FieldBase) rightPattern).getBufferRange().getBytes();
29       byte[] escapeArray = thirdClob ? ( (DClobUpdatable) escape).getBytes()
30           : escape.getBufferRange().getBytes();
31       if (escapeArray.length != 1) {
32          throw new DException("DSE0", new Object JavaDoc[] {"Invalid escape character '" + new String JavaDoc(escapeArray) + "' was specified in a LIKE predicate."});
33       }
34       escapeByte = escapeArray[0];
35       return compareEscapeLike(matchValue, matchPattern);
36    }
37
38 }
39
Popular Tags