f2b03cae4b007564ab36b1ceab0d2fcf2df579cb
[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 extends Skip {\r
16     int c1,mask1;\r
17     public Skip2(String s,boolean ign,int offset) {\r
18         super(s,ign,offset);\r
19         c1 = s.charAt(1);\r
20         m1 = 2==s.length();\r
21         if(ign) {\r
22             mask1=mkmask(c1);\r
23         } else\r
24             mask1 = 0;\r
25     }\r
26     public int find(StringLike s,int start,int end) {\r
27         if(start > end) return -1;\r
28         start += offset;\r
29         int vend = min(s.length()-2,end+offset);\r
30         for(int i=start;i<=vend;i++)\r
31             if(0 == (s.charAt(i)&mask) && 0 == (s.charAt(i+1)&mask1)) {\r
32                 //if(m1||s.regionMatches(ign,i,src,0,src.length()) )\r
33                 if(m1||CaseMgr.regionMatches(s,ign,i,src,0,src.length()) )\r
34                     return i-offset;\r
35             }\r
36         return -1;\r
37     }\r
38 }\r