Package org.pentaho.reporting.libraries.resourceloader

# Class ResourceKeyUtils

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

public class ResourceKeyUtils extends Object
Provides a setup of utility methods for operating on a ResourceKey class.

Author:
  David Kincade

## Constructor Summary

Constructors
Constructor
Description
`ResourceKeyUtils()`

## Method Summary

Modifier and Type
Method
Description
`static String`
`convertFactoryParametersToString(Map factoryParameters)`
Returns the list of factory parameters for the specified ResourceKey as a String representation in the format:
`static String`
`createStringResourceKey(String schema, String identifier, 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, Map factoryParameters)`
Returns a new ResourceKey with the specified source resource embedded inside as a byte []
`static ResourceKeyData`
`parse(String resourceKeyString)`
Parses the string version of the Resource Key into the components
`static Map`
`parseFactoryParametersFromString(String factoryParameters)`
Returns a Map of parameters based on the input string.
`static Object`
`readSchemaFromString(String data)`
Returns the schema portion of the serialized ResourceKey string.
`static ResourceKey`
`toResourceKey(Object value, ResourceManager resourceManager, ResourceKey contextKey, 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 Details

### ResourceKeyUtils

public ResourceKeyUtils()

## Method Details

### createStringResourceKey

public static String createStringResourceKey(String schema, String identifier, 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(String resourceKeyString) throws ResourceKeyCreationException
Parses the string version of the Resource Key into the components

Returns:
Throws:
  `ResourceKeyCreationException`

### convertFactoryParametersToString

public static String convertFactoryParametersToString(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 Map parseFactoryParametersFromString(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 Object readSchemaFromString(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(Object value, ResourceManager resourceManager, ResourceKey contextKey, 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, Map factoryParameters) throws 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:
  `IOException`
  `ResourceKeyCreationException`
  `ResourceLoadingException`