Package org.apache.tools.ant.types
Class PropertySet
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.types.DataType
org.apache.tools.ant.types.PropertySet
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Iterable<Resource>
,ResourceCollection
public class PropertySet extends DataType implements ResourceCollection
A set of properties.
- Since:
- Ant 1.6
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PropertySet.BuiltinPropertySetName
Used for propertyref's builtin attribute.static class
PropertySet.PropertyRef
This is a nested class containing a reference to some properties and optionally a source of properties. -
Field Summary
-
Constructor Summary
Constructors Constructor Description PropertySet()
-
Method Summary
Modifier and Type Method Description void
add(FileNameMapper fileNameMapper)
Add a nested FileNameMapper.void
addPropertyref(PropertySet.PropertyRef ref)
Add a property reference (nested element) to the references to be used.void
addPropertyset(PropertySet ref)
Add another property set to this set.void
appendBuiltin(PropertySet.BuiltinPropertySetName b)
Allow builtin (all, system or commandline) properties in the set.void
appendName(java.lang.String name)
Allow properties of a particular name in the set.void
appendPrefix(java.lang.String prefix)
Allow properties whose names start with a prefix in the set.void
appendRegex(java.lang.String regex)
Allow properties whose names match a regex in the set.protected void
assertNotReference()
Ensures this data type is not a reference.Mapper
createMapper()
Create a mapper to map the property names.protected void
dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)
Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).boolean
getDynamic()
Get the dynamic attribute.Mapper
getMapper()
Get the mapper attribute.java.util.Properties
getProperties()
This is the operation to get the existing or recalculated properties.protected PropertySet
getRef()
Performs the check for circular references and returns the referenced PropertySet.boolean
isFilesystemOnly()
Fulfill the ResourceCollection contract.java.util.Iterator<Resource>
iterator()
Fulfill the ResourceCollection interface.void
setDynamic(boolean dynamic)
Set whether to reevaluate the set every time the set is used.void
setMapper(java.lang.String type, java.lang.String from, java.lang.String to)
Set a mapper to change property names.void
setNegate(boolean negate)
Set whether to negate results.void
setRefid(Reference r)
Sets the value of the refid attribute.int
size()
Fulfill the ResourceCollection contract.java.lang.String
toString()
A debug toString.Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes
Methods inherited from class org.apache.tools.ant.ProjectComponent
getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject
-
Constructor Details
-
PropertySet
public PropertySet()
-
-
Method Details
-
appendName
public void appendName(java.lang.String name)Allow properties of a particular name in the set.- Parameters:
name
- the property name to allow.
-
appendRegex
public void appendRegex(java.lang.String regex)Allow properties whose names match a regex in the set.- Parameters:
regex
- the regular expression to use.
-
appendPrefix
public void appendPrefix(java.lang.String prefix)Allow properties whose names start with a prefix in the set.- Parameters:
prefix
- the prefix to use.
-
appendBuiltin
Allow builtin (all, system or commandline) properties in the set.- Parameters:
b
- the type of builtin properties.
-
setMapper
public void setMapper(java.lang.String type, java.lang.String from, java.lang.String to)Set a mapper to change property names.- Parameters:
type
- mapper type.from
- source pattern.to
- output pattern.
-
addPropertyref
Add a property reference (nested element) to the references to be used.- Parameters:
ref
- a property reference.
-
addPropertyset
Add another property set to this set.- Parameters:
ref
- another property set.
-
createMapper
Create a mapper to map the property names.- Returns:
- a mapper to be configured.
-
add
Add a nested FileNameMapper.- Parameters:
fileNameMapper
- the mapper to add.- Since:
- Ant 1.6.3
-
setDynamic
public void setDynamic(boolean dynamic)Set whether to reevaluate the set every time the set is used. Default is true.- Parameters:
dynamic
- if true, reevaluate the property set each time the set is used. if false cache the property set the first time and use the cached set on subsequent occasions.
-
setNegate
public void setNegate(boolean negate)Set whether to negate results. If "true", all properties not selected by nested elements will be returned. Default is "false".- Parameters:
negate
- if true, negate the selection criteria.
-
getDynamic
public boolean getDynamic()Get the dynamic attribute.- Returns:
- true if the property set is to be evaluated each time it is used.
-
getMapper
Get the mapper attribute.- Returns:
- the mapper attribute.
-
getProperties
public java.util.Properties getProperties()This is the operation to get the existing or recalculated properties.- Returns:
- the properties for this propertyset.
-
getRef
Performs the check for circular references and returns the referenced PropertySet.- Returns:
- the referenced PropertySet.
-
setRefid
Sets the value of the refid attribute.- Overrides:
setRefid
in classDataType
- Parameters:
r
- the reference this datatype should point to.- Throws:
BuildException
- if another attribute was set, since refid and all other attributes are mutually exclusive.
-
assertNotReference
protected final void assertNotReference()Ensures this data type is not a reference.Calling this method as the first line of every bean method of this data type (setXyz, addXyz, createXyz) ensure proper handling of the refid attribute.
- Throws:
BuildException
- if the refid attribute was already set, since refid and all other attributes are mutually exclusive.
-
toString
public java.lang.String toString()A debug toString. This gets a comma separated list of key=value pairs for the properties in the set. The output order is sorted according to the keys' natural order. -
iterator
Fulfill the ResourceCollection interface.- Specified by:
iterator
in interfacejava.lang.Iterable<Resource>
- Returns:
- an Iterator of Resources.
- Since:
- Ant 1.7
-
size
public int size()Fulfill the ResourceCollection contract.- Specified by:
size
in interfaceResourceCollection
- Returns:
- the size of this ResourceCollection.
-
isFilesystemOnly
public boolean isFilesystemOnly()Fulfill the ResourceCollection contract.- Specified by:
isFilesystemOnly
in interfaceResourceCollection
- Returns:
- whether this is a filesystem-only resource collection.
-
dieOnCircularReference
protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p) throws BuildExceptionDescription copied from class:DataType
Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).If one is included, throw a BuildException created by
circularReference
.This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.
The general contract of this method is that it shouldn't do anything if
DataType.checked
is true and set it to true on exit.- Overrides:
dieOnCircularReference
in classDataType
- Parameters:
stk
- the stack of references to check.p
- the project to use to dereference the references.- Throws:
BuildException
- on error.
-