Author: mbenson
Date: Fri Sep 22 15:31:55 2006
New Revision: 449115

URL: http://svn.apache.org/viewvc?view=rev&rev=449115
Log:
switch when attribute of size fileselector to use Comparison type.
Also took out a bunch of spurious parentheses and moved the public statics to 
the top.

Modified:
    
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SizeSelector.java

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SizeSelector.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SizeSelector.java?view=diff&rev=449115&r1=449114&r2=449115
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SizeSelector.java 
(original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SizeSelector.java 
Fri Sep 22 15:31:55 2006
@@ -20,6 +20,7 @@
 
 import java.io.File;
 
+import org.apache.tools.ant.types.Comparison;
 import org.apache.tools.ant.types.EnumeratedAttribute;
 import org.apache.tools.ant.types.Parameter;
 
@@ -30,10 +31,6 @@
  */
 public class SizeSelector extends BaseExtendSelector {
 
-    private long size = -1;
-    private long multiplier = 1;
-    private long sizelimit = -1;
-    private int cmp = 2;
     /** Used for parameterized custom selector */
     public static final String SIZE_KEY = "value";
     /** Used for parameterized custom selector */
@@ -41,6 +38,11 @@
     /** Used for parameterized custom selector */
     public static final String WHEN_KEY = "when";
 
+    private long size = -1;
+    private long multiplier = 1;
+    private long sizelimit = -1;
+    private Comparison when = Comparison.EQUAL;
+
     /**
      * Creates a new <code>SizeSelector</code> instance.
      *
@@ -57,14 +59,7 @@
     public String toString() {
         StringBuffer buf = new StringBuffer("{sizeselector value: ");
         buf.append(sizelimit);
-        buf.append("compare: ");
-        if (cmp == 0) {
-            buf.append("less");
-        } else if (cmp == 1) {
-            buf.append("more");
-        } else {
-            buf.append("equal");
-        }
+        buf.append("compare: ").append(when.getValue());
         buf.append("}");
         return buf.toString();
     }
@@ -78,7 +73,7 @@
      */
     public void setValue(long size) {
         this.size = size;
-        if ((multiplier != 0) && (size > -1)) {
+        if (multiplier != 0 && size > -1) {
             sizelimit = size * multiplier;
         }
     }
@@ -112,24 +107,24 @@
     public void setUnits(ByteUnits units) {
         int i = units.getIndex();
         multiplier = 0;
-        if ((i > -1) && (i < 4)) {
+        if (i > -1 && i < 4) {
             multiplier = 1000;
-        } else if ((i > 3) && (i < 9)) {
+        } else if (i > 3 && i < 9) {
             multiplier = 1024;
-        } else if ((i > 8) && (i < 13)) {
+        } else if (i > 8 && i < 13) {
             multiplier = 1000000;
-        } else if ((i > 12) && (i < 18)) {
+        } else if (i > 12 && i < 18) {
             multiplier = 1048576;
-        } else if ((i > 17) && (i < 22)) {
+        } else if (i > 17 && i < 22) {
             multiplier = 1000000000L;
-        } else if ((i > 21) && (i < 27)) {
+        } else if (i > 21 && i < 27) {
             multiplier = 1073741824L;
-        } else if ((i > 26) && (i < 31)) {
+        } else if (i > 26 && i < 31) {
             multiplier = 1000000000000L;
-        } else if ((i > 30) && (i < 36)) {
+        } else if (i > 30 && i < 36) {
             multiplier = 1099511627776L;
         }
-        if ((multiplier > 0) && (size > -1)) {
+        if (multiplier > 0 && size > -1) {
             sizelimit = size * multiplier;
         }
     }
@@ -139,10 +134,10 @@
      * when the file matches a particular size, when it is smaller,
      * or whether it is larger.
      *
-     * @param scmp The comparison to perform, an EnumeratedAttribute.
+     * @param when The comparison to perform, an EnumeratedAttribute.
      */
-    public void setWhen(SizeComparisons scmp) {
-        this.cmp = scmp.getIndex();
+    public void setWhen(SizeComparisons when) {
+        this.when = when;
     }
 
     /**
@@ -217,13 +212,8 @@
         if (file.isDirectory()) {
             return true;
         }
-        if (cmp == 0) {
-            return (file.length() < sizelimit);
-        } else if (cmp == 1) {
-            return (file.length() > sizelimit);
-        } else {
-            return (file.length() == sizelimit);
-        }
+        long diff = file.length() - sizelimit;
+        return when.evaluate(diff == 0 ? 0 : (int) (diff / Math.abs(diff)));
     }
 
 
@@ -265,13 +255,7 @@
     /**
      * Enumerated attribute with the values for size comparison.
      */
-    public static class SizeComparisons extends EnumeratedAttribute {
-        /**
-         * @return the values as an array of strings
-         */
-        public String[] getValues() {
-            return new String[]{"less", "more", "equal"};
-        }
+    public static class SizeComparisons extends Comparison {
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to