diff options
author | khussey | 2010-03-02 03:10:31 +0000 |
---|---|---|
committer | khussey | 2010-03-02 03:10:31 +0000 |
commit | a68f4450841d11e4285066adf52a56356a01fe6a (patch) | |
tree | b225a62ff715e29d1a442fe0fda60a7ca7980bfa /plugins/org.eclipse.uml2.uml/src | |
parent | 90c9e0debbf66aecbb3f535aa319dcfa4e5ef47b (diff) | |
download | org.eclipse.uml2.test-a68f4450841d11e4285066adf52a56356a01fe6a.tar.gz org.eclipse.uml2.test-a68f4450841d11e4285066adf52a56356a01fe6a.tar.xz org.eclipse.uml2.test-a68f4450841d11e4285066adf52a56356a01fe6a.zip |
Diffstat (limited to 'plugins/org.eclipse.uml2.uml/src')
-rw-r--r-- | plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java | 7 | ||||
-rw-r--r-- | plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java | 1373 |
2 files changed, 1375 insertions, 5 deletions
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java index 3bdebbbb..71637c05 100644 --- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009 IBM Corporation, Embarcadero Technologies, and others. + * Copyright (c) 2005, 2010 IBM Corporation, Embarcadero Technologies, and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -9,8 +9,9 @@ * IBM - initial API and implementation * Kenn Hussey (Embarcadero Technologies) - 199624, 184249, 204406, 208125, 204200, 213218, 213903, 220669, 208016, 226396, 271470 * Nicolas Rouquette (JPL) - 260120 + * Kenn Hussey - 286329 * - * $Id: UMLUtil.java,v 1.84 2009/05/01 13:15:08 jbruck Exp $ + * $Id: UMLUtil.java,v 1.85 2010/03/02 03:10:32 khussey Exp $ */ package org.eclipse.uml2.uml.util; @@ -9243,7 +9244,7 @@ public class UMLUtil protected static EList<Feature> getRedefinedFeatures(Feature feature) { @SuppressWarnings("unchecked") - EList<Feature> redefinedFeatures = (EList<Feature>) new UMLSwitch() { + EList<Feature> redefinedFeatures = (EList<Feature>) new UMLSwitch<Object>() { @Override public Object caseOperation(Operation operation) { diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java index f8dcf64a..f2775d36 100644 --- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/util/UMLValidator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009 IBM Corporation, Embarcadero Technologies, and others. + * Copyright (c) 2005, 2010 IBM Corporation, Embarcadero Technologies, and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +8,9 @@ * Contributors: * IBM - initial API and implementation * Kenn Hussey (Embarcadero Technologies) - 205188, 204200 + * Kenn Hussey - 286329 * - * $Id: UMLValidator.java,v 1.27 2009/01/07 15:55:32 jbruck Exp $ + * $Id: UMLValidator.java,v 1.28 2010/03/02 03:10:31 khussey Exp $ */ package org.eclipse.uml2.uml.util; @@ -4462,6 +4463,8 @@ public class UMLValidator */ public boolean validateComment(Comment comment, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(comment, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(comment, diagnostics, context); if (result || diagnostics != null) @@ -4471,6 +4474,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(comment, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(comment, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(comment, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(comment, diagnostics, context); @@ -4495,6 +4501,8 @@ public class UMLValidator */ public boolean validateElement(Element element, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(element, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(element, diagnostics, context); if (result || diagnostics != null) @@ -4504,6 +4512,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(element, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(element, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(element, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(element, diagnostics, context); @@ -4551,6 +4562,9 @@ public class UMLValidator public boolean validateDirectedRelationship( DirectedRelationship directedRelationship, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(directedRelationship, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( directedRelationship, diagnostics, context); if (result || diagnostics != null) @@ -4560,6 +4574,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(directedRelationship, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + directedRelationship, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(directedRelationship, diagnostics, context); if (result || diagnostics != null) @@ -4587,6 +4604,8 @@ public class UMLValidator */ public boolean validateRelationship(Relationship relationship, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(relationship, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(relationship, diagnostics, context); if (result || diagnostics != null) @@ -4596,6 +4615,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(relationship, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + relationship, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(relationship, diagnostics, context); if (result || diagnostics != null) @@ -4623,6 +4645,9 @@ public class UMLValidator public boolean validateLiteralSpecification( LiteralSpecification literalSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(literalSpecification, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( literalSpecification, diagnostics, context); if (result || diagnostics != null) @@ -4632,6 +4657,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(literalSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + literalSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(literalSpecification, diagnostics, context); if (result || diagnostics != null) @@ -4669,6 +4697,9 @@ public class UMLValidator public boolean validateValueSpecification( ValueSpecification valueSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(valueSpecification, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(valueSpecification, diagnostics, context); if (result || diagnostics != null) @@ -4678,6 +4709,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(valueSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + valueSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(valueSpecification, diagnostics, context); if (result || diagnostics != null) @@ -4714,6 +4748,8 @@ public class UMLValidator */ public boolean validateTypedElement(TypedElement typedElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(typedElement, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(typedElement, diagnostics, context); if (result || diagnostics != null) @@ -4723,6 +4759,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(typedElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + typedElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(typedElement, diagnostics, context); if (result || diagnostics != null) @@ -4758,6 +4797,8 @@ public class UMLValidator */ public boolean validateNamedElement(NamedElement namedElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(namedElement, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(namedElement, diagnostics, context); if (result || diagnostics != null) @@ -4767,6 +4808,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(namedElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + namedElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(namedElement, diagnostics, context); if (result || diagnostics != null) @@ -4839,6 +4883,8 @@ public class UMLValidator */ public boolean validateDependency(Dependency dependency, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(dependency, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(dependency, diagnostics, context); if (result || diagnostics != null) @@ -4848,6 +4894,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(dependency, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(dependency, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(dependency, diagnostics, context); if (result || diagnostics != null) @@ -4883,6 +4932,9 @@ public class UMLValidator public boolean validatePackageableElement( PackageableElement packageableElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(packageableElement, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(packageableElement, diagnostics, context); if (result || diagnostics != null) @@ -4892,6 +4944,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(packageableElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + packageableElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(packageableElement, diagnostics, context); if (result || diagnostics != null) @@ -4929,6 +4984,9 @@ public class UMLValidator public boolean validateParameterableElement( ParameterableElement parameterableElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(parameterableElement, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( parameterableElement, diagnostics, context); if (result || diagnostics != null) @@ -4938,6 +4996,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(parameterableElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + parameterableElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameterableElement, diagnostics, context); if (result || diagnostics != null) @@ -4966,6 +5027,9 @@ public class UMLValidator public boolean validateTemplateParameter( TemplateParameter templateParameter, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(templateParameter, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(templateParameter, diagnostics, context); if (result || diagnostics != null) @@ -4975,6 +5039,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(templateParameter, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + templateParameter, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(templateParameter, diagnostics, context); if (result || diagnostics != null) @@ -5017,6 +5084,9 @@ public class UMLValidator public boolean validateTemplateSignature( TemplateSignature templateSignature, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(templateSignature, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(templateSignature, diagnostics, context); if (result || diagnostics != null) @@ -5026,6 +5096,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(templateSignature, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + templateSignature, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(templateSignature, diagnostics, context); if (result || diagnostics != null) @@ -5068,6 +5141,9 @@ public class UMLValidator public boolean validateTemplateableElement( TemplateableElement templateableElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(templateableElement, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( templateableElement, diagnostics, context); if (result || diagnostics != null) @@ -5077,6 +5153,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(templateableElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + templateableElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(templateableElement, diagnostics, context); if (result || diagnostics != null) @@ -5104,6 +5183,9 @@ public class UMLValidator */ public boolean validateTemplateBinding(TemplateBinding templateBinding, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(templateBinding, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(templateBinding, diagnostics, context); if (result || diagnostics != null) @@ -5113,6 +5195,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(templateBinding, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + templateBinding, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(templateBinding, diagnostics, context); if (result || diagnostics != null) @@ -5172,6 +5257,9 @@ public class UMLValidator public boolean validateTemplateParameterSubstitution( TemplateParameterSubstitution templateParameterSubstitution, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(templateParameterSubstitution, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( templateParameterSubstitution, diagnostics, context); if (result || diagnostics != null) @@ -5181,6 +5269,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( templateParameterSubstitution, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + templateParameterSubstitution, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( templateParameterSubstitution, diagnostics, context); if (result || diagnostics != null) @@ -5224,6 +5315,8 @@ public class UMLValidator */ public boolean validateNamespace(Namespace namespace, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(namespace, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(namespace, diagnostics, context); if (result || diagnostics != null) @@ -5233,6 +5326,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(namespace, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(namespace, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(namespace, diagnostics, context); if (result || diagnostics != null) @@ -5282,6 +5378,8 @@ public class UMLValidator */ public boolean validateElementImport(ElementImport elementImport, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(elementImport, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(elementImport, diagnostics, context); if (result || diagnostics != null) @@ -5291,6 +5389,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(elementImport, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + elementImport, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(elementImport, diagnostics, context); if (result || diagnostics != null) @@ -5349,6 +5450,8 @@ public class UMLValidator */ public boolean validatePackageImport(PackageImport packageImport, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(packageImport, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(packageImport, diagnostics, context); if (result || diagnostics != null) @@ -5358,6 +5461,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(packageImport, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + packageImport, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(packageImport, diagnostics, context); if (result || diagnostics != null) @@ -5399,6 +5505,8 @@ public class UMLValidator */ public boolean validatePackage(org.eclipse.uml2.uml.Package package_, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(package_, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(package_, diagnostics, context); if (result || diagnostics != null) @@ -5408,6 +5516,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(package_, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(package_, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(package_, diagnostics, context); if (result || diagnostics != null) @@ -5460,6 +5571,8 @@ public class UMLValidator */ public boolean validatePackageMerge(PackageMerge packageMerge, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(packageMerge, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(packageMerge, diagnostics, context); if (result || diagnostics != null) @@ -5469,6 +5582,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(packageMerge, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + packageMerge, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(packageMerge, diagnostics, context); if (result || diagnostics != null) @@ -5495,6 +5611,8 @@ public class UMLValidator */ public boolean validateType(Type type, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(type, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(type, diagnostics, context); if (result || diagnostics != null) @@ -5504,6 +5622,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(type, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(type, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(type, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(type, diagnostics, context); @@ -5537,6 +5658,9 @@ public class UMLValidator public boolean validateProfileApplication( ProfileApplication profileApplication, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(profileApplication, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(profileApplication, diagnostics, context); if (result || diagnostics != null) @@ -5546,6 +5670,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(profileApplication, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + profileApplication, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(profileApplication, diagnostics, context); if (result || diagnostics != null) @@ -5573,6 +5700,8 @@ public class UMLValidator */ public boolean validateProfile(Profile profile, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(profile, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(profile, diagnostics, context); if (result || diagnostics != null) @@ -5582,6 +5711,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(profile, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(profile, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(profile, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(profile, diagnostics, context); @@ -5652,6 +5784,8 @@ public class UMLValidator */ public boolean validateStereotype(Stereotype stereotype, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(stereotype, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(stereotype, diagnostics, context); if (result || diagnostics != null) @@ -5661,6 +5795,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(stereotype, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(stereotype, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(stereotype, diagnostics, context); if (result || diagnostics != null) @@ -5754,6 +5891,8 @@ public class UMLValidator */ public boolean validateClass(org.eclipse.uml2.uml.Class class_, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(class_, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(class_, diagnostics, context); if (result || diagnostics != null) @@ -5763,6 +5902,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(class_, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(class_, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(class_, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(class_, diagnostics, context); @@ -5838,6 +5980,9 @@ public class UMLValidator public boolean validateBehavioredClassifier( BehavioredClassifier behavioredClassifier, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(behavioredClassifier, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( behavioredClassifier, diagnostics, context); if (result || diagnostics != null) @@ -5847,6 +5992,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(behavioredClassifier, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + behavioredClassifier, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(behavioredClassifier, diagnostics, context); if (result || diagnostics != null) @@ -5919,6 +6067,8 @@ public class UMLValidator */ public boolean validateClassifier(Classifier classifier, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(classifier, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(classifier, diagnostics, context); if (result || diagnostics != null) @@ -5928,6 +6078,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(classifier, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(classifier, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(classifier, diagnostics, context); if (result || diagnostics != null) @@ -6034,6 +6187,9 @@ public class UMLValidator public boolean validateRedefinableElement( RedefinableElement redefinableElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(redefinableElement, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(redefinableElement, diagnostics, context); if (result || diagnostics != null) @@ -6043,6 +6199,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(redefinableElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + redefinableElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(redefinableElement, diagnostics, context); if (result || diagnostics != null) @@ -6111,6 +6270,9 @@ public class UMLValidator */ public boolean validateGeneralization(Generalization generalization, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(generalization, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(generalization, diagnostics, context); if (result || diagnostics != null) @@ -6120,6 +6282,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(generalization, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + generalization, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(generalization, diagnostics, context); if (result || diagnostics != null) @@ -6163,6 +6328,9 @@ public class UMLValidator public boolean validateGeneralizationSet( GeneralizationSet generalizationSet, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(generalizationSet, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(generalizationSet, diagnostics, context); if (result || diagnostics != null) @@ -6172,6 +6340,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(generalizationSet, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + generalizationSet, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(generalizationSet, diagnostics, context); if (result || diagnostics != null) @@ -6239,6 +6410,8 @@ public class UMLValidator */ public boolean validateFeature(Feature feature, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(feature, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(feature, diagnostics, context); if (result || diagnostics != null) @@ -6248,6 +6421,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(feature, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(feature, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(feature, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(feature, diagnostics, context); @@ -6287,6 +6463,8 @@ public class UMLValidator */ public boolean validateUseCase(UseCase useCase, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(useCase, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(useCase, diagnostics, context); if (result || diagnostics != null) @@ -6296,6 +6474,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(useCase, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(useCase, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(useCase, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(useCase, diagnostics, context); @@ -6410,6 +6591,8 @@ public class UMLValidator */ public boolean validateInclude(Include include, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(include, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(include, diagnostics, context); if (result || diagnostics != null) @@ -6419,6 +6602,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(include, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(include, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(include, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(include, diagnostics, context); @@ -6452,6 +6638,8 @@ public class UMLValidator */ public boolean validateExtend(Extend extend, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(extend, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(extend, diagnostics, context); if (result || diagnostics != null) @@ -6461,6 +6649,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(extend, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(extend, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(extend, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(extend, diagnostics, context); @@ -6507,6 +6698,8 @@ public class UMLValidator */ public boolean validateConstraint(Constraint constraint, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(constraint, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(constraint, diagnostics, context); if (result || diagnostics != null) @@ -6516,6 +6709,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(constraint, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(constraint, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(constraint, diagnostics, context); if (result || diagnostics != null) @@ -6626,6 +6822,9 @@ public class UMLValidator */ public boolean validateExtensionPoint(ExtensionPoint extensionPoint, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(extensionPoint, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(extensionPoint, diagnostics, context); if (result || diagnostics != null) @@ -6635,6 +6834,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(extensionPoint, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + extensionPoint, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(extensionPoint, diagnostics, context); if (result || diagnostics != null) @@ -6691,6 +6893,8 @@ public class UMLValidator */ public boolean validateSubstitution(Substitution substitution, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(substitution, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(substitution, diagnostics, context); if (result || diagnostics != null) @@ -6700,6 +6904,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(substitution, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + substitution, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(substitution, diagnostics, context); if (result || diagnostics != null) @@ -6735,6 +6942,8 @@ public class UMLValidator */ public boolean validateRealization(Realization realization, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(realization, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(realization, diagnostics, context); if (result || diagnostics != null) @@ -6744,6 +6953,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(realization, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(realization, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(realization, diagnostics, context); if (result || diagnostics != null) @@ -6778,6 +6990,8 @@ public class UMLValidator */ public boolean validateAbstraction(Abstraction abstraction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(abstraction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(abstraction, diagnostics, context); if (result || diagnostics != null) @@ -6787,6 +7001,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(abstraction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(abstraction, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(abstraction, diagnostics, context); if (result || diagnostics != null) @@ -6821,6 +7038,9 @@ public class UMLValidator */ public boolean validateOpaqueExpression(OpaqueExpression opaqueExpression, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(opaqueExpression, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(opaqueExpression, diagnostics, context); if (result || diagnostics != null) @@ -6830,6 +7050,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(opaqueExpression, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + opaqueExpression, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(opaqueExpression, diagnostics, context); if (result || diagnostics != null) @@ -6912,6 +7135,8 @@ public class UMLValidator */ public boolean validateParameter(Parameter parameter, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(parameter, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(parameter, diagnostics, context); if (result || diagnostics != null) @@ -6921,6 +7146,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(parameter, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(parameter, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameter, diagnostics, context); if (result || diagnostics != null) @@ -7040,6 +7268,9 @@ public class UMLValidator public boolean validateMultiplicityElement( MultiplicityElement multiplicityElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(multiplicityElement, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( multiplicityElement, diagnostics, context); if (result || diagnostics != null) @@ -7049,6 +7280,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(multiplicityElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + multiplicityElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(multiplicityElement, diagnostics, context); if (result || diagnostics != null) @@ -7139,6 +7373,9 @@ public class UMLValidator public boolean validateConnectableElement( ConnectableElement connectableElement, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(connectableElement, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(connectableElement, diagnostics, context); if (result || diagnostics != null) @@ -7148,6 +7385,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(connectableElement, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + connectableElement, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(connectableElement, diagnostics, context); if (result || diagnostics != null) @@ -7184,6 +7424,8 @@ public class UMLValidator */ public boolean validateConnectorEnd(ConnectorEnd connectorEnd, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(connectorEnd, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(connectorEnd, diagnostics, context); if (result || diagnostics != null) @@ -7193,6 +7435,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(connectorEnd, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + connectorEnd, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(connectorEnd, diagnostics, context); if (result || diagnostics != null) @@ -7291,6 +7536,8 @@ public class UMLValidator */ public boolean validateProperty(Property property, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(property, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(property, diagnostics, context); if (result || diagnostics != null) @@ -7300,6 +7547,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(property, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(property, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(property, diagnostics, context); if (result || diagnostics != null) @@ -7501,6 +7751,9 @@ public class UMLValidator */ public boolean validateDeploymentTarget(DeploymentTarget deploymentTarget, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(deploymentTarget, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(deploymentTarget, diagnostics, context); if (result || diagnostics != null) @@ -7510,6 +7763,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(deploymentTarget, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + deploymentTarget, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(deploymentTarget, diagnostics, context); if (result || diagnostics != null) @@ -7545,6 +7801,8 @@ public class UMLValidator */ public boolean validateDeployment(Deployment deployment, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(deployment, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(deployment, diagnostics, context); if (result || diagnostics != null) @@ -7554,6 +7812,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(deployment, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(deployment, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(deployment, diagnostics, context); if (result || diagnostics != null) @@ -7588,6 +7849,9 @@ public class UMLValidator */ public boolean validateDeployedArtifact(DeployedArtifact deployedArtifact, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(deployedArtifact, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(deployedArtifact, diagnostics, context); if (result || diagnostics != null) @@ -7597,6 +7861,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(deployedArtifact, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + deployedArtifact, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(deployedArtifact, diagnostics, context); if (result || diagnostics != null) @@ -7633,6 +7900,9 @@ public class UMLValidator public boolean validateDeploymentSpecification( DeploymentSpecification deploymentSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(deploymentSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( deploymentSpecification, diagnostics, context); if (result || diagnostics != null) @@ -7642,6 +7912,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( deploymentSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + deploymentSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(deploymentSpecification, diagnostics, context); if (result || diagnostics != null) @@ -7731,6 +8004,8 @@ public class UMLValidator */ public boolean validateArtifact(Artifact artifact, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(artifact, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(artifact, diagnostics, context); if (result || diagnostics != null) @@ -7740,6 +8015,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(artifact, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(artifact, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(artifact, diagnostics, context); if (result || diagnostics != null) @@ -7795,6 +8073,8 @@ public class UMLValidator */ public boolean validateManifestation(Manifestation manifestation, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(manifestation, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(manifestation, diagnostics, context); if (result || diagnostics != null) @@ -7804,6 +8084,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(manifestation, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + manifestation, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(manifestation, diagnostics, context); if (result || diagnostics != null) @@ -7839,6 +8122,8 @@ public class UMLValidator */ public boolean validateOperation(Operation operation, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(operation, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(operation, diagnostics, context); if (result || diagnostics != null) @@ -7848,6 +8133,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(operation, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(operation, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(operation, diagnostics, context); if (result || diagnostics != null) @@ -7922,6 +8210,9 @@ public class UMLValidator public boolean validateBehavioralFeature( BehavioralFeature behavioralFeature, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(behavioralFeature, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(behavioralFeature, diagnostics, context); if (result || diagnostics != null) @@ -7931,6 +8222,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(behavioralFeature, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + behavioralFeature, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(behavioralFeature, diagnostics, context); if (result || diagnostics != null) @@ -7975,6 +8269,8 @@ public class UMLValidator */ public boolean validateBehavior(Behavior behavior, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(behavior, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(behavior, diagnostics, context); if (result || diagnostics != null) @@ -7984,6 +8280,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(behavior, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(behavior, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(behavior, diagnostics, context); if (result || diagnostics != null) @@ -8106,6 +8405,8 @@ public class UMLValidator */ public boolean validateParameterSet(ParameterSet parameterSet, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(parameterSet, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(parameterSet, diagnostics, context); if (result || diagnostics != null) @@ -8115,6 +8416,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(parameterSet, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + parameterSet, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameterSet, diagnostics, context); if (result || diagnostics != null) @@ -8196,6 +8500,8 @@ public class UMLValidator */ public boolean validateDataType(DataType dataType, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(dataType, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(dataType, diagnostics, context); if (result || diagnostics != null) @@ -8205,6 +8511,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(dataType, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(dataType, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(dataType, diagnostics, context); if (result || diagnostics != null) @@ -8260,6 +8569,8 @@ public class UMLValidator */ public boolean validateInterface(Interface interface_, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interface_, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(interface_, diagnostics, context); if (result || diagnostics != null) @@ -8269,6 +8580,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interface_, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(interface_, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interface_, diagnostics, context); if (result || diagnostics != null) @@ -8338,6 +8652,8 @@ public class UMLValidator */ public boolean validateReception(Reception reception, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(reception, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(reception, diagnostics, context); if (result || diagnostics != null) @@ -8347,6 +8663,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(reception, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(reception, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(reception, diagnostics, context); if (result || diagnostics != null) @@ -8404,6 +8723,8 @@ public class UMLValidator */ public boolean validateSignal(Signal signal, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(signal, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(signal, diagnostics, context); if (result || diagnostics != null) @@ -8413,6 +8734,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(signal, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(signal, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(signal, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(signal, diagnostics, context); @@ -8467,6 +8791,9 @@ public class UMLValidator public boolean validateProtocolStateMachine( ProtocolStateMachine protocolStateMachine, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(protocolStateMachine, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( protocolStateMachine, diagnostics, context); if (result || diagnostics != null) @@ -8476,6 +8803,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(protocolStateMachine, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + protocolStateMachine, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(protocolStateMachine, diagnostics, context); if (result || diagnostics != null) @@ -8661,6 +8991,8 @@ public class UMLValidator */ public boolean validateStateMachine(StateMachine stateMachine, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(stateMachine, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(stateMachine, diagnostics, context); if (result || diagnostics != null) @@ -8670,6 +9002,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(stateMachine, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + stateMachine, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(stateMachine, diagnostics, context); if (result || diagnostics != null) @@ -8807,6 +9142,8 @@ public class UMLValidator */ public boolean validateRegion(Region region, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(region, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(region, diagnostics, context); if (result || diagnostics != null) @@ -8816,6 +9153,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(region, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(region, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(region, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(region, diagnostics, context); @@ -8912,6 +9252,8 @@ public class UMLValidator */ public boolean validateVertex(Vertex vertex, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(vertex, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(vertex, diagnostics, context); if (result || diagnostics != null) @@ -8921,6 +9263,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(vertex, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(vertex, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(vertex, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(vertex, diagnostics, context); @@ -8953,6 +9298,8 @@ public class UMLValidator */ public boolean validateTransition(Transition transition, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(transition, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(transition, diagnostics, context); if (result || diagnostics != null) @@ -8962,6 +9309,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(transition, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(transition, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(transition, diagnostics, context); if (result || diagnostics != null) @@ -9110,6 +9460,8 @@ public class UMLValidator */ public boolean validateTrigger(Trigger trigger, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(trigger, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(trigger, diagnostics, context); if (result || diagnostics != null) @@ -9119,6 +9471,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(trigger, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(trigger, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(trigger, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(trigger, diagnostics, context); @@ -9152,6 +9507,8 @@ public class UMLValidator */ public boolean validateEvent(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(event, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(event, diagnostics, context); if (result || diagnostics != null) @@ -9161,6 +9518,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(event, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(event, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(event, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(event, diagnostics, context); @@ -9193,6 +9553,8 @@ public class UMLValidator */ public boolean validatePort(Port port, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(port, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(port, diagnostics, context); if (result || diagnostics != null) @@ -9202,6 +9564,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(port, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(port, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(port, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(port, diagnostics, context); @@ -9338,6 +9703,8 @@ public class UMLValidator */ public boolean validateState(State state, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(state, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(state, diagnostics, context); if (result || diagnostics != null) @@ -9347,6 +9714,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(state, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(state, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(state, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(state, diagnostics, context); @@ -9461,6 +9831,9 @@ public class UMLValidator public boolean validateConnectionPointReference( ConnectionPointReference connectionPointReference, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(connectionPointReference, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( connectionPointReference, diagnostics, context); if (result || diagnostics != null) @@ -9470,6 +9843,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( connectionPointReference, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + connectionPointReference, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(connectionPointReference, diagnostics, context); if (result || diagnostics != null) @@ -9538,6 +9914,8 @@ public class UMLValidator */ public boolean validatePseudostate(Pseudostate pseudostate, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(pseudostate, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(pseudostate, diagnostics, context); if (result || diagnostics != null) @@ -9547,6 +9925,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(pseudostate, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(pseudostate, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(pseudostate, diagnostics, context); if (result || diagnostics != null) @@ -9717,6 +10098,9 @@ public class UMLValidator public boolean validateProtocolConformance( ProtocolConformance protocolConformance, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(protocolConformance, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( protocolConformance, diagnostics, context); if (result || diagnostics != null) @@ -9726,6 +10110,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(protocolConformance, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + protocolConformance, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(protocolConformance, diagnostics, context); if (result || diagnostics != null) @@ -9754,6 +10141,9 @@ public class UMLValidator public boolean validateOperationTemplateParameter( OperationTemplateParameter operationTemplateParameter, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(operationTemplateParameter, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( operationTemplateParameter, diagnostics, context); if (result || diagnostics != null) @@ -9763,6 +10153,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( operationTemplateParameter, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + operationTemplateParameter, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(operationTemplateParameter, diagnostics, context); if (result || diagnostics != null) @@ -9794,6 +10187,9 @@ public class UMLValidator public boolean validateStructuralFeature( StructuralFeature structuralFeature, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(structuralFeature, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(structuralFeature, diagnostics, context); if (result || diagnostics != null) @@ -9803,6 +10199,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(structuralFeature, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + structuralFeature, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(structuralFeature, diagnostics, context); if (result || diagnostics != null) @@ -9856,6 +10255,8 @@ public class UMLValidator */ public boolean validateAssociation(Association association, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(association, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(association, diagnostics, context); if (result || diagnostics != null) @@ -9865,6 +10266,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(association, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(association, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(association, diagnostics, context); if (result || diagnostics != null) @@ -9981,6 +10385,9 @@ public class UMLValidator public boolean validateConnectableElementTemplateParameter( ConnectableElementTemplateParameter connectableElementTemplateParameter, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment( + connectableElementTemplateParameter, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( connectableElementTemplateParameter, diagnostics, context); if (result || diagnostics != null) @@ -9990,6 +10397,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( connectableElementTemplateParameter, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + connectableElementTemplateParameter, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( connectableElementTemplateParameter, diagnostics, context); if (result || diagnostics != null) @@ -10020,6 +10430,9 @@ public class UMLValidator */ public boolean validateCollaborationUse(CollaborationUse collaborationUse, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(collaborationUse, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(collaborationUse, diagnostics, context); if (result || diagnostics != null) @@ -10029,6 +10442,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(collaborationUse, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + collaborationUse, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(collaborationUse, diagnostics, context); if (result || diagnostics != null) @@ -10109,6 +10525,8 @@ public class UMLValidator */ public boolean validateCollaboration(Collaboration collaboration, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(collaboration, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(collaboration, diagnostics, context); if (result || diagnostics != null) @@ -10118,6 +10536,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(collaboration, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + collaboration, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(collaboration, diagnostics, context); if (result || diagnostics != null) @@ -10181,6 +10602,9 @@ public class UMLValidator public boolean validateStructuredClassifier( StructuredClassifier structuredClassifier, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(structuredClassifier, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( structuredClassifier, diagnostics, context); if (result || diagnostics != null) @@ -10190,6 +10614,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(structuredClassifier, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + structuredClassifier, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(structuredClassifier, diagnostics, context); if (result || diagnostics != null) @@ -10263,6 +10690,8 @@ public class UMLValidator */ public boolean validateConnector(Connector connector, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(connector, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(connector, diagnostics, context); if (result || diagnostics != null) @@ -10272,6 +10701,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(connector, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(connector, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(connector, diagnostics, context); if (result || diagnostics != null) @@ -10432,6 +10864,9 @@ public class UMLValidator public boolean validateRedefinableTemplateSignature( RedefinableTemplateSignature redefinableTemplateSignature, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(redefinableTemplateSignature, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( redefinableTemplateSignature, diagnostics, context); if (result || diagnostics != null) @@ -10441,6 +10876,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( redefinableTemplateSignature, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + redefinableTemplateSignature, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(redefinableTemplateSignature, diagnostics, context); if (result || diagnostics != null) @@ -10503,6 +10941,9 @@ public class UMLValidator public boolean validateClassifierTemplateParameter( ClassifierTemplateParameter classifierTemplateParameter, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(classifierTemplateParameter, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( classifierTemplateParameter, diagnostics, context); if (result || diagnostics != null) @@ -10512,6 +10953,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( classifierTemplateParameter, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + classifierTemplateParameter, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(classifierTemplateParameter, diagnostics, context); if (result || diagnostics != null) @@ -10559,6 +11003,9 @@ public class UMLValidator public boolean validateInterfaceRealization( InterfaceRealization interfaceRealization, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interfaceRealization, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( interfaceRealization, diagnostics, context); if (result || diagnostics != null) @@ -10568,6 +11015,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interfaceRealization, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + interfaceRealization, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interfaceRealization, diagnostics, context); if (result || diagnostics != null) @@ -10605,6 +11055,9 @@ public class UMLValidator public boolean validateEncapsulatedClassifier( EncapsulatedClassifier encapsulatedClassifier, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(encapsulatedClassifier, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( encapsulatedClassifier, diagnostics, context); if (result || diagnostics != null) @@ -10614,6 +11067,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( encapsulatedClassifier, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + encapsulatedClassifier, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(encapsulatedClassifier, diagnostics, context); if (result || diagnostics != null) @@ -10674,6 +11130,8 @@ public class UMLValidator */ public boolean validateExtension(Extension extension, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(extension, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(extension, diagnostics, context); if (result || diagnostics != null) @@ -10683,6 +11141,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(extension, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(extension, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(extension, diagnostics, context); if (result || diagnostics != null) @@ -10778,6 +11239,8 @@ public class UMLValidator */ public boolean validateExtensionEnd(ExtensionEnd extensionEnd, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(extensionEnd, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(extensionEnd, diagnostics, context); if (result || diagnostics != null) @@ -10787,6 +11250,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(extensionEnd, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + extensionEnd, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(extensionEnd, diagnostics, context); if (result || diagnostics != null) @@ -10900,6 +11366,8 @@ public class UMLValidator */ public boolean validateImage(Image image, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(image, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(image, diagnostics, context); if (result || diagnostics != null) @@ -10909,6 +11377,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(image, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(image, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(image, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(image, diagnostics, context); @@ -10932,6 +11403,9 @@ public class UMLValidator */ public boolean validateStringExpression(StringExpression stringExpression, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(stringExpression, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(stringExpression, diagnostics, context); if (result || diagnostics != null) @@ -10941,6 +11415,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(stringExpression, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + stringExpression, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(stringExpression, diagnostics, context); if (result || diagnostics != null) @@ -11006,6 +11483,8 @@ public class UMLValidator */ public boolean validateExpression(Expression expression, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(expression, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(expression, diagnostics, context); if (result || diagnostics != null) @@ -11015,6 +11494,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(expression, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(expression, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(expression, diagnostics, context); if (result || diagnostics != null) @@ -11049,6 +11531,9 @@ public class UMLValidator */ public boolean validateLiteralInteger(LiteralInteger literalInteger, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(literalInteger, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(literalInteger, diagnostics, context); if (result || diagnostics != null) @@ -11058,6 +11543,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(literalInteger, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + literalInteger, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(literalInteger, diagnostics, context); if (result || diagnostics != null) @@ -11093,6 +11581,8 @@ public class UMLValidator */ public boolean validateLiteralString(LiteralString literalString, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(literalString, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(literalString, diagnostics, context); if (result || diagnostics != null) @@ -11102,6 +11592,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(literalString, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + literalString, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(literalString, diagnostics, context); if (result || diagnostics != null) @@ -11137,6 +11630,9 @@ public class UMLValidator */ public boolean validateLiteralBoolean(LiteralBoolean literalBoolean, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(literalBoolean, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(literalBoolean, diagnostics, context); if (result || diagnostics != null) @@ -11146,6 +11642,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(literalBoolean, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + literalBoolean, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(literalBoolean, diagnostics, context); if (result || diagnostics != null) @@ -11181,6 +11680,8 @@ public class UMLValidator */ public boolean validateLiteralNull(LiteralNull literalNull, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(literalNull, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(literalNull, diagnostics, context); if (result || diagnostics != null) @@ -11190,6 +11691,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(literalNull, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(literalNull, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(literalNull, diagnostics, context); if (result || diagnostics != null) @@ -11224,6 +11728,8 @@ public class UMLValidator */ public boolean validateSlot(Slot slot, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(slot, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(slot, diagnostics, context); if (result || diagnostics != null) @@ -11233,6 +11739,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(slot, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(slot, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(slot, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(slot, diagnostics, context); @@ -11257,6 +11766,9 @@ public class UMLValidator public boolean validateInstanceSpecification( InstanceSpecification instanceSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(instanceSpecification, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( instanceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -11266,6 +11778,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(instanceSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + instanceSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(instanceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -11366,6 +11881,8 @@ public class UMLValidator */ public boolean validateEnumeration(Enumeration enumeration, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(enumeration, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(enumeration, diagnostics, context); if (result || diagnostics != null) @@ -11375,6 +11892,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(enumeration, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(enumeration, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(enumeration, diagnostics, context); if (result || diagnostics != null) @@ -11431,6 +11951,9 @@ public class UMLValidator public boolean validateEnumerationLiteral( EnumerationLiteral enumerationLiteral, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(enumerationLiteral, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(enumerationLiteral, diagnostics, context); if (result || diagnostics != null) @@ -11440,6 +11963,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(enumerationLiteral, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + enumerationLiteral, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(enumerationLiteral, diagnostics, context); if (result || diagnostics != null) @@ -11488,6 +12014,8 @@ public class UMLValidator */ public boolean validatePrimitiveType(PrimitiveType primitiveType, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(primitiveType, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(primitiveType, diagnostics, context); if (result || diagnostics != null) @@ -11497,6 +12025,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(primitiveType, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + primitiveType, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(primitiveType, diagnostics, context); if (result || diagnostics != null) @@ -11553,6 +12084,8 @@ public class UMLValidator */ public boolean validateInstanceValue(InstanceValue instanceValue, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(instanceValue, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(instanceValue, diagnostics, context); if (result || diagnostics != null) @@ -11562,6 +12095,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(instanceValue, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + instanceValue, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(instanceValue, diagnostics, context); if (result || diagnostics != null) @@ -11598,6 +12134,9 @@ public class UMLValidator public boolean validateLiteralUnlimitedNatural( LiteralUnlimitedNatural literalUnlimitedNatural, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(literalUnlimitedNatural, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( literalUnlimitedNatural, diagnostics, context); if (result || diagnostics != null) @@ -11607,6 +12146,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( literalUnlimitedNatural, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + literalUnlimitedNatural, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(literalUnlimitedNatural, diagnostics, context); if (result || diagnostics != null) @@ -11643,6 +12185,9 @@ public class UMLValidator */ public boolean validateOpaqueBehavior(OpaqueBehavior opaqueBehavior, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(opaqueBehavior, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(opaqueBehavior, diagnostics, context); if (result || diagnostics != null) @@ -11652,6 +12197,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(opaqueBehavior, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + opaqueBehavior, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(opaqueBehavior, diagnostics, context); if (result || diagnostics != null) @@ -11729,6 +12277,9 @@ public class UMLValidator */ public boolean validateFunctionBehavior(FunctionBehavior functionBehavior, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(functionBehavior, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(functionBehavior, diagnostics, context); if (result || diagnostics != null) @@ -11738,6 +12289,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(functionBehavior, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + functionBehavior, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(functionBehavior, diagnostics, context); if (result || diagnostics != null) @@ -11846,6 +12400,8 @@ public class UMLValidator */ public boolean validateActor(Actor actor, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(actor, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(actor, diagnostics, context); if (result || diagnostics != null) @@ -11855,6 +12411,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(actor, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(actor, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(actor, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(actor, diagnostics, context); @@ -11939,6 +12498,8 @@ public class UMLValidator */ public boolean validateUsage(Usage usage, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(usage, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(usage, diagnostics, context); if (result || diagnostics != null) @@ -11948,6 +12509,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(usage, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(usage, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(usage, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(usage, diagnostics, context); @@ -11980,6 +12544,8 @@ public class UMLValidator */ public boolean validateMessage(Message message, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(message, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(message, diagnostics, context); if (result || diagnostics != null) @@ -11989,6 +12555,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(message, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(message, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(message, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(message, diagnostics, context); @@ -12125,6 +12694,8 @@ public class UMLValidator */ public boolean validateMessageEnd(MessageEnd messageEnd, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(messageEnd, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(messageEnd, diagnostics, context); if (result || diagnostics != null) @@ -12134,6 +12705,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(messageEnd, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(messageEnd, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(messageEnd, diagnostics, context); if (result || diagnostics != null) @@ -12168,6 +12742,8 @@ public class UMLValidator */ public boolean validateInteraction(Interaction interaction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interaction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(interaction, diagnostics, context); if (result || diagnostics != null) @@ -12177,6 +12753,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interaction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(interaction, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interaction, diagnostics, context); if (result || diagnostics != null) @@ -12254,6 +12833,9 @@ public class UMLValidator public boolean validateInteractionFragment( InteractionFragment interactionFragment, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interactionFragment, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( interactionFragment, diagnostics, context); if (result || diagnostics != null) @@ -12263,6 +12845,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interactionFragment, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + interactionFragment, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interactionFragment, diagnostics, context); if (result || diagnostics != null) @@ -12299,6 +12884,8 @@ public class UMLValidator */ public boolean validateLifeline(Lifeline lifeline, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(lifeline, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(lifeline, diagnostics, context); if (result || diagnostics != null) @@ -12308,6 +12895,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(lifeline, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(lifeline, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(lifeline, diagnostics, context); if (result || diagnostics != null) @@ -12388,6 +12978,9 @@ public class UMLValidator public boolean validatePartDecomposition( PartDecomposition partDecomposition, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(partDecomposition, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(partDecomposition, diagnostics, context); if (result || diagnostics != null) @@ -12397,6 +12990,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(partDecomposition, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + partDecomposition, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(partDecomposition, diagnostics, context); if (result || diagnostics != null) @@ -12491,6 +13087,9 @@ public class UMLValidator */ public boolean validateInteractionUse(InteractionUse interactionUse, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interactionUse, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(interactionUse, diagnostics, context); if (result || diagnostics != null) @@ -12500,6 +13099,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interactionUse, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + interactionUse, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interactionUse, diagnostics, context); if (result || diagnostics != null) @@ -12597,6 +13199,8 @@ public class UMLValidator */ public boolean validateGate(Gate gate, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(gate, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(gate, diagnostics, context); if (result || diagnostics != null) @@ -12606,6 +13210,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(gate, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(gate, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(gate, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(gate, diagnostics, context); @@ -12666,6 +13273,8 @@ public class UMLValidator */ public boolean validateAction(Action action, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(action, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(action, diagnostics, context); if (result || diagnostics != null) @@ -12675,6 +13284,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(action, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(action, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(action, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(action, diagnostics, context); @@ -12719,6 +13331,9 @@ public class UMLValidator */ public boolean validateExecutableNode(ExecutableNode executableNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(executableNode, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(executableNode, diagnostics, context); if (result || diagnostics != null) @@ -12728,6 +13343,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(executableNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + executableNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(executableNode, diagnostics, context); if (result || diagnostics != null) @@ -12775,6 +13393,8 @@ public class UMLValidator */ public boolean validateActivityNode(ActivityNode activityNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activityNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(activityNode, diagnostics, context); if (result || diagnostics != null) @@ -12784,6 +13404,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activityNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + activityNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activityNode, diagnostics, context); if (result || diagnostics != null) @@ -12855,6 +13478,8 @@ public class UMLValidator */ public boolean validateActivityEdge(ActivityEdge activityEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activityEdge, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(activityEdge, diagnostics, context); if (result || diagnostics != null) @@ -12864,6 +13489,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activityEdge, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + activityEdge, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activityEdge, diagnostics, context); if (result || diagnostics != null) @@ -12950,6 +13578,8 @@ public class UMLValidator */ public boolean validateActivity(Activity activity, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activity, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(activity, diagnostics, context); if (result || diagnostics != null) @@ -12959,6 +13589,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activity, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(activity, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activity, diagnostics, context); if (result || diagnostics != null) @@ -13079,6 +13712,9 @@ public class UMLValidator public boolean validateActivityPartition( ActivityPartition activityPartition, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activityPartition, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(activityPartition, diagnostics, context); if (result || diagnostics != null) @@ -13088,6 +13724,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activityPartition, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + activityPartition, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activityPartition, diagnostics, context); if (result || diagnostics != null) @@ -13195,6 +13834,8 @@ public class UMLValidator */ public boolean validateActivityGroup(ActivityGroup activityGroup, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activityGroup, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(activityGroup, diagnostics, context); if (result || diagnostics != null) @@ -13204,6 +13845,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activityGroup, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + activityGroup, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activityGroup, diagnostics, context); if (result || diagnostics != null) @@ -13276,6 +13920,9 @@ public class UMLValidator public boolean validateStructuredActivityNode( StructuredActivityNode structuredActivityNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(structuredActivityNode, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( structuredActivityNode, diagnostics, context); if (result || diagnostics != null) @@ -13285,6 +13932,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( structuredActivityNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + structuredActivityNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(structuredActivityNode, diagnostics, context); if (result || diagnostics != null) @@ -13360,6 +14010,8 @@ public class UMLValidator */ public boolean validateVariable(Variable variable, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(variable, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(variable, diagnostics, context); if (result || diagnostics != null) @@ -13369,6 +14021,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(variable, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(variable, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(variable, diagnostics, context); if (result || diagnostics != null) @@ -13430,6 +14085,9 @@ public class UMLValidator public boolean validateInterruptibleActivityRegion( InterruptibleActivityRegion interruptibleActivityRegion, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interruptibleActivityRegion, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( interruptibleActivityRegion, diagnostics, context); if (result || diagnostics != null) @@ -13439,6 +14097,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( interruptibleActivityRegion, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + interruptibleActivityRegion, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interruptibleActivityRegion, diagnostics, context); if (result || diagnostics != null) @@ -13491,6 +14152,9 @@ public class UMLValidator */ public boolean validateExceptionHandler(ExceptionHandler exceptionHandler, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(exceptionHandler, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(exceptionHandler, diagnostics, context); if (result || diagnostics != null) @@ -13500,6 +14164,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(exceptionHandler, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + exceptionHandler, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(exceptionHandler, diagnostics, context); if (result || diagnostics != null) @@ -13586,6 +14253,8 @@ public class UMLValidator */ public boolean validateObjectNode(ObjectNode objectNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(objectNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(objectNode, diagnostics, context); if (result || diagnostics != null) @@ -13595,6 +14264,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(objectNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(objectNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(objectNode, diagnostics, context); if (result || diagnostics != null) @@ -13700,6 +14372,8 @@ public class UMLValidator */ public boolean validateOutputPin(OutputPin outputPin, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(outputPin, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(outputPin, diagnostics, context); if (result || diagnostics != null) @@ -13709,6 +14383,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(outputPin, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(outputPin, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(outputPin, diagnostics, context); if (result || diagnostics != null) @@ -13798,6 +14475,8 @@ public class UMLValidator */ public boolean validatePin(Pin pin, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(pin, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(pin, diagnostics, context); if (result || diagnostics != null) @@ -13806,6 +14485,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(pin, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(pin, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(pin, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(pin, diagnostics, context); @@ -13887,6 +14569,8 @@ public class UMLValidator */ public boolean validateInputPin(InputPin inputPin, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(inputPin, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(inputPin, diagnostics, context); if (result || diagnostics != null) @@ -13896,6 +14580,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(inputPin, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(inputPin, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(inputPin, diagnostics, context); if (result || diagnostics != null) @@ -13985,6 +14672,9 @@ public class UMLValidator */ public boolean validateGeneralOrdering(GeneralOrdering generalOrdering, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(generalOrdering, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(generalOrdering, diagnostics, context); if (result || diagnostics != null) @@ -13994,6 +14684,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(generalOrdering, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + generalOrdering, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(generalOrdering, diagnostics, context); if (result || diagnostics != null) @@ -14030,6 +14723,9 @@ public class UMLValidator public boolean validateOccurrenceSpecification( OccurrenceSpecification occurrenceSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(occurrenceSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( occurrenceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14039,6 +14735,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( occurrenceSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + occurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(occurrenceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14076,6 +14775,9 @@ public class UMLValidator public boolean validateInteractionOperand( InteractionOperand interactionOperand, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interactionOperand, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(interactionOperand, diagnostics, context); if (result || diagnostics != null) @@ -14085,6 +14787,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interactionOperand, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + interactionOperand, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interactionOperand, diagnostics, context); if (result || diagnostics != null) @@ -14157,6 +14862,9 @@ public class UMLValidator public boolean validateInteractionConstraint( InteractionConstraint interactionConstraint, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interactionConstraint, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( interactionConstraint, diagnostics, context); if (result || diagnostics != null) @@ -14166,6 +14874,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interactionConstraint, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + interactionConstraint, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interactionConstraint, diagnostics, context); if (result || diagnostics != null) @@ -14312,6 +15023,9 @@ public class UMLValidator public boolean validateExecutionSpecification( ExecutionSpecification executionSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(executionSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( executionSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14321,6 +15035,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( executionSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + executionSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(executionSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14374,6 +15091,9 @@ public class UMLValidator public boolean validateExecutionOccurrenceSpecification( ExecutionOccurrenceSpecification executionOccurrenceSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(executionOccurrenceSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( executionOccurrenceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14383,6 +15103,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( executionOccurrenceSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + executionOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( executionOccurrenceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14419,6 +15142,9 @@ public class UMLValidator */ public boolean validateExecutionEvent(ExecutionEvent executionEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(executionEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(executionEvent, diagnostics, context); if (result || diagnostics != null) @@ -14428,6 +15154,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(executionEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + executionEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(executionEvent, diagnostics, context); if (result || diagnostics != null) @@ -14463,6 +15192,9 @@ public class UMLValidator */ public boolean validateStateInvariant(StateInvariant stateInvariant, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(stateInvariant, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(stateInvariant, diagnostics, context); if (result || diagnostics != null) @@ -14472,6 +15204,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(stateInvariant, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + stateInvariant, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(stateInvariant, diagnostics, context); if (result || diagnostics != null) @@ -14508,6 +15243,9 @@ public class UMLValidator public boolean validateActionExecutionSpecification( ActionExecutionSpecification actionExecutionSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(actionExecutionSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( actionExecutionSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14517,6 +15255,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( actionExecutionSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + actionExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(actionExecutionSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14573,6 +15314,9 @@ public class UMLValidator public boolean validateBehaviorExecutionSpecification( BehaviorExecutionSpecification behaviorExecutionSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(behaviorExecutionSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( behaviorExecutionSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14582,6 +15326,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( behaviorExecutionSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + behaviorExecutionSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( behaviorExecutionSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14621,6 +15368,8 @@ public class UMLValidator */ public boolean validateCreationEvent(CreationEvent creationEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(creationEvent, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(creationEvent, diagnostics, context); if (result || diagnostics != null) @@ -14630,6 +15379,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(creationEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + creationEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(creationEvent, diagnostics, context); if (result || diagnostics != null) @@ -14680,6 +15432,9 @@ public class UMLValidator */ public boolean validateDestructionEvent(DestructionEvent destructionEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(destructionEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(destructionEvent, diagnostics, context); if (result || diagnostics != null) @@ -14689,6 +15444,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(destructionEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + destructionEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(destructionEvent, diagnostics, context); if (result || diagnostics != null) @@ -14741,6 +15499,9 @@ public class UMLValidator public boolean validateSendOperationEvent( SendOperationEvent sendOperationEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(sendOperationEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(sendOperationEvent, diagnostics, context); if (result || diagnostics != null) @@ -14750,6 +15511,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(sendOperationEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + sendOperationEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(sendOperationEvent, diagnostics, context); if (result || diagnostics != null) @@ -14786,6 +15550,8 @@ public class UMLValidator */ public boolean validateMessageEvent(MessageEvent messageEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(messageEvent, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(messageEvent, diagnostics, context); if (result || diagnostics != null) @@ -14795,6 +15561,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(messageEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + messageEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(messageEvent, diagnostics, context); if (result || diagnostics != null) @@ -14830,6 +15599,9 @@ public class UMLValidator */ public boolean validateSendSignalEvent(SendSignalEvent sendSignalEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(sendSignalEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(sendSignalEvent, diagnostics, context); if (result || diagnostics != null) @@ -14839,6 +15611,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(sendSignalEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + sendSignalEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(sendSignalEvent, diagnostics, context); if (result || diagnostics != null) @@ -14875,6 +15650,9 @@ public class UMLValidator public boolean validateMessageOccurrenceSpecification( MessageOccurrenceSpecification messageOccurrenceSpecification, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(messageOccurrenceSpecification, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( messageOccurrenceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14884,6 +15662,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( messageOccurrenceSpecification, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + messageOccurrenceSpecification, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( messageOccurrenceSpecification, diagnostics, context); if (result || diagnostics != null) @@ -14921,6 +15702,9 @@ public class UMLValidator public boolean validateReceiveOperationEvent( ReceiveOperationEvent receiveOperationEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(receiveOperationEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( receiveOperationEvent, diagnostics, context); if (result || diagnostics != null) @@ -14930,6 +15714,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(receiveOperationEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + receiveOperationEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(receiveOperationEvent, diagnostics, context); if (result || diagnostics != null) @@ -14967,6 +15754,9 @@ public class UMLValidator public boolean validateReceiveSignalEvent( ReceiveSignalEvent receiveSignalEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(receiveSignalEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(receiveSignalEvent, diagnostics, context); if (result || diagnostics != null) @@ -14976,6 +15766,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(receiveSignalEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + receiveSignalEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(receiveSignalEvent, diagnostics, context); if (result || diagnostics != null) @@ -15012,6 +15805,9 @@ public class UMLValidator */ public boolean validateCombinedFragment(CombinedFragment combinedFragment, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(combinedFragment, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(combinedFragment, diagnostics, context); if (result || diagnostics != null) @@ -15021,6 +15817,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(combinedFragment, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + combinedFragment, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(combinedFragment, diagnostics, context); if (result || diagnostics != null) @@ -15116,6 +15915,8 @@ public class UMLValidator */ public boolean validateContinuation(Continuation continuation, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(continuation, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(continuation, diagnostics, context); if (result || diagnostics != null) @@ -15125,6 +15926,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(continuation, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + continuation, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(continuation, diagnostics, context); if (result || diagnostics != null) @@ -15207,6 +16011,9 @@ public class UMLValidator public boolean validateConsiderIgnoreFragment( ConsiderIgnoreFragment considerIgnoreFragment, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(considerIgnoreFragment, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( considerIgnoreFragment, diagnostics, context); if (result || diagnostics != null) @@ -15216,6 +16023,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( considerIgnoreFragment, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + considerIgnoreFragment, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(considerIgnoreFragment, diagnostics, context); if (result || diagnostics != null) @@ -15295,6 +16105,8 @@ public class UMLValidator */ public boolean validateCallEvent(CallEvent callEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(callEvent, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(callEvent, diagnostics, context); if (result || diagnostics != null) @@ -15304,6 +16116,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(callEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(callEvent, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(callEvent, diagnostics, context); if (result || diagnostics != null) @@ -15338,6 +16153,8 @@ public class UMLValidator */ public boolean validateChangeEvent(ChangeEvent changeEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(changeEvent, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(changeEvent, diagnostics, context); if (result || diagnostics != null) @@ -15347,6 +16164,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(changeEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(changeEvent, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(changeEvent, diagnostics, context); if (result || diagnostics != null) @@ -15381,6 +16201,8 @@ public class UMLValidator */ public boolean validateSignalEvent(SignalEvent signalEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(signalEvent, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(signalEvent, diagnostics, context); if (result || diagnostics != null) @@ -15390,6 +16212,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(signalEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(signalEvent, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(signalEvent, diagnostics, context); if (result || diagnostics != null) @@ -15424,6 +16249,9 @@ public class UMLValidator */ public boolean validateAnyReceiveEvent(AnyReceiveEvent anyReceiveEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(anyReceiveEvent, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(anyReceiveEvent, diagnostics, context); if (result || diagnostics != null) @@ -15433,6 +16261,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(anyReceiveEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + anyReceiveEvent, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(anyReceiveEvent, diagnostics, context); if (result || diagnostics != null) @@ -15469,6 +16300,9 @@ public class UMLValidator public boolean validateCreateObjectAction( CreateObjectAction createObjectAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(createObjectAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(createObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -15478,6 +16312,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(createObjectAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + createObjectAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(createObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -15589,6 +16426,9 @@ public class UMLValidator public boolean validateDestroyObjectAction( DestroyObjectAction destroyObjectAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(destroyObjectAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( destroyObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -15598,6 +16438,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(destroyObjectAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + destroyObjectAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(destroyObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -15677,6 +16520,9 @@ public class UMLValidator public boolean validateTestIdentityAction( TestIdentityAction testIdentityAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(testIdentityAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(testIdentityAction, diagnostics, context); if (result || diagnostics != null) @@ -15686,6 +16532,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(testIdentityAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + testIdentityAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(testIdentityAction, diagnostics, context); if (result || diagnostics != null) @@ -15779,6 +16628,9 @@ public class UMLValidator */ public boolean validateReadSelfAction(ReadSelfAction readSelfAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readSelfAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(readSelfAction, diagnostics, context); if (result || diagnostics != null) @@ -15788,6 +16640,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(readSelfAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readSelfAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readSelfAction, diagnostics, context); if (result || diagnostics != null) @@ -15896,6 +16751,9 @@ public class UMLValidator public boolean validateStructuralFeatureAction( StructuralFeatureAction structuralFeatureAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(structuralFeatureAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( structuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -15905,6 +16763,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( structuralFeatureAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + structuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(structuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16031,6 +16892,9 @@ public class UMLValidator public boolean validateReadStructuralFeatureAction( ReadStructuralFeatureAction readStructuralFeatureAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readStructuralFeatureAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( readStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16040,6 +16904,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( readStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16152,6 +17019,9 @@ public class UMLValidator public boolean validateWriteStructuralFeatureAction( WriteStructuralFeatureAction writeStructuralFeatureAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(writeStructuralFeatureAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( writeStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16161,6 +17031,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( writeStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + writeStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(writeStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16305,6 +17178,9 @@ public class UMLValidator public boolean validateClearStructuralFeatureAction( ClearStructuralFeatureAction clearStructuralFeatureAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(clearStructuralFeatureAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( clearStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16314,6 +17190,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( clearStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + clearStructuralFeatureAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(clearStructuralFeatureAction, diagnostics, context); if (result || diagnostics != null) @@ -16410,6 +17289,9 @@ public class UMLValidator public boolean validateRemoveStructuralFeatureValueAction( RemoveStructuralFeatureValueAction removeStructuralFeatureValueAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(removeStructuralFeatureValueAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( removeStructuralFeatureValueAction, diagnostics, context); if (result || diagnostics != null) @@ -16419,6 +17301,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( removeStructuralFeatureValueAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + removeStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( removeStructuralFeatureValueAction, diagnostics, context); if (result || diagnostics != null) @@ -16508,6 +17393,9 @@ public class UMLValidator public boolean validateAddStructuralFeatureValueAction( AddStructuralFeatureValueAction addStructuralFeatureValueAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(addStructuralFeatureValueAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( addStructuralFeatureValueAction, diagnostics, context); if (result || diagnostics != null) @@ -16517,6 +17405,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( addStructuralFeatureValueAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + addStructuralFeatureValueAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( addStructuralFeatureValueAction, diagnostics, context); if (result || diagnostics != null) @@ -16605,6 +17496,8 @@ public class UMLValidator */ public boolean validateLinkAction(LinkAction linkAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(linkAction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(linkAction, diagnostics, context); if (result || diagnostics != null) @@ -16614,6 +17507,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(linkAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(linkAction, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkAction, diagnostics, context); if (result || diagnostics != null) @@ -16703,6 +17599,8 @@ public class UMLValidator */ public boolean validateLinkEndData(LinkEndData linkEndData, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(linkEndData, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(linkEndData, diagnostics, context); if (result || diagnostics != null) @@ -16712,6 +17610,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(linkEndData, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(linkEndData, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkEndData, diagnostics, context); if (result || diagnostics != null) @@ -16813,6 +17714,9 @@ public class UMLValidator */ public boolean validateQualifierValue(QualifierValue qualifierValue, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(qualifierValue, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(qualifierValue, diagnostics, context); if (result || diagnostics != null) @@ -16822,6 +17726,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(qualifierValue, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + qualifierValue, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(qualifierValue, diagnostics, context); if (result || diagnostics != null) @@ -16894,6 +17801,9 @@ public class UMLValidator */ public boolean validateReadLinkAction(ReadLinkAction readLinkAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readLinkAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(readLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -16903,6 +17813,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(readLinkAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readLinkAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17036,6 +17949,9 @@ public class UMLValidator public boolean validateLinkEndCreationData( LinkEndCreationData linkEndCreationData, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(linkEndCreationData, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( linkEndCreationData, diagnostics, context); if (result || diagnostics != null) @@ -17045,6 +17961,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(linkEndCreationData, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + linkEndCreationData, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkEndCreationData, diagnostics, context); if (result || diagnostics != null) @@ -17118,6 +18037,9 @@ public class UMLValidator */ public boolean validateCreateLinkAction(CreateLinkAction createLinkAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(createLinkAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(createLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17127,6 +18049,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(createLinkAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + createLinkAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(createLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17202,6 +18127,9 @@ public class UMLValidator */ public boolean validateWriteLinkAction(WriteLinkAction writeLinkAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(writeLinkAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(writeLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17211,6 +18139,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(writeLinkAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + writeLinkAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(writeLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17283,6 +18214,9 @@ public class UMLValidator public boolean validateDestroyLinkAction( DestroyLinkAction destroyLinkAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(destroyLinkAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(destroyLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17292,6 +18226,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(destroyLinkAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + destroyLinkAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(destroyLinkAction, diagnostics, context); if (result || diagnostics != null) @@ -17352,6 +18289,9 @@ public class UMLValidator public boolean validateLinkEndDestructionData( LinkEndDestructionData linkEndDestructionData, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(linkEndDestructionData, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( linkEndDestructionData, diagnostics, context); if (result || diagnostics != null) @@ -17361,6 +18301,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( linkEndDestructionData, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + linkEndDestructionData, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(linkEndDestructionData, diagnostics, context); if (result || diagnostics != null) @@ -17436,6 +18379,9 @@ public class UMLValidator public boolean validateClearAssociationAction( ClearAssociationAction clearAssociationAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(clearAssociationAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( clearAssociationAction, diagnostics, context); if (result || diagnostics != null) @@ -17445,6 +18391,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( clearAssociationAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + clearAssociationAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(clearAssociationAction, diagnostics, context); if (result || diagnostics != null) @@ -17525,6 +18474,9 @@ public class UMLValidator public boolean validateBroadcastSignalAction( BroadcastSignalAction broadcastSignalAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(broadcastSignalAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( broadcastSignalAction, diagnostics, context); if (result || diagnostics != null) @@ -17534,6 +18486,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(broadcastSignalAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + broadcastSignalAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(broadcastSignalAction, diagnostics, context); if (result || diagnostics != null) @@ -17617,6 +18572,9 @@ public class UMLValidator */ public boolean validateInvocationAction(InvocationAction invocationAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(invocationAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(invocationAction, diagnostics, context); if (result || diagnostics != null) @@ -17626,6 +18584,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(invocationAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + invocationAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(invocationAction, diagnostics, context); if (result || diagnostics != null) @@ -17688,6 +18649,9 @@ public class UMLValidator */ public boolean validateSendObjectAction(SendObjectAction sendObjectAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(sendObjectAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(sendObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -17697,6 +18661,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(sendObjectAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + sendObjectAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(sendObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -17748,6 +18715,9 @@ public class UMLValidator public boolean validateValueSpecificationAction( ValueSpecificationAction valueSpecificationAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(valueSpecificationAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( valueSpecificationAction, diagnostics, context); if (result || diagnostics != null) @@ -17757,6 +18727,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( valueSpecificationAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + valueSpecificationAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(valueSpecificationAction, diagnostics, context); if (result || diagnostics != null) @@ -17837,6 +18810,9 @@ public class UMLValidator */ public boolean validateTimeExpression(TimeExpression timeExpression, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(timeExpression, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(timeExpression, diagnostics, context); if (result || diagnostics != null) @@ -17846,6 +18822,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(timeExpression, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + timeExpression, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(timeExpression, diagnostics, context); if (result || diagnostics != null) @@ -17881,6 +18860,8 @@ public class UMLValidator */ public boolean validateObservation(Observation observation, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(observation, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(observation, diagnostics, context); if (result || diagnostics != null) @@ -17890,6 +18871,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(observation, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(observation, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(observation, diagnostics, context); if (result || diagnostics != null) @@ -17924,6 +18908,8 @@ public class UMLValidator */ public boolean validateDuration(Duration duration, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(duration, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(duration, diagnostics, context); if (result || diagnostics != null) @@ -17933,6 +18919,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(duration, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(duration, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(duration, diagnostics, context); if (result || diagnostics != null) @@ -17967,6 +18956,8 @@ public class UMLValidator */ public boolean validateValuePin(ValuePin valuePin, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(valuePin, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(valuePin, diagnostics, context); if (result || diagnostics != null) @@ -17976,6 +18967,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(valuePin, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(valuePin, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(valuePin, diagnostics, context); if (result || diagnostics != null) @@ -18080,6 +19074,9 @@ public class UMLValidator */ public boolean validateDurationInterval(DurationInterval durationInterval, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(durationInterval, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(durationInterval, diagnostics, context); if (result || diagnostics != null) @@ -18089,6 +19086,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(durationInterval, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + durationInterval, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(durationInterval, diagnostics, context); if (result || diagnostics != null) @@ -18124,6 +19124,8 @@ public class UMLValidator */ public boolean validateInterval(Interval interval, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(interval, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(interval, diagnostics, context); if (result || diagnostics != null) @@ -18133,6 +19135,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(interval, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(interval, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(interval, diagnostics, context); if (result || diagnostics != null) @@ -18167,6 +19172,9 @@ public class UMLValidator */ public boolean validateTimeConstraint(TimeConstraint timeConstraint, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(timeConstraint, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(timeConstraint, diagnostics, context); if (result || diagnostics != null) @@ -18176,6 +19184,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(timeConstraint, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + timeConstraint, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(timeConstraint, diagnostics, context); if (result || diagnostics != null) @@ -18227,6 +19238,9 @@ public class UMLValidator public boolean validateIntervalConstraint( IntervalConstraint intervalConstraint, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(intervalConstraint, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(intervalConstraint, diagnostics, context); if (result || diagnostics != null) @@ -18236,6 +19250,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(intervalConstraint, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + intervalConstraint, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(intervalConstraint, diagnostics, context); if (result || diagnostics != null) @@ -18287,6 +19304,8 @@ public class UMLValidator */ public boolean validateTimeInterval(TimeInterval timeInterval, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(timeInterval, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(timeInterval, diagnostics, context); if (result || diagnostics != null) @@ -18296,6 +19315,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(timeInterval, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + timeInterval, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(timeInterval, diagnostics, context); if (result || diagnostics != null) @@ -18332,6 +19354,9 @@ public class UMLValidator public boolean validateDurationConstraint( DurationConstraint durationConstraint, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(durationConstraint, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(durationConstraint, diagnostics, context); if (result || diagnostics != null) @@ -18341,6 +19366,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(durationConstraint, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + durationConstraint, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(durationConstraint, diagnostics, context); if (result || diagnostics != null) @@ -18408,6 +19436,9 @@ public class UMLValidator */ public boolean validateTimeObservation(TimeObservation timeObservation, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(timeObservation, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(timeObservation, diagnostics, context); if (result || diagnostics != null) @@ -18417,6 +19448,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(timeObservation, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + timeObservation, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(timeObservation, diagnostics, context); if (result || diagnostics != null) @@ -18453,6 +19487,9 @@ public class UMLValidator public boolean validateDurationObservation( DurationObservation durationObservation, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(durationObservation, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( durationObservation, diagnostics, context); if (result || diagnostics != null) @@ -18462,6 +19499,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(durationObservation, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + durationObservation, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(durationObservation, diagnostics, context); if (result || diagnostics != null) @@ -18514,6 +19554,8 @@ public class UMLValidator */ public boolean validateOpaqueAction(OpaqueAction opaqueAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(opaqueAction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(opaqueAction, diagnostics, context); if (result || diagnostics != null) @@ -18523,6 +19565,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(opaqueAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + opaqueAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(opaqueAction, diagnostics, context); if (result || diagnostics != null) @@ -18570,6 +19615,8 @@ public class UMLValidator */ public boolean validateCallAction(CallAction callAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(callAction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(callAction, diagnostics, context); if (result || diagnostics != null) @@ -18579,6 +19626,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(callAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(callAction, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(callAction, diagnostics, context); if (result || diagnostics != null) @@ -18674,6 +19724,9 @@ public class UMLValidator */ public boolean validateSendSignalAction(SendSignalAction sendSignalAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(sendSignalAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(sendSignalAction, diagnostics, context); if (result || diagnostics != null) @@ -18683,6 +19736,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(sendSignalAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + sendSignalAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(sendSignalAction, diagnostics, context); if (result || diagnostics != null) @@ -18765,6 +19821,9 @@ public class UMLValidator public boolean validateCallOperationAction( CallOperationAction callOperationAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(callOperationAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( callOperationAction, diagnostics, context); if (result || diagnostics != null) @@ -18774,6 +19833,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(callOperationAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + callOperationAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(callOperationAction, diagnostics, context); if (result || diagnostics != null) @@ -18914,6 +19976,9 @@ public class UMLValidator public boolean validateCallBehaviorAction( CallBehaviorAction callBehaviorAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(callBehaviorAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(callBehaviorAction, diagnostics, context); if (result || diagnostics != null) @@ -18923,6 +19988,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(callBehaviorAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + callBehaviorAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(callBehaviorAction, diagnostics, context); if (result || diagnostics != null) @@ -19047,6 +20115,9 @@ public class UMLValidator */ public boolean validateInformationItem(InformationItem informationItem, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(informationItem, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(informationItem, diagnostics, context); if (result || diagnostics != null) @@ -19056,6 +20127,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(informationItem, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + informationItem, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(informationItem, diagnostics, context); if (result || diagnostics != null) @@ -19157,6 +20231,9 @@ public class UMLValidator */ public boolean validateInformationFlow(InformationFlow informationFlow, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(informationFlow, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(informationFlow, diagnostics, context); if (result || diagnostics != null) @@ -19166,6 +20243,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(informationFlow, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + informationFlow, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(informationFlow, diagnostics, context); if (result || diagnostics != null) @@ -19247,6 +20327,8 @@ public class UMLValidator */ public boolean validateModel(Model model, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(model, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(model, diagnostics, context); if (result || diagnostics != null) @@ -19256,6 +20338,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(model, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(model, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(model, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(model, diagnostics, context); @@ -19294,6 +20379,9 @@ public class UMLValidator */ public boolean validateVariableAction(VariableAction variableAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(variableAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(variableAction, diagnostics, context); if (result || diagnostics != null) @@ -19303,6 +20391,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(variableAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + variableAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(variableAction, diagnostics, context); if (result || diagnostics != null) @@ -19366,6 +20457,9 @@ public class UMLValidator public boolean validateReadVariableAction( ReadVariableAction readVariableAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readVariableAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(readVariableAction, diagnostics, context); if (result || diagnostics != null) @@ -19375,6 +20469,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(readVariableAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readVariableAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readVariableAction, diagnostics, context); if (result || diagnostics != null) @@ -19458,6 +20555,9 @@ public class UMLValidator public boolean validateWriteVariableAction( WriteVariableAction writeVariableAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(writeVariableAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( writeVariableAction, diagnostics, context); if (result || diagnostics != null) @@ -19467,6 +20567,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(writeVariableAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + writeVariableAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(writeVariableAction, diagnostics, context); if (result || diagnostics != null) @@ -19549,6 +20652,9 @@ public class UMLValidator public boolean validateClearVariableAction( ClearVariableAction clearVariableAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(clearVariableAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( clearVariableAction, diagnostics, context); if (result || diagnostics != null) @@ -19558,6 +20664,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(clearVariableAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + clearVariableAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(clearVariableAction, diagnostics, context); if (result || diagnostics != null) @@ -19610,6 +20719,9 @@ public class UMLValidator public boolean validateAddVariableValueAction( AddVariableValueAction addVariableValueAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(addVariableValueAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( addVariableValueAction, diagnostics, context); if (result || diagnostics != null) @@ -19619,6 +20731,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( addVariableValueAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + addVariableValueAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(addVariableValueAction, diagnostics, context); if (result || diagnostics != null) @@ -19693,6 +20808,9 @@ public class UMLValidator public boolean validateRemoveVariableValueAction( RemoveVariableValueAction removeVariableValueAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(removeVariableValueAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( removeVariableValueAction, diagnostics, context); if (result || diagnostics != null) @@ -19702,6 +20820,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( removeVariableValueAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + removeVariableValueAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(removeVariableValueAction, diagnostics, context); if (result || diagnostics != null) @@ -19776,6 +20897,9 @@ public class UMLValidator public boolean validateRaiseExceptionAction( RaiseExceptionAction raiseExceptionAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(raiseExceptionAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( raiseExceptionAction, diagnostics, context); if (result || diagnostics != null) @@ -19785,6 +20909,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(raiseExceptionAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + raiseExceptionAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(raiseExceptionAction, diagnostics, context); if (result || diagnostics != null) @@ -19833,6 +20960,9 @@ public class UMLValidator */ public boolean validateActionInputPin(ActionInputPin actionInputPin, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(actionInputPin, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(actionInputPin, diagnostics, context); if (result || diagnostics != null) @@ -19842,6 +20972,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(actionInputPin, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + actionInputPin, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(actionInputPin, diagnostics, context); if (result || diagnostics != null) @@ -19964,6 +21097,9 @@ public class UMLValidator */ public boolean validateReadExtentAction(ReadExtentAction readExtentAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readExtentAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(readExtentAction, diagnostics, context); if (result || diagnostics != null) @@ -19973,6 +21109,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(readExtentAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readExtentAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readExtentAction, diagnostics, context); if (result || diagnostics != null) @@ -20052,6 +21191,9 @@ public class UMLValidator public boolean validateReclassifyObjectAction( ReclassifyObjectAction reclassifyObjectAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(reclassifyObjectAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( reclassifyObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -20061,6 +21203,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( reclassifyObjectAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + reclassifyObjectAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(reclassifyObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -20157,6 +21302,9 @@ public class UMLValidator public boolean validateReadIsClassifiedObjectAction( ReadIsClassifiedObjectAction readIsClassifiedObjectAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readIsClassifiedObjectAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( readIsClassifiedObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -20166,6 +21314,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( readIsClassifiedObjectAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readIsClassifiedObjectAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readIsClassifiedObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -20279,6 +21430,9 @@ public class UMLValidator public boolean validateStartClassifierBehaviorAction( StartClassifierBehaviorAction startClassifierBehaviorAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(startClassifierBehaviorAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( startClassifierBehaviorAction, diagnostics, context); if (result || diagnostics != null) @@ -20288,6 +21442,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( startClassifierBehaviorAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + startClassifierBehaviorAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( startClassifierBehaviorAction, diagnostics, context); if (result || diagnostics != null) @@ -20369,6 +21526,9 @@ public class UMLValidator public boolean validateReadLinkObjectEndAction( ReadLinkObjectEndAction readLinkObjectEndAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readLinkObjectEndAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( readLinkObjectEndAction, diagnostics, context); if (result || diagnostics != null) @@ -20378,6 +21538,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( readLinkObjectEndAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readLinkObjectEndAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(readLinkObjectEndAction, diagnostics, context); if (result || diagnostics != null) @@ -20538,6 +21701,9 @@ public class UMLValidator public boolean validateReadLinkObjectEndQualifierAction( ReadLinkObjectEndQualifierAction readLinkObjectEndQualifierAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(readLinkObjectEndQualifierAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( readLinkObjectEndQualifierAction, diagnostics, context); if (result || diagnostics != null) @@ -20547,6 +21713,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( readLinkObjectEndQualifierAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + readLinkObjectEndQualifierAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves( readLinkObjectEndQualifierAction, diagnostics, context); if (result || diagnostics != null) @@ -20724,6 +21893,9 @@ public class UMLValidator public boolean validateCreateLinkObjectAction( CreateLinkObjectAction createLinkObjectAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(createLinkObjectAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( createLinkObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -20733,6 +21905,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( createLinkObjectAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + createLinkObjectAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(createLinkObjectAction, diagnostics, context); if (result || diagnostics != null) @@ -20845,6 +22020,9 @@ public class UMLValidator public boolean validateAcceptEventAction( AcceptEventAction acceptEventAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(acceptEventAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(acceptEventAction, diagnostics, context); if (result || diagnostics != null) @@ -20854,6 +22032,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(acceptEventAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + acceptEventAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(acceptEventAction, diagnostics, context); if (result || diagnostics != null) @@ -20962,6 +22143,9 @@ public class UMLValidator */ public boolean validateAcceptCallAction(AcceptCallAction acceptCallAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(acceptCallAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(acceptCallAction, diagnostics, context); if (result || diagnostics != null) @@ -20971,6 +22155,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(acceptCallAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + acceptCallAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(acceptCallAction, diagnostics, context); if (result || diagnostics != null) @@ -21075,6 +22262,8 @@ public class UMLValidator */ public boolean validateReplyAction(ReplyAction replyAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(replyAction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(replyAction, diagnostics, context); if (result || diagnostics != null) @@ -21084,6 +22273,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(replyAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(replyAction, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(replyAction, diagnostics, context); if (result || diagnostics != null) @@ -21161,6 +22353,9 @@ public class UMLValidator */ public boolean validateUnmarshallAction(UnmarshallAction unmarshallAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(unmarshallAction, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(unmarshallAction, diagnostics, context); if (result || diagnostics != null) @@ -21170,6 +22365,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(unmarshallAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + unmarshallAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(unmarshallAction, diagnostics, context); if (result || diagnostics != null) @@ -21325,6 +22523,8 @@ public class UMLValidator */ public boolean validateReduceAction(ReduceAction reduceAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(reduceAction, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(reduceAction, diagnostics, context); if (result || diagnostics != null) @@ -21334,6 +22534,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(reduceAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + reduceAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(reduceAction, diagnostics, context); if (result || diagnostics != null) @@ -21428,6 +22631,9 @@ public class UMLValidator public boolean validateStartObjectBehaviorAction( StartObjectBehaviorAction startObjectBehaviorAction, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(startObjectBehaviorAction, + diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms( startObjectBehaviorAction, diagnostics, context); if (result || diagnostics != null) @@ -21437,6 +22643,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained( startObjectBehaviorAction, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + startObjectBehaviorAction, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(startObjectBehaviorAction, diagnostics, context); if (result || diagnostics != null) @@ -21577,6 +22786,8 @@ public class UMLValidator */ public boolean validateControlNode(ControlNode controlNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(controlNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(controlNode, diagnostics, context); if (result || diagnostics != null) @@ -21586,6 +22797,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(controlNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(controlNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(controlNode, diagnostics, context); if (result || diagnostics != null) @@ -21632,6 +22846,8 @@ public class UMLValidator */ public boolean validateControlFlow(ControlFlow controlFlow, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(controlFlow, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(controlFlow, diagnostics, context); if (result || diagnostics != null) @@ -21641,6 +22857,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(controlFlow, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(controlFlow, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(controlFlow, diagnostics, context); if (result || diagnostics != null) @@ -21705,6 +22924,8 @@ public class UMLValidator */ public boolean validateInitialNode(InitialNode initialNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(initialNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(initialNode, diagnostics, context); if (result || diagnostics != null) @@ -21714,6 +22935,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(initialNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(initialNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(initialNode, diagnostics, context); if (result || diagnostics != null) @@ -21791,6 +23015,9 @@ public class UMLValidator public boolean validateActivityParameterNode( ActivityParameterNode activityParameterNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activityParameterNode, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( activityParameterNode, diagnostics, context); if (result || diagnostics != null) @@ -21800,6 +23027,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activityParameterNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + activityParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activityParameterNode, diagnostics, context); if (result || diagnostics != null) @@ -21970,6 +23200,8 @@ public class UMLValidator */ public boolean validateForkNode(ForkNode forkNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(forkNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(forkNode, diagnostics, context); if (result || diagnostics != null) @@ -21979,6 +23211,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(forkNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(forkNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(forkNode, diagnostics, context); if (result || diagnostics != null) @@ -22053,6 +23288,8 @@ public class UMLValidator */ public boolean validateFlowFinalNode(FlowFinalNode flowFinalNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(flowFinalNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(flowFinalNode, diagnostics, context); if (result || diagnostics != null) @@ -22062,6 +23299,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(flowFinalNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + flowFinalNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(flowFinalNode, diagnostics, context); if (result || diagnostics != null) @@ -22112,6 +23352,8 @@ public class UMLValidator */ public boolean validateFinalNode(FinalNode finalNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(finalNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(finalNode, diagnostics, context); if (result || diagnostics != null) @@ -22121,6 +23363,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(finalNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(finalNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(finalNode, diagnostics, context); if (result || diagnostics != null) @@ -22183,6 +23428,9 @@ public class UMLValidator public boolean validateCentralBufferNode( CentralBufferNode centralBufferNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(centralBufferNode, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(centralBufferNode, diagnostics, context); if (result || diagnostics != null) @@ -22192,6 +23440,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(centralBufferNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + centralBufferNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(centralBufferNode, diagnostics, context); if (result || diagnostics != null) @@ -22251,6 +23502,8 @@ public class UMLValidator */ public boolean validateMergeNode(MergeNode mergeNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(mergeNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(mergeNode, diagnostics, context); if (result || diagnostics != null) @@ -22260,6 +23513,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(mergeNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(mergeNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(mergeNode, diagnostics, context); if (result || diagnostics != null) @@ -22335,6 +23591,8 @@ public class UMLValidator */ public boolean validateDecisionNode(DecisionNode decisionNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(decisionNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(decisionNode, diagnostics, context); if (result || diagnostics != null) @@ -22344,6 +23602,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(decisionNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + decisionNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(decisionNode, diagnostics, context); if (result || diagnostics != null) @@ -22515,6 +23776,9 @@ public class UMLValidator public boolean validateActivityFinalNode( ActivityFinalNode activityFinalNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(activityFinalNode, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(activityFinalNode, diagnostics, context); if (result || diagnostics != null) @@ -22524,6 +23788,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(activityFinalNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + activityFinalNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(activityFinalNode, diagnostics, context); if (result || diagnostics != null) @@ -22574,6 +23841,8 @@ public class UMLValidator */ public boolean validateJoinNode(JoinNode joinNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(joinNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(joinNode, diagnostics, context); if (result || diagnostics != null) @@ -22583,6 +23852,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(joinNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(joinNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(joinNode, diagnostics, context); if (result || diagnostics != null) @@ -22658,6 +23930,8 @@ public class UMLValidator */ public boolean validateDataStoreNode(DataStoreNode dataStoreNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(dataStoreNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(dataStoreNode, diagnostics, context); if (result || diagnostics != null) @@ -22667,6 +23941,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(dataStoreNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + dataStoreNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(dataStoreNode, diagnostics, context); if (result || diagnostics != null) @@ -22726,6 +24003,8 @@ public class UMLValidator */ public boolean validateObjectFlow(ObjectFlow objectFlow, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(objectFlow, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(objectFlow, diagnostics, context); if (result || diagnostics != null) @@ -22735,6 +24014,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(objectFlow, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(objectFlow, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(objectFlow, diagnostics, context); if (result || diagnostics != null) @@ -22903,6 +24185,8 @@ public class UMLValidator */ public boolean validateSequenceNode(SequenceNode sequenceNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(sequenceNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(sequenceNode, diagnostics, context); if (result || diagnostics != null) @@ -22912,6 +24196,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(sequenceNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + sequenceNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(sequenceNode, diagnostics, context); if (result || diagnostics != null) @@ -22974,6 +24261,9 @@ public class UMLValidator */ public boolean validateConditionalNode(ConditionalNode conditionalNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(conditionalNode, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(conditionalNode, diagnostics, context); if (result || diagnostics != null) @@ -22983,6 +24273,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(conditionalNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + conditionalNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(conditionalNode, diagnostics, context); if (result || diagnostics != null) @@ -23060,6 +24353,8 @@ public class UMLValidator */ public boolean validateClause(Clause clause, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(clause, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(clause, diagnostics, context); if (result || diagnostics != null) @@ -23069,6 +24364,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(clause, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(clause, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(clause, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(clause, diagnostics, context); @@ -23120,6 +24418,8 @@ public class UMLValidator */ public boolean validateLoopNode(LoopNode loopNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(loopNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(loopNode, diagnostics, context); if (result || diagnostics != null) @@ -23129,6 +24429,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(loopNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(loopNode, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(loopNode, diagnostics, context); if (result || diagnostics != null) @@ -23232,6 +24535,8 @@ public class UMLValidator */ public boolean validateExpansionNode(ExpansionNode expansionNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(expansionNode, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(expansionNode, diagnostics, context); if (result || diagnostics != null) @@ -23241,6 +24546,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(expansionNode, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + expansionNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(expansionNode, diagnostics, context); if (result || diagnostics != null) @@ -23300,6 +24608,9 @@ public class UMLValidator */ public boolean validateExpansionRegion(ExpansionRegion expansionRegion, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(expansionRegion, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(expansionRegion, diagnostics, context); if (result || diagnostics != null) @@ -23309,6 +24620,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(expansionRegion, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + expansionRegion, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(expansionRegion, diagnostics, context); if (result || diagnostics != null) @@ -23387,6 +24701,9 @@ public class UMLValidator public boolean validateComponentRealization( ComponentRealization componentRealization, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(componentRealization, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( componentRealization, diagnostics, context); if (result || diagnostics != null) @@ -23396,6 +24713,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(componentRealization, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + componentRealization, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(componentRealization, diagnostics, context); if (result || diagnostics != null) @@ -23432,6 +24752,8 @@ public class UMLValidator */ public boolean validateComponent(Component component, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(component, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(component, diagnostics, context); if (result || diagnostics != null) @@ -23441,6 +24763,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(component, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(component, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(component, diagnostics, context); if (result || diagnostics != null) @@ -23505,6 +24830,8 @@ public class UMLValidator */ public boolean validateNode(Node node, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(node, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(node, diagnostics, context); if (result || diagnostics != null) @@ -23514,6 +24841,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(node, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(node, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(node, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(node, diagnostics, context); @@ -23590,6 +24920,8 @@ public class UMLValidator */ public boolean validateDevice(Device device, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(device, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(device, diagnostics, context); if (result || diagnostics != null) @@ -23599,6 +24931,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(device, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(device, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(device, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(device, diagnostics, context); @@ -23665,6 +25000,9 @@ public class UMLValidator public boolean validateExecutionEnvironment( ExecutionEnvironment executionEnvironment, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(executionEnvironment, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms( executionEnvironment, diagnostics, context); if (result || diagnostics != null) @@ -23674,6 +25012,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(executionEnvironment, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + executionEnvironment, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(executionEnvironment, diagnostics, context); if (result || diagnostics != null) @@ -23744,6 +25085,9 @@ public class UMLValidator public boolean validateCommunicationPath( CommunicationPath communicationPath, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(communicationPath, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(communicationPath, diagnostics, context); if (result || diagnostics != null) @@ -23753,6 +25097,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(communicationPath, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + communicationPath, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(communicationPath, diagnostics, context); if (result || diagnostics != null) @@ -23853,6 +25200,8 @@ public class UMLValidator */ public boolean validateFinalState(FinalState finalState, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(finalState, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(finalState, diagnostics, context); if (result || diagnostics != null) @@ -23862,6 +25211,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(finalState, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(finalState, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(finalState, diagnostics, context); if (result || diagnostics != null) @@ -24010,6 +25362,8 @@ public class UMLValidator */ public boolean validateTimeEvent(TimeEvent timeEvent, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(timeEvent, diagnostics, context)) + return false; boolean result = validate_EveryMultiplicityConforms(timeEvent, diagnostics, context); if (result || diagnostics != null) @@ -24019,6 +25373,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(timeEvent, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired(timeEvent, + diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(timeEvent, diagnostics, context); if (result || diagnostics != null) @@ -24083,6 +25440,9 @@ public class UMLValidator public boolean validateProtocolTransition( ProtocolTransition protocolTransition, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(protocolTransition, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(protocolTransition, diagnostics, context); if (result || diagnostics != null) @@ -24092,6 +25452,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(protocolTransition, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + protocolTransition, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(protocolTransition, diagnostics, context); if (result || diagnostics != null) @@ -24205,6 +25568,9 @@ public class UMLValidator */ public boolean validateAssociationClass(AssociationClass associationClass, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(associationClass, diagnostics, + context)) + return false; boolean result = validate_EveryMultiplicityConforms(associationClass, diagnostics, context); if (result || diagnostics != null) @@ -24214,6 +25580,9 @@ public class UMLValidator result &= validate_EveryReferenceIsContained(associationClass, diagnostics, context); if (result || diagnostics != null) + result &= validate_EveryBidirectionalReferenceIsPaired( + associationClass, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(associationClass, diagnostics, context); if (result || diagnostics != null) |