KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > xml > StringPredicates


1 package jfun.yan.xml;
2
3 import java.util.Set JavaDoc;
4
5 import jfun.util.StringUtils;
6
7 class StringPredicates{
8   private static final StringPredicate one = new StringPredicate(){
9     public boolean isString(String JavaDoc s){return true;}
10     public String JavaDoc toString(){return "true";}
11   };
12   private static final StringPredicate zero = new StringPredicate(){
13     public boolean isString(String JavaDoc s){return false;}
14     public String JavaDoc toString(){return "false";}
15   };
16   public static StringPredicate always(){
17     return one;
18   }
19   public static StringPredicate never(){
20     return zero;
21   }
22   public static StringPredicate startsWith(final String JavaDoc prefix){
23     return new StringPredicate(){
24       public boolean isString(String JavaDoc s){
25         return s.startsWith(prefix);
26       }
27       public String JavaDoc toString(){return prefix+"*";}
28     };
29   }
30   public static StringPredicate equals(final String JavaDoc target){
31     return new StringPredicate(){
32       public boolean isString(String JavaDoc s){
33         return target.equals(s);
34       }
35       public String JavaDoc toString(){return target;}
36     };
37   }
38   public static StringPredicate in(final Set JavaDoc set){
39     return new StringPredicate(){
40       public boolean isString(String JavaDoc s){
41         return set.contains(s);
42       }
43       public String JavaDoc toString(){return set.toString();}
44     };
45   }
46   public static StringPredicate and(final StringPredicate[] preds){
47     return new StringPredicate(){
48       public boolean isString(String JavaDoc s){
49         for(int i=0; i<preds.length; i++){
50           if(!preds[i].isString(s))
51             return false;
52         }
53         return true;
54       }
55       public String JavaDoc toString(){
56         return StringUtils.listArray("(","&&",")",preds);
57       }
58     };
59   }
60   public static StringPredicate or(final StringPredicate[] preds){
61     return new StringPredicate(){
62       public boolean isString(String JavaDoc s){
63         for(int i=0; i<preds.length; i++){
64           if(preds[i].isString(s))
65             return true;
66         }
67         return false;
68       }
69       public String JavaDoc toString(){
70         return StringUtils.listArray("(","||",")",preds);
71       }
72     };
73   }
74   public static StringPredicate not(final StringPredicate pred){
75     return new StringPredicate(){
76       public boolean isString(String JavaDoc s){
77         return !pred.isString(s);
78       }
79       public String JavaDoc toString(){
80         return "!"+pred;
81       }
82     };
83   }
84 }
85
Popular Tags