c47ee5352716215431decf4b543d55c6301dcae6
[jalview.git] / src / com / stevesoft / pat / Start.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 /** The '^' or the '\A' Pattern, matches the start of a string. */\r
13 class Start\r
14     extends Pattern\r
15 {\r
16   boolean retIsStart;\r
17   Start(boolean b)\r
18   {\r
19     retIsStart = b;\r
20   }\r
21 \r
22   public int matchInternal(int pos, Pthings pt)\r
23   {\r
24     if (retIsStart\r
25         && pt.mFlag\r
26         && pos > 0 && pt.src.charAt(pos - 1) == '\n')\r
27     {\r
28       return nextMatch(pos, pt);\r
29     }\r
30     if (pos == 0)\r
31     {\r
32       return nextMatch(pos, pt);\r
33     }\r
34     return -1;\r
35   }\r
36 \r
37   public String toString()\r
38   {\r
39     if (retIsStart)\r
40     {\r
41       return "^" + nextString();\r
42     }\r
43     else\r
44     {\r
45       return "\\A" + nextString();\r
46     }\r
47   }\r
48 \r
49   public patInt maxChars()\r
50   {\r
51     return new patInt(0);\r
52   }\r
53 \r
54   Pattern clone1(Hashtable h)\r
55   {\r
56     return new Start(retIsStart);\r
57   }\r
58 };\r