org.thymeleaf.dom
Class Element

Object
  extended by org.thymeleaf.dom.Node
      extended by org.thymeleaf.dom.NestableNode
          extended by org.thymeleaf.dom.Element
All Implemented Interfaces:
java.io.Serializable

public final class Element
extends NestableNode

An Element node in a Thymeleaf DOM tree. In XML-based templates, Elements normally correspond to tags.

Elements are nestable nodes, and therefore have children. Besides, they have a sequence of attributes, each of them with a value. Attributes are modeled by means of the Attribute class.

Since:
2.0.0
Author:
Daniel Fernández
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.thymeleaf.dom.Node
NODE_PROPERTY_XML_ENCODING, NODE_PROPERTY_XML_STANDALONE, NODE_PROPERTY_XML_VERSION
 
Constructor Summary
Element(String name)
           
Element(String name, String documentName)
           
Element(String name, String documentName, Integer lineNumber)
           
 
Method Summary
 void clearAttributes()
           Clears all the attributes of the element.
 Element cloneElementNodeWithNewName(NestableNode newParent, String newElementName, boolean cloneProcessors)
           Clones this element node, setting it a new name in the process.
 Attribute getAttributeFromNormalizedName(String normalizedAttributeName)
           Returns an attribute, if it exists (null if not).
 java.util.Map<String,Attribute> getAttributeMap()
           Returns a map with all the names (normalized) and values of the element attributes.
 String getAttributeOriginalNameFromNormalizedName(String normalizedAttributeName)
           Returns the original name of an attribute from its normalized name.
 String getAttributeValue(String attributeName)
           Returns the value of an attribute from its attribute name, without needing this name to be normalized (because the specified name will be normalized before performing the comparison).
 String getAttributeValueFromNormalizedName(String normalizedAttributeName)
           Returns the value of an attribute from its normalized name.
 String getNormalizedName()
           Returns the normalized name of the element.
 String getNormalizedPrefix()
           Returns the normalized prefix of this element (part of its name), if it exists, or null if the element is unprefixed.
 String getOriginalName()
           Returns the original name of the element.
 String getUnprefixedNormalizedName()
           Returns the normalized version of the element name, without its prefix (if it has one).
 boolean hasAttribute(String attributeName)
           Returns whether an attribute exists in the element or not.
 boolean hasAttributes()
           Returns whether this element has any attributes or not.
 boolean hasNormalizedAttribute(String normalizedAttributeName)
           Returns whether an attribute exists in the element or not.
 boolean hasPrefix()
           Returns whether the element name has a prefix or not.
 boolean isMinimizableIfWeb()
           Returns whether this element is minimizable when performing XHTML or HTML5 output.
 int numAttributes()
           Returns the number of attributes contained in this element.
 void removeAttribute(String attributeName)
           Removes a specific attribute from the element.
 void setAttribute(String name, String value)
           Establishes a new value for an element attribute.
 void setAttributes(java.util.Map<String,String> newAttributes)
           Establishes the value for several attributes at a time.
 String[] unsafeGetAttributeNormalizedNames()
           Returns the inner array used for storing the normalized names of all the existing attributes.
 Attribute[] unsafeGetAttributes()
           Returns the inner array used for storing the element attributes.
 
Methods inherited from class org.thymeleaf.dom.NestableNode
addChild, clearChildren, extractChild, getChildren, getElementChildren, getFirstChild, getFirstElementChild, hasChildren, insertAfter, insertBefore, insertChild, moveAllChildren, numChildren, removeChild, removeChild, setChildren, unsafeGetChildrenNodeArray, visit
 
Methods inherited from class org.thymeleaf.dom.Node
applyDialectPrefix, cloneNode, getDocumentName, getLineNumber, getNodeLocalVariableNames, getNodeProperty, getNodePropertyNames, getParent, getRecomputeProcessorsAfterEachExecution, getRecomputeProcessorsImmediately, hasNodeLocalVariables, hasNodeProperty, hasParent, isSkippable, normalizeName, setAllNodeLocalVariables, setNodeLocalVariable, setNodeProperty, setParent, setRecomputeProcessorsAfterEachExecution, setRecomputeProcessorsImmediately, setSkippable, unsafeGetNodeLocalVariables, unsafeGetNodeProperties
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Element

public Element(String name)

Element

public Element(String name,
               String documentName)

Element

public Element(String name,
               String documentName,
               Integer lineNumber)
Method Detail

getOriginalName

public String getOriginalName()

Returns the original name of the element. Given the fact that the engine works using the normalized versions of element names (in order to be case-insensitive), it is necessary to make a distinction between the 'original' name of an element (as it is written in the template file) and its 'normalized' name.

If the element name has a prefix, this 'original name' includes such prefix.

Returns:
the original name of the element.

getNormalizedName

public String getNormalizedName()

Returns the normalized name of the element. Element names are normalized by means of the Node.normalizeName(String) method so that the engine can work in a case-insensitive way.

If the element name has a prefix, this 'normalized name' includes such prefix.

Returns:
the normalized name of the element.

getNormalizedPrefix

public String getNormalizedPrefix()

Returns the normalized prefix of this element (part of its name), if it exists, or null if the element is unprefixed.

Prefixes are normalized in the same way as element names, using the Node.normalizeName(String) method.

Returns:
the normalized prefix.

getUnprefixedNormalizedName

public String getUnprefixedNormalizedName()

Returns the normalized version of the element name, without its prefix (if it has one).

Returns:
the unprefixed normalized name.

hasPrefix

public boolean hasPrefix()

Returns whether the element name has a prefix or not.

Returns:
true if the element name has a prefix, false if not.

isMinimizableIfWeb

public boolean isMinimizableIfWeb()

Returns whether this element is minimizable when performing XHTML or HTML5 output.

Minimizing tags means writing them as <tag/> instead of <tag></tag> when they have no body. XML allows this for every tag, bug the the XHTML/HTML5 specifications do not allow minimizing most of the tags (for example, <div>, <p>, <textarea>, etc cannot be minimized).

This flag precomputes whether the tag can be minimized or not when written as XHTML or HTML5.

Returns:
true if the tag is minimizable in web-output scenarios, false if not.

hasAttributes

public boolean hasAttributes()

Returns whether this element has any attributes or not.

Returns:
true if this element has attributes, false if not.

numAttributes

public int numAttributes()

Returns the number of attributes contained in this element.

Returns:
the number of attributes.

hasAttribute

public boolean hasAttribute(String attributeName)

Returns whether an attribute exists in the element or not. The specified name does not have to be normalized, because a normalization operation will be performed before comparing.

Parameters:
attributeName - the name of the attribute to be checked.
Returns:
true if the attribute exists, false if not.

hasNormalizedAttribute

public boolean hasNormalizedAttribute(String normalizedAttributeName)

Returns whether an attribute exists in the element or not. The specified name has to be already normalized because no normalization operations will be performed before comparing.

Parameters:
normalizedAttributeName - the name of the attribute to be checked, already normalized.
Returns:
true if the attribute exists, false if not.

getAttributeFromNormalizedName

public Attribute getAttributeFromNormalizedName(String normalizedAttributeName)

Returns an attribute, if it exists (null if not). The specified name has to be already normalized because no normalization operations will be performed before comparing.

Parameters:
normalizedAttributeName - the name of the attribute to retrieve.
Returns:
the attribute.

unsafeGetAttributeNormalizedNames

public String[] unsafeGetAttributeNormalizedNames()

Returns the inner array used for storing the normalized names of all the existing attributes. This method is unsafe and for internal use, and should not be called directly. Modifications to this array could produce severe DOM inconsistencies.

Returns:
the unsafe array of normalized names.

unsafeGetAttributes

public Attribute[] unsafeGetAttributes()

Returns the inner array used for storing the element attributes. This method is unsafe and for internal use, and should not be called directly. Modifications to this array could produce severe DOM inconsistencies.

Returns:
the array of attributes.

getAttributeOriginalNameFromNormalizedName

public String getAttributeOriginalNameFromNormalizedName(String normalizedAttributeName)

Returns the original name of an attribute from its normalized name.

Parameters:
normalizedAttributeName - the normalized name of the attribute.
Returns:
the original attribute (as written in the template file).

getAttributeValueFromNormalizedName

public String getAttributeValueFromNormalizedName(String normalizedAttributeName)

Returns the value of an attribute from its normalized name.

Parameters:
normalizedAttributeName - the normalized name of the attribute.
Returns:
the valur of the attribute, or null if the attribute does not exist.

getAttributeValue

public String getAttributeValue(String attributeName)

Returns the value of an attribute from its attribute name, without needing this name to be normalized (because the specified name will be normalized before performing the comparison).

Parameters:
attributeName - the attribute name.
Returns:
the value of the attribute.

getAttributeMap

public java.util.Map<String,Attribute> getAttributeMap()

Returns a map with all the names (normalized) and values of the element attributes.

The map object returned by this method is a new instance, created ad-hoc with each method call.

Returns:
the map of all current attributes in the element.

setAttribute

public void setAttribute(String name,
                         String value)

Establishes a new value for an element attribute. If the attribute already exists, its value is substituted by the one specified.

Parameters:
name - the name of the attribute.
value - the value of the attribute.

setAttributes

public void setAttributes(java.util.Map<String,String> newAttributes)

Establishes the value for several attributes at a time. If any of the specified attributes already exists, their values will be substituted by the one specified in the parameter map.

Parameters:
newAttributes - the new attributes to be established.

clearAttributes

public void clearAttributes()

Clears all the attributes of the element.


removeAttribute

public void removeAttribute(String attributeName)

Removes a specific attribute from the element. The specified name does not have to be normalized (it will be normalized before performing the removal operation).

Parameters:
attributeName - the name of tha attribute to remove (does not have to be normalized).

cloneElementNodeWithNewName

public final Element cloneElementNodeWithNewName(NestableNode newParent,
                                                 String newElementName,
                                                 boolean cloneProcessors)

Clones this element node, setting it a new name in the process.

Parameters:
newParent - the new parent node to be assigned to the cloned element.
newElementName - the new element name
cloneProcessors - whether the precomputed list of processors should be cloned too or not.
Returns:
the cloned element.


Copyright © 2012 The THYMELEAF team. All Rights Reserved.