org.opencms.xml.content
Interface I_CmsXmlContentHandler

All Known Implementing Classes:
CmsCategoryXmlContentHandler, CmsDefaultXmlContentHandler, CmsXmlContainerPageHandler, CmsXmlDynamicFunctionHandler, CmsXmlGroupContainerHandler, CmsXmlInheritGroupContainerHandler

public interface I_CmsXmlContentHandler

Handles special XML content livetime events, and also provides XML content editor rendering hints.

Since:
6.0.0

Field Summary
static java.util.List<java.lang.String> ATTRIBUTES
          List of all allowed attribute mapping names, for fast lookup.
static java.lang.String MAPTO_ATTRIBUTE
          Prefix for attribute mappings.
static java.lang.String MAPTO_PERMISSION
          Prefix for permission mappings.
static java.lang.String MAPTO_PROPERTY
          Prefix for property mappings.
static java.lang.String MAPTO_PROPERTY_INDIVIDUAL
          Prefix for property mappings.
static java.lang.String MAPTO_PROPERTY_LIST
          Prefix for property list mappings.
static java.lang.String MAPTO_PROPERTY_LIST_INDIVIDUAL
          Prefix for property list mappings.
static java.lang.String MAPTO_PROPERTY_LIST_SHARED
          Prefix for property list mappings.
static java.lang.String MAPTO_PROPERTY_SHARED
          Prefix for property mappings.
static java.lang.String MAPTO_URLNAME
          Prefix for URL name mappings.
 
Method Summary
 CmsDefaultSet<java.lang.String> getAllowedTemplates()
          Gets the list of allowed template context names.
 java.lang.String getConfiguration(I_CmsXmlSchemaType type)
          Returns the configuration String value for the widget used to edit the given XML content schema type.
 java.util.Set<java.lang.String> getCSSHeadIncludes()
          Returns the resource-independent CSS resources to include into the html-page head.
 java.util.Set<java.lang.String> getCSSHeadIncludes(CmsObject cms, CmsResource resource)
          Returns all the CSS resources to include into the html-page head.
 java.lang.String getDefault(CmsObject cms, CmsResource resource, I_CmsXmlSchemaType type, java.lang.String path, java.util.Locale locale)
          Returns the default String value for the given XML content schema type object in the given XML content.
 java.lang.String getDefault(CmsObject cms, I_CmsXmlContentValue value, java.util.Locale locale)
          Returns the default String value for the given XML content schema type object in the given XML content.
 CmsFormatterConfiguration getFormatterConfiguration(CmsObject cms, CmsResource res)
          Returns the container page element formatter configuration for a given resource.
 java.util.Set<java.lang.String> getJSHeadIncludes()
          Returns the resource-independent javascript resources to include into the html-page head.
 java.util.Set<java.lang.String> getJSHeadIncludes(CmsObject cms, CmsResource resource)
          Returns all the javascript resources to include into the html-page head.
 java.util.List<java.lang.String> getMappings(java.lang.String elementName)
          Returns the all mappings defined for the given element xpath.
 CmsMessages getMessages(java.util.Locale locale)
          Returns the CmsMessages that are used to resolve localized keys for the given locale in this content handler.
 java.lang.String getModelFolder()
          Returns the folder name that contains eventual XML content model files to use for this resource type.
 java.lang.String getPreview(CmsObject cms, CmsXmlContent content, java.lang.String resourcename)
          Returns the preview URI for the given XML content value object to be displayed in the editor.
 CmsRelationType getRelationType(I_CmsXmlContentValue value)
          Deprecated. use getRelationType(String) with I_CmsXmlContentValue.getPath() instead
 CmsRelationType getRelationType(java.lang.String path)
          Returns the relation type for the given path.
 CmsRelationType getRelationType(java.lang.String xpath, CmsRelationType defaultType)
          Returns the relation type for the given path.
 java.util.Set<CmsSearchField> getSearchFields()
          Returns all configured Search fields for this XML content.
 java.util.Map<java.lang.String,CmsXmlContentProperty> getSettings(CmsObject cms, CmsResource resource)
          Returns the element settings defined for the container page formatters.
 java.util.List<CmsXmlContentTab> getTabs()
          Returns the tabs to be displayed in the editor.
 java.lang.String getTitleMapping(CmsObject cms, CmsXmlContent document, java.util.Locale locale)
          Returns the "Title" mapping set for the given XML content document in the given Locale.
 I_CmsWidget getWidget(I_CmsXmlSchemaType value)
          Returns the editor widget that should be used for the given XML content value.
 void initialize(org.dom4j.Element appInfoElement, CmsXmlContentDefinition contentDefinition)
          Initializes this content handler for the given XML content definition by analyzing the "appinfo" node.
 void invalidateBrokenLinks(CmsObject cms, CmsXmlContent document)
          Performs a check of the given XML document.
 boolean isAcaciaEditorDisabled()
          Checks whether the Acacia editor is disabled for this type.
 boolean isContainerPageOnly()
          Returns true if the XML content should be indexed when it is dropped in a container page, and returns false if this XML content should be indexed as 'stand-alone' document.
 boolean isSearchable(I_CmsXmlContentValue value)
          Returns true in case the given value should be searchable with the integrated full text search.
 CmsXmlContent prepareForUse(CmsObject cms, CmsXmlContent content)
          Prepares the given XML content to be used after it was read from the OpenCms VFS.
 CmsFile prepareForWrite(CmsObject cms, CmsXmlContent content, CmsFile file)
          Prepares the given XML content to be written to the OpenCms VFS.
 void resolveMapping(CmsObject cms, CmsXmlContent content, I_CmsXmlContentValue value)
          Resolves the value mappings of the given XML content value, according to the rules of this XML content handler.
 CmsXmlContentErrorHandler resolveValidation(CmsObject cms, I_CmsXmlContentValue value, CmsXmlContentErrorHandler errorHandler)
          Performs a validation of the given XML content value, and saves all errors or warnings found in the provided XML content error handler.
 

Field Detail

ATTRIBUTES

static final java.util.List<java.lang.String> ATTRIBUTES
List of all allowed attribute mapping names, for fast lookup.


MAPTO_ATTRIBUTE

static final java.lang.String MAPTO_ATTRIBUTE
Prefix for attribute mappings.

See Also:
Constant Field Values

MAPTO_PERMISSION

static final java.lang.String MAPTO_PERMISSION
Prefix for permission mappings.

See Also:
Constant Field Values

MAPTO_PROPERTY

static final java.lang.String MAPTO_PROPERTY
Prefix for property mappings.

See Also:
Constant Field Values

MAPTO_PROPERTY_INDIVIDUAL

static final java.lang.String MAPTO_PROPERTY_INDIVIDUAL
Prefix for property mappings.

See Also:
Constant Field Values

MAPTO_PROPERTY_LIST

static final java.lang.String MAPTO_PROPERTY_LIST
Prefix for property list mappings.

See Also:
Constant Field Values

MAPTO_PROPERTY_LIST_INDIVIDUAL

static final java.lang.String MAPTO_PROPERTY_LIST_INDIVIDUAL
Prefix for property list mappings.

See Also:
Constant Field Values

MAPTO_PROPERTY_LIST_SHARED

static final java.lang.String MAPTO_PROPERTY_LIST_SHARED
Prefix for property list mappings.

See Also:
Constant Field Values

MAPTO_PROPERTY_SHARED

static final java.lang.String MAPTO_PROPERTY_SHARED
Prefix for property mappings.

See Also:
Constant Field Values

MAPTO_URLNAME

static final java.lang.String MAPTO_URLNAME
Prefix for URL name mappings.

See Also:
Constant Field Values
Method Detail

getAllowedTemplates

CmsDefaultSet<java.lang.String> getAllowedTemplates()
Gets the list of allowed template context names.

Returns:
the list of allowed template context names

getConfiguration

java.lang.String getConfiguration(I_CmsXmlSchemaType type)
Returns the configuration String value for the widget used to edit the given XML content schema type.

If no configuration value is available, this method must return null.

Parameters:
type - the value to get the widget configuration for
Returns:
the configuration String value for the widget used to edit the given XML content schema type

getCSSHeadIncludes

java.util.Set<java.lang.String> getCSSHeadIncludes()
Returns the resource-independent CSS resources to include into the html-page head.

Returns:
the CSS resources to include into the html-page head

getCSSHeadIncludes

java.util.Set<java.lang.String> getCSSHeadIncludes(CmsObject cms,
                                                   CmsResource resource)
                                                   throws CmsException
Returns all the CSS resources to include into the html-page head.

Parameters:
cms - the current CMS context
resource - the resource from which to get the head includes
Returns:
the CSS resources to include into the html-page head
Throws:
CmsException - if something goes wrong

getDefault

java.lang.String getDefault(CmsObject cms,
                            CmsResource resource,
                            I_CmsXmlSchemaType type,
                            java.lang.String path,
                            java.util.Locale locale)
Returns the default String value for the given XML content schema type object in the given XML content.

If a schema type does not have a default value, this method must return null.

Parameters:
cms - the current users OpenCms context
resource - the content resource
type - the type to get the default for
path - the element path
locale - the currently selected locale for the value
Returns:
the default String value for the given XML content value object
See Also:
I_CmsXmlSchemaType.getDefault(Locale)

getDefault

java.lang.String getDefault(CmsObject cms,
                            I_CmsXmlContentValue value,
                            java.util.Locale locale)
Returns the default String value for the given XML content schema type object in the given XML content.

If a schema type does not have a default value, this method must return null.

Parameters:
cms - the current users OpenCms context
value - the value to get the default for
locale - the currently selected locale for the value
Returns:
the default String value for the given XML content value object
See Also:
I_CmsXmlSchemaType.getDefault(Locale)

getFormatterConfiguration

CmsFormatterConfiguration getFormatterConfiguration(CmsObject cms,
                                                    CmsResource res)
Returns the container page element formatter configuration for a given resource.

Parameters:
cms - the current users OpenCms context, used for selecting the right project
res - the resource for which the formatter configuration should be retrieved
Returns:
the container page element formatter configuration for this handler

getJSHeadIncludes

java.util.Set<java.lang.String> getJSHeadIncludes()
Returns the resource-independent javascript resources to include into the html-page head.

Returns:
the javascript resources to include into the html-page head

getJSHeadIncludes

java.util.Set<java.lang.String> getJSHeadIncludes(CmsObject cms,
                                                  CmsResource resource)
                                                  throws CmsException
Returns all the javascript resources to include into the html-page head.

Parameters:
cms - the current CMS context
resource - the resource for which the head includes should be retrieved
Returns:
the javascript resources to include into the html-page head
Throws:
CmsException - if something goes wrong

getMappings

java.util.List<java.lang.String> getMappings(java.lang.String elementName)
Returns the all mappings defined for the given element xpath.

Parameters:
elementName - the element xpath to look up the mapping for
Returns:
the mapping defined for the given element xpath

getMessages

CmsMessages getMessages(java.util.Locale locale)
Returns the CmsMessages that are used to resolve localized keys for the given locale in this content handler.

If no localized messages are configured for this content handler, this method returns null.

Parameters:
locale - the locale to get the messages for
Returns:
the CmsMessages that are used to resolve localized keys for the given locale in this content handler

getModelFolder

java.lang.String getModelFolder()
Returns the folder name that contains eventual XML content model files to use for this resource type.

Returns:
the folder name containing eventual XML content master files

getPreview

java.lang.String getPreview(CmsObject cms,
                            CmsXmlContent content,
                            java.lang.String resourcename)
Returns the preview URI for the given XML content value object to be displayed in the editor.

If null is returned, no preview is possible for contents using this handler.

Parameters:
cms - the current OpenCms user context
content - the XML content to display the preview URI for
resourcename - the name in the VFS of the resource that is currently edited
Returns:
the preview URI for the given XML content value object to be displayed in the editor

getRelationType

@Deprecated
CmsRelationType getRelationType(I_CmsXmlContentValue value)
Deprecated. use getRelationType(String) with I_CmsXmlContentValue.getPath() instead

Returns the relation type for the given value.

Parameters:
value - the value to get the relation type for
Returns:
the relation type for the given value

getRelationType

CmsRelationType getRelationType(java.lang.String path)
Returns the relation type for the given path.

Parameters:
path - the path to get the relation type for
Returns:
the relation type for the given path

getRelationType

CmsRelationType getRelationType(java.lang.String xpath,
                                CmsRelationType defaultType)
Returns the relation type for the given path.

Parameters:
xpath - the path to get the relation type for
defaultType - the default type if none is set
Returns:
the relation type for the given path

getSearchFields

java.util.Set<CmsSearchField> getSearchFields()
Returns all configured Search fields for this XML content.

Returns:
the Search fields for this XMl content

getSettings

java.util.Map<java.lang.String,CmsXmlContentProperty> getSettings(CmsObject cms,
                                                                  CmsResource resource)
Returns the element settings defined for the container page formatters.

Parameters:
cms - the current CMS context
resource - the resource for which to get the setting definitions
Returns:
the element settings defined for the container page formatters

getTabs

java.util.List<CmsXmlContentTab> getTabs()
Returns the tabs to be displayed in the editor.

Returns:
the tabs to be displayed in the editor

getTitleMapping

java.lang.String getTitleMapping(CmsObject cms,
                                 CmsXmlContent document,
                                 java.util.Locale locale)
Returns the "Title" mapping set for the given XML content document in the given Locale.

Parameters:
cms - the current OpenCms user context
document - the XML content to get the title mapping for (this must be of a type that uses this handler)
locale - the locale to get the title mapping for
Returns:
the "Title" mapping set for the given XML content document in the given Locale

getWidget

I_CmsWidget getWidget(I_CmsXmlSchemaType value)
                      throws CmsXmlException
Returns the editor widget that should be used for the given XML content value.

The handler implementations should use the "appinfo" node of the XML content definition schema to define the mappings of elements to widgets.

Parameters:
value - the XML content value to get the widget for
Returns:
the editor widget that should be used for the given XML content value
Throws:
CmsXmlException - if something goes wrong

initialize

void initialize(org.dom4j.Element appInfoElement,
                CmsXmlContentDefinition contentDefinition)
                throws CmsXmlException
Initializes this content handler for the given XML content definition by analyzing the "appinfo" node.

Parameters:
appInfoElement - the "appinfo" element root node to analyze
contentDefinition - the XML content definition that XML content handler belongs to
Throws:
CmsXmlException - if something goes wrong

invalidateBrokenLinks

void invalidateBrokenLinks(CmsObject cms,
                           CmsXmlContent document)
Performs a check of the given XML document.

The main difference to the resolveValidation(CmsObject, I_CmsXmlContentValue, CmsXmlContentErrorHandler) method is that this method may silently remove some values, for instance, for broken links.

Parameters:
cms - the current OpenCms user context
document - the document to resolve the check rules for

isAcaciaEditorDisabled

boolean isAcaciaEditorDisabled()
Checks whether the Acacia editor is disabled for this type.

Returns:
true if the Acacia editor is disabled

isContainerPageOnly

boolean isContainerPageOnly()
Returns true if the XML content should be indexed when it is dropped in a container page, and returns false if this XML content should be indexed as 'stand-alone' document.

This flag is intended by excluding XML contents from the search index that are not used as detail pages, but to index those extraction result when they are part of a container page.

In order to set this falg add an attribute containerpageOnly="true" to the '<searchsettings>-node' of the XSD of the resource type you want to be indexed only when it is part of a container page.

Returns:
the container page only flag

isSearchable

boolean isSearchable(I_CmsXmlContentValue value)
Returns true in case the given value should be searchable with the integrated full text search.

For the full text search, the value of all elements in one locale of the XML content are combined to one big text, which is referred to as the "content" in the context of the full text search. With this option, it is possible to hide certain elements from this "content" that does not make sense to include in the full text search.

Parameters:
value - the XML content value to check
Returns:
true in case the given value should be searchable

prepareForUse

CmsXmlContent prepareForUse(CmsObject cms,
                            CmsXmlContent content)
Prepares the given XML content to be used after it was read from the OpenCms VFS.

This method is always called after any content is unmarshalled. It can be used to perform customized actions on the given XML content.

Parameters:
cms - the current OpenCms user context
content - the XML content to be used as read from the VFS
Returns:
the prepared content to be used

prepareForWrite

CmsFile prepareForWrite(CmsObject cms,
                        CmsXmlContent content,
                        CmsFile file)
                        throws CmsException
Prepares the given XML content to be written to the OpenCms VFS.

This method is always called before any content gets written. It can be used to perform XML validation, pretty - printing or customized actions on the given XML content.

Parameters:
cms - the current OpenCms user context
content - the XML content to be written
file - the resource the XML content in it's current state was unmarshalled from
Returns:
the file to write to the OpenCms VFS, this will be an updated version of the parameter file
Throws:
CmsException - in case something goes wrong

resolveMapping

void resolveMapping(CmsObject cms,
                    CmsXmlContent content,
                    I_CmsXmlContentValue value)
                    throws CmsException
Resolves the value mappings of the given XML content value, according to the rules of this XML content handler.

Parameters:
cms - the current OpenCms user context
content - the XML content to resolve the mappings for
value - the value to resolve the mappings for
Throws:
CmsException - if something goes wrong

resolveValidation

CmsXmlContentErrorHandler resolveValidation(CmsObject cms,
                                            I_CmsXmlContentValue value,
                                            CmsXmlContentErrorHandler errorHandler)
Performs a validation of the given XML content value, and saves all errors or warnings found in the provided XML content error handler.

The errorHandler parameter is optional, if null is given a new error handler instance must be created.

Parameters:
cms - the current OpenCms user context
value - the value to resolve the validation rules for
errorHandler - (optional) an error handler instance that contains previous error or warnings
Returns:
an error handler that contains all errors and warnings currently found