JAL-1807 still testing
[jalviewjs.git] / unused / com / stevesoft / pat / oneChar.java
1 //\r
2 // This software is now distributed according to\r
3 // the Lesser Gnu Public License.  Please see\r
4 // http://www.gnu.org/copyleft/lesser.txt for\r
5 // the details.\r
6 //    -- Happy Computing!\r
7 //\r
8 package com.stevesoft.pat;\r
9 \r
10 import java.util.*;\r
11 \r
12 /** This class matches a single character. */\r
13 class oneChar extends Pattern\r
14 {\r
15   char c, altc, altc2;\r
16 \r
17   int mask;\r
18 \r
19   public oneChar(char ci)\r
20   {\r
21     c = ci;\r
22     char cu, cl, ct;\r
23     cu = CaseMgr.toUpperCase(c);\r
24     cl = CaseMgr.toLowerCase(c);\r
25     ct = CaseMgr.toTitleCase(c);\r
26     if (c == cu)\r
27     {\r
28       altc = cl;\r
29       altc2 = ct;\r
30     }\r
31     else if (c == cl)\r
32     {\r
33       altc = cu;\r
34       altc2 = ct;\r
35     }\r
36     else\r
37     {\r
38       altc = cl;\r
39       altc2 = cu;\r
40     }\r
41     mask = c & altc & altc2;\r
42   }\r
43 \r
44   public int matchInternal(int pos, Pthings pt)\r
45   {\r
46     char p;\r
47     int ret = -1;\r
48     if (pos < pt.src.length()\r
49             && !Masked(pos, pt)\r
50             && ((p = pt.src.charAt(pos)) == c || (pt.ignoreCase && (p == altc || p == altc2))))\r
51     {\r
52       ret = nextMatch(pos + 1, pt);\r
53     }\r
54     return ret;\r
55   }\r
56 \r
57   public String toString()\r
58   {\r
59     return protect("" + c, PROTECT_THESE, ESC) + nextString();\r
60   }\r
61 \r
62   public patInt minChars()\r
63   {\r
64     return new patInt(1);\r
65   }\r
66 \r
67   public patInt maxChars()\r
68   {\r
69     return new patInt(1);\r
70   }\r
71 \r
72   Pattern clone1(Hashtable h)\r
73   {\r
74     return new oneChar(c);\r
75   }\r
76 };\r