Browse Source

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.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@449115 13f79535-47bb-0310-9956-ffa450edef68
master
Matthew Jason Benson 19 years ago
parent
commit
7ac1fe3852
1 changed files with 23 additions and 39 deletions
  1. +23
    -39
      src/main/org/apache/tools/ant/types/selectors/SizeSelector.java

+ 23
- 39
src/main/org/apache/tools/ant/types/selectors/SizeSelector.java View File

@@ -20,6 +20,7 @@ package org.apache.tools.ant.types.selectors;


import java.io.File; import java.io.File;


import org.apache.tools.ant.types.Comparison;
import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.ant.types.Parameter; import org.apache.tools.ant.types.Parameter;


@@ -30,10 +31,6 @@ import org.apache.tools.ant.types.Parameter;
*/ */
public class SizeSelector extends BaseExtendSelector { 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 */ /** Used for parameterized custom selector */
public static final String SIZE_KEY = "value"; public static final String SIZE_KEY = "value";
/** Used for parameterized custom selector */ /** Used for parameterized custom selector */
@@ -41,6 +38,11 @@ public class SizeSelector extends BaseExtendSelector {
/** Used for parameterized custom selector */ /** Used for parameterized custom selector */
public static final String WHEN_KEY = "when"; 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. * Creates a new <code>SizeSelector</code> instance.
* *
@@ -57,14 +59,7 @@ public class SizeSelector extends BaseExtendSelector {
public String toString() { public String toString() {
StringBuffer buf = new StringBuffer("{sizeselector value: "); StringBuffer buf = new StringBuffer("{sizeselector value: ");
buf.append(sizelimit); 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("}"); buf.append("}");
return buf.toString(); return buf.toString();
} }
@@ -78,7 +73,7 @@ public class SizeSelector extends BaseExtendSelector {
*/ */
public void setValue(long size) { public void setValue(long size) {
this.size = size; this.size = size;
if ((multiplier != 0) && (size > -1)) {
if (multiplier != 0 && size > -1) {
sizelimit = size * multiplier; sizelimit = size * multiplier;
} }
} }
@@ -112,24 +107,24 @@ public class SizeSelector extends BaseExtendSelector {
public void setUnits(ByteUnits units) { public void setUnits(ByteUnits units) {
int i = units.getIndex(); int i = units.getIndex();
multiplier = 0; multiplier = 0;
if ((i > -1) && (i < 4)) {
if (i > -1 && i < 4) {
multiplier = 1000; multiplier = 1000;
} else if ((i > 3) && (i < 9)) {
} else if (i > 3 && i < 9) {
multiplier = 1024; multiplier = 1024;
} else if ((i > 8) && (i < 13)) {
} else if (i > 8 && i < 13) {
multiplier = 1000000; multiplier = 1000000;
} else if ((i > 12) && (i < 18)) {
} else if (i > 12 && i < 18) {
multiplier = 1048576; multiplier = 1048576;
} else if ((i > 17) && (i < 22)) {
} else if (i > 17 && i < 22) {
multiplier = 1000000000L; multiplier = 1000000000L;
} else if ((i > 21) && (i < 27)) {
} else if (i > 21 && i < 27) {
multiplier = 1073741824L; multiplier = 1073741824L;
} else if ((i > 26) && (i < 31)) {
} else if (i > 26 && i < 31) {
multiplier = 1000000000000L; multiplier = 1000000000000L;
} else if ((i > 30) && (i < 36)) {
} else if (i > 30 && i < 36) {
multiplier = 1099511627776L; multiplier = 1099511627776L;
} }
if ((multiplier > 0) && (size > -1)) {
if (multiplier > 0 && size > -1) {
sizelimit = size * multiplier; sizelimit = size * multiplier;
} }
} }
@@ -139,10 +134,10 @@ public class SizeSelector extends BaseExtendSelector {
* when the file matches a particular size, when it is smaller, * when the file matches a particular size, when it is smaller,
* or whether it is larger. * 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 @@ public class SizeSelector extends BaseExtendSelector {
if (file.isDirectory()) { if (file.isDirectory()) {
return true; 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 @@ public class SizeSelector extends BaseExtendSelector {
/** /**
* Enumerated attribute with the values for size comparison. * 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 {
} }


} }


Loading…
Cancel
Save