public abstract class Namespace
extends java.lang.Object
implements java.io.Serializable, org.eclipse.core.runtime.IAdaptable
This class and subclasses define a namespace for the creation and management
of ID instances. Creation of ID instances is accomplished via the
createInstance(Object[])
method, implemented by subclasses of this
Namespace superclass.
All Namespace instances must have a unique name passed to the Namespace upon construction.
Typically Namespace instances are created via plugins that define extensions of the org.eclipse.ecf.namespace extension point. For example, to define a new Namespace subclass XMPPNamespace with name "ecf.xmpp" and add it to the ECF extension registry:
<extension point="org.eclipse.ecf.namespace"> <namespace class="XMPPNamespace" name="ecf.xmpp"/> </extension>
ID
,
Serialized FormModifier and Type | Field and Description |
---|---|
static java.lang.String |
SCHEME_SEPARATOR |
Constructor and Description |
---|
Namespace() |
Namespace(java.lang.String name,
java.lang.String desc) |
Modifier and Type | Method and Description |
---|---|
abstract ID |
createInstance(java.lang.Object[] parameters)
Make an instance of this namespace.
|
boolean |
equals(java.lang.Object other)
Override of Object.equals.
|
java.lang.Object |
getAdapter(java.lang.Class adapter) |
protected int |
getCompareToForObject(BaseID first,
BaseID second)
The default implementation of this method is to call
first.namespaceCompareTo(second).
|
java.lang.String |
getDescription()
Get the description, associated with this Namespace.
|
protected int |
getHashCodeForID(BaseID id)
The default implementation of this method is to call
id.namespaceHashCode().
|
protected java.lang.String |
getInitStringFromExternalForm(java.lang.Object[] args) |
java.lang.String |
getName()
Get the name of this namespace.
|
protected java.lang.String |
getNameForID(BaseID id)
The default implementation of this method is to call
id.namespaceGetName().
|
abstract java.lang.String |
getScheme()
Get the primary scheme associated with this namespace.
|
java.lang.Class<?>[][] |
getSupportedParameterTypes()
Get the supported parameter types for IDs created via subsequent calls to
createInstance(Object[]) . |
java.lang.String[] |
getSupportedSchemes()
Get an array of schemes supported by this Namespace instance.
|
int |
hashCode()
Hashcode implementation.
|
boolean |
initialize(java.lang.String n,
java.lang.String desc) |
protected boolean |
testIDEquals(BaseID first,
BaseID second)
Test whether two IDs are equal to one another.
|
protected java.lang.String |
toExternalForm(BaseID id)
The default implementation of this method is to call
id.namespaceToExternalForm().
|
java.lang.String |
toString() |
public static final java.lang.String SCHEME_SEPARATOR
public Namespace()
public Namespace(java.lang.String name, java.lang.String desc)
public final boolean initialize(java.lang.String n, java.lang.String desc)
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
other
- the Object to test for equalitypublic int hashCode()
hashCode
in class java.lang.Object
protected boolean testIDEquals(BaseID first, BaseID second)
first
- the first ID. Must not be null
.second
- the second ID. Must not be null
.true
if this ID is equal to the given ID.
false
otherwise.protected java.lang.String getNameForID(BaseID id)
id
- the ID to get the name for. Must not be null
.protected int getCompareToForObject(BaseID first, BaseID second)
first
- the first id to compare. Must not be null
.second
- the second id to compare. Must not be null
.Comparable
.protected int getHashCodeForID(BaseID id)
id
- the id in this Namespace to get the hashcode for. Must not be
null
.protected java.lang.String toExternalForm(BaseID id)
id
- the id in this Namespace to convert to external form.createInstance(Object[])
as a single String parameter,
and should result in a valid ID instance of the appropriate
Namespace.public java.lang.String getName()
null
.null
, and the returned value should be a globally
unique name for this Namespace subclass.public java.lang.String getDescription()
null
.null
.public abstract ID createInstance(java.lang.Object[] parameters) throws IDCreateException
See
getSupportedParameterTypes()
to get information relevant to
deciding what parameter types are expected by this method.
parameters
- an Object[] of parameters for creating ID instances. May be
null.IDCreateException
- if construction failspublic abstract java.lang.String getScheme()
null
scheme
identifier. Note that the returned scheme should not contain the
Namespace.SCHEME_SEPARATOR (\":\").null
.public java.lang.String[] getSupportedSchemes()
null
, but returned array may be of length 0.public java.lang.Class<?>[][] getSupportedParameterTypes()
createInstance(Object[])
. Callers may use this method to
determine the available parameter types, and then create and pass in
conforming Object arrays to to createInstance(Object[])
.
An empty two-dimensional array (new Class[0][0]) is the default returned by this abstract superclass. This means that the Object [] passed to
createInstance(Object[])
will be ignored.
Subsclasses should override this method to specify the parameters that they will accept in calls to
createInstance(Object[])
. The rows
of the returned Class array are the acceptable types for a given
invocation of createInstance.
Consider the following example:
public Class[][] getSupportedParameterTypes() { return new Class[][] { { String.class }, { String.class, String.class } }; }The above means that there are two acceptable values for the Object [] passed into
createInstance(Object[])
: 1) a single String, and 2)
two Strings. These would therefore be acceptable as input to
createInstance:
ID newID1 = namespace.createInstance(new Object[] { "Hello" }); ID newID2 = namespace.createInstance(new Object[] { "Hello", "There"}};
createInstance(Object[])
. If zero-length
Class arrays are returned (i.e. Class[0][0]), then Object []
parameters to createInstance(Object[])
will be ignored.public java.lang.Object getAdapter(java.lang.Class adapter)
getAdapter
in interface org.eclipse.core.runtime.IAdaptable
protected java.lang.String getInitStringFromExternalForm(java.lang.Object[] args)
public java.lang.String toString()
toString
in class java.lang.Object