Class OutletConfigurationSaxHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.apache.torque.generator.configuration.outlet.OutletConfigurationSaxHandler
-
- All Implemented Interfaces:
ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
public class OutletConfigurationSaxHandler extends DefaultHandler
A SAX handler which parses Outlet configuration files. Relies on delegate handlers for parsing the configuration for the different outlet types.
-
-
Constructor Summary
Constructors Constructor Description OutletConfigurationSaxHandler(ConfigurationProvider configurationProvider, UnitDescriptor unitDescriptor, ConfigurationHandlers configurationHandlers)
Constructor.
-
Method Summary
Modifier and Type Method Description void
characters(char[] ch, int start, int length)
void
endElement(String uri, String localName, String rawName)
void
error(SAXParseException exception)
void
fatalError(SAXParseException exception)
List<MergepointMapping>
getMergepointMappings()
Returns all mergepoint mappings which were configured outside the outlets in the parsed outlet configuration file.OutletSaxHandler
getOutletHandler(QualifiedName outletName, String outletType)
Returns the correct handler for a outlet tag.List<Outlet>
getOutlets()
Returns all outlets which were configured in the parsed outlet configuration file.static String
getOutletType(Attributes attributes)
Reads the outlet type from the attributes of the outlet XML tag.InputSource
resolveEntity(String publicId, String systemId)
EntityResolver implementation.void
startElement(String uri, String localName, String qName, Attributes attributes)
void
warning(SAXParseException exception)
-
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl
-
-
-
-
Constructor Detail
-
OutletConfigurationSaxHandler
public OutletConfigurationSaxHandler(ConfigurationProvider configurationProvider, UnitDescriptor unitDescriptor, ConfigurationHandlers configurationHandlers)
Constructor.- Parameters:
configurationProvider
- The access object for the configuration files, not null.unitDescriptor
- The description of the generation unit, not null.configurationHandlers
- The available configuration handlers, not null.- Throws:
NullPointerException
- if an argument is null.
-
-
Method Detail
-
getOutlets
public List<Outlet> getOutlets()
Returns all outlets which were configured in the parsed outlet configuration file.- Returns:
- all created outlets, not null.
-
getMergepointMappings
public List<MergepointMapping> getMergepointMappings()
Returns all mergepoint mappings which were configured outside the outlets in the parsed outlet configuration file.- Returns:
- all created mergepoint mappings, not null.
-
startElement
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
- Specified by:
startElement
in interfaceContentHandler
- Overrides:
startElement
in classDefaultHandler
- Throws:
SAXException
-
endElement
public void endElement(String uri, String localName, String rawName) throws SAXException
- Specified by:
endElement
in interfaceContentHandler
- Overrides:
endElement
in classDefaultHandler
- Throws:
SAXException
-
characters
public void characters(char[] ch, int start, int length) throws SAXException
- Specified by:
characters
in interfaceContentHandler
- Overrides:
characters
in classDefaultHandler
- Throws:
SAXException
-
getOutletHandler
public OutletSaxHandler getOutletHandler(QualifiedName outletName, String outletType) throws SAXException
Returns the correct handler for a outlet tag. The method uses the type attribute to determine which handler is needed. I.e. it looks up the handler factory type in the outlet types, and asks the factory for a handler.- Parameters:
outletName
- the name for the outlet which configuration will be read in by the generated SaxHandlerFactory, or null if the name of the outlet should be determined from the parsed XML.outletType
- the type of the outlet, not null.- Returns:
- the handler for the tag, not null.
- Throws:
SAXException
- if no matching handler can be identified, or if an error occurs while creating the handler.
-
getOutletType
public static String getOutletType(Attributes attributes) throws SAXException
Reads the outlet type from the attributes of the outlet XML tag.- Parameters:
attributes
- the attributes of the XML tag, not null.- Returns:
- the outlet type, not null.
- Throws:
SAXException
- if the xsi:type attribute is not set.
-
resolveEntity
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
EntityResolver implementation. Called by the XML parser- Specified by:
resolveEntity
in interfaceEntityResolver
- Overrides:
resolveEntity
in classDefaultHandler
- Parameters:
publicId
- The public identifier of the external entity.systemId
- The system identifier of the external entity.- Returns:
- an InputSource for the entity, or null if the URI is not known.
- Throws:
SAXException
IOException
- See Also:
ConfigurationEntityResolver.resolveEntity(String, String)
-
error
public void error(SAXParseException exception) throws SAXParseException
- Specified by:
error
in interfaceErrorHandler
- Overrides:
error
in classDefaultHandler
- Throws:
SAXParseException
-
fatalError
public void fatalError(SAXParseException exception) throws SAXParseException
- Specified by:
fatalError
in interfaceErrorHandler
- Overrides:
fatalError
in classDefaultHandler
- Throws:
SAXParseException
-
warning
public void warning(SAXParseException exception) throws SAXParseException
- Specified by:
warning
in interfaceErrorHandler
- Overrides:
warning
in classDefaultHandler
- Throws:
SAXParseException
-
-