Package com.orchestranetworks.rest.util

# Interface URIBuilderForResource

public interface URIBuilderForResource
This class provides useful methods to generate URI to EBX® packaged resources.

For localized resources, methods that do not provide a `Locale` parameter will use the current request's locale (the one returned by method `SessionContext.getLocale()`).

Since:
  5.9.0
See Also:
  - `URIInfoUtility.createBuilderForResource()`
  - `URIInfoUtility.createBuilderForResource(java.lang.String)`
  - Packaging modules

- ## Method Summary

  Modifier and Type
  Method
  Description
  `URI`
  `buildForResource(ResourceType aResourceType, String aResourceName)`
  Builds a URI of the specified web resource from the current module using current request's locale.
  `URI`
  `buildForResource(ResourceType aResourceType, String aResourceName, Locale aLocale)`
  Builds a `URI` of the specified web resource from the current module for the specified locale.
  `URI`
  `buildForResource(SchemaNode aSchemaNode, Object aValue)`
  Builds a `URI` for a the web resource specified by a node value.
  `URI`
  `buildForResource(String aResourcePath)`
  Builds a `URI` for the specified web resource.
  `UriBuilder`
  `fromResource(ResourceType aResourceType, String aResourceName)`
  Creates a new `UriBuilder` instance for the current module using current request's locale.
  `UriBuilder`
  `fromResource(ResourceType aResourceType, String aResourceName, Locale aLocale)`
  Creates a new `UriBuilder` instance for the current module.
  `UriBuilder`
  `fromResource(SchemaNode aSchemaNode, Object aValue)`
  Creates a new `UriBuilder` instance for the current module and a node value.
  `UriBuilder`
  `fromResource(String aResourcePath)`
  Creates a new `UriBuilder` instance representing a `URI` initialized from `this` builder state and the provided resource path.

- ## Method Details

  - ### buildForResource

    URI buildForResource(String aResourcePath)
    Builds a `URI` for the specified web resource.

    The built-in `URI` does not hold any query parameter.

    Calling this method is the same as calling `this.fromResource(aResourcePath).build()`.

    See Also:
      - `fromResource(String)`

  - ### fromResource

    UriBuilder fromResource(String aResourcePath)
    Creates a new `UriBuilder` instance representing a `URI` initialized from `this` builder state and the provided resource path.

    Overriding already provided values is not supported and must be avoided. These values can be: the scheme, the host, the port, the root path or some query parameters

    Parameters:
      `aResourcePath` - resource path interpreted as relative to the module (web application).

  - ### buildForResource

    URI buildForResource(ResourceType aResourceType, String aResourceName) throws IllegalArgumentException
    Builds a URI of the specified web resource from the current module using current request's locale.

    Calling this method is same as calling `this.fromResource(aResourceType, aResourceName).build();`.

    Throws:
      `IllegalArgumentException`
    See Also:
      - `fromResource(ResourceType, String)`
      - `buildForResource(ResourceType, String, Locale)`

  - ### fromResource

    UriBuilder fromResource(ResourceType aResourceType, String aResourceName) throws IllegalArgumentException
    Creates a new `UriBuilder` instance for the current module using current request's locale.

    Overriding already provided values is not supported and must be avoided. These values can be: the scheme, the host, the port, the root path or some query parameters.

    Parameters:
      `aResourceType` - the resource type
      `aResourceName` - the resource name
    Throws:
      `IllegalArgumentException` - if the provided `ResourceType` is `null`

  - ### buildForResource

    URI buildForResource(ResourceType aResourceType, String aResourceName, Locale aLocale) throws IllegalArgumentException
    Builds a `URI` of the specified web resource from the current module for the specified locale.

    Calling this method is the same as calling `this.fromResource(aResourceType, aResourceName, aLocale).build();`.

    Throws:
      `IllegalArgumentException`
    See Also:
      - `fromResource(ResourceType, String, Locale)`

  - ### fromResource

    UriBuilder fromResource(ResourceType aResourceType, String aResourceName, Locale aLocale) throws IllegalArgumentException
    Creates a new `UriBuilder` instance for the current module.

    Overriding already provided values is not supported and must be avoided. These values can be: the scheme, the host, the port, the root path or some query parameters.

    Parameters:
      `aResourceType` - the resource type
      `aResourceName` - the resource name
      `aLocale` - the locale to consider, can be `null`, for more details see `URIBuilderForResource`
    Throws:
      `IllegalArgumentException` - if the provided `ResourceType` is `null`

  - ### buildForResource

    URI buildForResource(SchemaNode aSchemaNode, Object aValue) throws IllegalArgumentException
    Builds a `URI` for a the web resource specified by a node value.

    Calling this method is the same as calling `this.fromResource(aSchemaNode, aValue).build();`.

    Parameters:
      `aSchemaNode` - the schema node where the value comes from. It must be an `osd:resource` type.
      `aValue` - the value of the `osd:resource` type.
    Throws:
      `IllegalArgumentException` - if the schema node or the value is not an `osd:resource` type.
    See Also:
      - `fromResource(SchemaNode, Object)`
      - Resource type documentation

  - ### fromResource

    UriBuilder fromResource(SchemaNode aSchemaNode, Object aValue) throws IllegalArgumentException
    Creates a new `UriBuilder` instance for the current module and a node value.

    Overriding already provided values is not supported and must be avoided. These values can be: the scheme, the host, the port, the root path or some query parameters.

    Parameters:
      `aSchemaNode` - the schema node where the value comes from. it must be an `osd:resource` type.
      `aValue` - the value of the `osd:resource` type.
    Throws:
      `IllegalArgumentException` - if the schema node or the value is not an `osd:resource` type.