Package org.apache.xml.security.utils
Class ElementProxy
- java.lang.Object
-
- org.apache.xml.security.utils.ElementProxy
-
- Direct Known Subclasses:
EncryptionElementProxy
,InclusiveNamespaces
,Signature11ElementProxy
,SignatureElementProxy
,XPath2FilterContainer
,XPath2FilterContainer04
,XPathFilterCHGPContainer
public abstract class ElementProxy extends java.lang.Object
This is the base class to all Objects which have a direct 1:1 mapping to an Element in a particular namespace.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
baseURI
Field baseURIprotected static org.slf4j.Logger
LOG
private static java.util.Map<java.lang.String,java.lang.String>
prefixMappings
Field prefixMappingsprivate org.w3c.dom.Document
wrappedDoc
Field docprivate org.w3c.dom.Element
wrappedElement
What XML element does this ElementProxy instance wrap?
-
Constructor Summary
Constructors Constructor Description ElementProxy()
Constructor ElementProxyElementProxy(org.w3c.dom.Document doc)
Constructor ElementProxyElementProxy(org.w3c.dom.Element element, java.lang.String baseURI)
Constructor ElementProxy
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addBase64Element(byte[] bytes, java.lang.String localname)
Method addBase64Elementvoid
addBase64Text(byte[] bytes)
Method addBase64Textvoid
addBigIntegerElement(java.math.BigInteger bi, java.lang.String localname)
Method addBigIntegerElementprotected void
addReturnToSelf()
void
addText(java.lang.String text)
Method addTextvoid
addTextElement(java.lang.String text, java.lang.String localname)
Method addTextElementprotected void
appendOther(org.w3c.dom.Element parent, org.w3c.dom.Node toAppend)
protected void
appendSelf(ElementProxy toAppend)
protected void
appendSelf(org.w3c.dom.Node toAppend)
static org.w3c.dom.Element
createElementForFamily(org.w3c.dom.Document doc, java.lang.String namespace, java.lang.String localName)
This method creates an Element in a given namespace with a given localname.protected org.w3c.dom.Element
createElementForFamilyLocal(java.lang.String namespace, java.lang.String localName)
protected org.w3c.dom.Text
createText(java.lang.String text)
abstract java.lang.String
getBaseLocalName()
Returns the localname of the Elements of the sub-class.abstract java.lang.String
getBaseNamespace()
Returns the namespace of the Elements of the sub-class.java.lang.String
getBaseURI()
Method getBaseURIjava.math.BigInteger
getBigIntegerFromChildElement(java.lang.String localname, java.lang.String namespace)
Method getValbyte[]
getBytesFromTextChild()
Method getBytesFromTextChildstatic java.lang.String
getDefaultPrefix(java.lang.String namespace)
Method getDefaultPrefixorg.w3c.dom.Document
getDocument()
Method getDocumentorg.w3c.dom.Element
getElement()
Returns the Element which was constructed by the Object.org.w3c.dom.NodeList
getElementPlusReturns()
Returns the Element plus a leading and a trailing CarriageReturn Text node.protected org.w3c.dom.Node
getFirstChild()
protected java.lang.String
getLocalAttribute(java.lang.String attrName)
java.lang.String
getTextFromChildElement(java.lang.String localname, java.lang.String namespace)
Method getTextFromChildElementjava.lang.String
getTextFromTextChild()
Method getTextFromTextChild(package private) void
guaranteeThatElementInCorrectSpace()
Method guaranteeThatElementInCorrectSpaceint
length(java.lang.String namespace, java.lang.String localname)
Method lengthstatic void
registerDefaultPrefixes()
This method registers the default prefixes.static void
setDefaultPrefix(java.lang.String namespace, java.lang.String prefix)
Method setDefaultPrefixprotected void
setDocument(org.w3c.dom.Document doc)
Set a new value for the wrapped document that this object is a proxy for.protected void
setElement(org.w3c.dom.Element elem)
New value for the wrapped XML element that this object is a proxy for.void
setElement(org.w3c.dom.Element element, java.lang.String baseURI)
Method setElementprotected void
setLocalAttribute(java.lang.String attrName, java.lang.String value)
protected void
setLocalIdAttribute(java.lang.String attrName, java.lang.String value)
private static void
setNamespacePrefix(java.lang.String namespace, java.lang.String prefix)
void
setXPathNamespaceContext(java.lang.String prefix, java.lang.String uri)
Adds an xmlns: definition to the Element.
-
-
-
Field Detail
-
LOG
protected static final org.slf4j.Logger LOG
-
wrappedElement
private org.w3c.dom.Element wrappedElement
What XML element does this ElementProxy instance wrap?
-
baseURI
protected java.lang.String baseURI
Field baseURI
-
wrappedDoc
private org.w3c.dom.Document wrappedDoc
Field doc
-
prefixMappings
private static java.util.Map<java.lang.String,java.lang.String> prefixMappings
Field prefixMappings
-
-
Constructor Detail
-
ElementProxy
public ElementProxy()
Constructor ElementProxy
-
ElementProxy
public ElementProxy(org.w3c.dom.Document doc)
Constructor ElementProxy- Parameters:
doc
-
-
ElementProxy
public ElementProxy(org.w3c.dom.Element element, java.lang.String baseURI) throws XMLSecurityException
Constructor ElementProxy- Parameters:
element
-baseURI
-- Throws:
XMLSecurityException
-
-
Method Detail
-
getBaseNamespace
public abstract java.lang.String getBaseNamespace()
Returns the namespace of the Elements of the sub-class.- Returns:
- the namespace of the Elements of the sub-class.
-
getBaseLocalName
public abstract java.lang.String getBaseLocalName()
Returns the localname of the Elements of the sub-class.- Returns:
- the localname of the Elements of the sub-class.
-
createElementForFamilyLocal
protected org.w3c.dom.Element createElementForFamilyLocal(java.lang.String namespace, java.lang.String localName)
-
createElementForFamily
public static org.w3c.dom.Element createElementForFamily(org.w3c.dom.Document doc, java.lang.String namespace, java.lang.String localName)
This method creates an Element in a given namespace with a given localname. It uses thegetDefaultPrefix(java.lang.String)
method to decide whether a particular prefix is bound to that namespace. This method was refactored out of the constructor.- Parameters:
doc
-namespace
-localName
-- Returns:
- The element created.
-
setElement
public void setElement(org.w3c.dom.Element element, java.lang.String baseURI) throws XMLSecurityException
Method setElement- Parameters:
element
-baseURI
-- Throws:
XMLSecurityException
-
getElement
public final org.w3c.dom.Element getElement()
Returns the Element which was constructed by the Object.- Returns:
- the Element which was constructed by the Object.
-
getElementPlusReturns
public final org.w3c.dom.NodeList getElementPlusReturns()
Returns the Element plus a leading and a trailing CarriageReturn Text node.- Returns:
- the Element which was constructed by the Object.
-
createText
protected org.w3c.dom.Text createText(java.lang.String text)
-
getDocument
public org.w3c.dom.Document getDocument()
Method getDocument- Returns:
- the Document where this element is contained.
-
getBaseURI
public java.lang.String getBaseURI()
Method getBaseURI- Returns:
- the base uri of the namespace of this element
-
guaranteeThatElementInCorrectSpace
void guaranteeThatElementInCorrectSpace() throws XMLSecurityException
Method guaranteeThatElementInCorrectSpace- Throws:
XMLSecurityException
-
addBigIntegerElement
public void addBigIntegerElement(java.math.BigInteger bi, java.lang.String localname)
Method addBigIntegerElement- Parameters:
bi
-localname
-
-
addReturnToSelf
protected void addReturnToSelf()
-
addBase64Element
public void addBase64Element(byte[] bytes, java.lang.String localname)
Method addBase64Element- Parameters:
bytes
-localname
-
-
addTextElement
public void addTextElement(java.lang.String text, java.lang.String localname)
Method addTextElement- Parameters:
text
-localname
-
-
addBase64Text
public void addBase64Text(byte[] bytes)
Method addBase64Text- Parameters:
bytes
-
-
appendSelf
protected void appendSelf(ElementProxy toAppend)
-
appendSelf
protected void appendSelf(org.w3c.dom.Node toAppend)
-
appendOther
protected void appendOther(org.w3c.dom.Element parent, org.w3c.dom.Node toAppend)
-
addText
public void addText(java.lang.String text)
Method addText- Parameters:
text
-
-
getBigIntegerFromChildElement
public java.math.BigInteger getBigIntegerFromChildElement(java.lang.String localname, java.lang.String namespace)
Method getVal- Parameters:
localname
-namespace
-- Returns:
- The biginteger contained in the given element
-
getTextFromChildElement
public java.lang.String getTextFromChildElement(java.lang.String localname, java.lang.String namespace)
Method getTextFromChildElement- Parameters:
localname
-namespace
-- Returns:
- the Text of the textNode
-
getBytesFromTextChild
public byte[] getBytesFromTextChild() throws XMLSecurityException
Method getBytesFromTextChild- Returns:
- The base64 bytes from the text children of this element
- Throws:
XMLSecurityException
-
getTextFromTextChild
public java.lang.String getTextFromTextChild()
Method getTextFromTextChild- Returns:
- the Text obtained by concatenating all the text nodes of this element
-
length
public int length(java.lang.String namespace, java.lang.String localname)
Method length- Parameters:
namespace
-localname
-- Returns:
- the number of elements {namespace}:localname under this element
-
setXPathNamespaceContext
public void setXPathNamespaceContext(java.lang.String prefix, java.lang.String uri) throws XMLSecurityException
Adds an xmlns: definition to the Element. This can be called as follows:// set namespace with ds prefix xpathContainer.setXPathNamespaceContext("ds", "http://www.w3.org/2000/09/xmldsig#"); xpathContainer.setXPathNamespaceContext("xmlns:ds", "http://www.w3.org/2000/09/xmldsig#");
- Parameters:
prefix
-uri
-- Throws:
XMLSecurityException
-
setDefaultPrefix
public static void setDefaultPrefix(java.lang.String namespace, java.lang.String prefix) throws XMLSecurityException
Method setDefaultPrefix- Parameters:
namespace
-prefix
-- Throws:
XMLSecurityException
java.lang.SecurityException
- if a security manager is installed and the caller does not have permission to set the default prefix
-
setNamespacePrefix
private static void setNamespacePrefix(java.lang.String namespace, java.lang.String prefix) throws XMLSecurityException
- Throws:
XMLSecurityException
-
registerDefaultPrefixes
public static void registerDefaultPrefixes() throws XMLSecurityException
This method registers the default prefixes.- Throws:
XMLSecurityException
-
getDefaultPrefix
public static java.lang.String getDefaultPrefix(java.lang.String namespace)
Method getDefaultPrefix- Parameters:
namespace
-- Returns:
- the default prefix bind to this element.
-
setElement
protected void setElement(org.w3c.dom.Element elem)
New value for the wrapped XML element that this object is a proxy for.- Parameters:
elem
- New element- See Also:
getElement()
-
setDocument
protected void setDocument(org.w3c.dom.Document doc)
Set a new value for the wrapped document that this object is a proxy for.- Parameters:
doc
- New document object being wrapped.- See Also:
getDocument()
-
getLocalAttribute
protected java.lang.String getLocalAttribute(java.lang.String attrName)
-
setLocalAttribute
protected void setLocalAttribute(java.lang.String attrName, java.lang.String value)
-
setLocalIdAttribute
protected void setLocalIdAttribute(java.lang.String attrName, java.lang.String value)
-
getFirstChild
protected org.w3c.dom.Node getFirstChild()
-
-