コード例 #1
0
        /* (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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 private void   appendTuplePart(StringBuilder partsNames, TuplePartType tuplePart)
 {
     partsNames.Append(tuplePart.getName());
     partsNames.Append(" : ");
     partsNames.Append(tuplePart.getFeatureType().getName());
 }