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