org.opencms.file.wrapper
Class CmsResourceWrapperUtils

java.lang.Object
  extended by org.opencms.file.wrapper.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
Version:
$Revision: 1.8 $
Author:
Peter Bonrad

Field Summary
static java.lang.String EXTENSION_PROPERTIES
          The extension to use for the property file.
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
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
 

Field Detail

EXTENSION_PROPERTIES

public static final java.lang.String EXTENSION_PROPERTIES
The extension to use for the property file.

See Also:
Constant Field Values

SUFFIX_PROP_INDIVIDUAL

public static final java.lang.String SUFFIX_PROP_INDIVIDUAL
The prefix used for a shared property entry.

See Also:
Constant Field Values

SUFFIX_PROP_SHARED

public static final java.lang.String SUFFIX_PROP_SHARED
The prefix used for a shared property entry.

See Also:
Constant Field Values

UTF8_MARKER

public static final byte[] UTF8_MARKER
The UTF-8 bytes to add to the beginning of text contents.

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.

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)