/* (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); }
private void appendTuplePart(StringBuilder partsNames, TuplePartType tuplePart) { partsNames.Append(tuplePart.getName()); partsNames.Append(" : "); partsNames.Append(tuplePart.getFeatureType().getName()); }