Package com.luciad.datamodel
This package provides an API to access domain objects in a unified way. With this API it is possible to access all domain objects of a LuciadLightspeed model, independent of their specific domain. Additionally, the API provides information about the static structure of the domain objects as is typically provided by a UML diagram.
The main classes provided by this package are:
ILcdDataObject
: generic interface to access data.TLcdDataModel
,TLcdDataType
andTLcdDataProperty
: represent the static structure of a domain model.TLcdDataModelBuilder
: allows data models to be built.
The ILcdDataObject
interface defines the uniform interface for a data object.
A data object has one or more properties. For each of these properties, the data object
can have one or more values. Note that the values can be primitive object (Strings, numbers, and so on) but
also data objects themselves. The data object's properties are defined by its type. This
is shown in the following diagram.
TLcdDataModel
, TLcdDataType
and TLcdDataProperty
make
the static structure of a domain model visible. This structure is typically defined by one or
more UML class diagrams. A data model is defined as a set of types. Each of these type
defined a set of properties. This is shown in the following UML diagram.
The TLcdDataModelBuilder
serves as a builder that allows data models to be built. It
makes use of TLcdDataTypeBuilder
and TLcdDataPropertyBuilder
instances
to build data types and properties.
See the Introduction to the data modeling API tutorial for some example usages of these classes and interfaces.
Note that ILcdFeatured
and ILcdFeaturedDescriptor
provide
similar functionality as this package. These interfaces also provide a way to access domain data
in a uniform way. They do well for domain models with a simple structure. However, newer domain
models such as GML3, AIXM5 and KML have a rich hierarchical structure which is not easily
represented in this way. In time, this package will replace the functionality provided
by ILcdFeatured
and ILcdFeaturedDescriptor
.
- Since:
- 10.0
-
ClassDescriptionAn annotated element is an entity to which annotations can be attached.The common interface implemented by all annotations.Object that provides display names for data models, data types and data properties.A data object is a representation of some structured data.Interface that provides a mechanism to control the creation of new instances for types of a certain data model.
ILcdAnnotation
that indicates that the annotated type models an association class.This class provides static access to the core data model and its types.A data model is a collection of types that forms a logical entity.Builder that allowsTLcdDataModel
instances to be created.This factory interface offers a convenient way to annotate a data model while it is being built.Default implementation of aILcdDataModelDisplayNameProvider
.Default implementation ofILcdDataObject
.Represents a property of a type.Enumeration that defines the different collection types that are supported for multi-valued properties.Builder that allows the creation ofTLcdDataProperty
instances for a certain data model.This factory interface offers a convenient way to annotate a property while it is being built.A representation of the type of a data object.Builder that allows the creation of aTLcdDataType
.This factory interface offers a convenient way to annotate a type while it is being built.Data object that also implements theILcdSelfDescribedFeatured
interface.This builder is introduced to simplify the construction of data models from one or moreILcdFeaturedDescriptor
instances.An annotation type implementingILcdAnnotation
, meant to annotate properties that should stay hidden for an end-userImplementation of anILcdDataModelDisplayNameProvider
based on a resource bundle.This class provides access to the unknown data model.