merge from 2_4_Release branch
[jalview.git] / src / com / stevesoft / pat / patInt.java
index f997a52..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
-{\r
-  int i;\r
-  boolean inf;\r
-  /** Initialize to zero. */\r
-  public patInt()\r
-  {\r
-    i = 0;\r
-    inf = false;\r
-  }\r
-\r
-  /** Initialize to the value of init. */\r
-  public patInt(int init)\r
-  {\r
-    i = init;\r
-    inf = false;\r
-  }\r
-\r
-  /** Initialize to the value of p. */\r
-  public patInt(patInt p)\r
-  {\r
-    i = p.i;\r
-    inf = p.inf;\r
-  }\r
-\r
-  /** set this int to infinity. */\r
-  public void setInf(boolean b)\r
-  {\r
-    inf = b;\r
-    if (b)\r
-    {\r
-      i = Integer.MAX_VALUE;\r
-    }\r
-  }\r
-\r
-  /** Increment the value of this by 1. */\r
-  public final void inc()\r
-  {\r
-    if (!inf)\r
-    {\r
-      i++;\r
-    }\r
-  }\r
-\r
-  /** Decrement the value of this by 1. */\r
-  public final void dec()\r
-  {\r
-    if (!inf)\r
-    {\r
-      i--;\r
-    }\r
-  }\r
-\r
-  /** Test to see if this is less than or equal to j. */\r
-  public final boolean lessEq(patInt j)\r
-  { /*\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
-\r
-  /** Test to see if two patterns are equal. */\r
-  public final boolean equals(patInt j)\r
-  {\r
-    return!j.inf && !inf && i == j.i;\r
-  }\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
-  {\r
-    if (inf)\r
-    {\r
-      return "";\r
-    }\r
-    else\r
-    {\r
-      return "" + i;\r
-    }\r
-  }\r
-\r
-  /** This would be operator+=(patInt) if I were programming\r
-       in C++. */\r
-  public final patInt pluseq(patInt p)\r
-  {\r
-    if (inf || p.inf)\r
-    {\r
-      setInf(true);\r
-    }\r
-    else\r
-    {\r
-      i += p.i;\r
-    }\r
-    return this;\r
-  }\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
-  {\r
-    if (inf || p.inf)\r
-    {\r
-      return new patInf();\r
-    }\r
-    return new patInt(i * p.i);\r
-  }\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
-  {\r
-    if (p.inf)\r
-    {\r
-      return this;\r
-    }\r
-    if (inf)\r
-    {\r
-      i = p.i;\r
-    }\r
-    else if (p.i < i)\r
-    {\r
-      i = p.i;\r
-    }\r
-    setInf(false);\r
-    return this;\r
-  }\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
-  {\r
-    if (inf || p.inf)\r
-    {\r
-      setInf(true);\r
-      return this;\r
-    }\r
-    if (p.i > i)\r
-    {\r
-      i = p.i;\r
-    }\r
-    return this;\r
-  }\r
-\r
-  /** Tests to see if this represents an infinite quantity. */\r
-  public boolean finite()\r
-  {\r
-    return!inf;\r
-  }\r
-\r
-  /** Converts to a patInt to an int.  Infinity is\r
-       mapped Integer.MAX_VALUE;\r
-   */\r
-  public int intValue()\r
-  {\r
-    return inf ? Integer.MAX_VALUE : i;\r
-  }\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;
+  }
+};