JAL-1807 still testing
[jalviewjs.git] / unused / com / stevesoft / pat / Skip2.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 /**\r
11  * This is the same as Skip, except it needs a minimum of two characters in the\r
12  * initializing String.\r
13  * \r
14  * @see com.stevesoft.pat.Skip\r
15  * @see com.stevesoft.pat.SkipBMH\r
16  */\r
17 public class Skip2 extends Skip\r
18 {\r
19   int c1, mask1;\r
20 \r
21   public Skip2(String s, boolean ign, int offset)\r
22   {\r
23     super(s, ign, offset);\r
24     c1 = s.charAt(1);\r
25     m1 = 2 == s.length();\r
26     if (ign)\r
27     {\r
28       mask1 = mkmask(c1);\r
29     }\r
30     else\r
31     {\r
32       mask1 = 0;\r
33     }\r
34   }\r
35 \r
36   public int find(StringLike s, int start, int end)\r
37   {\r
38     if (start > end)\r
39     {\r
40       return -1;\r
41     }\r
42     start += offset;\r
43     int vend = min(s.length() - 2, end + offset);\r
44     for (int i = start; i <= vend; i++)\r
45     {\r
46       if (0 == (s.charAt(i) & mask) && 0 == (s.charAt(i + 1) & mask1))\r
47       {\r
48         // if(m1||s.regionMatches(ign,i,src,0,src.length()) )\r
49         if (m1 || CaseMgr.regionMatches(s, ign, i, src, 0, src.length()))\r
50         {\r
51           return i - offset;\r
52         }\r
53       }\r
54     }\r
55     return -1;\r
56   }\r
57 }\r