CollectionDefFlags Enumeration

Meta Data Services Programming

Meta Data Services Programming

CollectionDefFlags Enumeration

This enumeration defines the behavior of a Relationship collection. These flags are bit flags, and they can be combined to set multiple options. The absence of a flag indicates that the option is not set.

enum {
COLLECTION_NAMING = 1,
COLLECTION_UNIQUENAMING = 2,
COLLECTION_CASESENSITIVE = 4,
COLLECTION_SEQUENCED = 8,
COLLECTION_PROPAGATEDELETE = 16,
COLLECTION_NEWORGVERSIONSPARTICIPATE = 32,
COLLECTION_NEWORGVERSIONSDONOTPARTICIPATE = 64,
COLLECTION_MERGEWHOLE = 128,
COLLECTION_CONTAINING = 256,
COLLECTION_OBJECTNAMING = 512,
COLLECTION_NEWDESTVERSIONADD = 1024,
COLLECTION_NEWDESTVERSIONPROPAGATE = 2048
} CollectionDefFlags;
Value Description
COLLECTION_UNIQUENAMING If this flag is set, the relationship type for the collection requires the name of a destination object to be unique within the collection of destination objects. This flag applies to collections of a relationship type that permits the naming of destination objects.
COLLECTION_CASESENSITIVE If this flag is set, the relationship type for the collection permits the use of case-sensitive names for destination objects. This flag applies to collections of a relationship type that permits the naming of destination objects.
COLLECTION_SEQUENCED If this flag is set, the destination objects in the collection have an explicitly defined sequence. Collections of origin objects are never sequenced.
COLLECTION_NAMING If this flag is set, the relationship type for the collection permits the naming of destination objects.
COLLECTION_PROPAGATEDELETE If this flag is set, the relationship type for the collection requires that deletes be propagated to destination objects. The destination object is only deleted if it is the last relationship of this type that is connected to the object.
COLLECTION_NEWORGVERSIONSPARTICIPATE If this flag is set, the CreateVersion method copies origin collections of this type from the predecessor creation version to the newly created successor version.
COLLECTION_NEWORGVERSIONSDONOTPARTICIPATE If this flag is set, origin collections cannot be copied to a new object version. This flag is the opposite of the COLLECTION_NEWORGVERSIONSPARTICIPATE flag. You cannot set both flags at the same time. However, by default, both flags are not set. When neither flag is set, the repository engine operates as if the COLLECTION_NEWORGVERSIONSPARTICIPATE flag were set. That is, during the creation of a new version of a repository object, the repository engine copies new origin collections from a predecessor creation version to a successor version.
COLLECTION_MERGEWHOLE Setting this flag determines the behavior of the MergeVersion method. If this flag is set, this flag causes the successor version to match the primary version. If the successor and primary versions already match, the successor version is matched to the secondary version. If this flag is not set, the combined differences from both the primary and secondary versions are merged into the successor version. For more information, see Merge Overview.
COLLECTION_CONTAINING If this flag is set, the destination object (for example, a column) will be contained in the origin object (for example, a table). In other words, the destination cannot exist outside the origin. XML Encoding uses this flag to determine which objects to nest. For more information, see Using XML Encoding.
COLLECTION_OBJECTNAMING If this flag is set, it specifies that the collection uses the name specified by the INamedObject Name property as its relationship name. For more information, see INamedObject Interface.
COLLECTION_NEWDESTVERSIONADD If this flag is set, the CreateVersion method on a destination object and a new version of the destination object is created, then a relationship between the related origin object and the new destination object is created. The new relationship overrides the relationship between the origin object and the original destination object.
COLLECTION_NEWDESTVERSIONPROPAGATE If this flag is set, the CreateVersion method on a destination object propagates versioning to origin objects related through collections of that match the current collection type.

This behavior occurs in response to the versioning of a destination object. When the destination object is versioned, its origin object is also versioned.

This behavior can propagate backwards through a version graph. If the newly versioned origin object is simultaneously a destination object of another relationship, its origin object is also versioned. The versioning of paired objects continues up the version graph until an unfrozen origin object is encountered. This behavior occurs continues to occur until a frozen origin object is encountered. It also continues to occur for a series of relationships that are created within the same transaction.

See Also

CollectionDef Flags Property

ICollectionDef Flags Property

IInterfaceDef::CreateRelationshipColDef

InterfaceDef CreateRelationshipColDef Method