Package com.luciad.datamodel


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:

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.

ILcdDataObject

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 meta model
The data model as such describes how the data is structured; it does not contain the data (for instance the name of the airport or the location of the city) or meta data (for instance who made this data, what is it about, and so on) itself.

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.

The developer's guide contains a detailed explanation about how to use this package.
Since:
10.0