bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { CustomPropertyDefinition definition; CustomPropertyDefinition otherDefinition; ORMModelElement extendedElement; ORMModelElement otherExtendedElement; if (null != (definition = CustomPropertyDefinition) && null != (otherDefinition = CopyMergeUtility.GetEquivalentElement(definition, foreignStore, elementTracker)) && null != (extendedElement = ORMModelElementHasExtensionElement.GetExtendedElement(this)) && null != (otherExtendedElement = CopyMergeUtility.GetEquivalentElement(extendedElement, foreignStore, elementTracker))) { // UNDONE: COPYMERGE This will not work for custom properties on a model, // but these are not currently selectable and all other contained elements should work correctly. foreach (ModelElement element in otherExtendedElement.ExtensionCollection) { CustomProperty otherProperty = element as CustomProperty; if (otherProperty != null && otherProperty.CustomPropertyDefinition == otherDefinition) { elementTracker.AddEquivalentElement(this, otherProperty); return(true); } } } return(false); }
/// <summary> /// Helper method for matching value ranges. Called after an /// <see cref="IElementEquivalence"/> implementation has determined /// that this <see cref="CardinalityConstraint"/> and <paramref name="otherCardinalityConstraint"/> /// correspond to the same instance. /// </summary> /// <param name="otherCardinalityConstraint">The equivalent value constraint.</param> /// <param name="elementTracker">The <see cref="IEquivalentElementTracker"/> used /// to equate ranges.</param> protected void MatchRanges(CardinalityConstraint otherCardinalityConstraint, IEquivalentElementTracker elementTracker) { LinkedElementCollection <CardinalityRange> ranges = RangeCollection; int rangeCount = ranges.Count; if (rangeCount != 0) { LinkedElementCollection <CardinalityRange> otherRanges = otherCardinalityConstraint.RangeCollection; int otherRangeCount = otherRanges.Count; if (otherRangeCount != 0) { BitTracker otherMatches = new BitTracker(otherRangeCount); for (int i = 0; i < rangeCount; ++i) { CardinalityRange range = ranges[i]; int lower = range.LowerBound; int upper = range.UpperBound; for (int j = 0; j < otherRangeCount; ++j) { if (!otherMatches[j]) { CardinalityRange otherRange = otherRanges[j]; if (otherRange.LowerBound == lower && otherRange.UpperBound == upper) { elementTracker.AddEquivalentElement(range, otherRange); otherMatches[j] = true; break; } } } } } } }
bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { CustomPropertyDefinition definition; CustomPropertyDefinition otherDefinition; ORMModelElement extendedElement; ORMModelElement otherExtendedElement; if (null != (definition = CustomPropertyDefinition) && null != (otherDefinition = CopyMergeUtility.GetEquivalentElement(definition, foreignStore, elementTracker)) && null != (extendedElement = ORMModelElementHasExtensionElement.GetExtendedElement(this)) && null != (otherExtendedElement = CopyMergeUtility.GetEquivalentElement(extendedElement, foreignStore, elementTracker))) { // UNDONE: COPYMERGE This will not work for custom properties on a model, // but these are not currently selectable and all other contained elements should work correctly. foreach (ModelElement element in otherExtendedElement.ExtensionCollection) { CustomProperty otherProperty = element as CustomProperty; if (otherProperty != null && otherProperty.CustomPropertyDefinition == otherDefinition) { elementTracker.AddEquivalentElement(this, otherProperty); return true; } } } return false; }
/// <summary> /// Map groups by name /// </summary> bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { if (null != foreignStore.FindDomainModel(CustomPropertiesDomainModel.DomainModelId)) { string testName = Name; foreach (CustomPropertyGroup otherGroup in foreignStore.ElementDirectory.FindElements <CustomPropertyGroup>(false)) { if (otherGroup.Name == testName) { elementTracker.AddEquivalentElement(this, otherGroup); return(true); } } } return(false); }
/// <summary> /// Map groups by name /// </summary> bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { if (null != foreignStore.FindDomainModel(CustomPropertiesDomainModel.DomainModelId)) { string testName = Name; foreach (CustomPropertyGroup otherGroup in foreignStore.ElementDirectory.FindElements<CustomPropertyGroup>(false)) { if (otherGroup.Name == testName) { elementTracker.AddEquivalentElement(this, otherGroup); return true; } } } return false; }
/// <summary> /// Map groups by name /// </summary> bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { CustomPropertyGroup otherGroup; if (null != (otherGroup = CopyMergeUtility.GetEquivalentElement(CustomPropertyGroup, foreignStore, elementTracker))) { string testName = Name; foreach (CustomPropertyDefinition otherDefinition in otherGroup.CustomPropertyDefinitionCollection) { if (otherDefinition.Name == testName) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } } return false; }
/// <summary> /// Map groups by name /// </summary> bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { CustomPropertyGroup otherGroup; if (null != (otherGroup = CopyMergeUtility.GetEquivalentElement(CustomPropertyGroup, foreignStore, elementTracker))) { string testName = Name; foreach (CustomPropertyDefinition otherDefinition in otherGroup.CustomPropertyDefinitionCollection) { if (otherDefinition.Name == testName) { elementTracker.AddEquivalentElement(this, otherDefinition); return(true); } } } return(false); }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { ObjectType parentObjectType; if (null != (parentObjectType = this.Subtype)) { // Embedded through the SubtypeHasDerivationRule relationship ObjectType otherParentObjectType; SubtypeDerivationRule otherSubtypeDerivationRule; if (null != (otherParentObjectType = CopyMergeUtility.GetEquivalentElement(parentObjectType, foreignStore, elementTracker)) && null != (otherSubtypeDerivationRule = otherParentObjectType.DerivationRule)) { elementTracker.AddEquivalentElement(this, otherSubtypeDerivationRule); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { CalculatedPathValueInput parentCalculatedPathValueInput; ConstraintRoleProjection parentConstraintRoleProjection; FactTypeRoleProjection parentFactTypeRoleProjection; if (null != (parentCalculatedPathValueInput = this.BoundInput)) { // Embedded through the CalculatedPathValueInputBindsToPathConstant relationship CalculatedPathValueInput otherParentCalculatedPathValueInput; PathConstant otherPathConstant; if (null != (otherParentCalculatedPathValueInput = CopyMergeUtility.GetEquivalentElement(parentCalculatedPathValueInput, foreignStore, elementTracker)) && null != (otherPathConstant = otherParentCalculatedPathValueInput.SourceConstant)) { elementTracker.AddEquivalentElement(this, otherPathConstant); return true; } } else if (null != (parentConstraintRoleProjection = this.ConstraintRoleProjection)) { // Embedded through the ConstraintRoleProjectedFromPathConstant relationship ConstraintRoleProjection otherParentConstraintRoleProjection; PathConstant otherPathConstant; if (null != (otherParentConstraintRoleProjection = CopyMergeUtility.GetEquivalentElement(parentConstraintRoleProjection, foreignStore, elementTracker)) && null != (otherPathConstant = otherParentConstraintRoleProjection.ProjectedFromConstant)) { elementTracker.AddEquivalentElement(this, otherPathConstant); return true; } } else if (null != (parentFactTypeRoleProjection = this.FactTypeRoleProjection)) { // Embedded through the FactTypeRoleProjectedFromPathConstant relationship FactTypeRoleProjection otherParentFactTypeRoleProjection; PathConstant otherPathConstant; if (null != (otherParentFactTypeRoleProjection = CopyMergeUtility.GetEquivalentElement(parentFactTypeRoleProjection, foreignStore, elementTracker)) && null != (otherPathConstant = otherParentFactTypeRoleProjection.ProjectedFromConstant)) { elementTracker.AddEquivalentElement(this, otherPathConstant); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { RolePathObjectTypeRoot parentRolePathObjectTypeRoot; if (null != (parentRolePathObjectTypeRoot = this.PathRoot)) { // Embedded through the RolePathRootHasValueConstraint relationship RolePathObjectTypeRoot otherParentRolePathObjectTypeRoot; PathConditionRootValueConstraint otherPathConditionRootValueConstraint; if (null != (otherParentRolePathObjectTypeRoot = CopyMergeUtility.GetEquivalentElement(parentRolePathObjectTypeRoot, foreignStore, elementTracker)) && null != (otherPathConditionRootValueConstraint = otherParentRolePathObjectTypeRoot.ValueConstraint)) { elementTracker.AddEquivalentElement(this, otherPathConditionRootValueConstraint); this.MatchValueRanges(otherPathConditionRootValueConstraint, elementTracker); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { PathedRole parentPathedRole; if (null != (parentPathedRole = this.PathedRole)) { // Embedded through the PathedRoleHasValueConstraint relationship PathedRole otherParentPathedRole; PathConditionRoleValueConstraint otherPathConditionRoleValueConstraint; if (null != (otherParentPathedRole = CopyMergeUtility.GetEquivalentElement(parentPathedRole, foreignStore, elementTracker)) && null != (otherPathConditionRoleValueConstraint = otherParentPathedRole.ValueConstraint)) { elementTracker.AddEquivalentElement(this, otherPathConditionRoleValueConstraint); this.MatchValueRanges(otherPathConditionRoleValueConstraint, elementTracker); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { ElementGrouping parentElementGrouping; FactType parentFactType; LeadRolePath parentLeadRolePath; ObjectType parentObjectType; ORMModel parentORMModel; SetComparisonConstraint parentSetComparisonConstraint; SetConstraint parentSetConstraint; ValueConstraint parentValueConstraint; if (null != (parentElementGrouping = this.Grouping)) { // Embedded through the ElementGroupingHasNote relationship ElementGrouping otherParentElementGrouping; Note otherNote; if (null != (otherParentElementGrouping = CopyMergeUtility.GetEquivalentElement(parentElementGrouping, foreignStore, elementTracker)) && null != (otherNote = otherParentElementGrouping.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentFactType = this.FactType)) { // Embedded through the FactTypeHasNote relationship FactType otherParentFactType; Note otherNote; if (null != (otherParentFactType = CopyMergeUtility.GetEquivalentElement(parentFactType, foreignStore, elementTracker)) && null != (otherNote = otherParentFactType.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentLeadRolePath = this.RolePath)) { // Embedded through the LeadRolePathHasNote relationship LeadRolePath otherParentLeadRolePath; Note otherNote; if (null != (otherParentLeadRolePath = CopyMergeUtility.GetEquivalentElement(parentLeadRolePath, foreignStore, elementTracker)) && null != (otherNote = otherParentLeadRolePath.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentObjectType = this.ObjectType)) { // Embedded through the ObjectTypeHasNote relationship ObjectType otherParentObjectType; Note otherNote; if (null != (otherParentObjectType = CopyMergeUtility.GetEquivalentElement(parentObjectType, foreignStore, elementTracker)) && null != (otherNote = otherParentObjectType.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentORMModel = this.PrimaryForModel)) { // Embedded through the ModelHasPrimaryNote relationship ORMModel otherParentORMModel; Note otherNote; if (null != (otherParentORMModel = CopyMergeUtility.GetEquivalentElement(parentORMModel, foreignStore, elementTracker)) && null != (otherNote = otherParentORMModel.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentSetComparisonConstraint = this.SetComparisonConstraint)) { // Embedded through the SetComparisonConstraintHasNote relationship SetComparisonConstraint otherParentSetComparisonConstraint; Note otherNote; if (null != (otherParentSetComparisonConstraint = CopyMergeUtility.GetEquivalentElement(parentSetComparisonConstraint, foreignStore, elementTracker)) && null != (otherNote = otherParentSetComparisonConstraint.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentSetConstraint = this.SetConstraint)) { // Embedded through the SetConstraintHasNote relationship SetConstraint otherParentSetConstraint; Note otherNote; if (null != (otherParentSetConstraint = CopyMergeUtility.GetEquivalentElement(parentSetConstraint, foreignStore, elementTracker)) && null != (otherNote = otherParentSetConstraint.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } else if (null != (parentValueConstraint = this.ValueConstraint)) { // Embedded through the ValueConstraintHasNote relationship ValueConstraint otherParentValueConstraint; Note otherNote; if (null != (otherParentValueConstraint = CopyMergeUtility.GetEquivalentElement(parentValueConstraint, foreignStore, elementTracker)) && null != (otherNote = otherParentValueConstraint.Note)) { elementTracker.AddEquivalentElement(this, otherNote); return true; } } return false; }
bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { ORMModel parentORMModel; if (null != (parentORMModel = this.Model)) { // Embedded through the ModelHasModelErrorDisplayFilter relationship ORMModel otherParentORMModel; ModelErrorDisplayFilter otherModelErrorDisplayFilter; if (null != (otherParentORMModel = CopyMergeUtility.GetEquivalentElement(parentORMModel, foreignStore, elementTracker)) && null != (otherModelErrorDisplayFilter = otherParentORMModel.ModelErrorDisplayFilter)) { elementTracker.AddEquivalentElement(this, otherModelErrorDisplayFilter); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { ElementGrouping parentElementGrouping; FactType parentFactType; ObjectType parentObjectType; ORMModel parentORMModel; SetComparisonConstraint parentSetComparisonConstraint; SetConstraint parentSetConstraint; ValueConstraint parentValueConstraint; if (null != (parentElementGrouping = this.Grouping)) { // Embedded through the ElementGroupingHasDefinition relationship ElementGrouping otherParentElementGrouping; Definition otherDefinition; if (null != (otherParentElementGrouping = CopyMergeUtility.GetEquivalentElement(parentElementGrouping, foreignStore, elementTracker)) && null != (otherDefinition = otherParentElementGrouping.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } else if (null != (parentFactType = this.FactType)) { // Embedded through the FactTypeHasDefinition relationship FactType otherParentFactType; Definition otherDefinition; if (null != (otherParentFactType = CopyMergeUtility.GetEquivalentElement(parentFactType, foreignStore, elementTracker)) && null != (otherDefinition = otherParentFactType.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } else if (null != (parentObjectType = this.ObjectType)) { // Embedded through the ObjectTypeHasDefinition relationship ObjectType otherParentObjectType; Definition otherDefinition; if (null != (otherParentObjectType = CopyMergeUtility.GetEquivalentElement(parentObjectType, foreignStore, elementTracker)) && null != (otherDefinition = otherParentObjectType.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } else if (null != (parentORMModel = this.Model)) { // Embedded through the ModelHasDefinition relationship ORMModel otherParentORMModel; Definition otherDefinition; if (null != (otherParentORMModel = CopyMergeUtility.GetEquivalentElement(parentORMModel, foreignStore, elementTracker)) && null != (otherDefinition = otherParentORMModel.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } else if (null != (parentSetComparisonConstraint = this.SetComparisonConstraint)) { // Embedded through the SetComparisonConstraintHasDefinition relationship SetComparisonConstraint otherParentSetComparisonConstraint; Definition otherDefinition; if (null != (otherParentSetComparisonConstraint = CopyMergeUtility.GetEquivalentElement(parentSetComparisonConstraint, foreignStore, elementTracker)) && null != (otherDefinition = otherParentSetComparisonConstraint.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } else if (null != (parentSetConstraint = this.SetConstraint)) { // Embedded through the SetConstraintHasDefinition relationship SetConstraint otherParentSetConstraint; Definition otherDefinition; if (null != (otherParentSetConstraint = CopyMergeUtility.GetEquivalentElement(parentSetConstraint, foreignStore, elementTracker)) && null != (otherDefinition = otherParentSetConstraint.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } else if (null != (parentValueConstraint = this.ValueConstraint)) { // Embedded through the ValueConstraintHasDefinition relationship ValueConstraint otherParentValueConstraint; Definition otherDefinition; if (null != (otherParentValueConstraint = CopyMergeUtility.GetEquivalentElement(parentValueConstraint, foreignStore, elementTracker)) && null != (otherDefinition = otherParentValueConstraint.Definition)) { elementTracker.AddEquivalentElement(this, otherDefinition); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { ConstraintRoleSequence parentConstraintRoleSequence; if (null != (parentConstraintRoleSequence = this.RoleSequence)) { // Embedded through the ConstraintRoleSequenceHasJoinPath relationship ConstraintRoleSequence otherParentConstraintRoleSequence; ConstraintRoleSequenceJoinPath otherConstraintRoleSequenceJoinPath; if (null != (otherParentConstraintRoleSequence = CopyMergeUtility.GetEquivalentElement(parentConstraintRoleSequence, foreignStore, elementTracker)) && null != (otherConstraintRoleSequenceJoinPath = otherParentConstraintRoleSequence.JoinPath)) { elementTracker.AddEquivalentElement(this, otherConstraintRoleSequenceJoinPath); return true; } } return false; }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { ObjectType parentObjectType; if (null != (parentObjectType = this.ValueType)) { // Embedded through the ValueTypeHasValueConstraint relationship ObjectType otherParentObjectType; ValueTypeValueConstraint otherValueTypeValueConstraint; if (null != (otherParentObjectType = CopyMergeUtility.GetEquivalentElement(parentObjectType, foreignStore, elementTracker)) && null != (otherValueTypeValueConstraint = otherParentObjectType.ValueConstraint)) { elementTracker.AddEquivalentElement(this, otherValueTypeValueConstraint); this.MatchValueRanges(otherValueTypeValueConstraint, elementTracker); return true; } } return false; }
bool IElementEquivalence.MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { return this.MapEquivalentElements(foreignStore, elementTracker); }
/// <summary>Implements <cref name="IElementEquivalence.MapEquivalentElements"/></summary> protected bool MapEquivalentElements(Store foreignStore, IEquivalentElementTracker elementTracker) { FactTypeDerivationRule parentFactTypeDerivationRule; SubtypeDerivationRule parentSubtypeDerivationRule; if (null != (parentFactTypeDerivationRule = this.FactTypeDerivationRule)) { // Embedded through the FactTypeDerivationRuleHasDerivationNote relationship FactTypeDerivationRule otherParentFactTypeDerivationRule; DerivationNote otherDerivationNote; if (null != (otherParentFactTypeDerivationRule = CopyMergeUtility.GetEquivalentElement(parentFactTypeDerivationRule, foreignStore, elementTracker)) && null != (otherDerivationNote = otherParentFactTypeDerivationRule.DerivationNote)) { elementTracker.AddEquivalentElement(this, otherDerivationNote); return true; } } else if (null != (parentSubtypeDerivationRule = this.SubtypeDerivationRule)) { // Embedded through the SubtypeDerivationRuleHasDerivationNote relationship SubtypeDerivationRule otherParentSubtypeDerivationRule; DerivationNote otherDerivationNote; if (null != (otherParentSubtypeDerivationRule = CopyMergeUtility.GetEquivalentElement(parentSubtypeDerivationRule, foreignStore, elementTracker)) && null != (otherDerivationNote = otherParentSubtypeDerivationRule.DerivationNote)) { elementTracker.AddEquivalentElement(this, otherDerivationNote); return true; } } return false; }