org.opencms.xml.containerpage
Class CmsXmlContainerPageFactory

java.lang.Object
  extended by org.opencms.xml.containerpage.CmsXmlContainerPageFactory

public final class CmsXmlContainerPageFactory
extends java.lang.Object

Provides factory methods to unmarshal (read) an container page object.

Since:
7.5.2

Method Summary
static CmsXmlContainerPage createDocument(CmsObject cms, java.util.Locale locale, java.lang.String modelUri)
          Create a new instance of an container page based on the given default content, that will have all language nodes of the default content and ensures the presence of the given locale.
static CmsXmlContainerPage createDocument(CmsObject cms, java.util.Locale locale, java.lang.String encoding, CmsXmlContentDefinition contentDefinition)
          Create a new instance of a container page based on the given content definition, that will have one language node for the given locale all initialized with default values.
static CmsXmlContainerPage unmarshal(CmsObject cms, byte[] xmlData, java.lang.String encoding, org.xml.sax.EntityResolver resolver)
          Factory method to unmarshal (generate) a container page instance from a byte array that contains XML data.
static CmsXmlContainerPage unmarshal(CmsObject cms, CmsFile file)
          Factory method to unmarshal (read) a container page instance from a OpenCms VFS file that contains XML data.
static CmsXmlContainerPage unmarshal(CmsObject cms, CmsFile file, boolean keepEncoding)
          Factory method to unmarshal (read) a container page instance from a OpenCms VFS file that contains XML data, using wither the encoding set in the XML file header, or the encoding set in the VFS file property.
static CmsXmlContainerPage unmarshal(CmsObject cms, CmsFile file, boolean keepEncoding, boolean noCache)
          Factory method to unmarshal (read) a container page instance from a OpenCms VFS file that contains XML data, using wither the encoding set in the XML file header, or the encoding set in the VFS file property.
static CmsXmlContainerPage unmarshal(CmsObject cms, CmsResource resource)
          Factory method to unmarshal (read) a container page instance from a OpenCms VFS resource that contains XML data.
static CmsXmlContainerPage unmarshal(CmsObject cms, CmsResource resource, javax.servlet.ServletRequest req)
          Factory method to unmarshal (read) a container page instance from a resource, using the request attributes as cache.
static CmsXmlContainerPage unmarshal(CmsObject cms, org.dom4j.Document document, java.lang.String encoding, org.xml.sax.EntityResolver resolver)
          Factory method to unmarshal (generate) a container page instance from a XML document.
static CmsXmlContainerPage unmarshal(CmsObject cms, java.lang.String xmlData, java.lang.String encoding, org.xml.sax.EntityResolver resolver)
          Factory method to unmarshal (generate) a container page instance from a String that contains XML data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createDocument

public static CmsXmlContainerPage createDocument(CmsObject cms,
                                                 java.util.Locale locale,
                                                 java.lang.String modelUri)
                                          throws CmsException
Create a new instance of an container page based on the given default content, that will have all language nodes of the default content and ensures the presence of the given locale.

The given encoding is used when marshalling the XML again later.

Parameters:
cms - the current users OpenCms content
locale - the locale to generate the default content for
modelUri - the absolute path to the container page file acting as model
Returns:
the created container page
Throws:
CmsException - in case the model file is not found or not valid

createDocument

public static CmsXmlContainerPage createDocument(CmsObject cms,
                                                 java.util.Locale locale,
                                                 java.lang.String encoding,
                                                 CmsXmlContentDefinition contentDefinition)
Create a new instance of a container page based on the given content definition, that will have one language node for the given locale all initialized with default values.

The given encoding is used when marshalling the XML again later.

Parameters:
cms - the current users OpenCms content
locale - the locale to generate the default content for
encoding - the encoding to use when marshalling the XML content later
contentDefinition - the content definition to create the content for
Returns:
the created container page

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            byte[] xmlData,
                                            java.lang.String encoding,
                                            org.xml.sax.EntityResolver resolver)
                                     throws CmsXmlException
Factory method to unmarshal (generate) a container page instance from a byte array that contains XML data.

When unmarshalling, the encoding is read directly from the XML header of the byte array. The given encoding is used only when marshalling the XML again later.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the cms context
xmlData - the XML data in a byte array
encoding - the encoding to use when marshalling the XML content later
resolver - the XML entitiy resolver to use
Returns:
a container page instance unmarshalled from the byte array
Throws:
CmsXmlException - if something goes wrong

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            CmsFile file)
                                     throws CmsXmlException
Factory method to unmarshal (read) a container page instance from a OpenCms VFS file that contains XML data.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the current cms object
file - the file with the XML data to unmarshal
Returns:
a container page instance unmarshalled from the provided file
Throws:
CmsXmlException - if something goes wrong

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            CmsFile file,
                                            boolean keepEncoding)
                                     throws CmsXmlException
Factory method to unmarshal (read) a container page instance from a OpenCms VFS file that contains XML data, using wither the encoding set in the XML file header, or the encoding set in the VFS file property.

If you are not sure about the implications of the encoding issues, use unmarshal(CmsObject, CmsFile) instead.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the current cms object
file - the file with the XML data to unmarshal
keepEncoding - if true, the encoding specified in the XML header is used, otherwise the encoding from the VFS file property is used
Returns:
a container page instance unmarshalled from the provided file
Throws:
CmsXmlException - if something goes wrong

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            CmsFile file,
                                            boolean keepEncoding,
                                            boolean noCache)
                                     throws CmsXmlException
Factory method to unmarshal (read) a container page instance from a OpenCms VFS file that contains XML data, using wither the encoding set in the XML file header, or the encoding set in the VFS file property.

If you are not sure about the implications of the encoding issues, use unmarshal(CmsObject, CmsFile) instead.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the current cms object
file - the file with the XML data to unmarshal
keepEncoding - if true, the encoding specified in the XML header is used, otherwise the encoding from the VFS file property is used
noCache - true to avoid cached results
Returns:
a container page instance unmarshalled from the provided file
Throws:
CmsXmlException - if something goes wrong

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            CmsResource resource)
                                     throws CmsException
Factory method to unmarshal (read) a container page instance from a OpenCms VFS resource that contains XML data.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the current cms object
resource - the resource with the XML data to unmarshal
Returns:
a container page instance unmarshalled from the provided resource
Throws:
CmsException - if something goes wrong

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            CmsResource resource,
                                            javax.servlet.ServletRequest req)
                                     throws CmsXmlException,
                                            CmsLoaderException,
                                            CmsException
Factory method to unmarshal (read) a container page instance from a resource, using the request attributes as cache.

Parameters:
cms - the current OpenCms context object
resource - the resource to unmarshal
req - the current request
Returns:
the unmarshaled xml content, or null if the given resource was not of type CmsResourceTypeXmlContainerPage
Throws:
CmsException - in something goes wrong
CmsLoaderException - if no loader for the given resource type (CmsResource.getTypeId()) is available
CmsXmlException - if the given resource is not of type container page

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            org.dom4j.Document document,
                                            java.lang.String encoding,
                                            org.xml.sax.EntityResolver resolver)
Factory method to unmarshal (generate) a container page instance from a XML document.

The given encoding is used when marshalling the XML again later.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the cms context, if null no link validation is performed
document - the XML document to generate the container page from
encoding - the encoding to use when marshalling the container page later
resolver - the XML entity resolver to use
Returns:
a container page instance unmarshalled from the String

unmarshal

public static CmsXmlContainerPage unmarshal(CmsObject cms,
                                            java.lang.String xmlData,
                                            java.lang.String encoding,
                                            org.xml.sax.EntityResolver resolver)
                                     throws CmsXmlException
Factory method to unmarshal (generate) a container page instance from a String that contains XML data.

The given encoding is used when marshalling the XML again later.

Warning:
This method does not support requested historic versions, it always loads the most recent version. Use unmarshal(CmsObject, CmsResource, ServletRequest) for history support.

Parameters:
cms - the cms context, if null no link validation is performed
xmlData - the XML data in a String
encoding - the encoding to use when marshalling the container page later
resolver - the XML entity resolver to use
Returns:
a container page instance unmarshalled from the String
Throws:
CmsXmlException - if something goes wrong