X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fcom%2Fstevesoft%2Fpat%2FoneChar.java;h=b13c64db1a1d7e87969f8ec0a9a5f945738145c3;hb=6907f4fb0b389eb4110cdc6505e08ffc6f614780;hp=f9c8498d739b7fae2c08fbd16c96c331d7313af0;hpb=c40cf903f740a72ab63dd1abc10fa33450ce660d;p=jalview.git diff --git a/src/com/stevesoft/pat/oneChar.java b/src/com/stevesoft/pat/oneChar.java index f9c8498..b13c64d 100755 --- a/src/com/stevesoft/pat/oneChar.java +++ b/src/com/stevesoft/pat/oneChar.java @@ -1,48 +1,76 @@ -// -// This software is now distributed according to -// the Lesser Gnu Public License. Please see -// http://www.gnu.org/copyleft/lesser.txt for -// the details. -// -- Happy Computing! -// -package com.stevesoft.pat; -import java.util.Hashtable; - -/** This class matches a single character. */ -class oneChar extends Pattern { - char c,altc,altc2; - int mask; - public oneChar(char ci) { - c = ci; - char cu,cl,ct; - cu = CaseMgr.toUpperCase(c); - cl = CaseMgr.toLowerCase(c); - ct = CaseMgr.toTitleCase(c); - if(c == cu) { - altc = cl; - altc2 = ct; - } else if(c == cl) { - altc = cu; - altc2 = ct; - } else { - altc = cl; - altc2 = cu; - } - mask = c & altc & altc2; - } - public int matchInternal(int pos,Pthings pt) { - char p; - int ret=-1; - if (pos < pt.src.length() && !Masked(pos,pt) - && ((p=pt.src.charAt(pos))==c || - (pt.ignoreCase&& (p==altc||p==altc2) ) )) - ret = nextMatch(pos+1,pt); - return ret; - } - public String toString() { - return protect(""+c,PROTECT_THESE,ESC)+nextString(); - } - public patInt minChars() { return new patInt(1); } - public patInt maxChars() { return new patInt(1); } - Pattern clone1(Hashtable h) { return new oneChar(c); } -}; +// +// This software is now distributed according to +// the Lesser Gnu Public License. Please see +// http://www.gnu.org/copyleft/lesser.txt for +// the details. +// -- Happy Computing! +// +package com.stevesoft.pat; + +import java.util.Hashtable; + +/** This class matches a single character. */ +class oneChar extends Pattern +{ + char c, altc, altc2; + + int mask; + + public oneChar(char ci) + { + c = ci; + char cu, cl, ct; + cu = CaseMgr.toUpperCase(c); + cl = CaseMgr.toLowerCase(c); + ct = CaseMgr.toTitleCase(c); + if (c == cu) + { + altc = cl; + altc2 = ct; + } + else if (c == cl) + { + altc = cu; + altc2 = ct; + } + else + { + altc = cl; + altc2 = cu; + } + mask = c & altc & altc2; + } + + public int matchInternal(int pos, Pthings pt) + { + char p; + int ret = -1; + if (pos < pt.src.length() + && !Masked(pos, pt) + && ((p = pt.src.charAt(pos)) == c || (pt.ignoreCase && (p == altc || p == altc2)))) + { + ret = nextMatch(pos + 1, pt); + } + return ret; + } + + public String toString() + { + return protect("" + c, PROTECT_THESE, ESC) + nextString(); + } + + public patInt minChars() + { + return new patInt(1); + } + + public patInt maxChars() + { + return new patInt(1); + } + + Pattern clone1(Hashtable h) + { + return new oneChar(c); + } +};