Class XSLObject

  • Direct Known Subclasses:
    AttributeSet, CopyOf, EmptyXSLObject, Selection, TemplateRule, Variable, XSLCallTemplate, XSLIf, XSLImport, XSLNumber, XSLOtherwise, XSLOutput, XSLSort, XSLText, XSLTStylesheet

    public class XSLObject
    extends java.lang.Object
    This class represents an XSLObject in the style tree. It is the most basic of all XSLObjects and contains common functionality across different XSLObjects. I originally had this implemented as an extended W3C DOM XML Element, but due to problems with extending different implementations, and to make it more cross-DOM accessible I've chosen an this approach. Since this once was a DOM Element, you will notice many of the methods are very DOM-like.
    Version:
    $Revision: 3934 $ $Date: 2003-10-02 11:58:30 +0200 (Thu, 02 Oct 2003) $
    Author:
    Keith Visco
    • Constructor Summary

      Constructors 
      Constructor Description
      XSLObject​(short type)
      Creates an XSLObject using the specified type
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addNamespaceDecl​(java.lang.String prefix, java.lang.String namespace)
      Adds the Given namespace declaration to this XSLObject's set of namespace declarations
      boolean appendAction​(XSLObject xslObject)
      Appends the given XSLObject to this XSLObject's list of actions.
      void appendText​(char[] chars, int start, int length)
      Appends the text to this XSLObject.
      void appendText​(java.lang.String text)
      Appends the text to this XSLObject.
      ActionTemplate getActions()
      Returns the list of actions for this XSLObject
      java.lang.String getAttribute​(java.lang.String name)
      Returns the value of the attribute whose name is equal to the given name.
      org.xml.sax.AttributeList getAttributes()
      Returns the value of the specified attribute as an AttributeValueTemplate
      java.lang.String getNamespace()
      Returns this XSLObject's namespace URI.
      XSLObject getNearestAncestor​(short type)
      Returns the nearest ancestor of this XSLObject that is of the given type.
      static java.lang.String getNodeValue​(org.w3c.dom.Node node)
      Returns the String value of a DOM Node.
      XSLTStylesheet getStylesheet()
      Returns the XSLStylesheet which contains this XSLObject
      static java.lang.String getText​(org.w3c.dom.Element element)
      Retrieves the text of an Element
      short getType()
      Returns the type of XSLObject this Object represents
      static short getTypeFromName​(java.lang.String name)
      Returns the type of XSL Object that has the given name
      java.lang.String getTypeName()
      Returns the name of this XSLObject
      java.lang.String resolveNamespace​(java.lang.String prefix)  
      void setAllowActions​(boolean allow)  
      void setAttribute​(java.lang.String name, java.lang.String value)
      Sets the attribute with the given name to the given value.
      void setNamespace​(java.lang.String uri)
      Sets this XSLObject's namespace URI
      void setTypeName​(java.lang.String name)  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • XSLObject

        public XSLObject​(short type)
        Creates an XSLObject using the specified type
        Parameters:
        parentStylesheet - the owner XSLStylesheet of the new Element
        type - the type of XSLObject that the new instance represents
    • Method Detail

      • addNamespaceDecl

        public void addNamespaceDecl​(java.lang.String prefix,
                                     java.lang.String namespace)
        Adds the Given namespace declaration to this XSLObject's set of namespace declarations
      • appendAction

        public boolean appendAction​(XSLObject xslObject)
        Appends the given XSLObject to this XSLObject's list of actions.
        Parameters:
        xslObject - the XSLObject to add to this XSLObject's list of actions
        Returns:
        true if the given XSLObject has been added to this XSLObject otherwise false
      • appendText

        public void appendText​(java.lang.String text)
        Appends the text to this XSLObject. This is slightly more efficient than using appendAction(new XSLText(text)) if the last child is already an XSLText object. Otherwise there is no difference.
        Parameters:
        text - the text to append
      • appendText

        public void appendText​(char[] chars,
                               int start,
                               int length)
        Appends the text to this XSLObject. This is slightly more efficient than using appendAction(new XSLText(text)) if the last child is already an XSLText object. Otherwise there is no difference.
        Parameters:
        text - the text to append
      • getActions

        public ActionTemplate getActions()
        Returns the list of actions for this XSLObject
        Returns:
        the list of actions for this XSLObject
      • getAttribute

        public java.lang.String getAttribute​(java.lang.String name)
        Returns the value of the attribute whose name is equal to the given name.
        Returns:
        the value of the attribute whose name is equal to the given name or null if no attribute exist's with such a name.
      • getAttributes

        public org.xml.sax.AttributeList getAttributes()
        Returns the value of the specified attribute as an AttributeValueTemplate
        Returns:
        the value of the specified attribute as an AttributeValueTemplate
        Throws:
        XSLException - when the Attribute is not a valid AttrubueValueTemplate public AttributeValueTemplate getAttributeAsAVT(String name) throws XSLException { if (name == null) return null; String attValue = getAttribute(name); AttributeValueTemplate avt = null; if ((attValue != null) && (attValue.length() > 0)) { // look in cache first avt = (AttributeValueTemplate) avtCache.get(attValue); if (avt == null) { try { avt = new AttributeValueTemplate(attValue); // add to cache for performace // Do we need to clean cache? Yes if we are reusing // XSLObjects. No if not. I am currently not // reusing XSLObjects so I am not doing any house // cleaning. This could lead to memory problems if // XSLObjects are reused heavily. avtCache.put(attValue, avt); } catch(InvalidExprException iee) { throw new XSLException (XSLException.INVALID_ATTRIBUTE_VALUE_TEMPLATE, iee.getMessage()); } } } return avt; } //-- getAttributeAsAVT /** Returns the AttributeList for this XSLObject
      • getNamespace

        public java.lang.String getNamespace()
        Returns this XSLObject's namespace URI.
        Returns:
        the namespace URI or null if none exists.
      • getNearestAncestor

        public XSLObject getNearestAncestor​(short type)
        Returns the nearest ancestor of this XSLObject that is of the given type.
        Parameters:
        type - the type of ancestor to search for
        Returns:
        the nearest ancestor of this XSLObject that is of the given type.
      • getNodeValue

        public static java.lang.String getNodeValue​(org.w3c.dom.Node node)
        Returns the String value of a DOM Node.
        Returns:
        the String value of a DOM Node.
        See Also:
        Node
      • getStylesheet

        public XSLTStylesheet getStylesheet()
        Returns the XSLStylesheet which contains this XSLObject
        Returns:
        the XSLStylesheet which contains this XSLObject
      • getText

        public static java.lang.String getText​(org.w3c.dom.Element element)
        Retrieves the text of an Element
        Returns:
        the text of the given Element
        See Also:
        Element
      • getType

        public final short getType()
        Returns the type of XSLObject this Object represents
        Returns:
        the type of XSLObject that this Object represents
      • getTypeFromName

        public static short getTypeFromName​(java.lang.String name)
        Returns the type of XSL Object that has the given name
        Parameters:
        name - the name the XSLObject
        Returns:
        the type of XSL Object that has the given name
      • getTypeName

        public java.lang.String getTypeName()
        Returns the name of this XSLObject
        Returns:
        the name of this XSLObject
      • resolveNamespace

        public java.lang.String resolveNamespace​(java.lang.String prefix)
      • setAllowActions

        public void setAllowActions​(boolean allow)
      • setTypeName

        public void setTypeName​(java.lang.String name)
      • setAttribute

        public void setAttribute​(java.lang.String name,
                                 java.lang.String value)
                          throws XSLException
        Sets the attribute with the given name to the given value.
        Parameters:
        name - the name of the attribute to set
        value - the value to set the attribute to
        Throws:
        XSLException - if this XSLObject does not allow attributes with the given name, or if the attribute is read only
      • setNamespace

        public void setNamespace​(java.lang.String uri)
        Sets this XSLObject's namespace URI
        Parameters:
        uri - the namespace URI