public abstract class ExtensionTypeDef<T>
extends java.lang.Object
Modifier | Constructor and Description |
---|---|
protected |
ExtensionTypeDef(java.lang.String typeId, java.lang.String[] keyNames, ValidationGroup[] validators)
constructor
|
Modifier and Type | Method and Description |
---|---|
static <T> ExtensionTypeDef<T> |
combine(java.util.List<ExtensionTypeDef> extensions)
Combines one or more extensions into one extension such that the calls to the extensions are chained.
|
static <T> ResourceTypeDef<T> |
combine(ResourceTypeDef<T> main, ExtensionTypeDef<T> extension)
Combines a non-extension type with an extension type.
|
abstract java.util.Set<Ref> |
computeExternalReferences(Ref ref, T data)
Returns a set of Ref object representing the external references found in the given data.
|
abstract java.util.Collection<NonQualifiedEnvValue> |
getEnvValues(Ref ref, T data)
Returns a collection of instances of environment dependent values in the given data.
|
java.util.List<java.lang.String> |
getKeyNames()
Returns key names
|
abstract 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 value of the key whose name is given using the data.
|
java.lang.String |
getTypeId()
returns the id of the type to extend
|
java.util.List<ValidationGroup> |
getValidationGroups()
returns the validation groups
|
abstract T |
modifyReferences(Ref ref, T data, java.util.Map<Ref,Ref> mapping)
changes references in the given data according to the given map and returns the result.
|
abstract T |
setEnvValues(Ref ref, T data, java.util.Collection<EnvValueAction> envValues)
Processes the given collection of environment value actions in the data.
|
abstract void |
validate(Ref refToData, T data, Diagnostics diags, ValidationContext context)
Validates the data, and adds and diagnostics (warnings, errors) to the diags list.
|
protected ExtensionTypeDef(java.lang.String typeId, java.lang.String[] keyNames, ValidationGroup[] validators)
typeId
- the type to be extendedkeyNames
- keyspublic final java.lang.String getTypeId()
public final java.util.List<java.lang.String> getKeyNames()
public final java.util.List<ValidationGroup> getValidationGroups()
public java.util.Map<java.lang.String,java.lang.Object> getKeyValues(Ref ref, T data)
public abstract java.lang.Object getKeyValue(Ref ref, T data, java.lang.String keyName)
keyName
- name of the key.public abstract java.util.Set<Ref> computeExternalReferences(Ref ref, T data)
public abstract T modifyReferences(Ref ref, T data, java.util.Map<Ref,Ref> mapping) throws java.lang.Exception
mapping
- mapping from old references to the new onesdata
- Copy data containing the old referencesjava.lang.Exception
public abstract java.util.Collection<NonQualifiedEnvValue> getEnvValues(Ref ref, T data)
public abstract T setEnvValues(Ref ref, T data, java.util.Collection<EnvValueAction> envValues)
public abstract void validate(Ref refToData, T data, Diagnostics diags, ValidationContext context)
This method may be called even if the resource has not been updated. Validation will occur in the following cases
refToData
- reference of the resource to validatedata
- value of the resource to validatediags
- diagnostics list where the warnings, errors etc should be addedcontext
- the diagnostic context containing extra informationpublic static <T> ExtensionTypeDef<T> combine(java.util.List<ExtensionTypeDef> extensions)
public static <T> ResourceTypeDef<T> combine(ResourceTypeDef<T> main, ExtensionTypeDef<T> extension)