Formatting
[jalview.git] / src / com / stevesoft / pat / Transformer.java
index f65afb4..843fbfa 100755 (executable)
@@ -7,21 +7,35 @@
 //\r
 package com.stevesoft.pat;\r
 \r
-import java.util.Vector;\r
-import com.stevesoft.pat.wrap.StringWrap;\r
+import com.stevesoft.pat.wrap.*;\r
 \r
 /** Replacement rule used by the Transformer.\r
     @see com.stevesoft.pat.Transformer\r
-    */\r
-class TransRepRule extends ReplaceRule {\r
-    Transformer t;\r
-    TransRepRule(Transformer t) { this.t = t; }\r
-    public String toString1() { return ""; }\r
-    public Object clone1() { return new TransRepRule(t); }\r
-    public void apply(StringBufferLike sb,RegRes rr) {\r
-        // get the ReplaceRule of the Regex that matched.\r
-        next = t.tp.ra[t.tp.pn].getReplaceRule();\r
-    }\r
+ */\r
+class TransRepRule\r
+    extends ReplaceRule\r
+{\r
+  Transformer t;\r
+  TransRepRule(Transformer t)\r
+  {\r
+    this.t = t;\r
+  }\r
+\r
+  public String toString1()\r
+  {\r
+    return "";\r
+  }\r
+\r
+  public Object clone1()\r
+  {\r
+    return new TransRepRule(t);\r
+  }\r
+\r
+  public void apply(StringBufferLike sb, RegRes rr)\r
+  {\r
+    // get the ReplaceRule of the Regex that matched.\r
+    next = t.tp.ra[t.tp.pn].getReplaceRule();\r
+  }\r
 }\r
 \r
 /** Sometimes you want to replace a whole bunch of things\r
@@ -43,113 +57,163 @@ class TransRepRule extends ReplaceRule {
   <p>\r
   So far, at least, this class does not have the capability of\r
   turning into a giant robot :-)\r
-  */\r
-public class Transformer {\r
-    TransPat tp;\r
-    Regex rp = new Regex();\r
-    boolean auto_optimize;\r
-\r
-    /** Get a replacer to that works with the current Regex.\r
-     @see com.stevesoft.pat.Replacer\r
-     */\r
-    public Replacer getReplacer() { return rp.getReplacer(); }\r
-\r
-    /** Instantiate a new Transformer object. */\r
-    public Transformer(boolean auto) {\r
-        auto_optimize = auto;\r
-        tp = new TransPat();\r
-        rp.setReplaceRule(new TransRepRule(this));\r
-        rp.thePattern = tp;\r
-    }\r
+ */\r
+public class Transformer\r
+{\r
+  TransPat tp;\r
+  Regex rp = new Regex();\r
+  boolean auto_optimize;\r
 \r
-    /** Add a new Regex to the set of Regex's. */\r
-    public void add(Regex r) {\r
-        if(auto_optimize) r.optimize();\r
-        tp.ra[tp.ra_len++] = r;\r
-        if(tp.ra.length==tp.ra_len) {\r
-            Regex[] ra2 = new Regex[tp.ra_len+10];\r
-            for(int i=0;i<tp.ra_len;i++)\r
-                ra2[i] = tp.ra[i];\r
-            tp.ra = ra2;\r
-        }\r
-        rp.numSubs_ = r.numSubs_ > rp.numSubs_ ? r.numSubs_ : rp.numSubs_;\r
-    }\r
+  /** Get a replacer to that works with the current Regex.\r
+   @see com.stevesoft.pat.Replacer\r
+   */\r
+  public Replacer getReplacer()\r
+  {\r
+    return rp.getReplacer();\r
+  }\r
 \r
-    /** Returns the number of Regex's in this Transformer. */\r
-    public int patterns() { return tp.ra_len; }\r
+  /** Instantiate a new Transformer object. */\r
+  public Transformer(boolean auto)\r
+  {\r
+    auto_optimize = auto;\r
+    tp = new TransPat();\r
+    rp.setReplaceRule(new TransRepRule(this));\r
+    rp.thePattern = tp;\r
+  }\r
 \r
-    /** Get the Regex at position i in this Transformer. */\r
-    public Regex getRegexAt(int i) {\r
-        if(i >= tp.ra_len)\r
-            throw new ArrayIndexOutOfBoundsException("i="+i+">="+patterns());\r
-        if(i < 0)\r
-            throw new ArrayIndexOutOfBoundsException("i="+i+"< 0");\r
-        return tp.ra[i];\r
-    }\r
-    /** Set the Regex at position i in this Transformer. */\r
-    public void setRegexAt(Regex rx,int i) {\r
-        if(i >= tp.ra_len)\r
-            throw new ArrayIndexOutOfBoundsException("i="+i+">="+patterns());\r
-        if(i < 0)\r
-            throw new ArrayIndexOutOfBoundsException("i="+i+"< 0");\r
-        tp.ra[i] = rx;\r
-    }\r
+  /** Add a new Regex to the set of Regex's. */\r
+  public void add(Regex r)\r
+  {\r
+    if (auto_optimize)\r
+    {\r
+      r.optimize();\r
+    }\r
+    tp.ra[tp.ra_len++] = r;\r
+    if (tp.ra.length == tp.ra_len)\r
+    {\r
+      Regex[] ra2 = new Regex[tp.ra_len + 10];\r
+      for (int i = 0; i < tp.ra_len; i++)\r
+      {\r
+        ra2[i] = tp.ra[i];\r
+      }\r
+      tp.ra = ra2;\r
+    }\r
+    rp.numSubs_ = r.numSubs_ > rp.numSubs_ ? r.numSubs_ : rp.numSubs_;\r
+  }\r
 \r
-    /** Add a new Regex by calling Regex.perlCode\r
-        @see com.stevesoft.pat.Regex#perlCode(java.lang.String)\r
-        */\r
-    public void add(String rs) {\r
-        Regex r = Regex.perlCode(rs);\r
-        if(r == null) throw new NullPointerException("bad pattern to Regex.perlCode: "+rs);\r
-        add(r);\r
-    }\r
-    /** Add an array of Strings (which will be converted to\r
-        Regex's via the Regex.perlCode method.\r
-        @see com.stevesoft.pat.Regex#perlCode(java.lang.String)\r
-        */\r
-    public void add(String[] array) {\r
-        for(int i=0;i<array.length;i++)\r
-            add(array[i]);\r
-    }\r
-    /** Replace all matches in the current String. */\r
-    public String replaceAll(String s) {\r
-        return dorep(s,0,s.length());\r
-    }\r
-    public StringLike replaceAll(StringLike s) {\r
-        return dorep(s,0,s.length());\r
-    }\r
-    /** Replace all matching patterns beginning at position start. */\r
-    public String replaceAllFrom(String s,int start) {\r
-        return dorep(s,start,s.length());\r
-    }\r
-    /** Replace all matching patterns beginning between the positions\r
-        start and end inclusive. */\r
-    public String replaceAllRegion(String s,int start,int end) {\r
-        return dorep(s,start,end);\r
-    }\r
+  /** Returns the number of Regex's in this Transformer. */\r
+  public int patterns()\r
+  {\r
+    return tp.ra_len;\r
+  }\r
 \r
-    Replacer repr = new Replacer();\r
-    final StringLike dorep(StringLike s,int start,int end) {\r
-        StringLike tfmd = repr.replaceAllRegion(s,rp,start,end);\r
-        tp.lastMatchedTo = repr.lastMatchedTo;\r
-        return tfmd;\r
-    }\r
-    final String dorep(String s,int start,int end) {\r
-        return dorep(new StringWrap(s),start,end).toString();\r
-    }\r
+  /** Get the Regex at position i in this Transformer. */\r
+  public Regex getRegexAt(int i)\r
+  {\r
+    if (i >= tp.ra_len)\r
+    {\r
+      throw new ArrayIndexOutOfBoundsException("i=" + i + ">=" + patterns());\r
+    }\r
+    if (i < 0)\r
+    {\r
+      throw new ArrayIndexOutOfBoundsException("i=" + i + "< 0");\r
+    }\r
+    return tp.ra[i];\r
+  }\r
 \r
-    /** Replace the first matching pattern in String s. */\r
-    public String replaceFirst(String s) {\r
-        return dorep(s,0,s.length());\r
-    }\r
-    /** Replace the first matching pattern after position start in\r
-        String s. */\r
-    public String replaceFirstFrom(String s,int start) {\r
-        return dorep(s,start,s.length());\r
-    }\r
-    /** Replace the first matching pattern that begins between\r
-        start and end inclusive. */\r
-    public String replaceFirstRegion(String s,int start,int end) {\r
-        return dorep(s,start,end);\r
-    }\r
+  /** Set the Regex at position i in this Transformer. */\r
+  public void setRegexAt(Regex rx, int i)\r
+  {\r
+    if (i >= tp.ra_len)\r
+    {\r
+      throw new ArrayIndexOutOfBoundsException("i=" + i + ">=" + patterns());\r
+    }\r
+    if (i < 0)\r
+    {\r
+      throw new ArrayIndexOutOfBoundsException("i=" + i + "< 0");\r
+    }\r
+    tp.ra[i] = rx;\r
+  }\r
+\r
+  /** Add a new Regex by calling Regex.perlCode\r
+      @see com.stevesoft.pat.Regex#perlCode(java.lang.String)\r
+   */\r
+  public void add(String rs)\r
+  {\r
+    Regex r = Regex.perlCode(rs);\r
+    if (r == null)\r
+    {\r
+      throw new NullPointerException("bad pattern to Regex.perlCode: " + rs);\r
+    }\r
+    add(r);\r
+  }\r
+\r
+  /** Add an array of Strings (which will be converted to\r
+      Regex's via the Regex.perlCode method.\r
+      @see com.stevesoft.pat.Regex#perlCode(java.lang.String)\r
+   */\r
+  public void add(String[] array)\r
+  {\r
+    for (int i = 0; i < array.length; i++)\r
+    {\r
+      add(array[i]);\r
+    }\r
+  }\r
+\r
+  /** Replace all matches in the current String. */\r
+  public String replaceAll(String s)\r
+  {\r
+    return dorep(s, 0, s.length());\r
+  }\r
+\r
+  public StringLike replaceAll(StringLike s)\r
+  {\r
+    return dorep(s, 0, s.length());\r
+  }\r
+\r
+  /** Replace all matching patterns beginning at position start. */\r
+  public String replaceAllFrom(String s, int start)\r
+  {\r
+    return dorep(s, start, s.length());\r
+  }\r
+\r
+  /** Replace all matching patterns beginning between the positions\r
+      start and end inclusive. */\r
+  public String replaceAllRegion(String s, int start, int end)\r
+  {\r
+    return dorep(s, start, end);\r
+  }\r
+\r
+  Replacer repr = new Replacer();\r
+  final StringLike dorep(StringLike s, int start, int end)\r
+  {\r
+    StringLike tfmd = repr.replaceAllRegion(s, rp, start, end);\r
+    tp.lastMatchedTo = repr.lastMatchedTo;\r
+    return tfmd;\r
+  }\r
+\r
+  final String dorep(String s, int start, int end)\r
+  {\r
+    return dorep(new StringWrap(s), start, end).toString();\r
+  }\r
+\r
+  /** Replace the first matching pattern in String s. */\r
+  public String replaceFirst(String s)\r
+  {\r
+    return dorep(s, 0, s.length());\r
+  }\r
+\r
+  /** Replace the first matching pattern after position start in\r
+      String s. */\r
+  public String replaceFirstFrom(String s, int start)\r
+  {\r
+    return dorep(s, start, s.length());\r
+  }\r
+\r
+  /** Replace the first matching pattern that begins between\r
+      start and end inclusive. */\r
+  public String replaceFirstRegion(String s, int start, int end)\r
+  {\r
+    return dorep(s, start, end);\r
+  }\r
 }\r