org.apache.tools.ant

Class UnknownElement

public class UnknownElement extends Task

Wrapper class that holds all the information necessary to create a task or data type that did not exist when Ant started, or one which has had its definition updated to use a different implementation class.
Constructor Summary
UnknownElement(String elementName)
Creates an UnknownElement for the given element name.
Method Summary
voidaddChild(UnknownElement child)
Adds a child element to this element.
voidapplyPreSet(UnknownElement u)
This is used then the realobject of the UE is a PreSetDefinition.
voidconfigure(Object realObject)
Configure the given object from this UnknownElement
voidexecute()
Executes the real object if it's a task.
ListgetChildren()
protected StringgetComponentName()
StringgetNamespace()
Return the namespace of the XML element associated with this component.
protected BuildExceptiongetNotFoundException(String what, String elementName)
Returns a very verbose exception for when a task/data type cannot be found.
StringgetQName()
Return the qname of the XML element associated with this component.
ObjectgetRealThing()
Return the configured object
StringgetTag()
Returns the name of the XML element which generated this unknown element.
TaskgetTask()
Returns the task instance after it has been created and if it is a task.
StringgetTaskName()
Returns the name to use in logging messages.
RuntimeConfigurablegetWrapper()
Get the RuntimeConfigurable instance for this UnknownElement, containing the configuration information.
protected voidhandleChildren(Object parent, RuntimeConfigurable parentWrapper)
Creates child elements, creates children of the children (recursively), and sets attributes of the child elements.
protected voidhandleErrorFlush(String output)
Handles error output sent to System.err by this task or its real task.
protected voidhandleErrorOutput(String output)
Handles error output sent to System.err by this task or its real task.
protected voidhandleFlush(String output)
Handles output sent to System.out by this task or its real task.
protected inthandleInput(byte[] buffer, int offset, int length)
protected voidhandleOutput(String output)
Handles output sent to System.out by this task or its real task.
protected ObjectmakeObject(UnknownElement ue, RuntimeConfigurable w)
Creates a named task or data type.
protected TaskmakeTask(UnknownElement ue, RuntimeConfigurable w)
Creates a named task and configures it up to the init() stage.
voidmaybeConfigure()
Creates the real object instance and child elements, then configures the attributes and text of the real object.
voidsetNamespace(String namespace)
Set the namespace of the XML element associated with this component.
voidsetQName(String qname)
Set the namespace qname of the XML element.
booleansimilar(Object obj)
like contents equals, but ignores project

Constructor Detail

UnknownElement

public UnknownElement(String elementName)
Creates an UnknownElement for the given element name.

Parameters: elementName The name of the unknown element. Must not be null.

Method Detail

addChild

public void addChild(UnknownElement child)
Adds a child element to this element.

Parameters: child The child element to add. Must not be null.

applyPreSet

public void applyPreSet(UnknownElement u)
This is used then the realobject of the UE is a PreSetDefinition. This is also used when a presetdef is used on a presetdef The attributes, elements and text are applied to this UE.

Parameters: u an UnknownElement containing the attributes, elements and text

configure

public void configure(Object realObject)
Configure the given object from this UnknownElement

Parameters: realObject the real object this UnknownElement is representing.

execute

public void execute()
Executes the real object if it's a task. If it's not a task (e.g. a data type) then this method does nothing.

getChildren

public List getChildren()

Returns: the list of nested UnknownElements for this UnknownElement.

getComponentName

protected String getComponentName()

Returns: the component name - uses ProjectHelper#genComponentName()

getNamespace

public String getNamespace()
Return the namespace of the XML element associated with this component.

Returns: Namespace URI used in the xmlns declaration.

getNotFoundException

protected BuildException getNotFoundException(String what, String elementName)
Returns a very verbose exception for when a task/data type cannot be found.

Parameters: what The kind of thing being created. For example, when a task name could not be found, this would be "task". Should not be null. elementName The name of the element which could not be found. Should not be null.

Returns: a detailed description of what might have caused the problem.

getQName

public String getQName()
Return the qname of the XML element associated with this component.

Returns: namespace Qname used in the element declaration.

getRealThing

public Object getRealThing()
Return the configured object

Returns: the real thing whatever it is

Since: ant 1.6

getTag

public String getTag()
Returns the name of the XML element which generated this unknown element.

Returns: the name of the XML element which generated this unknown element.

getTask

public Task getTask()
Returns the task instance after it has been created and if it is a task.

Returns: a task instance or null if the real object is not a task.

getTaskName

public String getTaskName()
Returns the name to use in logging messages.

Returns: the name to use in logging messages.

getWrapper

public RuntimeConfigurable getWrapper()
Get the RuntimeConfigurable instance for this UnknownElement, containing the configuration information.

Returns: the configuration info.

handleChildren

protected void handleChildren(Object parent, RuntimeConfigurable parentWrapper)
Creates child elements, creates children of the children (recursively), and sets attributes of the child elements.

Parameters: parent The configured object for the parent. Must not be null. parentWrapper The wrapper containing child wrappers to be configured. Must not be null if there are any children.

Throws: BuildException if the children cannot be configured.

handleErrorFlush

protected void handleErrorFlush(String output)
Handles error output sent to System.err by this task or its real task.

Parameters: output The error output to log. Should not be null.

handleErrorOutput

protected void handleErrorOutput(String output)
Handles error output sent to System.err by this task or its real task.

Parameters: output The error output to log. Should not be null.

handleFlush

protected void handleFlush(String output)
Handles output sent to System.out by this task or its real task.

Parameters: output The output to log. Should not be null.

handleInput

protected int handleInput(byte[] buffer, int offset, int length)

Since: Ant 1.6

See Also: (byte[], int, int)

handleOutput

protected void handleOutput(String output)
Handles output sent to System.out by this task or its real task.

Parameters: output The output to log. Should not be null.

makeObject

protected Object makeObject(UnknownElement ue, RuntimeConfigurable w)
Creates a named task or data type. If the real object is a task, it is configured up to the init() stage.

Parameters: ue The unknown element to create the real object for. Must not be null. w Ignored in this implementation.

Returns: the task or data type represented by the given unknown element.

makeTask

protected Task makeTask(UnknownElement ue, RuntimeConfigurable w)
Creates a named task and configures it up to the init() stage.

Parameters: ue The UnknownElement to create the real task for. Must not be null. w Ignored.

Returns: the task specified by the given unknown element, or null if the task name is not recognised.

maybeConfigure

public void maybeConfigure()
Creates the real object instance and child elements, then configures the attributes and text of the real object. This unknown element is then replaced with the real object in the containing target's list of children.

Throws: BuildException if the configuration fails

setNamespace

public void setNamespace(String namespace)
Set the namespace of the XML element associated with this component. This method is typically called by the XML processor. If the namespace is "ant:current", the component helper is used to get the current antlib uri.

Parameters: namespace URI used in the xmlns declaration.

setQName

public void setQName(String qname)
Set the namespace qname of the XML element. This method is typically called by the XML processor.

Parameters: qname the qualified name of the element

similar

public boolean similar(Object obj)
like contents equals, but ignores project

Parameters: obj the object to check against

Returns: true if this unknownelement has the same contents the other

Copyright