KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > micronova > util > codec > CodecType


1 /*
2
3 Copyright 2003-2007 MicroNova (R)
4 All rights reserved.
5
6 Redistribution and use in source and binary forms, with or
7 without modification, are permitted provided that the following
8 conditions are met:
9
10     * Redistributions of source code must retain the above copyright
11     notice, this list of conditions and the following disclaimer.
12
13     * Redistributions in binary form must reproduce the above copyright
14     notice, this list of conditions and the following disclaimer in the
15     documentation and/or other materials provided with the distribution.
16
17     * Neither the name of MicroNova nor the names of its contributors
18     may be used to endorse or promote products derived from this
19     software without specific prior written permission.
20
21 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 POSSIBILITY OF SUCH DAMAGE.
32
33 */

34
35 package com.micronova.util.codec;
36
37 import java.text.*;
38 import java.util.*;
39 import java.net.*;
40 import java.io.*;
41 import javax.mail.*;
42 import javax.mail.internet.*;
43
44 import com.micronova.util.*;
45
46 /** Type conversion/checking codecs. */
47
48 public class CodecType extends Codec
49 {
50     /** returns object as Double if possible, null otherwise. */
51     
52     public static final Object JavaDoc isDouble(Object JavaDoc object)
53     {
54         return TypeUtil.isDouble(object);
55     }
56
57     /** returns object as Float if possible, null otherwise. */
58     
59     public static final Object JavaDoc isFloat(Object JavaDoc object)
60     {
61         return TypeUtil.isFloat(object);
62     }
63
64     /** returns object as Long if possible, null otherwise. */
65     
66     public static final Object JavaDoc isLong(Object JavaDoc object)
67     {
68         return TypeUtil.isLong(object);
69     }
70
71     /** returns object as Integer if possible, null otherwise. */
72     
73     public static final Object JavaDoc isInteger(Object JavaDoc object)
74     {
75         return TypeUtil.isInteger(object);
76     }
77
78     /** returns object as Short if possible, null otherwise. */
79     
80     public static Object JavaDoc isShort(Object JavaDoc object)
81     {
82         return TypeUtil.isShort(object);
83     }
84
85     /** returns object as string */
86
87     public static final Object JavaDoc isString(Object JavaDoc object)
88     {
89         return TypeUtil.isString(object);
90     }
91     
92     /** returns object as Byte if possible, null otherwise. */
93
94     public static final Object JavaDoc isByte(Object JavaDoc object)
95     {
96         return TypeUtil.isByte(object);
97     }
98
99     /** returns object as nested map */
100
101     public static final Object JavaDoc isNestedMap(Object JavaDoc object)
102     {
103         return TypeUtil.isNestedMap(object);
104     }
105
106     /** returns object as Boolean if possible, null otherwise. */
107
108     public static final Object JavaDoc isBoolean(Object JavaDoc object)
109     {
110         return TypeUtil.isBoolean(object);
111     }
112
113     /** returns object as Character if possible, null otherwise. */
114
115     public static final Object JavaDoc isCharacter(Object JavaDoc object)
116     {
117         return TypeUtil.isCharacter(object);
118     }
119
120     /** returns object as Calendar or null */
121
122     public static final Object JavaDoc isCalendar(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec, Object JavaDoc timeZoneSpec)
123     {
124         if (object != null)
125         {
126             try
127             {
128                 Locale locale = TypeUtil.isLocale(localeSpec);
129                 String JavaDoc pattern = TypeUtil.isString(patternSpec);
130                 TimeZone timeZone = TypeUtil.isTimeZone(timeZoneSpec);
131             
132                 Date date = TypeUtil.isDate(object, pattern, locale, timeZone);
133
134                 Calendar calendar = Calendar.getInstance(locale);
135             
136                 calendar.setTime(date);
137
138                 object = calendar;
139             }
140             catch (Exception JavaDoc e)
141             {
142                 object = null;
143             }
144         }
145
146         return object;
147     }
148
149     /** returns object as Calendar */
150
151     public static final Object JavaDoc isCalendar(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec)
152     {
153         return isCalendar(object, patternSpec, localeSpec, null);
154     }
155
156     /** returns object as Calendar */
157
158     public static final Object JavaDoc isCalendar(Object JavaDoc object, Object JavaDoc patternSpec)
159     {
160         return isCalendar(object, patternSpec, null);
161     }
162
163     /** returns object as Calendar */
164
165     public static final Object JavaDoc isCalendar(Object JavaDoc object)
166     {
167         return isCalendar(object, null, null);
168     }
169
170     /** returns object as Date if possible according to the format specification, null otherwise */
171
172     public static final Object JavaDoc isDate(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec, Object JavaDoc timeZoneSpec)
173     {
174         if (object != null)
175         {
176             try
177             {
178                 Locale locale = TypeUtil.isLocale(localeSpec);
179                 String JavaDoc pattern = TypeUtil.isString(patternSpec);
180                 TimeZone timeZone = TypeUtil.isTimeZone(timeZoneSpec);
181             
182                 object = TypeUtil.isDate(object, pattern, locale, timeZone);
183             }
184             catch (Exception JavaDoc e)
185             {
186                 object = null;
187             }
188         }
189
190         return object;
191     }
192
193     /** returns object as Date if possible according to the format specification, null otherwise */
194
195     public static final Object JavaDoc isDate(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec)
196     {
197         return isDate(object, patternSpec, localeSpec, null);
198     }
199
200     /** returns object as Date if possible according to the format specification, null otherwise */
201
202     public static final Object JavaDoc isDate(Object JavaDoc object, Object JavaDoc patternSpec)
203     {
204         return isDate(object, patternSpec, null);
205     }
206
207     /** returns object as Date if possible according to the format specification, null otherwise */
208
209     public static final Object JavaDoc isDate(Object JavaDoc object)
210     {
211         return isDate(object, null, null);
212     }
213
214     /** returns object as number if possible, according to the spec */
215
216     public static final Object JavaDoc isNumber(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec)
217     {
218         if (object != null)
219         {
220             try
221             {
222                 Locale locale = TypeUtil.isLocale(localeSpec);
223                 String JavaDoc pattern = TypeUtil.isString(patternSpec);
224             
225                 object = TypeUtil.isNumber(object, pattern, locale);
226             }
227             catch (Exception JavaDoc e)
228             {
229                 object = null;
230             }
231         }
232
233         return object;
234     }
235
236     /** returns object as number if possible */
237
238     public static final Object JavaDoc isNumber(Object JavaDoc object, Object JavaDoc patternSpec)
239     {
240         return isNumber(object, patternSpec, null);
241     }
242
243     /** returns object as number if possible */
244
245     public static final Object JavaDoc isNumber(Object JavaDoc object)
246     {
247         return isNumber(object, null, null);
248     }
249
250     /** converts to SQL date */
251
252     public static final Object JavaDoc isSQLDate(Object JavaDoc object)
253     {
254         if (object instanceof Date)
255         {
256             object = new java.sql.Date JavaDoc(((Date)object).getTime());
257         }
258         else
259         {
260             Long JavaDoc longObject = (Long JavaDoc)isLong(object);
261
262             if (longObject != null)
263             {
264                 object = new java.sql.Date JavaDoc(longObject.longValue());
265             }
266             else
267             {
268                 object = null;
269             }
270         }
271
272         return object;
273     }
274
275     public static final Object JavaDoc isSQLDate(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec)
276     {
277         return isSQLDate(isDate(object, patternSpec, localeSpec));
278     }
279
280     public static final Object JavaDoc isSQLDate(Object JavaDoc object, Object JavaDoc patternSpec)
281     {
282         return isSQLDate(isDate(object, patternSpec));
283     }
284
285     /** converts to SQL time */
286
287     public static final Object JavaDoc isSQLTime(Object JavaDoc object)
288     {
289         if (object instanceof Date)
290         {
291             object = new java.sql.Time JavaDoc(((Date)object).getTime());
292         }
293         else
294         {
295             Long JavaDoc longObject = (Long JavaDoc)isLong(object);
296
297             if (longObject != null)
298             {
299                 object = new java.sql.Time JavaDoc(longObject.longValue());
300             }
301             else
302             {
303                 object = null;
304             }
305         }
306
307         return object;
308     }
309
310     public static final Object JavaDoc isSQLTime(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec)
311     {
312         return isSQLTime(isDate(object, patternSpec, localeSpec));
313     }
314
315     public static final Object JavaDoc isSQLTime(Object JavaDoc object, Object JavaDoc patternSpec)
316     {
317         return isSQLTime(isDate(object, patternSpec));
318     }
319
320     /** converts to SQL timestampe */
321
322     public static final Object JavaDoc isSQLTimestamp(Object JavaDoc object)
323     {
324         if (object instanceof Date)
325         {
326             object = new java.sql.Timestamp JavaDoc(((Date)object).getTime());
327         }
328         else
329         {
330             Long JavaDoc longObject = (Long JavaDoc)isLong(object);
331
332             if (longObject != null)
333             {
334                 object = new java.sql.Timestamp JavaDoc(longObject.longValue());
335             }
336             else
337             {
338                 object = null;
339             }
340         }
341
342         return object;
343     }
344
345     public static final Object JavaDoc isSQLTimestamp(Object JavaDoc object, Object JavaDoc patternSpec, Object JavaDoc localeSpec)
346     {
347         return isSQLTimestamp(isDate(object, patternSpec, localeSpec));
348     }
349
350     public static final Object JavaDoc isSQLTimestamp(Object JavaDoc object, Object JavaDoc patternSpec)
351     {
352         return isSQLTimestamp(isDate(object, patternSpec));
353     }
354
355     /** returns numeric value of a unicode character */
356
357     public static final Object JavaDoc numericValueOf(Object JavaDoc object)
358     {
359         if (object != null)
360         {
361             Character JavaDoc c = TypeUtil.isCharacter(object);
362
363             object = new Long JavaDoc(Character.getNumericValue(c.charValue()));
364         }
365
366         return object;
367     }
368
369     /** converts string to a URI */
370
371     public static final Object JavaDoc isURI(Object JavaDoc object)
372     {
373         return TypeUtil.isURI(object);
374     }
375
376     /** converts string to a URL */
377
378     public static final Object JavaDoc isURL(Object JavaDoc object, Object JavaDoc context)
379     {
380         return TypeUtil.isURL(object, TypeUtil.isURL(context));
381     }
382     /** converts string to a URL */
383
384     public static final Object JavaDoc isURL(Object JavaDoc object)
385     {
386         return TypeUtil.isURL(object);
387     }
388
389     /** converts a string or URI to a File */
390
391     public static final Object JavaDoc isFile(Object JavaDoc object)
392     {
393         return TypeUtil.isFile(object, null);
394     }
395
396     /** converts a string or URI to a File */
397
398     public static final Object JavaDoc isFile(Object JavaDoc object, Object JavaDoc parent)
399     {
400         return TypeUtil.isFile(object, parent);
401     }
402
403     /** converts to a Locale */
404
405     public static final Object JavaDoc isLocale(Object JavaDoc object)
406     {
407         if (object != null)
408         {
409             object = TypeUtil.isLocale(object);
410         }
411
412         return object;
413     }
414
415     /** converts to a TimeZone */
416
417     public static final Object JavaDoc isTimeZone(Object JavaDoc object)
418     {
419         if (object != null)
420         {
421             object = TypeUtil.isTimeZone(object);
422         }
423
424         return object;
425     }
426
427     /** returns unicode block */
428
429     public static final Object JavaDoc unicodeBlockOf(Object JavaDoc object)
430     {
431         if (object != null)
432         {
433             Character JavaDoc c = TypeUtil.isCharacter(object);
434             
435             object = Character.UnicodeBlock.of(c.charValue());
436         }
437
438         return object;
439     }
440
441     /** returns char as number */
442
443     public static final Object JavaDoc charAsNumber(Object JavaDoc object)
444     {
445         if (object != null)
446         {
447             Character JavaDoc c = TypeUtil.isCharacter(object);
448
449             object = new Long JavaDoc((long)c.charValue());
450         }
451
452         return object;
453     }
454
455     /* returns number as char */
456
457     public static final Object JavaDoc numberAsChar(Object JavaDoc object)
458     {
459         if (object != null)
460         {
461             Long JavaDoc l = TypeUtil.isLong(object);
462
463             object = new Character JavaDoc((char)(l.longValue()));
464         }
465
466         return object;
467     }
468
469     /** returns object as Object[] if object is an array, null otherwise */
470
471     public static Object JavaDoc isArray(Object JavaDoc object)
472     {
473         return TypeUtil.isArray(object);
474     }
475
476     /** returns Object as List if possible, null otherwise */
477
478     public static Object JavaDoc isList(Object JavaDoc object)
479     {
480         return TypeUtil.isList(object);
481     }
482
483     /** returns Object as List if possible, null otherwise */
484
485     public static Object JavaDoc isStringArray(Object JavaDoc object)
486     {
487         return TypeUtil.isStringArray(object);
488     }
489
490     /** returns Object as list of Strings */
491
492     public static Object JavaDoc isStringList(Object JavaDoc object, Object JavaDoc separatorSpec, Object JavaDoc escapeSpec)
493     {
494         return TypeUtil.isStringList(object, TypeUtil.isCharacter(separatorSpec).charValue(), TypeUtil.isCharacter(escapeSpec).charValue());
495     }
496
497     public static final Character JavaDoc DEFAULTESCAPE = new Character JavaDoc('\\');
498     public static final Character JavaDoc DEFAULTSEPARATOR = new Character JavaDoc(',');
499
500     public static Object JavaDoc isStringList(Object JavaDoc object, Object JavaDoc separatorSpec)
501     {
502         return isStringList(object, separatorSpec, DEFAULTESCAPE);
503     }
504
505     public static Object JavaDoc isStringList(Object JavaDoc object)
506     {
507         return isStringList(object, DEFAULTSEPARATOR);
508     }
509
510     /** returns ifObject if the object is null, otherwise elseObject */
511
512     public static Object JavaDoc ifNull(Object JavaDoc object, Object JavaDoc ifObject, Object JavaDoc elseObject)
513     {
514         return ((object == null) ? ifObject : elseObject);
515     }
516
517     /** returns Boolean.TRUE if object is null */
518
519     public static Object JavaDoc isNull(Object JavaDoc object)
520     {
521         return ifNull(object, Boolean.TRUE, null);
522     }
523
524     /** returns ifObject if object is null, otherwise null */
525
526     public static Object JavaDoc ifNull(Object JavaDoc object, Object JavaDoc ifObject)
527     {
528         return ifNull(object, ifObject, object);
529     }
530
531     /** returns Boolean TRUE if object is not null */
532
533     public static Object JavaDoc isNotNull(Object JavaDoc object)
534     {
535         return ifNull(object, null, Boolean.TRUE);
536     }
537
538     /** returns ifObject if object is not null, otherwise null */
539
540     public static Object JavaDoc ifNotNull(Object JavaDoc object, Object JavaDoc ifObject)
541     {
542         return ifNull(object, object, ifObject);
543     }
544
545     /** convert object to given class if possible, null otherwise */
546
547     public static Object JavaDoc isClass(Object JavaDoc object, Object JavaDoc classSpec)
548     {
549         if (object != null)
550         {
551             try
552             {
553                 Class JavaDoc classObject = null;
554
555                 if (classSpec instanceof Class JavaDoc)
556                 {
557                     classObject = (Class JavaDoc)classSpec;
558                 }
559                 else
560                 {
561                     classObject = TypeUtil.forName(classSpec.toString(), null);
562                 }
563
564                 object = TypeUtil.isClass(object, classObject);
565             }
566             catch (Exception JavaDoc e)
567             {
568                 object = null;
569             }
570         }
571         
572         return object;
573     }
574
575     /** obtains class object if possible */
576
577     public static Object JavaDoc forName(Object JavaDoc object)
578     {
579         if (object != null)
580         {
581             try
582             {
583                 object = TypeUtil.forName(object.toString(), null);
584             }
585             catch (Exception JavaDoc e)
586             {
587                 object = null;
588             }
589         }
590         
591         return object;
592     }
593
594     /** executes clone() if implemented */
595
596     public static final Object JavaDoc clone(Object JavaDoc object) throws Exception JavaDoc
597     {
598         if (object != null)
599         {
600             object = TypeUtil.invoke(object, null, "clone", null, null);
601         }
602
603         return object;
604     }
605
606     /** returns length of object if possible, null otherwise */
607
608     public static final Object JavaDoc length(Object JavaDoc object)
609     {
610         if (object != null)
611         {
612             int length = TypeUtil.length(object);
613
614             if (length >= 0)
615             {
616                 return new Integer JavaDoc(length);
617             }
618         }
619
620         return null;
621     }
622
623     /** tries to 'clear' the object is a Collection */
624
625     public static final Object JavaDoc clear(Object JavaDoc object)
626     {
627         if (object instanceof Collection)
628         {
629             ((Collection)object).clear();
630         }
631
632         return object;
633     }
634
635     /** reverses list */
636
637     public static final Object JavaDoc reverse(Object JavaDoc object)
638     {
639         List list = TypeUtil.isList(object);
640
641         if (list != null)
642         {
643             Collections.reverse(list);
644             object = list;
645         }
646
647         return object;
648     }
649
650     /** rotates list */
651
652     public static final Object JavaDoc rotate(Object JavaDoc object, Object JavaDoc distance)
653     {
654         List list = TypeUtil.isList(object);
655
656         if (list != null)
657         {
658             Integer JavaDoc d = TypeUtil.isInteger(distance);
659
660             Collections.rotate(list, d.intValue());
661             object = list;
662         }
663
664         return object;
665     }
666
667     /** suffles list */
668
669     public static final Object JavaDoc shuffle(Object JavaDoc object)
670     {
671         List list = TypeUtil.isList(object);
672
673         if (list != null)
674         {
675             Collections.shuffle(list);
676             object = list;
677         }
678
679         return object;
680     }
681     
682     /** tries to add 'added' to 'object'. 'object' is converted to a Collection if possible. */
683
684     public static final Object JavaDoc add(Object JavaDoc object, Object JavaDoc added)
685     {
686         Collection collection = TypeUtil.isCollection(object);
687
688         if (collection != null)
689         {
690             collection.add(added);
691             object = collection;
692         }
693
694         return object;
695     }
696
697     /** tries to add all 'added' Collection to 'object'. 'object' and 'added' are converted to Collection if possible. */
698
699     public static final Object JavaDoc addAll(Object JavaDoc object, Object JavaDoc added)
700     {
701         Collection collection = TypeUtil.isCollection(object);
702
703         if (collection != null)
704         {
705             Collection addedCollection = TypeUtil.isCollection(added);
706
707             if (addedCollection != null)
708             {
709                 collection.addAll(addedCollection);
710                 object = collection;
711             }
712         }
713
714         return object;
715     }
716
717     /** tries to remove 'removed' from 'object'. 'object' is converted to a Collection if possible. */
718
719     public static final Object JavaDoc remove(Object JavaDoc object, Object JavaDoc added)
720     {
721         Collection collection = TypeUtil.isCollection(object);
722
723         if (collection != null)
724         {
725             collection.remove(added);
726             object = collection;
727         }
728
729         return object;
730     }
731
732     /** tries to remove all 'removed' Collection from 'object'. 'object' and 'removed' are converted to Collection if possible. */
733
734     public static final Object JavaDoc removeAll(Object JavaDoc object, Object JavaDoc removed)
735     {
736         Collection collection = TypeUtil.isCollection(object);
737
738         if (collection != null)
739         {
740             Collection removedCollection = TypeUtil.isCollection(removed);
741
742             if (removedCollection != null)
743             {
744                 collection.removeAll(removedCollection);
745                 object = collection;
746             }
747         }
748
749         return object;
750     }
751
752     /** tries to retail all 'retained' Collection from 'object'. 'object' and 'removed' are converted to Collection if possible. */
753
754     public static final Object JavaDoc retainAll(Object JavaDoc object, Object JavaDoc removed)
755     {
756         Collection collection = TypeUtil.isCollection(object);
757
758         if (collection != null)
759         {
760             Collection removedCollection = TypeUtil.isCollection(removed);
761
762             if (removedCollection != null)
763             {
764                 collection.retainAll(removedCollection);
765                 object = collection;
766             }
767         }
768
769         return object;
770     }
771
772     /** returns 'ifObject' is 'object' contains 'contained', otherwise 'elseObject'. */
773
774     public static final Object JavaDoc ifContains(Object JavaDoc object, Object JavaDoc contained, Object JavaDoc ifObject, Object JavaDoc elseObject)
775     {
776         Collection collection = TypeUtil.isCollection(object);
777
778         boolean isContained = false;
779
780         if (collection != null)
781         {
782             isContained = collection.contains(contained);
783         }
784
785         if (isContained)
786         {
787             return ifObject;
788         }
789         else
790         {
791             return elseObject;
792         }
793     }
794
795     public static final Object JavaDoc ifContains(Object JavaDoc object, Object JavaDoc contained, Object JavaDoc ifObject)
796     {
797         return ifContains(object, contained, ifObject, null);
798     }
799
800     public static final Object JavaDoc ifContains(Object JavaDoc object, Object JavaDoc contained)
801     {
802         return ifContains(object, contained, object, null);
803     }
804
805     /** returns 'ifObject' is 'object' contains all of 'contained' Collection, otherwise 'elseObject'. */
806
807     public static final Object JavaDoc ifContainsAll(Object JavaDoc object, Object JavaDoc contained, Object JavaDoc ifObject, Object JavaDoc elseObject)
808     {
809         Collection collection = TypeUtil.isCollection(object);
810
811         boolean isContained = false;
812
813         if (collection != null)
814         {
815             Collection containedCollection = TypeUtil.isCollection(contained);
816
817             if (containedCollection != null)
818             {
819                 isContained = collection.containsAll(containedCollection);
820             }
821         }
822
823         if (isContained)
824         {
825             return ifObject;
826         }
827         else
828         {
829             return elseObject;
830         }
831     }
832
833     public static final Object JavaDoc ifContainsAll(Object JavaDoc object, Object JavaDoc contained, Object JavaDoc ifObject)
834     {
835         return ifContainsAll(object, contained, ifObject, null);
836     }
837
838     public static final Object JavaDoc ifContainsAll(Object JavaDoc object, Object JavaDoc contained)
839     {
840         return ifContainsAll(object, contained, object, null);
841     }
842
843     /** returns ifObject if the object is equal to target, otherwise elseObject */
844
845     public static Object JavaDoc ifEqual(Object JavaDoc object, Object JavaDoc target, Object JavaDoc ifObject, Object JavaDoc elseObject)
846     {
847         boolean isEqual = false;
848
849         if (object == null)
850         {
851             if (target == null)
852             {
853                 isEqual = true;
854             }
855         }
856         else
857         {
858             isEqual = object.equals(target);
859         }
860
861         if (isEqual)
862         {
863             return ifObject;
864         }
865         else
866         {
867             return elseObject;
868         }
869     }
870
871     /** returns TRUE if object is equal to target, otherwise null */
872
873     public static Object JavaDoc isEqual(Object JavaDoc object, Object JavaDoc target)
874     {
875         return ifEqual(object, target, Boolean.TRUE, null);
876     }
877
878     /** returns TRUE if object is not equal to target, otherwise null */
879
880     public static Object JavaDoc isNotEqual(Object JavaDoc object, Object JavaDoc target)
881     {
882         return ifEqual(object, target, null, Boolean.TRUE);
883     }
884
885     /** returns ifObject if object is equal to target, otherwise object */
886
887     public static Object JavaDoc ifEqual(Object JavaDoc object, Object JavaDoc target, Object JavaDoc ifObject)
888     {
889         return ifEqual(object, target, ifObject, object);
890     }
891
892     /** returns ifObject if object is not equal to target, otherwise object */
893
894     public static Object JavaDoc ifNotEqual(Object JavaDoc object, Object JavaDoc target, Object JavaDoc ifObject)
895     {
896         return ifEqual(object, target, object, ifObject);
897     }
898
899     /** returns 'ifObject' if object is empty, else 'elseObject' */
900
901     public static final Object JavaDoc ifEmpty(Object JavaDoc object, Object JavaDoc ifObject, Object JavaDoc elseObject)
902     {
903         if (TypeUtil.isEmpty(object))
904         {
905             return ifObject;
906         }
907         else
908         {
909             return elseObject;
910         }
911     }
912
913     /** returns Boolean.TRUE if object is empty, otherwise null */
914
915     public static final Object JavaDoc isEmpty(Object JavaDoc object)
916     {
917         return ifEmpty(object, Boolean.TRUE, null);
918     }
919
920     /** returns Boolean.TRUE if object is not empty, otherwise null */
921
922     public static final Object JavaDoc isNotEmpty(Object JavaDoc object)
923     {
924         return ifEmpty(object, null, Boolean.TRUE);
925     }
926
927     /** returns ifObject if object is empty, otherwise object */
928
929     public static final Object JavaDoc ifEmpty(Object JavaDoc object, Object JavaDoc ifObject)
930     {
931         return ifEmpty(object, ifObject, object);
932     }
933
934     /** returns ifObject if object is not empty, otherwise object */
935
936     public static final Object JavaDoc ifNotEmpty(Object JavaDoc object, Object JavaDoc ifObject)
937     {
938         return ifEmpty(object, object, ifObject);
939     }
940
941     /** tries to convert to (valid) internet address */
942
943     public static final Object JavaDoc isInternetAddress(Object JavaDoc object)
944     {
945         InternetAddress address = null;
946
947         try
948         {
949             if (object instanceof InternetAddress)
950             {
951                 address = (InternetAddress)object;
952             }
953             else
954             {
955                 address = new InternetAddress(object.toString());
956             }
957
958             address.validate();
959         }
960         catch (Exception JavaDoc e)
961         {
962             address = null;
963         }
964
965         return address;
966     }
967
968     public static final Object JavaDoc indexOfSubList(Object JavaDoc source, Object JavaDoc target) throws Exception JavaDoc
969     {
970         List sourceList = TypeUtil.isList(source);
971         List targetList = TypeUtil.isList(target);
972
973         Integer JavaDoc returnValue = null;
974
975         if ((sourceList != null) && (targetList != null))
976         {
977             returnValue = new Integer JavaDoc(Collections.indexOfSubList(sourceList, targetList));
978         }
979
980         return returnValue;
981     }
982
983     public static final Object JavaDoc lastIndexOfSubList(Object JavaDoc source, Object JavaDoc target) throws Exception JavaDoc
984     {
985         List sourceList = TypeUtil.isList(source);
986         List targetList = TypeUtil.isList(target);
987
988         Integer JavaDoc returnValue = null;
989
990         if ((sourceList != null) && (targetList != null))
991         {
992             returnValue = new Integer JavaDoc(Collections.lastIndexOfSubList(sourceList, targetList));
993         }
994
995         return returnValue;
996     }
997
998     public static final Object JavaDoc subList(Object JavaDoc object, Object JavaDoc startObject, Object JavaDoc endObject) throws Exception JavaDoc
999     {
1000        Object JavaDoc returnValue = null;
1001
1002        List objectList = TypeUtil.isList(object);
1003
1004        if (objectList != null)
1005        {
1006            int start = 0;
1007            int end = 0;
1008
1009            Integer JavaDoc startInteger = TypeUtil.isInteger(startObject);
1010            Integer JavaDoc endInteger = TypeUtil.isInteger(endObject);
1011
1012            if (startInteger != null)
1013            {
1014                start = startInteger.intValue();
1015            }
1016
1017            if (endInteger != null)
1018            {
1019                end = endInteger.intValue();
1020            }
1021
1022            returnValue = TypeUtil.subList(objectList, start, end);
1023        }
1024
1025        return returnValue;
1026    }
1027
1028    public static final Object JavaDoc subList(Object JavaDoc object, Object JavaDoc startObject) throws Exception JavaDoc
1029    {
1030        return subList(object, startObject, null);
1031    }
1032
1033    /** returns synchronized version of given object as a Collection */
1034
1035    public static final Object JavaDoc makeSynchronized(Object JavaDoc object) throws Exception JavaDoc
1036    {
1037        if (object != null)
1038        {
1039            if (object instanceof SortedSet)
1040            {
1041                object = Collections.synchronizedSortedSet((SortedSet)object);
1042            }
1043            else if (object instanceof SortedMap)
1044            {
1045                object = Collections.synchronizedSortedMap((SortedMap)object);
1046            }
1047            else if (object instanceof Set)
1048            {
1049                object = Collections.synchronizedSet((Set)object);
1050            }
1051            else if (object instanceof Map)
1052            {
1053                object = Collections.synchronizedMap((Map)object);
1054            }
1055            else if (object instanceof List)
1056            {
1057                object = Collections.synchronizedList((List)object);
1058            }
1059            else
1060            {
1061                object = Collections.synchronizedCollection((Collection)object);
1062            }
1063        }
1064
1065        return object;
1066    }
1067
1068    /** returns unmodifiable version of given object as a Collection */
1069
1070    public static final Object JavaDoc makeUnmodifiable(Object JavaDoc object) throws Exception JavaDoc
1071    {
1072        if (object != null)
1073        {
1074            if (object instanceof SortedSet)
1075            {
1076                object = Collections.unmodifiableSortedSet((SortedSet)object);
1077            }
1078            else if (object instanceof SortedMap)
1079            {
1080                object = Collections.unmodifiableSortedMap((SortedMap)object);
1081            }
1082            else if (object instanceof Set)
1083            {
1084                object = Collections.unmodifiableSet((Set)object);
1085            }
1086            else if (object instanceof Map)
1087            {
1088                object = Collections.unmodifiableMap((Map)object);
1089            }
1090            else if (object instanceof List)
1091            {
1092                object = Collections.unmodifiableList((List)object);
1093            }
1094            else
1095            {
1096                object = Collections.unmodifiableCollection((Collection)object);
1097            }
1098        }
1099
1100        return object;
1101    }
1102
1103}
1104
Popular Tags