public class TLcdDataModelDescriptor extends TLcdModelDescriptor implements ILcdAnnotatedElement, ILcdDataModelDescriptor
ILcdDataModelDescriptor
. This class also implements
ILcdAnnotatedElement
to make it easily extensible.Modifier and Type | Method and Description |
---|---|
<T extends ILcdAnnotation> |
addAnnotation(ILcdAnnotation aAnnotation)
Adds the given annotation to this element.
|
<T extends ILcdAnnotation> |
getAnnotation(Class<T> aAnnotationClass)
Returns the element's annotation for the specified class if such an annotation is present,
else null.
|
Collection<ILcdAnnotation> |
getAnnotations()
Returns all annotations present on this element as an unmodifiable collection.
|
TLcdDataModel |
getDataModel()
Returns the data model that describes the elements of the model.
|
Set<TLcdDataType> |
getModelElementTypes()
Returns a set containing all the data types of which instances can be elements in the model
associated with this descriptor.
|
Set<TLcdDataType> |
getModelTypes()
Returns a set containing all the types of which instances can be used (including both
top-level elements and child objects) in the model associated with this descriptor.
|
boolean |
isAnnotationPresent(Class<? extends ILcdAnnotation> aAnnotationClass)
Returns true if an annotation for the specified class is present on this element,
else false.
|
<T extends ILcdAnnotation> |
removeAnnotation(Class<T> aAnnotationClass)
Removes the annotation of the given class from this element.
|
getDisplayName, getSourceName, getTypeName, setDisplayName, setSourceName, setTypeName, sourceNameToDisplayName
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDisplayName, getSourceName, getTypeName
@Deprecated public TLcdDataModelDescriptor(TLcdDataModel aDataModel)
TLcdDataModelDescriptor(TLcdDataModel, Collection, Collection)
or TLcdDataModelDescriptor(String, String, String, TLcdDataModel, Collection, Collection)
).TLcdDataModelDescriptor
with default source name,
type name, and display name. The model types and model element types are null
.aDataModel
- the data model for this descriptor@Deprecated public TLcdDataModelDescriptor(String aSourceName, String aTypeName, String aDisplayName, TLcdDataModel aDataModel)
TLcdDataModelDescriptor(TLcdDataModel, Collection, Collection)
or TLcdDataModelDescriptor(String, String, String, TLcdDataModel, Collection, Collection)
).TLcdDataModelDescriptor
with the given source name,
type name, display name and data model. The model types and model element types are null
.aSourceName
- the name of the data source.aTypeName
- the type name of the data source.aDisplayName
- the display name of the data source.aDataModel
- the data model of the data sourcepublic TLcdDataModelDescriptor(String aSourceName, String aTypeName, String aDisplayName, TLcdDataModel aDataModel, Collection<TLcdDataType> aModelElementTypes, Collection<TLcdDataType> aModelTypes)
TLcdDataModelDescriptor
with the
given arguments.aSourceName
- the name of the data source.aTypeName
- the type name of the data source.aDisplayName
- the display name of the data source.aDataModel
- the data model of the data sourceaModelElementTypes
- a collection containing all the data types of which instances can be elements in the model
associated with this descriptor.
Typically this is only a single type.
It is not recommended to mix multiple element types in the same model, as any code dealing
with that model will need code paths for each of those element types instead of a single code path.
If you pass null
, the data model declared types
are used.aModelTypes
- a collection containing all types which are used within the model (both model element types and
other types which are nested more deeply within the model data structure).
If you pass null
, the data model types
are used.public TLcdDataModelDescriptor(TLcdDataModel aDataModel, Collection<TLcdDataType> aModelElementTypes, Collection<TLcdDataType> aModelTypes)
TLcdDataModelDescriptor
with the
given arguments and default source name, type name and display name.
The values of aDataModel.getName()
and aDataModel.getDisplayName()
are used as type name and
display name of this model descriptor.aDataModel
- the data model of the data sourceaModelElementTypes
- a collection containing all the data types of which instances can be elements in the model
associated with this descriptor.
Typically this is only a single type.
It is not recommended to mix multiple element types in the same model, as any code dealing
with that model will need code paths for each of those element types instead of a single code path.
If you pass null
, the data model declared types
are used.aModelTypes
- a collection containing all types which are used within the model (both model element types and
other types which are nested more deeply within the model data structure).
If you pass null
, the data model types
are used.public <T extends ILcdAnnotation> T getAnnotation(Class<T> aAnnotationClass)
ILcdAnnotatedElement
Returns the element's annotation for the specified class if such an annotation is present, else null.
Note that the exact annotation class needs to be passed as parameter.
In other words, in case the element
is only annotated with instances of subclasses of the given annotation class,
null
is returned.
getAnnotation
in interface ILcdAnnotatedElement
aAnnotationClass
- - the Class object corresponding to the annotation typepublic Collection<ILcdAnnotation> getAnnotations()
ILcdAnnotatedElement
getAnnotations
in interface ILcdAnnotatedElement
public boolean isAnnotationPresent(Class<? extends ILcdAnnotation> aAnnotationClass)
ILcdAnnotatedElement
Returns true if an annotation for the specified class is present on this element, else false. This method is designed primarily for convenient access to marker annotations.
Note that the exact annotation class needs to be passed as parameter.
In other words, in case the element
is only annotated with instances of subclasses of the given annotation class,
false
is returned.
isAnnotationPresent
in interface ILcdAnnotatedElement
aAnnotationClass
- the Class object corresponding to the annotation classpublic <T extends ILcdAnnotation> T addAnnotation(ILcdAnnotation aAnnotation)
ILcdAnnotatedElement
addAnnotation
in interface ILcdAnnotatedElement
aAnnotation
- the annotation to addpublic <T extends ILcdAnnotation> T removeAnnotation(Class<T> aAnnotationClass)
ILcdAnnotatedElement
Removes the annotation of the given class from this element.
Note that the exact annotation class needs to be passed as parameter.
In other words, in case the element
is only annotated with instances of subclasses of the given annotation class,
nothing is removed and null
is returned.
removeAnnotation
in interface ILcdAnnotatedElement
aAnnotationClass
- the class of annotation to removepublic TLcdDataModel getDataModel()
ILcdDataModelDescriptor
Returns the data model that describes the elements of the model. Note that not necessarily all data in the model will be of a type of this data model. Very likely, types from the dependencies of the returned data model are used as well.
In case the model accepts objects from multiple data models, an anonymous
data model that depends on all these data models should be returned
(see TLcdDataModelBuilder.createAnonymousDataModel(java.util.Collection)
).
getDataModel
in interface ILcdDataModelDescriptor
public Set<TLcdDataType> getModelElementTypes()
ILcdDataModelDescriptor
Returns a set containing all the data types of which instances can be elements in the model associated with this descriptor. Implementations are free to limit the result to only include the types of which there are actually elements in the model; but they are not required to do so.
Implementations should return null
in case they don't know
which element types are present in the model.
For each element of the model associated with this model descriptor, the following holds true :
getModelElementTypes().contains( element.getDataType() )
.
getModelElementTypes
in interface ILcdDataModelDescriptor
public Set<TLcdDataType> getModelTypes()
ILcdDataModelDescriptor
Returns a set containing all the types of which instances can be used (including both top-level elements and child objects) in the model associated with this descriptor. Implementations are free to limit the result to only include the types of which there are actually instances in the model; but they are not required to do so.
A simple and correct implementation would be to return
getDataModel().getTypes()
. Implementations are encouraged to return a subset of
this set if they can do so without spending an unreasonable amount of resources.
Implementations should return null
in case they don't know
which types are present in the model.
getModelTypes
in interface ILcdDataModelDescriptor