Class PathQueryHandler

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
    Direct Known Subclasses:
    SavedQueryHandler, TemplateQueryHandler

    public class PathQueryHandler
    extends org.xml.sax.helpers.DefaultHandler
    Extension of DefaultHandler to handle parsing PathQuery objects
    Author:
    Mark Woodbridge, Kim Rutherford, Thomas Riley, Matthew Wakeling
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addModel​(Model m)  
      void characters​(char[] ch, int start, int length)
      void endElement​(java.lang.String uri, java.lang.String localName, java.lang.String qName)
      PathConstraint processConstraint​(PathQuery q, java.lang.String path, java.util.Map<java.lang.String,​java.lang.String> attrs, java.util.Collection<java.lang.String> values)
      Process a constraint from the xml attributes.
      protected void setOuterJoins​(PathQuery query, java.lang.String path)
      Given a path that may contain ':' characters to represent outer joins, find each : separated segment and set the status for that join to OUTER.
      void startElement​(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs)
      protected java.util.List<java.lang.String> toStrings​(java.util.List<java.lang.Object> list)
      Convert a List of Objects to a List of Strings using toString
      protected java.lang.String validateName​(java.lang.String name)
      Checks that the query has a name and that there's no name duplicates and appends a number to the name if there is.
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • constraintLogic

        protected java.lang.String constraintLogic
      • currentNodePath

        protected java.lang.String currentNodePath
      • version

        protected int version
      • ATTRIBUTE_TYPES

        public static final java.util.Set<java.lang.String> ATTRIBUTE_TYPES
        This is a list of String type descriptions that are attribute types
      • constraintPath

        protected java.lang.String constraintPath
      • constraintAttributes

        protected java.util.Map<java.lang.String,​java.lang.String> constraintAttributes
      • constraintValues

        protected java.util.Collection<java.lang.String> constraintValues
      • constraintCode

        protected java.lang.String constraintCode
    • Constructor Detail

      • PathQueryHandler

        public PathQueryHandler​(java.util.Map<java.lang.String,​PathQuery> queries,
                                int version)
        Constructor
        Parameters:
        queries - Map from query name to PathQuery
        version - the version of the xml, an attribute on the profile manager
      • PathQueryHandler

        public PathQueryHandler​(java.util.Map<java.lang.String,​PathQuery> queries,
                                int version,
                                Model model)
        Constructor.
        Parameters:
        queries - The accumulator.
        version - The path-query format version.
        model - A default model to use, in preference to the model retrieved by Model.getInstanceByName().
    • Method Detail

      • addModel

        public void addModel​(Model m)
        Parameters:
        m - The model to add.
      • startElement

        public void startElement​(java.lang.String uri,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attrs)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • processConstraint

        public PathConstraint processConstraint​(PathQuery q,
                                                java.lang.String path,
                                                java.util.Map<java.lang.String,​java.lang.String> attrs,
                                                java.util.Collection<java.lang.String> values)
                                         throws org.xml.sax.SAXException
        Process a constraint from the xml attributes.
        Parameters:
        q - the PathQuery, to enable creating Path objects
        path - the path of the constraint to create
        attrs - the XML attributes
        values - the enclosed values
        Returns:
        a PathConstraint object
        Throws:
        org.xml.sax.SAXException - if something is wrong
      • endElement

        public void endElement​(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.DefaultHandler
      • toStrings

        protected java.util.List<java.lang.String> toStrings​(java.util.List<java.lang.Object> list)
        Convert a List of Objects to a List of Strings using toString
        Parameters:
        list - the Object List
        Returns:
        the String list
      • validateName

        protected java.lang.String validateName​(java.lang.String name)
        Checks that the query has a name and that there's no name duplicates and appends a number to the name if there is.
        Parameters:
        name - the query name
        Returns:
        the validated query name
      • setOuterJoins

        protected void setOuterJoins​(PathQuery query,
                                     java.lang.String path)
        Given a path that may contain ':' characters to represent outer joins, find each : separated segment and set the status for that join to OUTER. NOTE this method will change the query parameter handed to it.
        Parameters:
        query - the query to set join styles
        path - a path that may contain outer joins represented by ':'