/** * @see org.eclipse.uml2.uml.Property#subsettingContext() */ public EList<Type> subsettingContext() { return this.property.subsettingContext(); }
/** * @see org.eclipse.uml2.uml.Property#subsettingContext() */ public EList<Type> subsettingContext() { return this.property.subsettingContext(); }
/** * @see org.eclipse.uml2.uml.Property#subsettingContext() */ public EList<Type> subsettingContext() { return this.property.subsettingContext(); }
/** * @see org.eclipse.uml2.uml.Property#subsettingContext() */ public EList<Type> subsettingContext() { return this.property.subsettingContext(); }
protected static boolean isSubsetValid(Property subsettingProperty, Property subsettedProperty) { for (Type subsettingContext : subsettingProperty.subsettingContext()) { for (Type subsettedContext : subsettedProperty.subsettingContext()) { if (!subsettingContext.conformsTo(subsettedContext)) { return false; } } } return true; }
protected static Collection<Property> findValidSubsets( Property subsettingProperty, String name) { Collection<Property> subsettedProperties = new UniqueEList.FastCompare<Property>(); for (Type subsettingContext : subsettingProperty.subsettingContext()) { findValidSubsets(subsettedProperties, subsettingProperty, name, (Classifier) subsettingContext); } return subsettedProperties; }
/** * Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. * subsettedProperty->notEmpty() implies * (subsettingContext()->notEmpty() and subsettingContext()->forAll (sc | * subsettedProperty->forAll(sp | * sp.subsettingContext()->exists(c | sc.conformsTo(c))))) */ private void validatePropertyConstraint3(Property subsettedProperty, List<Property> subsettingProperties) { for (Property subsettingProperty : subsettingProperties) { if (!subsettingProperty.subsettingContext().isEmpty()) { for (Type sc : subsettingProperty.subsettingContext()) { for (Type sp : subsettedProperty.subsettingContext()) { if (sp instanceof org.eclipse.uml2.uml.Class && !((Class) sp).getAllImplementedInterfaces().contains(sc) && !sc.conformsTo(sp)) { throw new IllegalStateException(String.format("The context of the subsetting property %s does not conform to the context of the subsetted property %s.", sp.getQualifiedName(), sc.getQualifiedName())); } } } } else { throw new IllegalStateException("???"); } } }
.getSubsettedProperties()) { for (Type subsettingContext : property.subsettingContext()) { .subsettingContext()) {