Package org.pentaho.reporting.libraries.resourceloader

## Class ResourceKeyUtils

- java.lang.Object
- - org.pentaho.reporting.libraries.resourceloader.ResourceKeyUtils

-     public class ResourceKeyUtils
      extends java.lang.Object

  Provides a setup of utility methods for operating on a ResourceKey class.
  Author:
    David Kincade

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ResourceKeyUtils()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static java.lang.String` | `convertFactoryParametersToString​(java.util.Map factoryParameters)` | Returns the list of factory parameters for the specified ResourceKey as a String representation in the format:
    `static java.lang.String` | `createStringResourceKey​(java.lang.String schema, java.lang.String identifier, java.util.Map factoryParameters)` | Returns a string representation of the ResourceKey based on the pieces that are passed as parameters
    `static ResourceKey` | `embedResourceInKey​(ResourceManager manager, ResourceKey source, java.util.Map factoryParameters)` | Returns a new ResourceKey with the specified source resource embedded inside as a byte []
    `static ResourceKeyData` | `parse​(java.lang.String resourceKeyString)` | Parses the string version of the Resource Key into the components
    `static java.util.Map` | `parseFactoryParametersFromString​(java.lang.String factoryParameters)` | Returns a Map of parameters based on the input string.
    `static java.lang.Object` | `readSchemaFromString​(java.lang.String data)` | Returns the schema portion of the serialized ResourceKey string.
    `static ResourceKey` | `toResourceKey​(java.lang.Object value, ResourceManager resourceManager, ResourceKey contextKey, java.util.Map parameters)` | Performs a simple attempt at a "smart" conversion to a ResourceKey.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ResourceKeyUtils

          public ResourceKeyUtils()

  - ### Method Detail

    - #### createStringResourceKey

          public static java.lang.String createStringResourceKey​(java.lang.String schema,
                                                                 java.lang.String identifier,
                                                                 java.util.Map factoryParameters)

      Returns a string representation of the ResourceKey based on the pieces that are passed as parameters
      Parameters:
        `schema` - the string representation of the schema
        `identifier` - the string representation of the identifier
        `factoryParameters` - the set of factory parameters (`null` allowed)
      Returns:
        the string version with the pieces delimited and concatenated

    - #### parse

          public static ResourceKeyData parse​(java.lang.String resourceKeyString)
                                       throws ResourceKeyCreationException

      Parses the string version of the Resource Key into the components
      Returns:
      Throws:
        `ResourceKeyCreationException`

    - #### convertFactoryParametersToString

          public static java.lang.String convertFactoryParametersToString​(java.util.Map factoryParameters)

      Returns the list of factory parameters for the specified ResourceKey as a String representation in the format:

             key=value:key=value:...:key=value

      The colon (:) is the separator between parameters and the equal sign (=) is the separator between the key and the value.

      If the factory parameters is empty, `null` will be returned
      Parameters:
        `factoryParameters` - the parameter map.
      Returns:
        a String representation of the factory parameters for the ResourceKey

    - #### parseFactoryParametersFromString

          public static java.util.Map parseFactoryParametersFromString​(java.lang.String factoryParameters)

      Returns a Map of parameters based on the input string. The string will be parsed using the same format as defined in the `getFactoryParametersAsString()` method.
      Parameters:
        `factoryParameters` - the String representation of factory parameters
      Returns:
        a Map of factory parameters parsed from the string, or `null` if the source string was null or contained no data

    - #### readSchemaFromString

          public static java.lang.Object readSchemaFromString​(java.lang.String data)

      Returns the schema portion of the serialized ResourceKey string. If the string is invalid, `null` will be returned.
      Parameters:
        `data` - the String serialized version of a `ResourceKey`
      Returns:
        the schema object.

    - #### toResourceKey

          public static ResourceKey toResourceKey​(java.lang.Object value,
                                                  ResourceManager resourceManager,
                                                  ResourceKey contextKey,
                                                  java.util.Map parameters)
                                           throws ResourceKeyCreationException

      Performs a simple attempt at a "smart" conversion to a ResourceKey.
      1. If the `value` is `null`, this method will return `null`
      2. If the `value` is a `ResourceKey`, the `value` will be returned
      3. If the `value` is a `String` and is syntactically valid as a `URL`, it will be converted to a `URL` and then used to create a `ResourceKey`
      4. If the `value` is a `String` and is NOT syntactically valid as a `URL`, it will be converted ot a `File` and then used to create a `ResourceKey`
      5. All other types will be passed along to attempt a key creation as is
      Parameters:
        `value` - the object to convert to a `ResourceKey`
        `resourceManager` - the resource manager used in key creation
        `parameters` - the parameters that should be passed to generate a resource key
      Returns:
        the resource key created
      Throws:
        `ResourceKeyCreationException` - indicates the value can not be used to create a Resource Key

    - #### embedResourceInKey

          public static ResourceKey embedResourceInKey​(ResourceManager manager,
                                                       ResourceKey source,
                                                       java.util.Map factoryParameters)
                                                throws java.io.IOException,
                                                       ResourceKeyCreationException,
                                                       ResourceLoadingException

      Returns a new ResourceKey with the specified source resource embedded inside as a byte []
      Parameters:
        `source` - the ResourceKey to the source which will be embedded - NOTE: the pattern can specify an exact name or a pattern for creating a temporary name. If the name exists, it will be replaced.
        `factoryParameters` - any factory parameters which should be added to the ResourceKey being created
      Returns:
        the ResourceKey for the newly created embedded entry
      Throws:
        `java.io.IOException`
        `ResourceKeyCreationException`
        `ResourceLoadingException`