merge from 2_4_Release branch
[jalview.git] / src / com / stevesoft / pat / patInt.java
index e18c627..df0d028 100755 (executable)
-//\r
-// This software is now distributed according to\r
-// the Lesser Gnu Public License.  Please see\r
-// http://www.gnu.org/copyleft/lesser.txt for\r
-// the details.\r
-//    -- Happy Computing!\r
-//\r
-package com.stevesoft.pat;\r
-\r
-/** This is just an integer that can have infinite value.\r
-    It is used internally to implement the *, and + parts\r
-    of regular expressions.\r
-*/\r
-public class patInt {\r
-    int i;\r
-    boolean inf;\r
-    /** Initialize to zero. */\r
-    public patInt() { i = 0; inf = false; }\r
-    /** Initialize to the value of init. */\r
-    public patInt(int init) { i = init; inf = false; }\r
-    /** Initialize to the value of p. */\r
-    public patInt(patInt p) { i = p.i; inf = p.inf; }\r
-    /** set this int to infinity. */\r
-    public void setInf(boolean b) {\r
-        inf = b;\r
-        if(b) i = Integer.MAX_VALUE;\r
-    }\r
-    /** Increment the value of this by 1. */\r
-    public final void inc() {\r
-        if(!inf) i++;\r
-    }\r
-    /** Decrement the value of this by 1. */\r
-    public final void dec() {\r
-        if(!inf) i--;\r
-    }\r
-    /** Test to see if this is less than or equal to j. */\r
-    public final boolean lessEq(patInt j) { /*\r
-                if(inf) return false;\r
-                if(j.inf) return true;\r
-                return i <= j.i; */\r
-        return !inf && (j.inf || i <= j.i);\r
-    }\r
-    /** Test to see if two patterns are equal. */\r
-    public final boolean equals(patInt j) {\r
-        return !j.inf && !inf && i==j.i;\r
-    }\r
-    /** Formats the pattern as a String.  Contrary to\r
-         what you might expect, infinity is formatted as "" */\r
-    final public String toString() {\r
-        if(inf) return "";\r
-        else return ""+i;\r
-    }\r
-    /** This would be operator+=(patInt) if I were programming\r
-         in C++. */\r
-    public final patInt pluseq(patInt p) {\r
-        if(inf||p.inf) setInf(true);\r
-        else i += p.i;\r
-        return this;\r
-    }\r
-    /** Returns a patInt with value equal to the product\r
-         of the value of p and this. */\r
-    public final patInt mul(patInt p) {\r
-        if(inf||p.inf) return new patInf();\r
-        return new patInt(i*p.i);\r
-    }\r
-    /** If the argument p has a smaller value than this,\r
-         then set this Object equal to p. */\r
-    public final patInt mineq(patInt p) {\r
-        if(p.inf) return this;\r
-        if(inf) i = p.i;\r
-        else if(p.i < i) i = p.i;\r
-        setInf(false);\r
-        return this;\r
-    }\r
-    /** If the argument p has a greater than this,\r
-         then set this object equal to p. */\r
-    public final patInt maxeq(patInt p) {\r
-        if(inf || p.inf) { setInf(true); return this; }\r
-        if(p.i > i) i = p.i;\r
-        return this;\r
-    }\r
-    /** Tests to see if this represents an infinite quantity. */\r
-    public boolean finite() { return !inf; }\r
-    /** Converts to a patInt to an int.  Infinity is\r
-         mapped Integer.MAX_VALUE;\r
-        */\r
-    public int intValue() { return inf ? Integer.MAX_VALUE : i; }\r
-};\r
+//
+// 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;
+
+/**
+ * This is just an integer that can have infinite value. It is used internally
+ * to implement the *, and + parts of regular expressions.
+ */
+public class patInt
+{
+  int i;
+
+  boolean inf;
+
+  /** Initialize to zero. */
+  public patInt()
+  {
+    i = 0;
+    inf = false;
+  }
+
+  /** Initialize to the value of init. */
+  public patInt(int init)
+  {
+    i = init;
+    inf = false;
+  }
+
+  /** Initialize to the value of p. */
+  public patInt(patInt p)
+  {
+    i = p.i;
+    inf = p.inf;
+  }
+
+  /** set this int to infinity. */
+  public void setInf(boolean b)
+  {
+    inf = b;
+    if (b)
+    {
+      i = Integer.MAX_VALUE;
+    }
+  }
+
+  /** Increment the value of this by 1. */
+  public final void inc()
+  {
+    if (!inf)
+    {
+      i++;
+    }
+  }
+
+  /** Decrement the value of this by 1. */
+  public final void dec()
+  {
+    if (!inf)
+    {
+      i--;
+    }
+  }
+
+  /** Test to see if this is less than or equal to j. */
+  public final boolean lessEq(patInt j)
+  { /*
+     * if(inf) return false; if(j.inf) return true; return i <= j.i;
+     */
+    return !inf && (j.inf || i <= j.i);
+  }
+
+  /** Test to see if two patterns are equal. */
+  public final boolean equals(patInt j)
+  {
+    return !j.inf && !inf && i == j.i;
+  }
+
+  /**
+   * Formats the pattern as a String. Contrary to what you might expect,
+   * infinity is formatted as ""
+   */
+  final public String toString()
+  {
+    if (inf)
+    {
+      return "";
+    }
+    else
+    {
+      return "" + i;
+    }
+  }
+
+  /**
+   * This would be operator+=(patInt) if I were programming in C++.
+   */
+  public final patInt pluseq(patInt p)
+  {
+    if (inf || p.inf)
+    {
+      setInf(true);
+    }
+    else
+    {
+      i += p.i;
+    }
+    return this;
+  }
+
+  /**
+   * Returns a patInt with value equal to the product of the value of p and
+   * this.
+   */
+  public final patInt mul(patInt p)
+  {
+    if (inf || p.inf)
+    {
+      return new patInf();
+    }
+    return new patInt(i * p.i);
+  }
+
+  /**
+   * If the argument p has a smaller value than this, then set this Object equal
+   * to p.
+   */
+  public final patInt mineq(patInt p)
+  {
+    if (p.inf)
+    {
+      return this;
+    }
+    if (inf)
+    {
+      i = p.i;
+    }
+    else if (p.i < i)
+    {
+      i = p.i;
+    }
+    setInf(false);
+    return this;
+  }
+
+  /**
+   * If the argument p has a greater than this, then set this object equal to p.
+   */
+  public final patInt maxeq(patInt p)
+  {
+    if (inf || p.inf)
+    {
+      setInf(true);
+      return this;
+    }
+    if (p.i > i)
+    {
+      i = p.i;
+    }
+    return this;
+  }
+
+  /** Tests to see if this represents an infinite quantity. */
+  public boolean finite()
+  {
+    return !inf;
+  }
+
+  /**
+   * Converts to a patInt to an int. Infinity is mapped Integer.MAX_VALUE;
+   */
+  public int intValue()
+  {
+    return inf ? Integer.MAX_VALUE : i;
+  }
+};