Class CmsXmlGroupContainerFactory

java.lang.Object
org.opencms.xml.containerpage.CmsXmlGroupContainerFactory

public final class CmsXmlGroupContainerFactory extends Object
Provides factory methods to unmarshal (read) an group container object.

Since:
8.0.0
  • Method Details

    • createDocument

      public static CmsXmlGroupContainer createDocument(CmsObject cms, Locale locale, String modelUri) throws CmsException
      Create a new instance of an group container 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 group container file acting as model
      Returns:
      the created group container
      Throws:
      CmsException - in case the model file is not found or not valid
    • createDocument

      public static CmsXmlGroupContainer createDocument(CmsObject cms, Locale locale, String encoding, CmsXmlContentDefinition contentDefinition)
      Create a new instance of a group container 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 group container
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, byte[] xmlData, String encoding, EntityResolver resolver) throws CmsXmlException
      Factory method to unmarshal (generate) a group container 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 group container instance unmarshalled from the byte array
      Throws:
      CmsXmlException - if something goes wrong
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, CmsFile file) throws CmsXmlException
      Factory method to unmarshal (read) a group container 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 group container instance unmarshalled from the provided file
      Throws:
      CmsXmlException - if something goes wrong
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, CmsFile file, boolean keepEncoding) throws CmsXmlException
      Factory method to unmarshal (read) a group container 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 group container instance unmarshalled from the provided file
      Throws:
      CmsXmlException - if something goes wrong
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, CmsResource resource) throws CmsException
      Factory method to unmarshal (read) a group container 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 group container instance unmarshalled from the provided resource
      Throws:
      CmsException - if something goes wrong
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, CmsResource resource, javax.servlet.ServletRequest req) throws CmsXmlException, CmsLoaderException, CmsException
      Factory method to unmarshal (read) a group container 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
      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 group container
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, org.dom4j.Document document, String encoding, EntityResolver resolver)
      Factory method to unmarshal (generate) a group container 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 group container from
      encoding - the encoding to use when marshalling the group container later
      resolver - the XML entity resolver to use
      Returns:
      a group container instance unmarshalled from the String
    • unmarshal

      public static CmsXmlGroupContainer unmarshal(CmsObject cms, String xmlData, String encoding, EntityResolver resolver) throws CmsXmlException
      Factory method to unmarshal (generate) a group container 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 group container later
      resolver - the XML entity resolver to use
      Returns:
      a group container instance unmarshalled from the String
      Throws:
      CmsXmlException - if something goes wrong