/* (non-Javadoc) * @see br.cos.ufrj.lens.odyssey.tools.psw.metamodels.core.interfaces.CoreClassifier#conformsTo(br.cos.ufrj.lens.odyssey.tools.psw.metamodels.core.interfaces.CoreClassifier) */ public override bool conformsTo(CoreClassifier c) { if (c.getName().Equals("OclAny")) { return(true); } if (!(c is TupleTypeImpl)) { return(false); } TupleType typeToMatch = (TupleType)c; if (this.getTupleParts().Count != typeToMatch.getTupleParts().Count) { return(false); } List <object> tupleTypes = new List <object>(getTupleParts()); for (int i = 0; i < tupleTypes.Count; i++) { TuplePartType element = (TuplePartType)tupleTypes[i]; CoreAttribute elementFound = typeToMatch.lookupAttribute(element.getName()); if (elementFound == null || !element.getFeatureType().conformsTo(elementFound.getFeatureType())) { return(false); } } return(true); }
public TuplePartType createTuplePartType(TupleType tupleType, String name, CoreClassifier type) { TuplePartType partType = oclPackage.getTypes().getTuplePartType(); partType.setTupleType(tupleType); partType.setFeatureType(type); partType.setName(name); allTupleParts.Add(partType); return(partType); }
private void appendTuplePart(StringBuilder partsNames, TuplePartType tuplePart) { partsNames.Append(tuplePart.getName()); partsNames.Append(" : "); partsNames.Append(tuplePart.getFeatureType().getName()); }