public abstract class BaseTypeDef<T>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
NON_INDEXABLE_KEY_PREFIX
Keys with this prefix will not be stored in an index.
|
Modifier | Constructor and Description |
---|---|
protected |
BaseTypeDef(java.lang.String typeId, java.lang.String[] keyNames)
Constructor for creating a non-resource type.
|
Modifier and Type | Method and Description |
---|---|
java.util.Map<java.lang.String,java.lang.Object> |
computeIndexValues(Ref instanceId, T data)
Computes index values from the given data.
|
int |
getKeyIndex(java.lang.String keyName)
Returns the ordering for the given key
|
java.util.List<java.lang.String> |
getKeyNames()
Returns key names
|
java.lang.Object |
getKeyValue(Ref ref, T data, java.lang.String keyName)
Computes the value of the key whose name is given using the data.
|
java.util.Map<java.lang.String,java.lang.Object> |
getKeyValues(Ref ref, T data)
Computes the values of the keys whose names are given using the data.
|
java.lang.String |
getTypeId()
returns the type id
|
boolean |
hasIndex()
Returns whether there is an index on this component
|
boolean |
keyExists(java.lang.String keyName)
Returns true if there is a key with the given name
|
public static final java.lang.String NON_INDEXABLE_KEY_PREFIX
protected BaseTypeDef(java.lang.String typeId, java.lang.String[] keyNames)
typeId
- the unique id of this type. The syntax must conform to java identifier syntaxkeyNames
- array of key names that constitute the searchable properties of a component. A null value or an empty array indicates no searchable properties. The names can be arbitrary but they have to be unique in the array. If keyNames are defined the subclasses of component type should also reimplement the getKeyValue(Ref, Object, String)
method.public final java.lang.String getTypeId()
public final java.util.List<java.lang.String> getKeyNames()
public final boolean hasIndex()
public final int getKeyIndex(java.lang.String keyName)
public final boolean keyExists(java.lang.String keyName) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public final java.util.Map<java.lang.String,java.lang.Object> computeIndexValues(Ref instanceId, T data) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public java.util.Map<java.lang.String,java.lang.Object> getKeyValues(Ref ref, T data)
The default implementation of this method is to delegate to getKeyValue(Ref, Object, String)
public java.lang.Object getKeyValue(Ref ref, T data, java.lang.String keyName)
keyName
- name of the key.