1 package com.daffodilwoods.daffodildb.server.sql99.fulltext.expression; 2 3 import com.daffodilwoods.database.resource.*; 4 import com.daffodilwoods.daffodildb.server.sql99.token.*; 5 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 6 import com.daffodilwoods.daffodildb.utils.field.FieldString; 7 import com.daffodilwoods.daffodildb.utils.BufferRange; 8 import com.daffodilwoods.daffodildb.utils.field.FieldStringLiteral; 9 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 10 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes; 11 import com.daffodilwoods.daffodildb.server.sql99.fulltext.common.FullTextByteParser; 12 import java.util.ArrayList ; 13 import com.daffodilwoods.daffodildb.server.sql99.fulltext.common.ByteToken; 14 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.condition._FullTextPredicate; 15 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.condition.WordRepresentation; 16 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.condition.PhraseRepresentation; 17 import com.daffodilwoods.daffodildb.utils.FieldUtility; 18 import com.daffodilwoods.fulltext.common._FullTextDocumentParser; 19 import com.daffodilwoods.fulltext.common._Token; 20 import com.daffodilwoods.daffodildb.server.sql99.token.delimitedidentifier; 21 22 34 35 public class word implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter,textliteral { 36 37 public delimitedidentifier _word0; 38 public _Token[] tokenList; 39 boolean flagForOneTimeSematicChecking = true; 40 41 public Object run(Object object) throws DException { 42 return null; 43 } 44 45 public Object clone() throws CloneNotSupportedException { 46 delimitedidentifier Delimitedidentifier = (delimitedidentifier) _word0.clone(); 47 word Word = new word(); 48 Word._word0 = Delimitedidentifier; 49 return Word; 50 } 51 59 public _Reference[] checkSemantic(com.daffodilwoods.daffodildb.server.serversystem._ServerSession parent) throws DException { 60 if(flagForOneTimeSematicChecking) { 61 _FullTextDocumentParser byteParser = new FullTextByteParser(); 62 ArrayList listOfToken = new ArrayList (5); 63 FieldBase obj = FieldUtility.getField(Datatypes.VARCHAR, (String )_word0.run(parent)); com.daffodilwoods.fulltext.common._Tokenizer byteTokenizer = byteParser.getTokenizer(obj,0); 65 while (byteTokenizer.hasMoreToken()) { 66 _Token token = byteTokenizer.nextToken(); 67 listOfToken.add(token); } 69 tokenList = (_Token[]) listOfToken.toArray(new ByteToken[listOfToken.size()]); 70 flagForOneTimeSematicChecking = false; 71 if (tokenList.length > 0) 72 return null; 73 74 throw new DException("DSE6002",null); 75 } 76 return null; 77 } 78 83 public _FullTextPredicate getFullTextPrdicate() throws DException{ 84 if (tokenList.length == 1) 85 return new WordRepresentation((FieldBase) (tokenList[0].getTerm())); 87 else { 88 WordRepresentation wordList[] = new WordRepresentation[tokenList.length]; 89 for (int i = 0; i < tokenList.length; i++) { 90 wordList[i] = new WordRepresentation((FieldBase) (tokenList[i].getTerm()) ); } 92 return new PhraseRepresentation(wordList); 93 } 94 } 95 96 public String toString(){ 97 return _word0.toString(); 98 } 99 100 } 101 | Popular Tags |