Class CmsResourceWrapperUtils


  • public final class CmsResourceWrapperUtils
    extends java.lang.Object
    Helper class with several methods used by different implementations of the interface I_CmsResourceWrapper.

    It provides methods to add or remove file extensions to resources, to handle creating and writing property files and to add the byte order mask to UTF-8 byte contents.

    Since:
    6.2.4
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String EXTENSION_PROPERTIES
      The extension to use for the property file.
      static java.lang.String PROPERTY_RESOURCE_TYPE
      Property name used for reading / changing the resource type.
      static java.lang.String SUFFIX_PROP_INDIVIDUAL
      The prefix used for a shared property entry.
      static java.lang.String SUFFIX_PROP_SHARED
      The prefix used for a shared property entry.
      static byte[] UTF8_MARKER
      The UTF-8 bytes to add to the beginning of text contents.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String addFileExtension​(CmsObject cms, java.lang.String resourcename, java.lang.String extension)
      Adds a file extension to the resource name.
      static byte[] addUtf8Marker​(byte[] content)
      Adds the UTF-8 marker add the beginning of the byte array.
      static CmsFile createPropertyFile​(CmsObject cms, CmsResource res, java.lang.String path)
      Creates a virtual CmsFile with the individual and shared properties as content.
      static java.lang.String removeFileExtension​(CmsObject cms, java.lang.String resourcename, java.lang.String extension)
      Removes an added file extension from the resource name.
      static byte[] removeUtf8Marker​(byte[] content)
      Removes the UTF-8 marker from the beginning of the byte array.
      static void writePropertyFile​(CmsObject cms, java.lang.String resourcename, byte[] content)
      Takes the content which should be formatted as a property file and set them as properties to the resource.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • addFileExtension

        public static java.lang.String addFileExtension​(CmsObject cms,
                                                        java.lang.String resourcename,
                                                        java.lang.String extension)
        Adds a file extension to the resource name.

        If the file with the new extension already exists, an index count will be added before the final extension.

        For example: index.html.1.jsp.

        Parameters:
        cms - the actual CmsObject
        resourcename - the name of the resource where to add the file extension
        extension - the extension to add
        Returns:
        the resource name with the added file extension
        See Also:
        removeFileExtension(CmsObject, String, String)
      • addUtf8Marker

        public static byte[] addUtf8Marker​(byte[] content)
        Adds the UTF-8 marker add the beginning of the byte array.

        Parameters:
        content - the byte array where to add the UTF-8 marker
        Returns:
        the byte with the added UTF-8 marker at the beginning
      • createPropertyFile

        public static CmsFile createPropertyFile​(CmsObject cms,
                                                 CmsResource res,
                                                 java.lang.String path)
                                          throws CmsException
        Creates a virtual CmsFile with the individual and shared properties as content.

        For example looks like this:
        Title.i=The title of the resource set as individual property
        Title.s=The title of the resource set as shared property

        Parameters:
        cms - the initialized CmsObject
        res - the resource where to read the properties from
        path - the full path to set for the created property file
        Returns:
        the created CmsFile with the individual and shared properties as the content
        Throws:
        CmsException - if something goes wrong
        See Also:
        writePropertyFile(CmsObject, String, byte[])
      • removeFileExtension

        public static java.lang.String removeFileExtension​(CmsObject cms,
                                                           java.lang.String resourcename,
                                                           java.lang.String extension)
        Removes an added file extension from the resource name.

        • If there is only one extension, nothing will be removed.
        • If there are two extensions, the last one will be removed.
        • If there are more than two extensions the last one will be removed and if then the last extension is a number, the extension with the number will be removed too.
        Parameters:
        cms - the initialized CmsObject
        resourcename - the resource name to remove the file extension from
        extension - the extension to remove
        Returns:
        the resource name without the removed file extension
        See Also:
        addFileExtension(CmsObject, String, String)
      • removeUtf8Marker

        public static byte[] removeUtf8Marker​(byte[] content)
        Removes the UTF-8 marker from the beginning of the byte array.

        Parameters:
        content - the byte array where to remove the UTF-8 marker
        Returns:
        the byte with the removed UTF-8 marker at the beginning
      • writePropertyFile

        public static void writePropertyFile​(CmsObject cms,
                                             java.lang.String resourcename,
                                             byte[] content)
                                      throws CmsException
        Takes the content which should be formatted as a property file and set them as properties to the resource.

        Parameters:
        cms - the initialized CmsObject
        resourcename - the name of the resource where to set the properties
        content - the properties to set (formatted as a property file)
        Throws:
        CmsException - if something goes wrong
        See Also:
        createPropertyFile(CmsObject, CmsResource, String)