// private void getAllInvariants(Map allInvariants) { // InvariantsCollector collector = new InvariantsCollector(this.getJmiClassifier(), allInvariants); // collector.traverseAllAncestors(); // } public CoreModelElement addDefinedElement( string source, string name, CoreClassifier type) { List <object> allSubClasses = classifier.getAllSubClasses(); foreach (CoreClassifier subClass in allSubClasses) { Environment env = subClass.getEnvironmentWithoutParents(); if (env.lookup(name) != null) { string errorMessage = "<{0}> already defined in a derived classifier"; throw new NameClashException(string.Format(errorMessage, new object[] { name })); } } CoreFeature element = createOclDefinedAttribute(source, name, type); element.setFeatureOwner(classifier); element.setElemOwner(classifier); this.definedFeatures.Add(name, element); addElementToDefinedFeaturesBySource(source, element); return(element); }
public CoreModelElement addDefinedOperation( string source, string name, List <object> paramNames, List <object> paramTypes, CoreClassifier returnType) { CoreFeature element = createOclDefinedOperation(source, name, paramNames, paramTypes, returnType); element.setFeatureOwner(classifier); element.setElemOwner(classifier); ModelElementNameGenerator nameGenerator = CoreModelElementNameGeneratorImpl.getInstance(); string mangledName = nameGenerator.generateNameForOperation(name, paramTypes); this.definedFeatures.Add(mangledName, element); addElementToDefinedFeaturesBySource(source, element); return(element); }