ImagingTools Core SDK
Classes
Collection

Classes

class  imtbase::CCachedObjectCollectionComp
 
class  imtbase::CCollectionInfo
 
class  imtbase::CCollectionObjectContext
 
class  imtbase::CFilterCollectionProxy
 
class  imtbase::CObjectCollection
 
class  imtbase::CObjectCollectionBase
 
class  imtbase::CObjectCollectionComp
 
class  imtbase::COptionsListAdapterComp
 
class  imtbase::COrderedObjectCollectionProxy
 
class  imtbase::CParamsManagerAdapterComp
 
class  imtbase::CStaticObjectCollection
 
class  imtbase::ICollectionDataController
 
class  imtbase::ICollectionFilter
 
class  imtbase::ICollectionInfo
 
class  imtbase::IComplexCollectionFilter
 
class  imtbase::IHierarchicalStructureIterator
 
class  imtbase::IObjectCollection
 
class  imtbase::IObjectCollectionEvent
 
class  imtbase::IObjectCollectionInfo
 
class  imtbase::IObjectCollectionIterator
 
class  imtbase::IObjectCollectionProvider
 
class  imtbase::IOrderedObjectCollection
 
class  imtbase::IReferenceCollection
 
class  imtbase::IRevisionController
 
class  imtdb::CSqlDatabaseCollectionStructureIterator
 
class  imtdb::CSqlDatabaseObjectCollectionIterator
 
class  imtgui::CDocumentCollectionViewDelegateComp
 
class  imtgui::CObjectCollectionViewDelegate
 
class  imtgui::CPluginStatusMonitorViewDelegateComp
 
class  imtgui::ICollectionViewDelegate
 
class  imtmongo::CMongoDatabaseObjectCollectionIterator
 
class  imtrepo::CFileCollectionComp
 
class  imtrepo::CFileObjectCollectionIterator
 
class  imtrepo::IFileObjectCollection
 
class  imtrepo::IRepositoryFileTransformation
 
class  imtrepo::IRepositoryFileTransformationStepsProvider
 
class  imtrepo::IRepositoryTransformationController
 

Detailed Description

Motivation

One of the most important aspects in the software development is the definition and implementation of the data layer. A general task here is the grouping of data, since we can assume that any software product must manage sets of entities. We call such sets of entities - Collection. The typical requirements for an entity collection are:

The aim of the collection module is to standardize the working with object collections through a set of general interfaces and the associated implementations

Introduction

A collection is a container of items. We do not know anything about the structure or implementation detailes of the items in the container. The only thing we know about this container is that the items, that are located there, can be clearly identified (e.g. via a UUID). With regard to a collection, we therefore differentiate between two types of interfaces:

The basic interface for access to information about a collection is imtbase::ICollectionInfo. This simple interface allows querying all existing IDs of the elements in the collection. If the IDs of elements are known, the properties (descriptions) of these elements can be accessed (via these IDs)

For a collection itself, we don't have a general interface. Instead, there are interfaces for certain types of collections, the most important one is - imtbase::IObjectCollection. This interface describes the collection of data objects, that is, objects that implement directly or indirectly the istd::IChangeable interface. "Concrete" collection interfaces can offer their specialized extensions to the imtbase::ICollectionInfo interface. There is a suitable imtbase::IObjectCollectionInfo interface for imtbase::IObjectCollection.

Object Collection

As already said, for the collection of data objects we provide the interface imtbase::IObjectCollection. This interface allows CRUD/L operations for a document container. There are following implementations of object/document collections:

An important aspect is the management of informations about objects containing in the collection. We differentiate between of followng kinds of such informations: