Fields Summary |
---|
private String | webResourceName |
private boolean | zeus_WebResourceNameSet |
private String | description |
private boolean | zeus_DescriptionSet |
private List | urlPatternList |
private boolean | zeus_UrlPatternSet |
private List | httpMethodList |
private boolean | zeus_HttpMethodSet |
private String | id |
private boolean | zeus_IdSet |
private String | docTypeStringAny DOCTYPE reference/statements. |
private String | outputEncodingThe encoding for the output document |
private Unmarshallable | zeus_currentUNodeThe current node in unmarshalling |
private Unmarshallable | zeus_parentUNodeThe parent node in unmarshalling |
private boolean | zeus_thisNodeHandledWhether this node has been handled |
private boolean | hasDTDWhether a DTD exists for an unmarshal call |
private boolean | validateWhether validation is occurring |
private Map | namespaceMappingsThe namespace mappings on this element |
private static EntityResolver | entityResolverThe EntityResolver for SAX parsing to use |
private static ErrorHandler | errorHandlerThe ErrorHandler for SAX parsing to use |
private boolean | zeus_inWebResourceNameIndicates if we are in the webResourceName element |
private boolean | zeus_inDescriptionIndicates if we are in the description element |
private boolean | zeus_inUrlPatternIndicates if we are in the urlPattern element |
private String | zeus_currentUrlPatternValue for the current urlPattern being processed |
private boolean | zeus_inHttpMethodIndicates if we are in the httpMethod element |
private String | zeus_currentHttpMethodValue for the current httpMethod being processed |
Methods Summary |
---|
public void | addHttpMethod(java.lang.String httpMethod)
httpMethodList.add(httpMethod);
|
public void | addUrlPattern(java.lang.String urlPattern)
urlPatternList.add(urlPattern);
|
public void | characters(char[] ch, int start, int len)
// Feed this to the correct ContentHandler
Unmarshallable current = getCurrentUNode();
if (current != this) {
current.characters(ch, start, len);
return;
}
String text = new String(ch, start, len);
text = text.trim();
if (zeus_inWebResourceName) {
if (this.webResourceName == null) {
this.webResourceName = text;
} else {
this.webResourceName = new StringBuffer(this.webResourceName).append(text).toString();
}
return;
}
if (zeus_inDescription) {
if (this.description == null) {
this.description = text;
} else {
this.description = new StringBuffer(this.description).append(text).toString();
}
return;
}
if (zeus_inUrlPattern) {
if (this.zeus_currentUrlPattern == null) {
this.zeus_currentUrlPattern = text;
} else {
this.zeus_currentUrlPattern = new StringBuffer(this.zeus_currentUrlPattern).append(text).toString();
}
return;
}
if (zeus_inHttpMethod) {
if (this.zeus_currentHttpMethod == null) {
this.zeus_currentHttpMethod = text;
} else {
this.zeus_currentHttpMethod = new StringBuffer(this.zeus_currentHttpMethod).append(text).toString();
}
return;
}
|
public void | comment(char[] ch, int start, int len)
// Currently no-op
|
public void | endCDATA()
// Currently no-op
|
public void | endDTD()
// Currently no-op
|
public void | endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
Unmarshallable current = getCurrentUNode();
if (current != this) {
current.endElement(namespaceURI, localName, qName);
return;
}
if (localName.equals("web-resource-name")) {
this.zeus_inWebResourceName = false;
return;
}
if (localName.equals("description")) {
this.zeus_inDescription = false;
return;
}
if (localName.equals("url-pattern")) {
this.zeus_inUrlPattern = false;
addUrlPattern(zeus_currentUrlPattern);
this.zeus_currentUrlPattern = null;
return;
}
if (localName.equals("http-method")) {
this.zeus_inHttpMethod = false;
addHttpMethod(zeus_currentHttpMethod);
this.zeus_currentHttpMethod = null;
return;
}
Unmarshallable parent = getCurrentUNode().getParentUNode();
if (parent != null) {
parent.setCurrentUNode(parent);
}
|
public void | endEntity(java.lang.String name)
// Currently no-op
|
public void | error(org.xml.sax.SAXParseException e)
if ((validate) && (!hasDTD)) {
throw new SAXException("Validation is turned on, but no DTD has been specified in the input XML document. Please supply a DTD through a DOCTYPE reference.");
}
if (errorHandler != null) {
errorHandler.error(e);
}
|
private java.lang.String | escapeAttributeValue(java.lang.String attributeValue)
String returnValue = attributeValue;
for (int i = 0; i < returnValue.length(); i++) {
char ch = returnValue.charAt(i);
if (ch == '"") {
returnValue = new StringBuffer()
.append(returnValue.substring(0, i))
.append(""")
.append(returnValue.substring(i+1))
.toString();
}
}
return returnValue;
|
private java.lang.String | escapeTextValue(java.lang.String textValue)
String returnValue = textValue;
for (int i = 0; i < returnValue.length(); i++) {
char ch = returnValue.charAt(i);
if (ch == '<") {
returnValue = new StringBuffer()
.append(returnValue.substring(0, i))
.append("<")
.append(returnValue.substring(i+1))
.toString();
} else if (ch == '>") {
returnValue = new StringBuffer()
.append(returnValue.substring(0, i))
.append(">")
.append(returnValue.substring(i+1))
.toString();
}
}
return returnValue;
|
public void | fatalError(org.xml.sax.SAXParseException e)
if ((validate) && (!hasDTD)) {
throw new SAXException("Validation is turned on, but no DTD has been specified in the input XML document. Please supply a DTD through a DOCTYPE reference.");
}
if (errorHandler != null) {
errorHandler.fatalError(e);
}
|
public Unmarshallable | getCurrentUNode()
return zeus_currentUNode;
|
public java.lang.String | getDescription()
return description;
|
public java.util.List | getHttpMethodList()
return httpMethodList;
|
public java.lang.String | getId()
return id;
|
public Unmarshallable | getParentUNode()
return zeus_parentUNode;
|
public java.util.List | getUrlPatternList()
return urlPatternList;
|
public java.lang.String | getWebResourceName()
return webResourceName;
|
public void | marshal(java.io.File file)
// Delegate to the marshal(Writer) method
marshal(new FileWriter(file));
|
public void | marshal(java.io.OutputStream outputStream)
// Delegate to the marshal(Writer) method
marshal(new OutputStreamWriter(outputStream));
|
public void | marshal(java.io.Writer writer)
// Write out the XML declaration
writer.write("<?xml version=\"1.0\" ");
if (outputEncoding != null) {
writer.write("encoding=\"");
writer.write(outputEncoding);
writer.write("\"?>\n\n");
} else {
writer.write("encoding=\"UTF-8\"?>\n\n");
}
// Handle DOCTYPE declaration
writer.write(docTypeString);
writer.write("\n");
// Now start the recursive writing
writeXMLRepresentation(writer, "");
// Close up
writer.flush();
writer.close();
|
public void | removeHttpMethod(java.lang.String httpMethod)
httpMethodList.remove(httpMethod);
|
public void | removeUrlPattern(java.lang.String urlPattern)
urlPatternList.remove(urlPattern);
|
public void | setCurrentUNode(Unmarshallable currentUNode)
this.zeus_currentUNode = currentUNode;
|
public void | setDescription(java.lang.String description)
this.description = description;
zeus_DescriptionSet = true;
|
public void | setDocType(java.lang.String name, java.lang.String publicID, java.lang.String systemID)
try {
startDTD(name, publicID, systemID);
} catch (SAXException neverHappens) { }
|
public void | setDocumentLocator(org.xml.sax.Locator locator)
// no-op
|
public static void | setEntityResolver(org.xml.sax.EntityResolver resolver)
This sets a SAX EntityResolver for this unmarshalling process.
entityResolver = resolver;
|
public static void | setErrorHandler(org.xml.sax.ErrorHandler handler)
This sets a SAX ErrorHandler for this unmarshalling process.
errorHandler = handler;
|
public void | setHttpMethodList(java.util.List httpMethodList)
this.httpMethodList = httpMethodList;
zeus_HttpMethodSet = true;
|
public void | setId(java.lang.String id)
this.id = id;
zeus_IdSet = true;
|
public void | setOutputEncoding(java.lang.String outputEncoding)
this.outputEncoding = outputEncoding;
|
public void | setParentUNode(Unmarshallable parentUNode)
this.zeus_parentUNode = parentUNode;
|
public void | setUrlPatternList(java.util.List urlPatternList)
this.urlPatternList = urlPatternList;
zeus_UrlPatternSet = true;
|
public void | setValidating(boolean validate)
this.validate = validate;
|
public void | setWebResourceName(java.lang.String webResourceName)
this.webResourceName = webResourceName;
zeus_WebResourceNameSet = true;
|
public void | startCDATA()
// Currently no-op
|
public void | startDTD(java.lang.String name, java.lang.String publicID, java.lang.String systemID)
if ((name == null) || (name.equals(""))) {
docTypeString = "";
return;
}
hasDTD = true;
StringBuffer docTypeSB = new StringBuffer();
boolean hasPublic = false;
docTypeSB.append("<!DOCTYPE ")
.append(name);
if ((publicID != null) && (!publicID.equals(""))) {
docTypeSB.append(" PUBLIC \"")
.append(publicID)
.append("\"");
hasPublic = true;
}
if ((systemID != null) && (!systemID.equals(""))) {
if (!hasPublic) {
docTypeSB.append(" SYSTEM");
}
docTypeSB.append(" \"")
.append(systemID)
.append("\"");
}
docTypeSB.append(">");
docTypeString = docTypeSB.toString();
|
public void | startDocument()
// no-op
|
public void | startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
// Feed this to the correct ContentHandler
Unmarshallable current = getCurrentUNode();
if (current != this) {
current.startElement(namespaceURI, localName, qName, atts);
return;
}
// See if we handle, or we delegate
if ((localName.equals("web-resource-collection")) && (!zeus_thisNodeHandled)) {
// Handle ourselves
for (int i=0, len=atts.getLength(); i<len; i++) {
String attName= atts.getLocalName(i);
String attValue = atts.getValue(i);
if (attName.equals("id")) {
setId(attValue);
}
}
zeus_thisNodeHandled = true;
return;
} else {
// Delegate handling
if (localName.equals("web-resource-name")) {
this.zeus_inWebResourceName = true;
return;
}
if (localName.equals("description")) {
this.zeus_inDescription = true;
return;
}
if (localName.equals("url-pattern")) {
this.zeus_inUrlPattern = true;
return;
}
if (localName.equals("http-method")) {
this.zeus_inHttpMethod = true;
return;
}
}
|
public void | startEntity(java.lang.String name)
// Currently no-op
|
public void | startPrefixMapping(java.lang.String prefix, java.lang.String uri)
namespaceMappings.put(prefix, uri);
|
public static WebResourceCollection | unmarshal(java.io.File file)
// Delegate to the unmarshal(Reader) method
return unmarshal(new FileReader(file));
|
public static WebResourceCollection | unmarshal(java.io.File file, boolean validate)
// Delegate to the unmarshal(Reader) method
return unmarshal(new FileReader(file), validate);
|
public static WebResourceCollection | unmarshal(java.io.InputStream inputStream)
// Delegate to the unmarshal(Reader) method
return unmarshal(new InputStreamReader(inputStream));
|
public static WebResourceCollection | unmarshal(java.io.InputStream inputStream, boolean validate)
// Delegate to the unmarshal(Reader) method
return unmarshal(new InputStreamReader(inputStream), validate);
|
public static WebResourceCollection | unmarshal(java.io.Reader reader)
// Delegate with default validation value
return unmarshal(reader, false);
|
public static WebResourceCollection | unmarshal(java.io.Reader reader, boolean validate)
WebResourceCollectionImpl webResourceCollection = new WebResourceCollectionImpl();
webResourceCollection.setValidating(validate);
webResourceCollection.setCurrentUNode(webResourceCollection);
webResourceCollection.setParentUNode(null);
// Load the XML parser
XMLReader parser = null;
String parserClass = System.getProperty("org.xml.sax.driver",
"org.apache.xerces.parsers.SAXParser");
try {
parser = XMLReaderFactory.createXMLReader(parserClass);
// Set entity resolver, if needed
if (entityResolver != null) {
parser.setEntityResolver(entityResolver);
}
// Set error handler
parser.setErrorHandler(webResourceCollection);
// Register lexical handler
parser.setProperty("http://xml.org/sax/properties/lexical-handler", webResourceCollection);
// Register content handler
parser.setContentHandler(webResourceCollection);
} catch (SAXException e) {
throw new IOException("Could not load XML parser: " +
e.getMessage());
}
InputSource inputSource = new InputSource(reader);
try {
parser.setFeature("http://xml.org/sax/features/validation", new Boolean(validate).booleanValue());
parser.setFeature("http://xml.org/sax/features/namespaces", true);
parser.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
parser.parse(inputSource);
} catch (SAXException e) {
throw new IOException("Error parsing XML document: " +
e.getMessage());
}
// Return the resultant object
return webResourceCollection;
|
public void | warning(org.xml.sax.SAXParseException e)
if (errorHandler != null) {
errorHandler.warning(e);
}
|
protected void | writeXMLRepresentation(java.io.Writer writer, java.lang.String indent)
writer.write(indent);
writer.write("<web-resource-collection");
// Handle namespace mappings (if needed)
for (Iterator i = namespaceMappings.keySet().iterator(); i.hasNext(); ) {
String prefix = (String)i.next();
String uri = (String)namespaceMappings.get(prefix);
writer.write(" xmlns");
if (!prefix.trim().equals("")) {
writer.write(":");
writer.write(prefix);
}
writer.write("=\"");
writer.write(uri);
writer.write("\"\n ");
}
// Handle attributes (if needed)
if (zeus_IdSet) {
writer.write(" id=\"");
writer.write(escapeAttributeValue(id));
writer.write("\"");
}
writer.write(">");
writer.write("\n");
// Handle child elements
if (webResourceName != null) {
writer.write(new StringBuffer(indent).append(" ").toString());
writer.write("<web-resource-name>");
writer.write(this.webResourceName);
writer.write("</web-resource-name>\n");
}
if (description != null) {
writer.write(new StringBuffer(indent).append(" ").toString());
writer.write("<description>");
writer.write(this.description);
writer.write("</description>\n");
}
for (Iterator i=urlPatternList.iterator(); i.hasNext(); ) {
String urlPattern = (String)i.next();
writer.write(new StringBuffer(indent).append(" ").toString());
writer.write("<url-pattern>");
writer.write(urlPattern);
writer.write("</url-pattern>\n");
}
for (Iterator i=httpMethodList.iterator(); i.hasNext(); ) {
String httpMethod = (String)i.next();
writer.write(new StringBuffer(indent).append(" ").toString());
writer.write("<http-method>");
writer.write(httpMethod);
writer.write("</http-method>\n");
}
writer.write(indent);
writer.write("</web-resource-collection>\n");
|