org.opencms.xml
Class CmsXmlContentTypeManager

java.lang.Object
  extended byorg.opencms.xml.CmsXmlContentTypeManager

public class CmsXmlContentTypeManager
extends java.lang.Object

Manager class for registered OpenCms XML content types and content collectors.

Since:
6.0.0
Version:
$Revision: 1.34 $
Author:
Alexander Kandzior

Constructor Summary
CmsXmlContentTypeManager()
          Creates a new content type manager.
 
Method Summary
 I_CmsXmlSchemaType addContentType(java.lang.Class clazz)
          Adds a XML content schema type class to the registerd XML content types.
 void addSchemaType(java.lang.String className, java.lang.String defaultWidget)
          Adds a new XML content type schema class and XML widget to the manager by class names.
 void addWidget(java.lang.String className, java.lang.String aliasName)
          Adds a XML content editor widget class, making this widget available for the XML content editor.
static CmsXmlContentTypeManager createTypeManagerForTestCases()
          Returns a statically initialized instance of an XML content type manager (for test cases only).
 I_CmsXmlContentHandler getContentHandler(java.lang.String className, java.lang.String schemaLocation)
          Returns the XML content handler instance class for the specified class name.
 I_CmsXmlSchemaType getContentType(org.dom4j.Element typeElement, java.util.Set nestedDefinitions)
          Generates an initialized instance of a XML content type definition from the given XML schema element.
 I_CmsXmlSchemaType getContentType(java.lang.String typeName)
          Returns the content type registered with the given name, or null.
 java.util.List getRegisteredSchemaTypes()
          Retruns an alphabetically sorted list of all configured XML content schema types.
 java.lang.String getRegisteredWidgetAlias(java.lang.String className)
          Returns the alias for the given Widget class name, may be null if no alias is defined for the class.
 java.util.List getRegisteredWidgetNames()
          Retruns an alphabetically sorted list of the class names of all configured XML widgets.
 I_CmsWidget getWidget(java.lang.String name)
          Returns an initialized widget class by it's class name or by it's alias.
 I_CmsWidget getWidgetDefault(java.lang.String typeName)
          Returns the editor widget for the specified XML content type.
 void initialize(CmsObject cms)
          Initializes XML content types managed in this XML content type manager.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CmsXmlContentTypeManager

public CmsXmlContentTypeManager()
Creates a new content type manager.

Method Detail

createTypeManagerForTestCases

public static CmsXmlContentTypeManager createTypeManagerForTestCases()
Returns a statically initialized instance of an XML content type manager (for test cases only).

Returns:
a statically initialized instance of an XML content type manager

addContentType

public I_CmsXmlSchemaType addContentType(java.lang.Class clazz)
                                  throws CmsXmlException
Adds a XML content schema type class to the registerd XML content types.

Parameters:
clazz - the XML content schema type class to add
Returns:
the created instance of the XML content schema type
Throws:
CmsXmlException - in case the class is not an instance of I_CmsXmlSchemaType

addSchemaType

public void addSchemaType(java.lang.String className,
                          java.lang.String defaultWidget)
Adds a new XML content type schema class and XML widget to the manager by class names.

Parameters:
className - class name of the XML content schema type class to add
defaultWidget - class name of the default XML widget class for the added XML content type

addWidget

public void addWidget(java.lang.String className,
                      java.lang.String aliasName)
Adds a XML content editor widget class, making this widget available for the XML content editor.

Parameters:
className - the widget class to add
aliasName - the (optional) alias name to use for the widget class

getContentHandler

public I_CmsXmlContentHandler getContentHandler(java.lang.String className,
                                                java.lang.String schemaLocation)
                                         throws CmsXmlException
Returns the XML content handler instance class for the specified class name.

Only one instance of an XML content handler class per content definition name will be generated, and that instance will be cached and re-used for all operations.

Parameters:
className - the name of the XML content handler to return
schemaLocation - the schema location of the XML content definition that handler belongs to
Returns:
the XML content handler class
Throws:
CmsXmlException - if something goes wrong

getContentType

public I_CmsXmlSchemaType getContentType(org.dom4j.Element typeElement,
                                         java.util.Set nestedDefinitions)
                                  throws CmsXmlException
Generates an initialized instance of a XML content type definition from the given XML schema element.

Parameters:
typeElement - the element to generate the XML content type definition from
nestedDefinitions - the nested (included) XML content sub-definitions
Returns:
an initialized instance of a XML content type definition
Throws:
CmsXmlException - in case the element does not describe a valid XML content type definition

getContentType

public I_CmsXmlSchemaType getContentType(java.lang.String typeName)
Returns the content type registered with the given name, or null.

Parameters:
typeName - the name to look up the content type for
Returns:
the content type registered with the given name, or null

getRegisteredSchemaTypes

public java.util.List getRegisteredSchemaTypes()
Retruns an alphabetically sorted list of all configured XML content schema types.

Returns:
an alphabetically sorted list of all configured XML content schema types

getRegisteredWidgetAlias

public java.lang.String getRegisteredWidgetAlias(java.lang.String className)
Returns the alias for the given Widget class name, may be null if no alias is defined for the class.

Parameters:
className - the name of the widget
Returns:
the alias for the given Widget class name, may be null if no alias is defined for the class

getRegisteredWidgetNames

public java.util.List getRegisteredWidgetNames()
Retruns an alphabetically sorted list of the class names of all configured XML widgets.

Returns:
an alphabetically sorted list of the class names of all configured XML widgets

getWidget

public I_CmsWidget getWidget(java.lang.String name)
Returns an initialized widget class by it's class name or by it's alias.

Parameters:
name - the class name or alias name to get the widget for
Returns:
the widget instance for the class name

getWidgetDefault

public I_CmsWidget getWidgetDefault(java.lang.String typeName)
Returns the editor widget for the specified XML content type.

Parameters:
typeName - the name of the XML content type to get the widget for
Returns:
the editor widget for the specified XML content type

initialize

public void initialize(CmsObject cms)
                throws CmsRoleViolationException
Initializes XML content types managed in this XML content type manager.

Parameters:
cms - an initialized OpenCms user context with "Administrator" role permissions
Throws:
CmsRoleViolationException - in case the provided OpenCms user context doea not have "Administrator" role permissions