Package org.intermine.pathquery
Class PathQueryHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.intermine.pathquery.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
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.Set<java.lang.String>
ATTRIBUTE_TYPES
This is a list of String type descriptions that are attribute typesprotected java.util.Map<java.lang.String,java.lang.String>
constraintAttributes
protected java.lang.String
constraintCode
protected java.lang.String
constraintLogic
protected java.lang.String
constraintPath
protected java.util.Collection<java.lang.String>
constraintValues
protected java.lang.String
currentNodePath
protected PathQuery
query
protected int
version
-
Constructor Summary
Constructors Constructor Description PathQueryHandler(java.util.Map<java.lang.String,PathQuery> queries, int version)
ConstructorPathQueryHandler(java.util.Map<java.lang.String,PathQuery> queries, int version, Model model)
Constructor.
-
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 toStringprotected 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.
-
-
-
Field Detail
-
query
protected PathQuery query
-
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 PathQueryversion
- 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 byModel.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 interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.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 objectspath
- the path of the constraint to createattrs
- the XML attributesvalues
- 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 interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] ch, int start, int length)
- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classorg.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 stylespath
- a path that may contain outer joins represented by ':'
-
-