Class ProjectHelper
- Direct Known Subclasses:
- ProjectHelper2,- ProjectHelperImpl
This class also provide static wrappers for common introspection.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic final classPossible value for target's onMissingExtensionPoint attribute.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final StringThe URI for ant specific attributesstatic final StringThe URI for ant name spacestatic final StringThe URI for antlib current definitionsstatic final StringPolymorphic attributestatic final StringDeprecated.use MagicNames.ANTLIB_PREFIXstatic final StringDeprecated.use MagicNames.PROJECT_HELPER_CLASSstatic final StringDeprecated.use MagicNames.REFID_PROJECT_HELPERstatic final StringDeprecated.use MagicNames.PROJECT_HELPER_SERVICEstatic final Stringconstant to denote use project name as target prefix
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic BuildExceptionaddLocationToBuildException(BuildException ex, Location newLocation) Add location to build exception.static voidAdds the content of #PCDATA sections to an element.static voidAdds the content of #PCDATA sections to an element.booleanWhether this instance of ProjectHelper can parse an Antlib descriptor given by the URL and return its content as an UnknownElement ready to be turned into an Antlib task.booleancanParseBuildFile(Resource buildFile) Check if the helper supports the kind of file.static voidconfigure(Object target, AttributeList attrs, Project project) Deprecated.since 1.6.x.static voidconfigureProject(Project project, File buildFile) Configures the project with the contents of the specified build file.static StringextractNameFromComponentName(String componentName) extract the element name from a component namestatic StringextractUriFromComponentName(String componentName) extract a uri from a component namestatic StringgenComponentName(String uri, String name) Map a namespaced {uri,name} to an internal string format.static ClassLoaderDeprecated.since 1.6.x.static StringThe separator between the prefix and the target name.static StringThe prefix to prepend to imported target names.The file name of the build script to be parsed if none specified on the command lineExtension stack.Import stack.static ProjectHelperGet the first project helper found in the classpathstatic booleanWhether the current file should be read in include as opposed to import mode.static StringConvert an attribute namespace to a "component name".voidParses the project file, configuring the project as it goes.parseAntlibDescriptor(Project containingProject, Resource source) Parse the given URL as an antlib descriptor and return the content as something that can be turned into an Antlib task.static voidDeprecated.since 1.6.x.static StringreplaceProperties(Project project, String value) Deprecated.since 1.6.x.static StringDeprecated.since 1.6.x.voidresolveExtensionOfAttributes(Project project) Check extensionStack and inject all targets having extensionOf attributes into extensionPoint.static voidSets the separator between the prefix and the target name.static voidsetCurrentTargetPrefix(String prefix) Sets the prefix to prepend to imported target names.static voidsetInIncludeMode(boolean includeMode) Sets whether the current file should be read in include as opposed to import mode.static voidstoreChild(Project project, Object parent, Object child, String tag) Stores a configured child element within its parent object.
- 
Field Details- 
ANT_CORE_URI
- 
ANT_CURRENT_URI
- 
ANT_ATTRIBUTE_URIThe URI for ant specific attributes- Since:
- Ant 1.9.1
- See Also:
 
- 
ANTLIB_URIDeprecated.use MagicNames.ANTLIB_PREFIXThe URI for defined types/tasks - the format is antlib:<package>- See Also:
 
- 
ANT_TYPE
- 
HELPER_PROPERTYDeprecated.use MagicNames.PROJECT_HELPER_CLASSName of JVM system property which provides the name of the ProjectHelper class to use.- See Also:
 
- 
SERVICE_IDDeprecated.use MagicNames.PROJECT_HELPER_SERVICEThe service identifier in jars which provide Project Helper implementations.- See Also:
 
- 
PROJECTHELPER_REFERENCEDeprecated.use MagicNames.REFID_PROJECT_HELPERname of project helper reference that we add to a project- See Also:
 
- 
USE_PROJECT_NAME_AS_TARGET_PREFIXconstant to denote use project name as target prefix- Since:
- Ant 1.9.1
- See Also:
 
 
- 
- 
Constructor Details- 
ProjectHelperpublic ProjectHelper()
 
- 
- 
Method Details- 
configureProjectConfigures the project with the contents of the specified build file.- Parameters:
- project- The project to configure. Must not be- null.
- buildFile- A build file giving the project's configuration. Must not be- null.
- Throws:
- BuildException- if the configuration is invalid or cannot be read
 
- 
getImportStack
- 
getExtensionStackExtension stack. Used to keep track of targets that extend extension points.- Returns:
- a list of three element string arrays where the first
 element is the name of the extensionpoint, the second the name
 of the target and the third the name of the enum like class
 ProjectHelper.OnMissingExtensionPoint.
 
- 
getCurrentTargetPrefixThe prefix to prepend to imported target names.May be set by <import>'s as attribute. - Returns:
- the configured prefix or null
- Since:
- Ant 1.8.0
 
- 
setCurrentTargetPrefixSets the prefix to prepend to imported target names.- Parameters:
- prefix- String
- Since:
- Ant 1.8.0
 
- 
getCurrentPrefixSeparatorThe separator between the prefix and the target name.May be set by <import>'s prefixSeparator attribute. - Returns:
- String
- Since:
- Ant 1.8.0
 
- 
setCurrentPrefixSeparatorSets the separator between the prefix and the target name.- Parameters:
- sep- String
- Since:
- Ant 1.8.0
 
- 
isInIncludeModepublic static boolean isInIncludeMode()Whether the current file should be read in include as opposed to import mode.In include mode included targets are only known by their prefixed names and their depends lists get rewritten so that all dependencies get the prefix as well. In import mode imported targets are known by an adorned as well as a prefixed name and the unadorned target may be overwritten in the importing build file. The depends list of the imported targets is not modified at all. - Returns:
- boolean
- Since:
- Ant 1.8.0
 
- 
setInIncludeModepublic static void setInIncludeMode(boolean includeMode) Sets whether the current file should be read in include as opposed to import mode.- Parameters:
- includeMode- boolean
- Since:
- Ant 1.8.0
 
- 
parseParses the project file, configuring the project as it goes.- Parameters:
- project- The project for the resulting ProjectHelper to configure. Must not be- null.
- source- The source for XML configuration. A helper must support at least File, for backward compatibility. Helpers may support URL, InputStream, etc or specialized types.
- Throws:
- BuildException- if the configuration is invalid or cannot be read
- Since:
- Ant1.5
 
- 
getProjectHelperGet the first project helper found in the classpath- Returns:
- an project helper, never null
- See Also:
 
- 
getContextClassLoaderDeprecated.since 1.6.x. Use LoaderUtils.getContextClassLoader()JDK1.1 compatible access to the context class loader. Cut & paste from JAXP.- Returns:
- the current context class loader, or nullif the context class loader is unavailable.
 
- 
configure@Deprecated public static void configure(Object target, AttributeList attrs, Project project) throws BuildException Deprecated.since 1.6.x. Use IntrospectionHelper for each property.Configures an object using an introspection handler.- Parameters:
- target- The target object to be configured. Must not be- null.
- attrs- A list of attributes to configure within the target. Must not be- null.
- project- The project containing the target. Must not be- null.
- Throws:
- BuildException- if any of the attributes can't be handled by the target
 
- 
addTextpublic static void addText(Project project, Object target, char[] buf, int start, int count) throws BuildException Adds the content of #PCDATA sections to an element.- Parameters:
- project- The project containing the target. Must not be- null.
- target- The target object to be configured. Must not be- null.
- buf- A character array of the text within the element. Will not be- null.
- start- The start element in the array.
- count- The number of characters to read from the array.
- Throws:
- BuildException- if the target object doesn't accept text
 
- 
addTextAdds the content of #PCDATA sections to an element.- Parameters:
- project- The project containing the target. Must not be- null.
- target- The target object to be configured. Must not be- null.
- text- Text to add to the target. May be- null, in which case this method call is a no-op.
- Throws:
- BuildException- if the target object doesn't accept text
 
- 
storeChildStores a configured child element within its parent object.- Parameters:
- project- Project containing the objects. May be- null.
- parent- Parent object to add child to. Must not be- null.
- child- Child object to store in parent. Should not be- null.
- tag- Name of element which generated the child. May be- null, in which case the child is not stored.
 
- 
replaceProperties@Deprecated public static String replaceProperties(Project project, String value) throws BuildException Deprecated.since 1.6.x. Use project.replaceProperties().Replaces${xxx}style constructions in the given value with the string value of the corresponding properties.- Parameters:
- project- The project containing the properties to replace. Must not be- null.
- value- The string to be scanned for property references. May be- null.
- Returns:
- the original string with the properties replaced, or
         nullif the original string isnull.
- Throws:
- BuildException- if the string contains an opening- ${without a closing- }
- Since:
- 1.5
 
- 
replaceProperties@Deprecated public static String replaceProperties(Project project, String value, Hashtable<String, Object> keys) throws BuildExceptionDeprecated.since 1.6.x. Use PropertyHelper.Replaces${xxx}style constructions in the given value with the string value of the corresponding data types.- Parameters:
- project- The container project. This is used solely for logging purposes. Must not be- null.
- value- The string to be scanned for property references. May be- null, in which case this method returns immediately with no effect.
- keys- Mapping (String to Object) of property names to their values. Must not be- null.
- Returns:
- the original string with the properties replaced, or
         nullif the original string isnull.
- Throws:
- BuildException- if the string contains an opening- ${without a closing- }
 
- 
parsePropertyString@Deprecated public static void parsePropertyString(String value, Vector<String> fragments, Vector<String> propertyRefs) throws BuildException Deprecated.since 1.6.x. Use PropertyHelper.Parses a string containing${xxx}style property references into two lists. The first list is a collection of text fragments, while the other is a set of string property names.nullentries in the first list indicate a property reference from the second list.As of Ant 1.8.0 this method is never invoked by any code inside of Ant itself. - Parameters:
- value- Text to parse. Must not be- null.
- fragments- List to add text fragments to. Must not be- null.
- propertyRefs- List to add property names to. Must not be- null.
- Throws:
- BuildException- if the string contains an opening- ${without a closing- }
 
- 
genComponentNameMap a namespaced {uri,name} to an internal string format. For BC purposes the names from the ant core uri will be mapped to "name", other names will be mapped to uri + ":" + name.- Parameters:
- uri- The namespace URI
- name- The localname
- Returns:
- The stringified form of the ns name
 
- 
extractUriFromComponentName
- 
extractNameFromComponentName
- 
nsToComponentName
- 
addLocationToBuildExceptionAdd location to build exception.- Parameters:
- ex- the build exception, if the build exception does not include
- newLocation- the location of the calling task (may be null)
- Returns:
- a new build exception based in the build exception with location set to newLocation. If the original exception did not have a location, just return the build exception
 
- 
canParseAntlibDescriptorWhether this instance of ProjectHelper can parse an Antlib descriptor given by the URL and return its content as an UnknownElement ready to be turned into an Antlib task.This method should not try to parse the content of the descriptor, the URL is only given as an argument to allow subclasses to decide whether they can support a given URL scheme or not. Subclasses that return true in this method must also override parseAntlibDescriptor.This implementation returns false. - Parameters:
- r- Resource
- Returns:
- boolean
- Since:
- Ant 1.8.0
 
- 
parseAntlibDescriptorParse the given URL as an antlib descriptor and return the content as something that can be turned into an Antlib task.- Parameters:
- containingProject- Project
- source- Resource
- Returns:
- UnknownElement
- Since:
- ant 1.8.0
 
- 
canParseBuildFileCheck if the helper supports the kind of file. Some basic check on the extension's file should be done here.- Parameters:
- buildFile- the file expected to be parsed (never- null)
- Returns:
- true if the helper supports it
- Since:
- Ant 1.8.0
 
- 
getDefaultBuildFileThe file name of the build script to be parsed if none specified on the command line- Returns:
- the name of the default file (never null)
- Since:
- Ant 1.8.0
 
- 
resolveExtensionOfAttributesCheck extensionStack and inject all targets having extensionOf attributes into extensionPoint.This method allow you to defer injection and have a powerful control of extensionPoint wiring. This should be invoked by each concrete implementation of ProjectHelper when the root "buildfile" and all imported/included buildfile are loaded. - Parameters:
- project- The project containing the target. Must not be- null.
- Throws:
- BuildException- if OnMissingExtensionPoint.FAIL and extensionPoint does not exist
- Since:
- 1.9
- See Also:
 
 
-