net.sf.farrago.cwm.keysindexes
Interface KeysIndexesPackage

All Superinterfaces:
RefBaseObject, RefPackage
All Known Implementing Classes:
KeysIndexesPackage$Hib

public interface KeysIndexesPackage
extends RefPackage

KeysIndexes package interface. The KeysIndexes package depends on the following package: org.omg::CWM::ObjectModel::Core Keys and indexes as means for specifying instances and for identifying alternate sortings of instances are epresented in the CWMFoundation so that they can be shared among the various data models that employ hem. The CWM Foundation defines the base concepts (uniqueness and relationships implemented as keys) pon which more specific key structures can be built by other CWM and tool-specific packages. The concepts of key and index have been placed in the CWM Foundation because they are available in many types of data resources. In the CWM Foundation class and association descriptions that follow, relational model examples are frequently used when discussing the definition and usage of key and index types. This is done because of the wide-spread availability of relational systems and is thought to promote an understanding of the underlying concepts. These concepts, however, are no less applicable to other data models as well. The two central classes for representing the concept of keys are UniqueKey and KeyRelationship. UniqueKey instances correspond to the notion that keys represent the identity of instances -- similar to the relational model?s concept of a primary key or an object model?s concept of an object identity. In contrast, KeyRelationship instancescorrespond to the notion that keys embedded in an instance can be used to determine the identity of other related instances -- similar to the relational model concept of foreign key and the object model concept of a reference. Consequently, UniqueKey and KeyRelationship are best thought of as representing roles that collections of Features of Classifiers play rather than Classifiers describing the internal structure of keys. Representing keys as roles rather than structural entities provides greater flexibility and allows the reuse of Features in multiple keys and in differing relationships to each other. Associations within the KeysIndexes package describe how UniqueKey and KeyRelationship instances describe the roles they play for various Class instances and the StructuralFeature instances they contain. OCL Representation of KeysIndexes Constraints [C-6-1]The isAscending attribute is valid only if the isSorted attribute is True. context IndexedFeature inv: self.isAscending->notEmpty implies self.index.isSorted [C-6-2] A KeyRelationship instance must be owned by one and only one Class instance. context KeyRelationship inv: (self.namespace->size = 1) and self.namespace.oclIsKindOf(Class) [C-6-3] An UniqueKey instance must be owned by one and only one Class instance. context UniqueKey inv: (self.namespace->size = 1) and self.namespace.oclIsKindOf(Class)

Note: This type should not be subclassed, implemented or directly instantiated by clients. It is generated from a MOF metamodel and implemented by Enki or MDR.


Method Summary
 CwmIndexClass getCwmIndex()
          Returns CwmIndex class proxy object.
 CwmIndexedFeatureClass getCwmIndexedFeature()
          Returns CwmIndexedFeature class proxy object.
 CwmKeyRelationshipClass getCwmKeyRelationship()
          Returns CwmKeyRelationship class proxy object.
 CwmUniqueKeyClass getCwmUniqueKey()
          Returns CwmUniqueKey class proxy object.
 IndexedFeatureInfo getIndexedFeatureInfo()
          Returns IndexedFeatureInfo association proxy object.
 IndexedFeatures getIndexedFeatures()
          Returns IndexedFeatures association proxy object.
 IndexSpansClass getIndexSpansClass()
          Returns IndexSpansClass association proxy object.
 KeyRelationshipFeatures getKeyRelationshipFeatures()
          Returns KeyRelationshipFeatures association proxy object.
 UniqueFeature getUniqueFeature()
          Returns UniqueFeature association proxy object.
 UniqueKeyRelationship getUniqueKeyRelationship()
          Returns UniqueKeyRelationship association proxy object.
 
Methods inherited from interface javax.jmi.reflect.RefPackage
refAllAssociations, refAllClasses, refAllPackages, refAssociation, refAssociation, refClass, refClass, refCreateStruct, refCreateStruct, refDelete, refGetEnum, refGetEnum, refPackage, refPackage
 
Methods inherited from interface javax.jmi.reflect.RefBaseObject
equals, hashCode, refImmediatePackage, refMetaObject, refMofId, refOutermostPackage, refVerifyConstraints
 

Method Detail

getCwmUniqueKey

CwmUniqueKeyClass getCwmUniqueKey()
Returns CwmUniqueKey class proxy object. A UniqueKey represents a collection of features of some Class that, taken together, uniquely identify instances of the Class. Instances of UniqueKey for which all features are required to have non-null values are candidates for use as primary keys such as those defined by relational DBMSs.

Returns:
CwmUniqueKey class proxy object.

getCwmIndex

CwmIndexClass getCwmIndex()
Returns CwmIndex class proxy object. Instances of the Index class represent the ordering of the instances of some other Class, and the Index is said to "span" the Class. Indexes normally have an ordered set of attributes of the Class instance they span that make up the "key" of the index; this set of relationships is represented by the IndexedFeature class that indicates how the attributes are used by the Index instance. The Index class is intended primarily as a starting point for tools that require the notion of an index.

Returns:
CwmIndex class proxy object.

getCwmKeyRelationship

CwmKeyRelationshipClass getCwmKeyRelationship()
Returns CwmKeyRelationship class proxy object. KeyRelationship instances represent relationships between UniqueKey instances and the Class(es) that reference them. This class is intended as a starting point for the creation of "foreign key" and other associative relationships.

Returns:
CwmKeyRelationship class proxy object.

getCwmIndexedFeature

CwmIndexedFeatureClass getCwmIndexedFeature()
Returns CwmIndexedFeature class proxy object. Instances of the IndexedFeature class map StructuralFeature instances of the spanned Class instance to the Index instances that employ them as (part of) their key. Attributes of IndexedFeature instances indicate how specific StructuralFeature instance are used in Index keys.

Returns:
CwmIndexedFeature class proxy object.

getIndexedFeatures

IndexedFeatures getIndexedFeatures()
Returns IndexedFeatures association proxy object. The IndexedFeatures association links StructuralFeature instances to information about how they participate in the keys of Index instances.

Returns:
IndexedFeatures association proxy object.

getIndexedFeatureInfo

IndexedFeatureInfo getIndexedFeatureInfo()
Returns IndexedFeatureInfo association proxy object. The IndexedFeatureInfo association connects an Index instance to information about how the StructuralFeature instances that are constituents of the Index?s key are used by the Index.

Returns:
IndexedFeatureInfo association proxy object.

getKeyRelationshipFeatures

KeyRelationshipFeatures getKeyRelationshipFeatures()
Returns KeyRelationshipFeatures association proxy object. The KeyRelationshipFeatures association links KeyRelationship instances with the StructuralFeature instances that comprise their key.

Returns:
KeyRelationshipFeatures association proxy object.

getUniqueFeature

UniqueFeature getUniqueFeature()
Returns UniqueFeature association proxy object. The UniqueFeature association identifies the Feature instances of a Class instance that confer uniqueness. The ordered constraint is used to determine the order of StructuralFeature instances in the UniqueKey instance.

Returns:
UniqueFeature association proxy object.

getUniqueKeyRelationship

UniqueKeyRelationship getUniqueKeyRelationship()
Returns UniqueKeyRelationship association proxy object. The UniqueKeyRelationship association links a KeyRelationship with the UniqueKey with which it is paired. For example, in relational model terms, this association links a foreign key -- the KeyRelationship instance -- with the primary key -- the UniqueKey instance -- with which it is paired.

Returns:
UniqueKeyRelationship association proxy object.

getIndexSpansClass

IndexSpansClass getIndexSpansClass()
Returns IndexSpansClass association proxy object. Associates indexes with the classes they span. This relationship is separate from the ownership of indexes, to allow modeling of systems where an index is NOT owned by the object it spans. In most situations, however, the spanned and owning Class instances will be the same.

Returns:
IndexSpansClass association proxy object.