Methods Summary |
---|
public void | add(org.apache.tools.ant.util.FileNameMapper fileNameMapper)Add a nested FileNameMapper.
createMapper().add(fileNameMapper);
|
private void | addPropertyNames(java.util.Set names, java.util.Hashtable properties)
// Add this PropertySet's property names.
for (Enumeration e = ptyRefs.elements(); e.hasMoreElements();) {
PropertyRef r = (PropertyRef) e.nextElement();
if (r.name != null) {
if (properties.get(r.name) != null) {
names.add(r.name);
}
} else if (r.prefix != null) {
for (Enumeration p = properties.keys(); p.hasMoreElements();) {
String name = (String) p.nextElement();
if (name.startsWith(r.prefix)) {
names.add(name);
}
}
} else if (r.regex != null) {
RegexpMatcherFactory matchMaker = new RegexpMatcherFactory();
RegexpMatcher matcher = matchMaker.newRegexpMatcher();
matcher.setPattern(r.regex);
for (Enumeration p = properties.keys(); p.hasMoreElements();) {
String name = (String) p.nextElement();
if (matcher.matches(name)) {
names.add(name);
}
}
} else if (r.builtin != null) {
if (r.builtin.equals(BuiltinPropertySetName.ALL)) {
names.addAll(properties.keySet());
} else if (r.builtin.equals(BuiltinPropertySetName.SYSTEM)) {
names.addAll(System.getProperties().keySet());
} else if (r.builtin.equals(BuiltinPropertySetName
.COMMANDLINE)) {
names.addAll(getProject().getUserProperties().keySet());
} else {
throw new BuildException("Impossible: Invalid builtin "
+ "attribute!");
}
} else {
throw new BuildException("Impossible: Invalid PropertyRef!");
}
}
|
public void | addPropertyref(org.apache.tools.ant.types.PropertySet$PropertyRef ref)Add a property reference (nested element) to the references to be used.
assertNotReference();
ptyRefs.addElement(ref);
|
public void | addPropertyset(org.apache.tools.ant.types.PropertySet ref)Add another property set to this set.
assertNotReference();
setRefs.addElement(ref);
|
public void | appendBuiltin(org.apache.tools.ant.types.PropertySet$BuiltinPropertySetName b)Allow builtin (all, system or commandline) properties in the set.
PropertyRef r = new PropertyRef();
r.setBuiltin(b);
addPropertyref(r);
|
public void | appendName(java.lang.String name)Allow properties of a particular name in the set.
PropertyRef r = new PropertyRef();
r.setName(name);
addPropertyref(r);
|
public void | appendPrefix(java.lang.String prefix)Allow properties whose names start with a prefix in the set.
PropertyRef r = new PropertyRef();
r.setPrefix(prefix);
addPropertyref(r);
|
public void | appendRegex(java.lang.String regex)Allow properties whose names match a regex in the set.
PropertyRef r = new PropertyRef();
r.setRegex(regex);
addPropertyref(r);
|
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.
if (isReference()) {
throw tooManyAttributes();
}
noAttributeSet = false;
|
public Mapper | createMapper()Create a mapper to map the property names.
assertNotReference();
if (mapper != null) {
throw new BuildException("Too many <mapper>s!");
}
mapper = new Mapper(getProject());
return mapper;
|
private java.util.Hashtable | getAllSystemProperties()Convert the system properties to a hashtable.
Use propertynames to get the list of properties (including
default ones).
Hashtable ret = new Hashtable();
for (Enumeration e = System.getProperties().propertyNames();
e.hasMoreElements();) {
String name = (String) e.nextElement();
ret.put(name, System.getProperties().getProperty(name));
}
return ret;
|
public boolean | getDynamic()Get the dynamic attribute.
return isReference() ? getRef().dynamic : dynamic;
|
public Mapper | getMapper()Get the mapper attribute.
return isReference() ? getRef().mapper : mapper;
|
public java.util.Properties | getProperties()This is the operation to get the existing or recalculated properties.
if (isReference()) {
return getRef().getProperties();
}
Set names = null;
Project prj = getProject();
Hashtable props =
prj == null ? getAllSystemProperties() : prj.getProperties();
//quick & dirty, to make nested mapped p-sets work:
for (Enumeration e = setRefs.elements(); e.hasMoreElements();) {
PropertySet set = (PropertySet) e.nextElement();
props.putAll(set.getProperties());
}
if (getDynamic() || cachedNames == null) {
names = new HashSet();
addPropertyNames(names, props);
// Add this PropertySet's nested PropertySets' property names.
for (Enumeration e = setRefs.elements(); e.hasMoreElements();) {
PropertySet set = (PropertySet) e.nextElement();
names.addAll(set.getProperties().keySet());
}
if (negate) {
//make a copy...
HashSet complement = new HashSet(props.keySet());
complement.removeAll(names);
names = complement;
}
if (!getDynamic()) {
cachedNames = names;
}
} else {
names = cachedNames;
}
FileNameMapper m = null;
Mapper myMapper = getMapper();
if (myMapper != null) {
m = myMapper.getImplementation();
}
Properties properties = new Properties();
//iterate through the names, get the matching values
for (Iterator iter = names.iterator(); iter.hasNext();) {
String name = (String) iter.next();
String value = (String) props.get(name);
if (value != null) {
// may be null if a system property has been added
// after the project instance has been initialized
if (m != null) {
//map the names
String[] newname = m.mapFileName(name);
if (newname != null) {
name = newname[0];
}
}
properties.setProperty(name, value);
}
}
return properties;
|
protected org.apache.tools.ant.types.PropertySet | getRef()Performs the check for circular references and returns the
referenced PropertySet.
return (PropertySet) getCheckedRef(PropertySet.class, "propertyset");
|
public boolean | isFilesystemOnly()Fulfill the ResourceCollection contract.
return isReference() && getRef().isFilesystemOnly();
|
public java.util.Iterator | iterator()Fulfill the ResourceCollection interface.
final Enumeration e = getProperties().propertyNames();
return new Iterator() {
public boolean hasNext() {
return e.hasMoreElements();
}
public Object next() {
return new PropertyResource(getProject(), (String) e.nextElement());
}
public void remove() {
throw new UnsupportedOperationException();
}
};
|
public void | setDynamic(boolean dynamic)Set whether to reevaluate the set everytime the set is used.
Default is true.
assertNotReference();
this.dynamic = dynamic;
|
public void | setMapper(java.lang.String type, java.lang.String from, java.lang.String to)Set a mapper to change property names.
Mapper m = createMapper();
Mapper.MapperType mapperType = new Mapper.MapperType();
mapperType.setValue(type);
m.setType(mapperType);
m.setFrom(from);
m.setTo(to);
|
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".
assertNotReference();
this.negate = negate;
|
public final void | setRefid(Reference r)Sets the value of the refid attribute.
if (!noAttributeSet) {
throw tooManyAttributes();
}
super.setRefid(r);
|
public int | size()Fulfill the ResourceCollection contract.
return isReference() ? getRef().size() : getProperties().size();
|
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.
StringBuffer b = new StringBuffer();
TreeMap sorted = new TreeMap(getProperties());
for (Iterator i = sorted.entrySet().iterator(); i.hasNext();) {
Map.Entry e = (Map.Entry) i.next();
if (b.length() != 0) {
b.append(", ");
}
b.append(e.getKey().toString());
b.append("=");
b.append(e.getValue().toString());
}
return b.toString();
|