org.apache.jackrabbit.server.io
Class XmlHandler

java.lang.Object
  extended by org.apache.jackrabbit.server.io.DefaultHandler
      extended by org.apache.jackrabbit.server.io.XmlHandler
All Implemented Interfaces:
IOHandler, PropertyHandler

public class XmlHandler
extends DefaultHandler

XmlHandler imports xml files and exports nodes that have the proper XML_MIMETYPE defined with their content. The export is performed by running a document view export for the content of the export root defined with the specified ExportContext.
Please note that this handler is not suited for a generic system or document view import/export of Nodes because an extra root node is always created during import and expected during export, respectively.


Field Summary
static String XML_MIMETYPE
          the xml mimetype
static String XML_MIMETYPE_ALT
          the alternative xml mimetype. tika detects xml as this.
 
Constructor Summary
XmlHandler()
          Creates a new XmlHandler with default nodetype definitions and without setting the IOManager.
XmlHandler(IOManager ioManager)
          Creates a new XmlHandler with default nodetype definitions:
Nodetype for Collection: nt:unstructured Nodetype for Non-Collection: nt:file Nodetype for Non-Collection content: nt:unstructured
XmlHandler(IOManager ioManager, String collectionNodetype, String defaultNodetype, String contentNodetype)
          Creates a new XmlHandler
 
Method Summary
 boolean canExport(ExportContext context, boolean isCollection)
          Returns true if the export root is a node and if it contains a child node with name jcr:content in case this export is not intended for a collection.
 boolean canImport(ImportContext context, boolean isCollection)
          Returns true, if this handler can run a successful import based on the specified context.
protected  void exportData(ExportContext context, boolean isCollection, Node contentNode)
          Checks if the given content node contains a jcr:data property and spools its value to the output stream of the export context.
protected  void exportProperties(ExportContext context, boolean isCollection, Node contentNode)
          Retrieves mimetype, encoding and modification time from the content node.
protected  boolean forceCompatibleContentNodes()
          Defines if content nodes should be replace if they don't have the node type given by DefaultHandler.getCollectionNodeType().
protected  boolean importData(ImportContext context, boolean isCollection, Node contentNode)
          Imports the data present on the import context to the specified content node.
protected  boolean importProperties(ImportContext context, boolean isCollection, Node contentNode)
          Imports the properties present on the specified context to the content node.
 
Methods inherited from class org.apache.jackrabbit.server.io.DefaultHandler
canExport, canExport, canImport, canImport, detect, exportContent, exportContent, exportProperties, getCollectionNodeType, getContentNode, getContentNode, getContentNodeType, getIOManager, getName, getNodeType, importContent, importContent, importProperties, setIOManager
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_MIMETYPE

public static final String XML_MIMETYPE
the xml mimetype

See Also:
Constant Field Values

XML_MIMETYPE_ALT

public static final String XML_MIMETYPE_ALT
the alternative xml mimetype. tika detects xml as this.

See Also:
Constant Field Values
Constructor Detail

XmlHandler

public XmlHandler()
Creates a new XmlHandler with default nodetype definitions and without setting the IOManager.

See Also:
IOHandler.setIOManager(IOManager)

XmlHandler

public XmlHandler(IOManager ioManager)
Creates a new XmlHandler with default nodetype definitions:

Parameters:
ioManager -

XmlHandler

public XmlHandler(IOManager ioManager,
                  String collectionNodetype,
                  String defaultNodetype,
                  String contentNodetype)
Creates a new XmlHandler

Parameters:
ioManager -
collectionNodetype -
defaultNodetype -
contentNodetype -
Method Detail

canImport

public boolean canImport(ImportContext context,
                         boolean isCollection)
Description copied from interface: IOHandler
Returns true, if this handler can run a successful import based on the specified context.

Specified by:
canImport in interface IOHandler
Overrides:
canImport in class DefaultHandler
Returns:
See Also:
IOHandler.canImport(ImportContext, boolean)

importData

protected boolean importData(ImportContext context,
                             boolean isCollection,
                             Node contentNode)
                      throws IOException,
                             RepositoryException
Description copied from class: DefaultHandler
Imports the data present on the import context to the specified content node.

Overrides:
importData in class DefaultHandler
Returns:
Throws:
IOException
RepositoryException
See Also:
DefaultHandler.importData(ImportContext, boolean, Node)

importProperties

protected boolean importProperties(ImportContext context,
                                   boolean isCollection,
                                   Node contentNode)
Description copied from class: DefaultHandler
Imports the properties present on the specified context to the content node.

Overrides:
importProperties in class DefaultHandler
Returns:
See Also:
DefaultHandler.importProperties(ImportContext, boolean, Node)

forceCompatibleContentNodes

protected boolean forceCompatibleContentNodes()
Defines if content nodes should be replace if they don't have the node type given by DefaultHandler.getCollectionNodeType().

Overrides:
forceCompatibleContentNodes in class DefaultHandler
Returns:
true, always.

canExport

public boolean canExport(ExportContext context,
                         boolean isCollection)
Description copied from class: DefaultHandler
Returns true if the export root is a node and if it contains a child node with name jcr:content in case this export is not intended for a collection.

Specified by:
canExport in interface IOHandler
Overrides:
canExport in class DefaultHandler
Returns:
true if the export root is a node. If the specified boolean parameter is false (not a collection export) the given export root must contain a child node with name jcr:content.
See Also:
IOHandler.canExport(ExportContext, boolean)

exportData

protected void exportData(ExportContext context,
                          boolean isCollection,
                          Node contentNode)
                   throws IOException,
                          RepositoryException
Description copied from class: DefaultHandler
Checks if the given content node contains a jcr:data property and spools its value to the output stream of the export context.
Please note, that subclasses that define a different structure of the content node should create their own exportData method.

Overrides:
exportData in class DefaultHandler
Parameters:
context - export context
isCollection - true if collection
contentNode - the content node
Throws:
IOException - if an I/O error occurs
RepositoryException
See Also:
DefaultHandler.exportData(ExportContext, boolean, Node)

exportProperties

protected void exportProperties(ExportContext context,
                                boolean isCollection,
                                Node contentNode)
                         throws IOException
Description copied from class: DefaultHandler
Retrieves mimetype, encoding and modification time from the content node. The content length is determined by the length of the jcr:data property if it is present. The creation time however is retrieved from the parent node (in case of isCollection == false only).

Overrides:
exportProperties in class DefaultHandler
Parameters:
context - the export context
isCollection - true if collection
contentNode - the content node
Throws:
IOException
See Also:
DefaultHandler.exportProperties(ExportContext, boolean, Node)


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.