| java.lang.Object org.griphyn.common.util.Separator
Separator | public class Separator (Code) | | This class solely defines the separators used in the textual in-
and output between namespace, name and version(s). A textual
representation of a definition looks like ns::name:version, and
a textual representation of a uses like ns::name:min,max.
author: Jens-S. Vöckler author: Yong Zhao version: $Revision: 50 $ See Also: org.griphyn.vdl.classes.Definition |
Field Summary | |
final public static String | DEFAULT Although not truly a separator, this is the name of the default
namespace, which is used in the absence of a namespace. | final public static String | NAME This constant defines the separator between an identifier and
its version. | final public static String | NAMESPACE This constant defines the separator between a namespace and
the identifier. | final public static String | VERSION This constant defines the separator that denotes a version range. |
Method Summary | |
public static String | combine(String namespace, String name, String version) Combines the three components that constitute a fully-qualified
definition identifier into a single string. | public static String | combine(String namespace, String name, String min, String max) Combines the four components that reference a fully-qualified
definition identifier into a single string. | public static String[] | split(String fqdn) Splits a fully-qualified identifier into its components. | public static String[] | splitFQDI(String fqdi) Splits a fully-qualified definition identifier into separate
namespace, name and version. |
DEFAULT | final public static String DEFAULT(Code) | | Although not truly a separator, this is the name of the default
namespace, which is used in the absence of a namespace.
|
NAME | final public static String NAME(Code) | | This constant defines the separator between an identifier and
its version.
|
NAMESPACE | final public static String NAMESPACE(Code) | | This constant defines the separator between a namespace and
the identifier.
|
VERSION | final public static String VERSION(Code) | | This constant defines the separator that denotes a version range.
Version ranges are only used with the "uses" clause, which maps
from a derivation to a transformation.
|
combine | public static String combine(String namespace, String name, String version)(Code) | | Combines the three components that constitute a fully-qualified
definition identifier into a single string.
Parameters: namespace - is the namespace, may be empty or null. Parameters: name - is the name to use, must not be empty nor null. Parameters: version - is the version to attach, may be empty or null. the combination of namespace, name and version with separators. exception: NullPointerException - will be thrown on an empty or nullname, as no such identifier can be constructed. |
combine | public static String combine(String namespace, String name, String min, String max)(Code) | | Combines the four components that reference a fully-qualified
definition identifier into a single string.
Parameters: namespace - is the namespace, may be empty or null. Parameters: name - is the name to use, must not be empty nor null. Parameters: min - is the lower version to attach, may be empty or null. Parameters: max - is the upper version to attach, may be empty or null. the combination of namespace, name and versions with appropriate separators. exception: NullPointerException - will be thrown on an empty or nullname, as no such identifier can be constructed. |
split | public static String[] split(String fqdn) throws IllegalArgumentException(Code) | | Splits a fully-qualified identifier into its components. Please note
that you must check the length of the result. If it contains three
elements, it is a regular FQDN. If it contains four results, it is
a tranformation reference range. Note though, if the version portion
is not specified, a 3 argument string will always be returned, even
if the context requires a 4 argument string.
Parameters: fqdn - is the string to split into components. a vector with three or four Strings, if it was parsable. - namespace, may be null
- name, never null
- version for 3arg, or minimum version for 4arg, may be null
- maximum version for 4arg, may be null
exception: IllegalArgumentException - , if the identifier cannotbe parsed correctly. |
splitFQDI | public static String[] splitFQDI(String fqdi) throws IllegalArgumentException(Code) | | Splits a fully-qualified definition identifier into separate
namespace, name and version. Certain extensions permit a spec
to distinguish between an empty namespace or version and a
null (wildcard match) namespace and version.
There is a subtle distinction between a null value and an
empty value for the namespace and version. A null value is
usually taken as a wildcard match. An empty string however
is an exact match of a definition without the namespace or
version.
In order to enable the DAX generation function to distinguish
these cases when specifying user input, the following convention
is supported, where * stands in for wild-card matches, and
(-) for a match of an empty element:
INPUT | NS | ID | VS |
id | * | id | * |
::id | (-) | id | * |
::id: | (-) | id | (-) |
id: | * | id | (-) |
id:vs | * | id | vs |
n::id | n | id | * |
n::id: | n | id | (-) |
n::i:v | n | i | v |
::i:v | (-) | i | v |
Parameters: fqdi - is the fully-qualified definition identifier. an array with 3 entries representing namespace, nameand version. Namespace and version may be empty or even null. |
|
|