Package org.apache.cayenne.configuration.xml

## Class VersionAwareHandler

- java.lang.Object
- - org.xml.sax.helpers.DefaultHandler
  - - org.apache.cayenne.configuration.xml.SAXNestedTagHandler
    - - org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler
      - - org.apache.cayenne.configuration.xml.VersionAwareHandler

- All Implemented Interfaces:
    `ContentHandler`, `DTDHandler`, `EntityResolver`, `ErrorHandler`
  Direct Known Subclasses:
    `RootDataMapHandler`

      public abstract class VersionAwareHandler
      extends NamespaceAwareNestedTagHandler

  Handler that can validate root tag name, version and namespace.
  Since:
    4.1

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected String` | `rootTag` |

    - ### Fields inherited from class org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler

      `allowAllNamespaces, targetNamespace`

    - ### Fields inherited from class org.apache.cayenne.configuration.xml.SAXNestedTagHandler

      `loaderContext, locator, parentHandler`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VersionAwareHandler​(LoaderContext loaderContext, String rootTag)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | `processElement​(String namespaceURI, String localName, Attributes attributes)` | Main method to process XML content.
    `protected void` | `validateNamespace​(String realNamespace)` |
    `protected void` | `validateVersion​(Attributes attributes, String[] supportedVersions)` |

    - ### Methods inherited from class org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler

      `characters, createChildTagHandler, endElement, processCharData, setAllowAllNamespaces, setTargetNamespace, startElement`

    - ### Methods inherited from class org.apache.cayenne.configuration.xml.SAXNestedTagHandler

      `beforeScopeEnd, getParentHandler, setDocumentLocator, stop, unexpectedTagMessage`

    - ### Methods inherited from class org.xml.sax.helpers.DefaultHandler

      `endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, 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

    - #### rootTag

          protected String rootTag

  - ### Constructor Detail

    - #### VersionAwareHandler

          public VersionAwareHandler​(LoaderContext loaderContext,
                                     String rootTag)

  - ### Method Detail

    - #### processElement

          protected boolean processElement​(String namespaceURI,
                                           String localName,
                                           Attributes attributes)
                                    throws SAXException

      Description copied from class: `SAXNestedTagHandler`
      Main method to process XML content. Should be override in subclasses, by default do nothing. Return value should be true if tag was fully processed and shouldn't be passed down to child handler.
      Specified by:
        `processElement` in class `NamespaceAwareNestedTagHandler`
      Parameters:
        `namespaceURI` - namespace for tag
        `localName` - tag local name (i.e. w/o namespace prefix)
        `attributes` - tag attributes
      Returns:
        true if tag was processed
      Throws:
        `SAXException` - can be thrown to abort parsing
      See Also:
        `SAXNestedTagHandler.createChildTagHandler(String, String, String, Attributes)`

    - #### validateVersion

          protected void validateVersion​(Attributes attributes,
                                         String[] supportedVersions)

    - #### validateNamespace

          protected void validateNamespace​(String realNamespace)