|
JDOM2 0.0.2-BETA |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jdom2.Attribute
public class Attribute
An XML attribute. Methods allow the user to obtain the value of the attribute as well as namespace and type information.
| Field Summary | |
|---|---|
static AttributeType |
CDATA_TYPE
|
static AttributeType |
ENTITIES_TYPE
|
static AttributeType |
ENTITY_TYPE
|
static AttributeType |
ENUMERATED_TYPE
|
static AttributeType |
ID_TYPE
|
static AttributeType |
IDREF_TYPE
|
static AttributeType |
IDREFS_TYPE
|
protected java.lang.String |
name
The local name of the Attribute |
protected Namespace |
namespace
The of the Attribute |
static AttributeType |
NMTOKEN_TYPE
|
static AttributeType |
NMTOKENS_TYPE
|
static AttributeType |
NOTATION_TYPE
|
protected Element |
parent
The parent to which this Attribute belongs. |
protected AttributeType |
type
The type of the Attribute |
static AttributeType |
UNDECLARED_TYPE
|
protected java.lang.String |
value
The value of the Attribute |
| Constructor Summary | |
|---|---|
protected |
Attribute()
Default, no-args constructor for implementations to use if needed. |
|
Attribute(java.lang.String name,
java.lang.String value)
This will create a new Attribute with the
specified (local) name and value, and does not place
the attribute in a . |
|
Attribute(java.lang.String name,
java.lang.String value,
AttributeType type)
This will create a new Attribute with the
specified (local) name, value and type, and does not place
the attribute in a . |
|
Attribute(java.lang.String name,
java.lang.String value,
AttributeType type,
Namespace namespace)
This will create a new Attribute with the
specified (local) name, value, and type, and in the provided
. |
|
Attribute(java.lang.String name,
java.lang.String value,
int type)
Deprecated. Use Attribute(String, String, AttributeType) |
|
Attribute(java.lang.String name,
java.lang.String value,
int type,
Namespace namespace)
Deprecated. Use Constructor with AttributeType type, not int type. |
|
Attribute(java.lang.String name,
java.lang.String value,
Namespace namespace)
This will create a new Attribute with the
specified (local) name and value, and in the provided
. |
| Method Summary | |
|---|---|
Attribute |
clone()
This convenience method simply deals with the irritating CloneNotSupportedException, and wraps it in IllegalStateException. |
Attribute |
detach()
Detach this Attribute from its parent. |
AttributeType |
getAttributeType()
This will return the actual declared type of this Attribute. |
boolean |
getBooleanValue()
This gets the effective boolean value of the attribute, or throws a if a conversion can't be
performed. |
Document |
getDocument()
Get this Attribute's Document. |
double |
getDoubleValue()
This gets the value of the attribute, in double form, and if no conversion
can occur, throws a
|
float |
getFloatValue()
This gets the value of the attribute, in float form, and if no conversion
can occur, throws a
|
int |
getIntValue()
This gets the value of the attribute, in int form, and if no conversion
can occur, throws a
|
long |
getLongValue()
This gets the value of the attribute, in long form, and if no conversion
can occur, throws a
|
java.lang.String |
getName()
This will retrieve the local name of the Attribute. |
Namespace |
getNamespace()
This will return this Attribute's
. |
java.lang.String |
getNamespacePrefix()
This will retrieve the namespace prefix of the Attribute. |
java.util.List<Namespace> |
getNamespacesInherited()
Obtain a list of all namespaces that are in scope for this content, but were not introduced by this content. |
java.util.List<Namespace> |
getNamespacesInScope()
Get the namespaces that are in-scope on this Attribute. |
java.util.List<Namespace> |
getNamespacesIntroduced()
Obtain a list of all namespaces that are introduced to the XML tree by this node. |
java.lang.String |
getNamespaceURI()
This returns the URI mapped to this Attribute's
prefix. |
Element |
getParent()
This will return the parent of this Attribute. |
java.lang.String |
getQualifiedName()
This will retrieve the qualified name of the Attribute. |
java.lang.String |
getValue()
This will return the actual textual value of this Attribute. |
Attribute |
setAttributeType(AttributeType type)
This will set the type of the Attribute. |
Attribute |
setAttributeType(int type)
Deprecated. use setAttributeType(AttributeType) |
Attribute |
setName(java.lang.String name)
This sets the local name of the Attribute. |
Attribute |
setNamespace(Namespace namespace)
This sets this Attribute's . |
protected Attribute |
setParent(Element parent)
Set this Attribute's parent. |
Attribute |
setValue(java.lang.String value)
This will set the value of the Attribute. |
java.lang.String |
toString()
This returns a String representation of the
Attribute, suitable for debugging. |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final AttributeType UNDECLARED_TYPE
AttributeType.UNDECLAREDpublic static final AttributeType CDATA_TYPE
AttributeType.CDATApublic static final AttributeType ID_TYPE
AttributeType.IDpublic static final AttributeType IDREF_TYPE
AttributeType.IDREFpublic static final AttributeType IDREFS_TYPE
AttributeType.IDREFSpublic static final AttributeType ENTITY_TYPE
AttributeType.ENTITYpublic static final AttributeType ENTITIES_TYPE
AttributeType.ENTITIESpublic static final AttributeType NMTOKEN_TYPE
AttributeType.NMTOKENpublic static final AttributeType NMTOKENS_TYPE
AttributeType.NMTOKENSpublic static final AttributeType NOTATION_TYPE
AttributeType.NOTATIONpublic static final AttributeType ENUMERATED_TYPE
AttributeType.ENUMERATIONprotected java.lang.String name
Attribute
protected Namespace namespace
Namespace of the Attribute
protected java.lang.String value
Attribute
protected AttributeType type
Attribute
protected transient Element parent
setParent(Element)
| Constructor Detail |
|---|
protected Attribute()
public Attribute(java.lang.String name,
java.lang.String value,
Namespace namespace)
Attribute with the
specified (local) name and value, and in the provided
Namespace.
name - String name of Attribute.value - String value for new attribute.namespace - Namespace namespace for new attribute.
IllegalNameException - if the given name is illegal as an
attribute name or if if the new namespace is the default
namespace. Attributes cannot be in a default namespace.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)).
@Deprecated
public Attribute(java.lang.String name,
java.lang.String value,
int type,
Namespace namespace)
Attribute with the
specified (local) name, value, and type, and in the provided
Namespace.
name - String name of Attribute.value - String value for new attribute.type - int type for new attribute.namespace - Namespace namespace for new attribute.
IllegalNameException - if the given name is illegal as an
attribute name or if if the new namespace is the default
namespace. Attributes cannot be in a default namespace.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)) or
if the given attribute type is not one of the
supported types.
public Attribute(java.lang.String name,
java.lang.String value,
AttributeType type,
Namespace namespace)
Attribute with the
specified (local) name, value, and type, and in the provided
Namespace.
name - String name of Attribute.value - String value for new attribute.type - int type for new attribute.namespace - Namespace namespace for new attribute.
IllegalNameException - if the given name is illegal as an
attribute name or if if the new namespace is the default
namespace. Attributes cannot be in a default namespace.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)) or
if the given attribute type is not one of the
supported types.
public Attribute(java.lang.String name,
java.lang.String value)
Attribute with the
specified (local) name and value, and does not place
the attribute in a Namespace.
Note: This actually explicitly puts the
Attribute in the "empty" Namespace
().
Namespace.NO_NAMESPACE
name - String name of Attribute.value - String value for new attribute.
IllegalNameException - if the given name is illegal as an
attribute name.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)).
public Attribute(java.lang.String name,
java.lang.String value,
AttributeType type)
Attribute with the
specified (local) name, value and type, and does not place
the attribute in a Namespace.
Note: This actually explicitly puts the
Attribute in the "empty" Namespace
().
Namespace.NO_NAMESPACE
name - String name of Attribute.value - String value for new attribute.type - int type for new attribute.
IllegalNameException - if the given name is illegal as an
attribute name.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)) or
if the given attribute type is not one of the
supported types.
@Deprecated
public Attribute(java.lang.String name,
java.lang.String value,
int type)
Attribute(String, String, AttributeType)
Attribute with the
specified (local) name, value and type, and does not place
the attribute in a Namespace.
Note: This actually explicitly puts the
Attribute in the "empty" Namespace
().
Namespace.NO_NAMESPACE
name - String name of Attribute.value - String value for new attribute.type - int type for new attribute.
IllegalNameException - if the given name is illegal as an
attribute name.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)) or
if the given attribute type is not one of the
supported types.| Method Detail |
|---|
public Element getParent()
Attribute.
If there is no parent, then this returns null.
Use return-type covariance to override Content's getParent() method
to return an Element, not just a Parent
Attributepublic Document getDocument()
public java.lang.String getName()
Attribute. For any XML attribute
which appears as
[namespacePrefix]:[attributeName],
the local name of the attribute would be
[attributeName]. When the attribute
has no namespace, the local name is simply the attribute
name.
To obtain the namespace prefix for this
attribute, the
method should be used.
getNamespacePrefix()
String - name of this attribute,
without any namespace prefix.public Attribute setName(java.lang.String name)
Attribute.
name - the new local name to set
Attribute - the attribute modified.
IllegalNameException - if the given name is illegal as an
attribute name.public java.lang.String getQualifiedName()
Attribute.
For any XML attribute whose name is
[namespacePrefix]:[elementName],
the qualified name of the attribute would be
everything (both namespace prefix and
element name). When the attribute has no
namespace, the qualified name is simply the attribute's
local name.
To obtain the local name of the attribute, the
method should be used.
getName()
To obtain the namespace prefix for this attribute,
the
method should be used.
getNamespacePrefix()
String - full name for this element.public java.lang.String getNamespacePrefix()
Attribute. For any XML attribute
which appears as
[namespacePrefix]:[attributeName],
the namespace prefix of the attribute would be
[namespacePrefix]. When the attribute
has no namespace, an empty String is returned.
String - namespace prefix of this
attribute.public java.lang.String getNamespaceURI()
Attribute's
prefix. If no mapping is found, an empty String is
returned.
String - namespace URI for this Attribute.public Namespace getNamespace()
Attribute's
Namespace.
Namespace - Namespace object for this Attributepublic Attribute setNamespace(Namespace namespace)
Attribute's Namespace.
If the provided namespace is null, the attribute will have no namespace.
The namespace must have a prefix.
namespace - the new namespace
Element - the element modified.
IllegalNameException - if the new namespace is the default
namespace. Attributes cannot be in a default namespace.public java.lang.String getValue()
Attribute. This will include all text
within the quotation marks.
String - value for this attribute.public Attribute setValue(java.lang.String value)
Attribute.
value - String value for the attribute.
Attribute - this Attribute modified.
IllegalDataException - if the given attribute value is
illegal character data (as determined by
Verifier.checkCharacterData(java.lang.String)).public AttributeType getAttributeType()
Attribute.
int - type for this attribute.public Attribute setAttributeType(AttributeType type)
Attribute.
type - int type for the attribute.
Attribute - this Attribute modified.
IllegalDataException - if the given attribute type is
not one of the supported types.@Deprecated public Attribute setAttributeType(int type)
setAttributeType(AttributeType)
Attribute.
type - int type for the attribute.
Attribute - this Attribute modified.
IllegalDataException - if the given attribute type is
not one of the supported types.public java.lang.String toString()
String representation of the
Attribute, suitable for debugging.
toString in class java.lang.ObjectString - information about the
Attributepublic Attribute clone()
Subclasses of this should still call super.clone() in their clone method.
Additionally, when you use the concept of 'co-variant return values' you create 'bridge' methods. By way of example, because we change the return type of clone() from Object to CloneBase, Java is forced to put in a 'bridge' method that has an Object return type, even though we never actually call it.
This has an impact on the code coverage tool Cobertura, which reports that there is missed code (and there is, the bridge method). It reports it as being '0' calls to the 'class' line (the class line is marked red).
By making this CloneBase code do the first level of co-variant return, it is this class which is victim of the Cobertura reporting, not the multiple subclasses (like Attribute, Document, Content, etc.).
public Attribute detach()
protected Attribute setParent(Element parent)
parent - The parent to set
public int getIntValue()
throws DataConversionException
int form, and if no conversion
can occur, throws a
DataConversionException
int value of attribute.
DataConversionException - when conversion fails.
public long getLongValue()
throws DataConversionException
long form, and if no conversion
can occur, throws a
DataConversionException
long value of attribute.
DataConversionException - when conversion fails.
public float getFloatValue()
throws DataConversionException
float form, and if no conversion
can occur, throws a
DataConversionException
float value of attribute.
DataConversionException - when conversion fails.
public double getDoubleValue()
throws DataConversionException
double form, and if no conversion
can occur, throws a
DataConversionException
double value of attribute.
DataConversionException - when conversion fails.
public boolean getBooleanValue()
throws DataConversionException
DataConversionException if a conversion can't be
performed. True values are: "true", "on", "1", and "yes". False
values are: "false", "off", "0", and "no". Values are trimmed before
comparison. Values other than those listed here throw the exception.
boolean value of attribute.
DataConversionException - when conversion fails.public java.util.List<Namespace> getNamespacesInScope()
Attribute has peculiarities that affect the in-scope Namespaces because there are conditions in which the Attribute's scope is different to its parent Element's scope. Specifically, if the parent Element is in a 'default' Namespace that is not the empty Namespace (e.g. xmlns="someurl") and this Attribute is also in the default Namespace (has no prefix - but for Attributes that means the Namespace URL is ""), then this Attribute has a different namespace scope from it's parent Element because it does not include the 'someurl' Namespace.
In the above conditions (no-prefix Attribute in an Element with a
non-empty no-prefix Namespace) this Attribute effectively re-binds the ""
prefix to the "" URL, thus the Attribute 'introduces' the Namespace.
It follows then that the getNamespacesIntroduced() will return a list
with the single member Namespace.NO_NAMESPACE.
Note that the Attribute's Namespace will always be reported first.
Description copied from
NamespaceAware.getNamespacesInScope():
Obtain a list of all namespaces that are in scope for the current content.
The contents of this list will always be the combination of getNamespacesIntroduced() and getNamespacesInherited().
See NamespaceAware documentation for details on what the order of the
Namespaces will be in the returned list.
getNamespacesInScope in interface NamespaceAwarepublic java.util.List<Namespace> getNamespacesIntroduced()
NamespaceAwareThe contents of this list will always be a subset (but in the same order) of getNamespacesInScope(), and will never intersect getNamspacesInherited()
getNamespacesIntroduced in interface NamespaceAwarepublic java.util.List<Namespace> getNamespacesInherited()
NamespaceAwareThe contents of this list will always be a subset (but in the same order) of getNamespacesInScope(), and will never intersect getNamspacesIntroduced()
getNamespacesInherited in interface NamespaceAware
|
JDOM2 0.0.2-BETA |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||