Save This Page
Home » apache-ant-1.8.1 » org.apache.tools » ant » types » selectors » [javadoc | source]
org.apache.tools.ant.types.selectors
public class: SizeSelector [javadoc | source]
java.lang.Object
   org.apache.tools.ant.ProjectComponent
      org.apache.tools.ant.types.DataType
         org.apache.tools.ant.types.selectors.BaseSelector
            org.apache.tools.ant.types.selectors.BaseExtendSelector
               org.apache.tools.ant.types.selectors.SizeSelector

All Implemented Interfaces:
    ExtendFileSelector, FileSelector, Cloneable

Selector that filters files based on their size.
Nested Class Summary:
public static class  SizeSelector.ByteUnits  Enumerated attribute with the values for units.

This treats the standard SI units as representing powers of ten, as they should. If you want the powers of 2 that approximate the SI units, use the first two characters followed by a bi. So 1024 (2^10) becomes kibi, 1048576 (2^20) becomes mebi, 1073741824 (2^30) becomes gibi, and so on. The symbols are also accepted, and these are the first letter capitalized followed by an i. Ki, Mi, Gi, and so on. Capitalization variations on these are also accepted.

This binary prefix system is approved by the IEC and appears on its way for approval by other agencies, but it is not an SI standard. It disambiguates things for us, though. 

public static class  SizeSelector.SizeComparisons  Enumerated attribute with the values for size comparison. 
Field Summary
public static final  String SIZE_KEY    Used for parameterized custom selector 
public static final  String UNITS_KEY    Used for parameterized custom selector 
public static final  String WHEN_KEY    Used for parameterized custom selector 
Fields inherited from org.apache.tools.ant.types.selectors.BaseExtendSelector:
parameters
Fields inherited from org.apache.tools.ant.types.DataType:
ref,  checked
Fields inherited from org.apache.tools.ant.ProjectComponent:
project,  location,  description
Constructor:
 public SizeSelector() 
Method from org.apache.tools.ant.types.selectors.SizeSelector Summary:
isSelected,   setParameters,   setUnits,   setValue,   setWhen,   toString,   verifySettings
Methods from org.apache.tools.ant.types.selectors.BaseExtendSelector:
getParameters,   isSelected,   setParameters
Methods from org.apache.tools.ant.types.selectors.BaseSelector:
getError,   isSelected,   setError,   validate,   verifySettings
Methods from org.apache.tools.ant.types.DataType:
checkAttributesAllowed,   checkChildrenAllowed,   circularReference,   clone,   dieOnCircularReference,   dieOnCircularReference,   dieOnCircularReference,   getCheckedRef,   getCheckedRef,   getCheckedRef,   getCheckedRef,   getDataTypeName,   getRefid,   invokeCircularReferenceCheck,   isChecked,   isReference,   noChildrenAllowed,   pushAndInvokeCircularReferenceCheck,   setChecked,   setRefid,   toString,   tooManyAttributes
Methods from org.apache.tools.ant.ProjectComponent:
clone,   getDescription,   getLocation,   getProject,   log,   log,   setDescription,   setLocation,   setProject
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.tools.ant.types.selectors.SizeSelector Detail:
 public boolean isSelected(File basedir,
    String filename,
    File file) 
    The heart of the matter. This is where the selector gets to decide on the inclusion of a file in a particular fileset.
 public  void setParameters(Parameter[] parameters) 
    When using this as a custom selector, this method will be called. It translates each parameter into the appropriate setXXX() call.
 public  void setUnits(ByteUnits units) 
    Sets the units to use for the comparison. This is a little complicated because common usage has created standards that play havoc with capitalization rules. Thus, some people will use "K" for indicating 1000's, when the SI standard calls for "k". Others have tried to introduce "K" as a multiple of 1024, but that falls down when you reach "M", since "m" is already defined as 0.001.

    To get around this complexity, a number of standards bodies have proposed the 2^10 standard, and at least one has adopted it. But we are still left with a populace that isn't clear on how capitalization should work.

    We therefore ignore capitalization as much as possible. Completely mixed case is not possible, but all upper and lower forms are accepted for all long and short forms. Since we have no need to work with the 0.001 case, this practice works here.

    This function translates all the long and short forms that a unit prefix can occur in and translates them into a single multiplier.

 public  void setValue(long size) 
    A size selector needs to know what size to base its selecting on. This will be further modified by the multiplier to get an actual size limit.
 public  void setWhen(SizeComparisons when) 
    This specifies when the file should be selected, whether it be when the file matches a particular size, when it is smaller, or whether it is larger.
 public String toString() 
    Returns a String object representing the specified SizeSelector. This is "{sizeselector value: " + <"compare", "less", "more", "equal"> + "}".
 public  void verifySettings() 

    Checks to make sure all settings are kosher. In this case, it means that the size attribute has been set (to a positive value), that the multiplier has a valid setting, and that the size limit is valid. Since the latter is a calculated value, this can only fail due to a programming error.

    If a problem is detected, the setError() method is called.