/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // $Id: SAXResult.java 446598 2006-09-15 12:55:40Z jeremias $ package javax.xml.transform.sax; import javax.xml.transform.Result; import org.xml.sax.ContentHandler; import org.xml.sax.ext.LexicalHandler; /** *
Acts as an holder for a transformation Result.
* * @author Jeff Suttor */ public class SAXResult implements Result { /** * If {@link javax.xml.transform.TransformerFactory#getFeature} * returns true when passed this value as an argument, * the Transformer supports Result output of this type. */ public static final String FEATURE = "http://javax.xml.transform.sax.SAXResult/feature"; /** * Zero-argument default constructor. */ public SAXResult() { } /** * Create a SAXResult that targets a SAX2 {@link org.xml.sax.ContentHandler}. * * @param handler Must be a non-null ContentHandler reference. */ public SAXResult(ContentHandler handler) { setHandler(handler); } /** * Set the target to be a SAX2 {@link org.xml.sax.ContentHandler}. * * @param handler Must be a non-null ContentHandler reference. */ public void setHandler(ContentHandler handler) { this.handler = handler; } /** * Get the {@link org.xml.sax.ContentHandler} that is the Result. * * @return The ContentHandler that is to be transformation output. */ public ContentHandler getHandler() { return handler; } /** * Set the SAX2 {@link org.xml.sax.ext.LexicalHandler} for the output. * *This is needed to handle XML comments and the like. If the
* lexical handler is not set, an attempt should be made by the
* transformer to cast the {@link org.xml.sax.ContentHandler} to a
* LexicalHandler
.
LexicalHandler
for
* handling lexical parse events.
*/
public void setLexicalHandler(LexicalHandler handler) {
this.lexhandler = handler;
}
/**
* Get a SAX2 {@link org.xml.sax.ext.LexicalHandler} for the output.
*
* @return A LexicalHandler
, or null.
*/
public LexicalHandler getLexicalHandler() {
return lexhandler;
}
/**
* Method setSystemId Set the systemID that may be used in association
* with the {@link org.xml.sax.ContentHandler}.
*
* @param systemId The system identifier as a URI string.
*/
public void setSystemId(String systemId) {
this.systemId = systemId;
}
/**
* Get the system identifier that was set with setSystemId.
*
* @return The system identifier that was set with setSystemId, or null
* if setSystemId was not called.
*/
public String getSystemId() {
return systemId;
}
//////////////////////////////////////////////////////////////////////
// Internal state.
//////////////////////////////////////////////////////////////////////
/**
* The handler for parse events.
*/
private ContentHandler handler;
/**
* The handler for lexical events.
*/
private LexicalHandler lexhandler;
/**
* The systemID that may be used in association
* with the node.
*/
private String systemId;
}