ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From k...@apache.org
Subject svn commit: r410022 - in /ant/core/trunk/src/main/org/apache/tools/ant: taskdefs/condition/AntVersion.java taskdefs/optional/extension/DeweyDecimal.java util/DeweyDecimal.java
Date Mon, 29 May 2006 05:10:10 GMT
Author: kevj
Date: Sun May 28 22:10:10 2006
New Revision: 410022

URL: http://svn.apache.org/viewvc?rev=410022&view=rev
Log:
- Refactor DeweyDecimal to util package, retain bc by keeping a stub in the original location
- Change AntVersion to use new (util) version of DeweyDecimal - suggested by Stefan

Added:
    ant/core/trunk/src/main/org/apache/tools/ant/util/DeweyDecimal.java
Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/extension/DeweyDecimal.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java?rev=410022&r1=410021&r2=410022&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/AntVersion.java Sun May
28 22:10:10 2006
@@ -19,7 +19,7 @@
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.optional.extension.DeweyDecimal;
+import org.apache.tools.ant.util.DeweyDecimal;
 
 /**
  * An antversion condition

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/extension/DeweyDecimal.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/extension/DeweyDecimal.java?rev=410022&r1=410021&r2=410022&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/extension/DeweyDecimal.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/extension/DeweyDecimal.java
Sun May 28 22:10:10 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright  2002,2004-2005 The Apache Software Foundation
+ * Copyright  2002,2004-2006 The Apache Software Foundation
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
  */
 package org.apache.tools.ant.taskdefs.optional.extension;
 
-import java.util.StringTokenizer;
 
 /**
  * Utility class to contain version numbers in "Dewey Decimal"
@@ -25,23 +24,18 @@
  * "1.2.3.4.5.6.7".  This allows an extensible number to be used to
  * represent major, minor, micro, etc versions.  The version number
  * must begin with a number.
- *
+ * 
+ * Original Implementation moved to org.apache.tools.ant.util.DeweyDecimal
  */
-public final class DeweyDecimal {
-    /** Array of components that make up DeweyDecimal */
-    private int[] components;
-
+public final class DeweyDecimal extends org.apache.tools.ant.util.DeweyDecimal {
+    
     /**
      * Construct a DeweyDecimal from an array of integer components.
      *
      * @param components an array of integer components.
      */
     public DeweyDecimal(final int[] components) {
-        this.components = new int[components.length];
-
-        for (int i = 0; i < components.length; i++) {
-            this.components[i] = components[i];
-        }
+        super(components);
     }
 
     /**
@@ -52,159 +46,6 @@
      */
     public DeweyDecimal(final String string)
         throws NumberFormatException {
-        final StringTokenizer tokenizer = new StringTokenizer(string, ".", true);
-        final int size = tokenizer.countTokens();
-
-        components = new int[ (size + 1) / 2 ];
-
-        for (int i = 0; i < components.length; i++) {
-            final String component = tokenizer.nextToken();
-            if (component.equals("")) {
-                throw new NumberFormatException("Empty component in string");
-            }
-
-            components[ i ] = Integer.parseInt(component);
-
-            //Strip '.' token
-            if (tokenizer.hasMoreTokens()) {
-                tokenizer.nextToken();
-
-                //If it ended in a dot, throw an exception
-                if (!tokenizer.hasMoreTokens()) {
-                    throw new NumberFormatException("DeweyDecimal ended in a '.'");
-                }
-            }
-        }
-    }
-
-    /**
-     * Return number of components in <code>DeweyDecimal</code>.
-     *
-     * @return the number of components in dewey decimal
-     */
-    public int getSize() {
-        return components.length;
-    }
-
-    /**
-     * Return the component at specified index.
-     *
-     * @param index the index of components
-     * @return the value of component at index
-     */
-    public int get(final int index) {
-        return components[ index ];
-    }
-
-    /**
-     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
-     * equal to the other <code>DeweyDecimal</code>.
-     *
-     * @param other the other DeweyDecimal
-     * @return true if equal to other DeweyDecimal, false otherwise
-     */
-    public boolean isEqual(final DeweyDecimal other) {
-        final int max = Math.max(other.components.length, components.length);
-
-        for (int i = 0; i < max; i++) {
-            final int component1 = (i < components.length) ? components[ i ] : 0;
-            final int component2 = (i < other.components.length) ? other.components[ i
] : 0;
-
-            if (component2 != component1) {
-                return false;
-            }
-        }
-
-        return true; // Exact match
-    }
-
-    /**
-     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
-     * less than the other <code>DeweyDecimal</code>.
-     *
-     * @param other the other DeweyDecimal
-     * @return true if less than other DeweyDecimal, false otherwise
-     */
-    public boolean isLessThan(final DeweyDecimal other) {
-        return !isGreaterThanOrEqual(other);
-    }
-
-    /**
-     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
-     * less than or equal to the other <code>DeweyDecimal</code>.
-     *
-     * @param other the other DeweyDecimal
-     * @return true if less than or equal to other DeweyDecimal, false otherwise
-     */
-    public boolean isLessThanOrEqual(final DeweyDecimal other) {
-        return !isGreaterThan(other);
-    }
-
-    /**
-     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
-     * greater than the other <code>DeweyDecimal</code>.
-     *
-     * @param other the other DeweyDecimal
-     * @return true if greater than other DeweyDecimal, false otherwise
-     */
-    public boolean isGreaterThan(final DeweyDecimal other) {
-        final int max = Math.max(other.components.length, components.length);
-
-        for (int i = 0; i < max; i++) {
-            final int component1 = (i < components.length) ? components[ i ] : 0;
-            final int component2 = (i < other.components.length) ? other.components[ i
] : 0;
-
-            if (component2 > component1) {
-                return false;
-            }
-            if (component2 < component1) {
-                return true;
-            }
-        }
-
-        return false; // Exact match
-    }
-
-    /**
-     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
-     * greater than or equal to the other <code>DeweyDecimal</code>.
-     *
-     * @param other the other DeweyDecimal
-     * @return true if greater than or equal to other DeweyDecimal, false otherwise
-     */
-    public boolean isGreaterThanOrEqual(final DeweyDecimal other) {
-        final int max = Math.max(other.components.length, components.length);
-
-        for (int i = 0; i < max; i++) {
-            final int component1 = (i < components.length) ? components[ i ] : 0;
-            final int component2 = (i < other.components.length) ? other.components[ i
] : 0;
-
-            if (component2 > component1) {
-                return false;
-            }
-            if (component2 < component1) {
-                return true;
-            }
-        }
-
-        return true; // Exact match
-    }
-
-    /**
-     * Return string representation of <code>DeweyDecimal</code>.
-     *
-     * @return the string representation of DeweyDecimal.
-     */
-    public String toString() {
-        final StringBuffer sb = new StringBuffer();
-
-        for (int i = 0; i < components.length; i++) {
-            if (i != 0) {
-                sb.append('.');
-            }
-            sb.append(components[ i ]);
-        }
-
-        return sb.toString();
+        super(string);
     }
 }

Added: ant/core/trunk/src/main/org/apache/tools/ant/util/DeweyDecimal.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/DeweyDecimal.java?rev=410022&view=auto
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/DeweyDecimal.java (added)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/DeweyDecimal.java Sun May 28 22:10:10
2006
@@ -0,0 +1,211 @@
+/*
+ * Copyright  2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.util;
+
+import java.util.StringTokenizer;
+
+/**
+ * Utility class to contain version numbers in "Dewey Decimal"
+ * syntax.  Numbers in the "Dewey Decimal" syntax consist of positive
+ * decimal integers separated by periods ".".  For example, "2.0" or
+ * "1.2.3.4.5.6.7".  This allows an extensible number to be used to
+ * represent major, minor, micro, etc versions.  The version number
+ * must begin with a number.
+ *
+ */
+public class DeweyDecimal {
+
+    /** Array of components that make up DeweyDecimal */
+    private int[] components;
+    
+    /**
+     * Construct a DeweyDecimal from an array of integer components.
+     *
+     * @param components an array of integer components.
+     */
+    public DeweyDecimal(final int[] components) {
+        this.components = new int[components.length];
+
+        for (int i = 0; i < components.length; i++) {
+            this.components[i] = components[i];
+        }
+    }
+
+    /**
+     * Construct a DeweyDecimal from string in DeweyDecimal format.
+     *
+     * @param string the string in dewey decimal format
+     * @exception NumberFormatException if string is malformed
+     */
+    public DeweyDecimal(final String string)
+        throws NumberFormatException {
+        final StringTokenizer tokenizer = new StringTokenizer(string, ".", true);
+        final int size = tokenizer.countTokens();
+
+        components = new int[ (size + 1) / 2 ];
+
+        for (int i = 0; i < components.length; i++) {
+            final String component = tokenizer.nextToken();
+            if (component.equals("")) {
+                throw new NumberFormatException("Empty component in string");
+            }
+
+            components[ i ] = Integer.parseInt(component);
+
+            //Strip '.' token
+            if (tokenizer.hasMoreTokens()) {
+                tokenizer.nextToken();
+
+                //If it ended in a dot, throw an exception
+                if (!tokenizer.hasMoreTokens()) {
+                    throw new NumberFormatException("DeweyDecimal ended in a '.'");
+                }
+            }
+        }
+    }
+
+    /**
+     * Return number of components in <code>DeweyDecimal</code>.
+     *
+     * @return the number of components in dewey decimal
+     */
+    public int getSize() {
+        return components.length;
+    }
+
+    /**
+     * Return the component at specified index.
+     *
+     * @param index the index of components
+     * @return the value of component at index
+     */
+    public int get(final int index) {
+        return components[ index ];
+    }
+
+    /**
+     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
+     * equal to the other <code>DeweyDecimal</code>.
+     *
+     * @param other the other DeweyDecimal
+     * @return true if equal to other DeweyDecimal, false otherwise
+     */
+    public boolean isEqual(final DeweyDecimal other) {
+        final int max = Math.max(other.components.length, components.length);
+
+        for (int i = 0; i < max; i++) {
+            final int component1 = (i < components.length) ? components[ i ] : 0;
+            final int component2 = (i < other.components.length) ? other.components[ i
] : 0;
+
+            if (component2 != component1) {
+                return false;
+            }
+        }
+
+        return true; // Exact match
+    }
+
+    /**
+     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
+     * less than the other <code>DeweyDecimal</code>.
+     *
+     * @param other the other DeweyDecimal
+     * @return true if less than other DeweyDecimal, false otherwise
+     */
+    public boolean isLessThan(final DeweyDecimal other) {
+        return !isGreaterThanOrEqual(other);
+    }
+
+    /**
+     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
+     * less than or equal to the other <code>DeweyDecimal</code>.
+     *
+     * @param other the other DeweyDecimal
+     * @return true if less than or equal to other DeweyDecimal, false otherwise
+     */
+    public boolean isLessThanOrEqual(final DeweyDecimal other) {
+        return !isGreaterThan(other);
+    }
+
+    /**
+     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
+     * greater than the other <code>DeweyDecimal</code>.
+     *
+     * @param other the other DeweyDecimal
+     * @return true if greater than other DeweyDecimal, false otherwise
+     */
+    public boolean isGreaterThan(final DeweyDecimal other) {
+        final int max = Math.max(other.components.length, components.length);
+
+        for (int i = 0; i < max; i++) {
+            final int component1 = (i < components.length) ? components[ i ] : 0;
+            final int component2 = (i < other.components.length) ? other.components[ i
] : 0;
+
+            if (component2 > component1) {
+                return false;
+            }
+            if (component2 < component1) {
+                return true;
+            }
+        }
+
+        return false; // Exact match
+    }
+
+    /**
+     * Return <code>true</code> if this <code>DeweyDecimal</code>
is
+     * greater than or equal to the other <code>DeweyDecimal</code>.
+     *
+     * @param other the other DeweyDecimal
+     * @return true if greater than or equal to other DeweyDecimal, false otherwise
+     */
+    public boolean isGreaterThanOrEqual(final DeweyDecimal other) {
+        final int max = Math.max(other.components.length, components.length);
+
+        for (int i = 0; i < max; i++) {
+            final int component1 = (i < components.length) ? components[ i ] : 0;
+            final int component2 = (i < other.components.length) ? other.components[ i
] : 0;
+
+            if (component2 > component1) {
+                return false;
+            }
+            if (component2 < component1) {
+                return true;
+            }
+        }
+
+        return true; // Exact match
+    }
+
+    /**
+     * Return string representation of <code>DeweyDecimal</code>.
+     *
+     * @return the string representation of DeweyDecimal.
+     */
+    public String toString() {
+        final StringBuffer sb = new StringBuffer();
+
+        for (int i = 0; i < components.length; i++) {
+            if (i != 0) {
+                sb.append('.');
+            }
+            sb.append(components[ i ]);
+        }
+
+        return sb.toString();
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message