KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > utils > GetByteComparator


1 package com.daffodilwoods.daffodildb.utils;
2
3 import com.daffodilwoods.daffodildb.server.sql99.common.StaticClass;
4 import java.util.Comparator JavaDoc;
5 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.Datatype;
6 import com.daffodilwoods.database.resource.DException;
7 import com.daffodilwoods.daffodildb.utils.comparator.*;
8 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession;
9 import java.text.Collator JavaDoc;
10 import com.daffodilwoods.daffodildb.server.sql99.fulltext.dql.iterator.*;
11 import com.daffodilwoods.daffodildb.utils.comparator.CTusjohCzuftDpmmbupsDpnqbsbups;
12 import com.daffodilwoods.daffodildb.utils.comparator.CUjnfTubnqDpnqbsbups;
13 import com.daffodilwoods.daffodildb.utils.comparator.CTusjohTfotjujwfDpnqbsbups;
14 import com.daffodilwoods.daffodildb.utils.comparator.DateComparator;
15
16 public class GetByteComparator implements Datatype, java.io.Serializable JavaDoc {
17
18   public static CCppmfboCppmfboDpnqbsbups oneByteComparator = new CCppmfboCppmfboDpnqbsbups();
19   public static CTbnfUzqfDpnqbsbups sameComparator = new CTbnfUzqfDpnqbsbups();
20   public static FTComparator ftComparator = new FTComparator();
21   public static CTbnfUzqfEfdjnbmDpnqbsbups sameDecimalComparator = new CTbnfUzqfEfdjnbmDpnqbsbups();
22   public static CCjhEfdjnbmCjhEfdjnbmDpnqbsbups bigDecimalComparator = new CCjhEfdjnbmCjhEfdjnbmDpnqbsbups();
23   public static CTusjohJoTfotjujwfDpnqbsbups stringComparator = new CTusjohJoTfotjujwfDpnqbsbups();
24   public static CTusjohTfotjujwfDpnqbsbups sensitiveStringComparator = new CTusjohTfotjujwfDpnqbsbups();
25   public static CUjnfTubnqDpnqbsbups timeStampComparator = new CUjnfTubnqDpnqbsbups();
26   public static COpoEfdjnbmOpoEfdjnbmDpnqbsbups nonDecimalNonDecimalComparator = new COpoEfdjnbmOpoEfdjnbmDpnqbsbups();
27   public static CPckfduDpnqbsbups objectComparator = new CPckfduDpnqbsbups();
28   public static CGmpbuOpoEfdjnbmDpnqbsbups floatNonDecimalComparator = new CGmpbuOpoEfdjnbmDpnqbsbups();
29   public static CEpvcmfOpoEfdjnbmDpnqbsbups doubleNonDecimalComparator = new CEpvcmfOpoEfdjnbmDpnqbsbups();
30   public static CEpvcmfGmpbuDpnqbsbups doubleFloatComparator = new CEpvcmfGmpbuDpnqbsbups();
31   public static CSfwfstfDpnqbsbups floatDoubleComparator = new CSfwfstfDpnqbsbups(doubleFloatComparator);
32   public static CSfwfstfDpnqbsbups nonDecimalFloatComparator = new CSfwfstfDpnqbsbups(floatNonDecimalComparator);
33   public static CSfwfstfDpnqbsbups nonDecimalDoubleComparator = new CSfwfstfDpnqbsbups(doubleNonDecimalComparator);
34   public static DateComparator dateComparator = new DateComparator();
35
36     public GetByteComparator() {
37     }
38
39     public static SuperComparator getComparatorForDataSystem(int type , boolean flag, Collator JavaDoc collator) throws DException{
40         flag = true;
41         switch ( type ) {
42             case BOOLEAN:
43             case BYTE:
44                 return oneByteComparator;
45             case INT:
46             case TINYINT:
47             case INTEGER:
48             case LONG:
49             case SHORT:
50             case SMALLINT:
51             case BIGINT:
52             case BINARY:
53             case VARBINARY:
54             case BIT:
55             case BITVARYING:
56                 return sameComparator;
57             case FLOAT:
58             case DOUBLE:
59             case DOUBLEPRECISION:
60             case REAL:
61               return sameDecimalComparator;
62             case BIGDECIMAL:
63             case DECIMAL:
64             case DEC:
65             case NUMERIC:
66                 return bigDecimalComparator;
67             case VARCHAR:
68             case CHAR:
69             case CHARACTER:
70             case CHARACTERVARYING:
71             case CHARVARYING: // flag == true => caseInsensitive
72
if( collator == null ){
73                     if (flag)
74                         return stringComparator;
75                     else{
76                         return sensitiveStringComparator;
77                     }
78                 }
79                 else{
80                     return new CTusjohCzuftDpmmbupsDpnqbsbups(collator);
81                 }
82             case DATE :
83               return dateComparator;
84             case TIME :
85             case TIMESTAMP :
86                 return sameComparator;
87             default:
88              throw new DException("DSE515",new Object JavaDoc[] {StaticClass.getDataTypeName(type)});
89         }
90
91     }
92
93     static public SuperComparator getComparator( int type , boolean flag, Collator JavaDoc collator ) throws DException{
94         flag = true;
95         switch ( type ) {
96             case BOOLEAN:
97             case BYTE:
98                 return oneByteComparator;
99             case INT:
100             case TINYINT:
101             case INTEGER:
102             case LONG:
103             case SHORT:
104             case SMALLINT:
105             case BIGINT:
106                 return sameComparator;
107             case FLOAT:
108             case DOUBLE:
109             case DOUBLEPRECISION:
110             case REAL:
111               return sameDecimalComparator;
112             case BIGDECIMAL:
113             case DECIMAL:
114             case DEC:
115             case NUMERIC:
116                 return bigDecimalComparator;
117             case VARCHAR:
118             case CHAR:
119             case CHARACTER:
120             case CHARACTERVARYING:
121             case CHARVARYING: // flag == true => caseInsensitive
122
if( collator == null ){
123                     if (flag)
124                         return stringComparator;
125                     else{
126                         return sensitiveStringComparator;
127                     }
128                 }
129                 else{
130                     return new CTusjohDpmmbupsDpnqbsbups(collator);
131                 }
132             case DATE :
133               return dateComparator;
134             case TIME :
135             case TIMESTAMP :
136                 return sameComparator;
137             default:
138              throw new DException("DSE515",new Object JavaDoc[] {StaticClass.getDataTypeName(type)});
139         }
140
141     }
142
143     public static SuperComparator getAppropriateComparator(int type1 , int type2 , _ServerSession serverSession , java.text.Collator JavaDoc collator) throws DException{
144       boolean caseSensitive = false; //To be Decided by serverSession.
145
switch(type1){
146             case BYTE : case BOOLEAN : case TINYINT :
147               switch(type2){
148                 case BYTE : case BOOLEAN : case TINYINT :
149                   return oneByteComparator;
150                 case SHORT : case INTEGER :case INT : case LONG : case BIGINT : case SMALLINT :
151                   return nonDecimalNonDecimalComparator;
152                 case REAL :
153                   return nonDecimalFloatComparator;
154                 case FLOAT : case DOUBLE : case DOUBLEPRECISION :
155                   return nonDecimalDoubleComparator;
156                 case BIGDECIMAL : case DECIMAL : case DEC : case NUMERIC :
157                   return objectComparator;
158                 default :
159                   throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
160               }
161             case SHORT : case SMALLINT :
162                 switch(type2){
163                   case BYTE : case TINYINT : case BOOLEAN : case INTEGER : case LONG :
164                   case INT : case BIGINT :
165                     return nonDecimalNonDecimalComparator;
166                   case SHORT : case SMALLINT :
167                     return sameComparator;
168                   case REAL :
169                     return nonDecimalFloatComparator;
170                   case DOUBLE :case FLOAT : case DOUBLEPRECISION :
171                     return nonDecimalDoubleComparator;
172                   case BIGDECIMAL : case DECIMAL : case DEC : case NUMERIC :
173                     return objectComparator;
174                   default :
175                     throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
176                 }
177               case INTEGER : case INT :
178                   switch(type2){
179                     case BYTE : case TINYINT : case BOOLEAN : case SHORT : case SMALLINT : case LONG :
180                     case BIGINT :
181                       return nonDecimalNonDecimalComparator;
182                     case INTEGER :case INT :
183                       return sameComparator;
184                     case REAL :
185                       return nonDecimalFloatComparator;
186                     case DOUBLE :case FLOAT : case DOUBLEPRECISION :
187                       return nonDecimalDoubleComparator;
188                     case BIGDECIMAL : case DECIMAL : case DEC : case NUMERIC :
189                       return objectComparator;
190                     default :
191                       throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
192                   }
193                 case LONG : case BIGINT :
194                     switch(type2){
195                       case BYTE : case BOOLEAN : case SHORT : case INTEGER : case SMALLINT :
196                       case TINYINT : case INT :
197                         return nonDecimalNonDecimalComparator;
198                       case LONG : case BIGINT :
199                         return sameComparator;
200                       case REAL :
201                         return nonDecimalFloatComparator;
202                       case DOUBLE :case FLOAT : case DOUBLEPRECISION :
203                         return nonDecimalDoubleComparator;
204                       case BIGDECIMAL : case DECIMAL : case DEC : case NUMERIC :
205                         return objectComparator;
206                       default :
207                         throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
208                     }
209             case REAL :
210               switch(type2){
211                 case BYTE : case SHORT :case INTEGER : case INT : case LONG :
212                 case BOOLEAN :case SMALLINT :case TINYINT : case BIGINT :
213                   return floatNonDecimalComparator;
214                 case REAL :
215                   return sameDecimalComparator;
216                 case DOUBLE :case FLOAT : case DOUBLEPRECISION :
217                   return floatDoubleComparator;
218                 case NUMERIC : case DEC : case DECIMAL :
219                   return objectComparator;
220                 default :
221                   throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
222               }
223             case DOUBLE : case FLOAT : case DOUBLEPRECISION :
224               switch(type2){
225                 case BYTE : case SHORT :case INTEGER : case INT : case LONG :
226                 case BOOLEAN :case SMALLINT :case TINYINT : case BIGINT :
227                   return doubleNonDecimalComparator;
228                 case REAL :
229                   return doubleFloatComparator;
230                 case DOUBLE :case FLOAT : case DOUBLEPRECISION :
231                   return sameDecimalComparator;
232                 case NUMERIC : case DEC : case DECIMAL :
233                   return objectComparator;
234                 default :
235                   throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
236               }
237             case BIGDECIMAL : case DECIMAL : case DEC : case NUMERIC :
238               switch(type2){
239                 case BIGDECIMAL : case DECIMAL : case DEC : case NUMERIC :
240                   return bigDecimalComparator;
241                 default :
242                   return objectComparator;
243               }
244             case DATE : case TIME : case TIMESTAMP :
245               return objectComparator;
246            case CHARACTER : case VARCHAR : case LONGVARCHAR : case CHAR : case CHARACTERVARYING : case CHARVARYING :
247              switch(type2){
248                case CHARACTER : case VARCHAR : case LONGVARCHAR : case CHAR : case CHARACTERVARYING : case CHARVARYING :
249                   if(collator != null)
250                     return new CTusjohDpmmbupsDpnqbsbups(collator);
251                   if(caseSensitive)
252                     return sensitiveStringComparator;
253                   return stringComparator;
254                 default :
255                   throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
256               }
257             default :
258               throw new DException("DSE87",new Object JavaDoc[]{StaticClass.getDataTypeName(type1), StaticClass.getDataTypeName(type2)});
259       }
260     }
261 }
262
Popular Tags