コード例 #1
0
        private CoreClassifier createEnumeration(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, XElement xenumeration, CoreStereotype coreStereotype)
        {
            CoreClassifier modelClass = new CoreClassifierImpl();

            modelClass.setName(xenumeration.Attribute("name").Value);

            modelClass.setElemOwner(owner);
            updateElemOwnedElements(owner, modelClass);
            modelClass.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, modelClass);

            updateExtendedElements(coreStereotype, modelClass);
            updateStereotypes(modelClass, coreStereotype);

            var xattributes = xenumeration.Descendants(xnamespace + "enumerationLiteral");

            foreach (var xattribute in xattributes)
            {
                CoreAttribute coreAttribute = new CoreAttributeImpl();
                coreAttribute.setName(xattribute.Attribute("name").Value);
                coreAttribute.setElemOwner(modelClass);
                updateElemOwnedElements(modelClass, coreAttribute);
                coreAttribute.setNamespace(ownerNamespace);
                updateNamespaceElemOwnedElements(ownerNamespace, coreAttribute);

                var id2 = xattribute.Attribute("Id").Value;
                lookup.Add(id2, coreAttribute);
            }

            var id = xenumeration.Attribute("Id").Value;

            lookup.Add(id, modelClass);

            return(modelClass);
        }
コード例 #2
0
        private Parameter createParameter(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreBehavioralFeature owner, XElement xparameter)
        {
            Parameter parameter = new ParameterImpl();
            var       name      = xparameter.Attribute("name");

            parameter.setName(name != null ? name.Value : "");
            parameter.setBehavioralFeature(owner);
            updateOperationParameters(owner, parameter);
            parameter.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, parameter);

            var id = xparameter.Attribute("Id").Value;

            lookup.Add(id, parameter);

            var xptype = xparameter.Descendants(xnamespace + "referencedTypeMoniker").FirstOrDefault();

            if (xptype != null)
            {
                var xtyperefid = xptype.Attribute("Id").Value;
                idToType.Add(id, xtyperefid);
            }

            string skind = xparameter.Attribute("direction").Value.ToLower();

            parameter.setKind(getParameterDirectionKind(skind));

            return(parameter);
        }
コード例 #3
0
        private CoreOperation createOperation(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, XElement xoperation)
        {
            CoreOperation coreOperation = new CoreOperationImpl();

            coreOperation.setName(xoperation.Attribute("name").Value);
            coreOperation.setElemOwner(owner);
            updateElemOwnedElements(owner, coreOperation);
            coreOperation.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreOperation);

            coreOperation.setOwnerScope(getScopeKind(xoperation.Attribute("ownerScope").Value));

            var xbehavioralFeature = xoperation.Element(xnamespace + "BehavioralFeature.parameter");

            if (xbehavioralFeature != null)
            {
                var xparameters = xbehavioralFeature.Elements(xnamespace + "Parameter");
                foreach (var xparameter in xparameters)
                {
                    createParameter(xnamespace, ownerNamespace, coreOperation, xparameter);
                }
            }

            var isQuery = xoperation.Attribute("isQuery").Value;

            coreOperation.setIsQuery(bool.Parse(isQuery));

            lookup.Add(xoperation.Attribute("xmi.id").Value, coreOperation);

            return(coreOperation);
        }
コード例 #4
0
        private CoreAttribute createAttribute(CoreNamespace ownerNamespace, CoreModelElement owner, XElement xattribute, CoreStereotype coreStereotype)
        {
            CoreAttribute coreAttribute = new CoreAttributeImpl();

            coreAttribute.setName(xattribute.Attribute("name").Value);
            coreAttribute.setElemOwner(owner);
            updateElemOwnedElements(owner, coreAttribute);
            coreAttribute.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreAttribute);

            //coreAttribute.setOwnerScope(getScopeKind(xattribute.Attribute("ownerScope").Value));

            var id = xattribute.Attribute("Id").Value;

            lookup.Add(id, coreAttribute);
            var xtype = xattribute.Descendants(xnamespaceUmlModel + "referencedTypeMoniker").FirstOrDefault();

            if (xtype != null)
            {
                string xidref = xtype.Attribute("Id").Value;
                idToType.Add(id, xidref);
            }

            var isUnique = xattribute.Attribute("isUnique");

            if (isUnique == null || isUnique.Value == "true")
            {
                updateExtendedElements(coreStereotype, coreAttribute);
                updateStereotypes(coreAttribute, coreStereotype);
            }

            return(coreAttribute);
        }
コード例 #5
0
        private CoreOperation createOperation(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, XElement xoperation)
        {
            CoreOperation coreOperation = new CoreOperationImpl();

            coreOperation.setName(xoperation.Attribute("name").Value);
            coreOperation.setElemOwner(owner);
            updateElemOwnedElements(owner, coreOperation);
            coreOperation.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreOperation);

            //coreOperation.setOwnerScope(getScopeKind(xoperation.Attribute("ownerScope").Value));

            var xparameters = xoperation.Descendants(xnamespace + "parameter");

            foreach (var xparameter in xparameters)
            {
                createParameter(xnamespace, ownerNamespace, coreOperation, xparameter);
            }

            var isQuery = xoperation.Attribute("isQuery").Value;

            coreOperation.setIsQuery(bool.Parse(isQuery));

            lookup.Add(xoperation.Attribute("Id").Value, coreOperation);

            return(coreOperation);
        }
コード例 #6
0
        private CoreStereotype createStereotype(CoreNamespace ownerNamespace, CoreModelElement owner, XElement xstereotype)
        {
            CoreStereotype coreStereotype = new CoreStereotypeImpl();

            coreStereotype.setName(xstereotype.Attribute("name").Value);
            coreStereotype.setElemOwner(owner);
            updateElemOwnedElements(owner, coreStereotype);
            coreStereotype.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreStereotype);

            string           xidref = xstereotype.Attribute("extendedElement").Value;
            CoreModelElement extendedElement;

            lookup.TryGetValue(xidref, out extendedElement);

            if (extendedElement != null)
            {
                updateExtendedElements(coreStereotype, extendedElement);
                updateStereotypes(extendedElement, coreStereotype);
            }

            lookup.Add(xstereotype.Attribute("xmi.id").Value, coreStereotype);

            return(coreStereotype);
        }
コード例 #7
0
 protected void updateNamespaceElemOwnedElements(CoreNamespace coreNamespace, CoreModelElement newOwnedElement)
 {
     if (coreNamespace != null)
     {
         List <object> ownedElements = (List <object>)coreNamespace.getElemOwnedElements();
         ownedElements.Add(newOwnedElement);
         coreNamespace.setElemOwnedElements(ownedElements);
     }
 }
コード例 #8
0
 public CoreModelElementImpl()
 {
     name              = "";
     elemOwner         = null;
     elemOwnedElements = new List <object>();
     theStereotypes    = new List <CoreStereotype>();
     coreNamespace     = null;
     connection        = new List <object>();
     clientDependency  = new List <object>();
 }
コード例 #9
0
        private CoreStereotype createStereotype(CoreNamespace ownerNamespace, CoreModelElement owner, string name)
        {
            CoreStereotype coreStereotype = new CoreStereotypeImpl();

            coreStereotype.setName(name);
            coreStereotype.setElemOwner(owner);
            updateElemOwnedElements(owner, coreStereotype);
            coreStereotype.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreStereotype);

            return(coreStereotype);
        }
コード例 #10
0
        private CoreInterface createInterface(CoreNamespace ownerNamespace, CoreModelElement owner, XElement xinterface)
        {
            CoreInterface coreInterface = new CoreInterfaceImpl();

            coreInterface.setName(xinterface.Attribute("name").Value);
            coreInterface.setElemOwner(owner);
            updateElemOwnedElements(owner, coreInterface);
            coreInterface.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreInterface);

            lookup.Add(xinterface.Attribute("xmi.id").Value, coreInterface);

            return(coreInterface);
        }
コード例 #11
0
        /* (non-Javadoc)
         * @see ocl20.CoreClassifier#getFullPathName()
         */

        public String getFullPathName()
        {
            StringBuilder result = new StringBuilder();
            CoreNamespace ns     = (CoreNamespace)getElemOwner();

            while ((ns != null) && !(ns is CoreModelImpl))
            {
                result.Insert(0, ns.getName() + "::");
                ns = (CoreNamespace)ns.getElemOwner();
            }

            result.Append(getName());

            return(result.ToString());
        }
コード例 #12
0
        private CoreDataType createDataType(CoreNamespace ownerNamespace, CoreModelElement owner, XElement xdatatype)
        {
            CoreDataType coreDataType = new CoreDataTypeImpl();
            var          name         = xdatatype.Attribute("name");

            coreDataType.setName(name.Value);
            coreDataType.setElemOwner(owner);
            updateElemOwnedElements(owner, coreDataType);
            coreDataType.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreDataType);

            var id = xdatatype.Attribute("xmi.id");

            lookup.Add(id.Value, coreDataType);

            return(coreDataType);
        }
コード例 #13
0
ファイル: XmiReader.cs プロジェクト: leocrantunes/SheetModel
        private Parameter createParameter(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreBehavioralFeature owner, XElement xparameter)
        {
            Parameter parameter = new ParameterImpl();

            parameter.setName(xparameter.Attribute("name").Value);
            parameter.setBehavioralFeature(owner);
            updateOperationParameters(owner, parameter);
            parameter.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, parameter);

            var id = xparameter.Attribute("xmi.id").Value;

            lookup.Add(id, parameter);

            // mode 1
            var xptype = xparameter.Element(xnamespace + "Parameter.type");

            if (xptype != null)
            {
                var xpclass = xptype.Element(xnamespace + "Class");
                if (xpclass != null)
                {
                    var xtyperefid = xpclass.Attribute("xmi.idref").Value;
                    idToType.Add(id, xtyperefid);
                }
            }
            else // mode 2
            {
                var xtype = xparameter.Attribute("type");
                if (xtype != null)
                {
                    string xtypeidref = xtype.Value;
                    idToType.Add(id, xtypeidref);
                }
            }

            string           skind = xparameter.Attribute("kind").Value;
            CoreModelElement kind;

            lookup.TryGetValue(skind, out kind);
            parameter.setKind(getParameterDirectionKind(skind));

            return(parameter);
        }
コード例 #14
0
        protected List <object> getAllStereotypesOfNamespace(CoreNamespace ns)
        {
            List <object> result = new List <object>();

            foreach (CoreModelElement element in ns.getElemOwnedElements())
            {
                if (element is CoreStereotypeImpl)
                {
                    result.Add(element);
                }

                if (element is CorePackageImpl)
                {
                    result.AddRange(getAllStereotypesOfNamespace((CoreNamespace)element));
                }
            }

            return(result);
        }
コード例 #15
0
        private CorePackage createPackage(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, XElement xpackage)
        {
            CorePackage corePackage = new CorePackageImpl();

            corePackage.setName(xpackage.Attribute("name").Value);
            corePackage.setElemOwner(owner);
            updateElemOwnedElements(owner, corePackage);
            corePackage.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, corePackage);

            lookup.Add(xpackage.Attribute("xmi.id").Value, corePackage);

            var xcoreNamespace = xpackage.Element(xnamespace + "Namespace.ownedElement");

            if (xcoreNamespace != null)
            {
                CoreNamespace coreNamespace = new CoreNamespaceImpl();

                var xmodelClasses = xcoreNamespace.Elements(xnamespace + "Class");
                createModelClasses(xnamespace, coreNamespace, corePackage, xmodelClasses);

                var xpackages = xcoreNamespace.Elements(xnamespace + "Package");
                foreach (var xinnerpackage in xpackages)
                {
                    createPackage(xnamespace, coreNamespace, coreModel, xinnerpackage);
                }

                var xstereotypes = xcoreNamespace.Elements(xnamespace + "Stereotype");
                foreach (var xstereotype in xstereotypes)
                {
                    createStereotype(coreNamespace, corePackage, xstereotype);
                }

                var xinterfaces = xcoreNamespace.Elements(xnamespace + "Interface");
                foreach (var xinterface in xinterfaces)
                {
                    createInterface(coreNamespace, corePackage, xinterface);
                }
            }

            return(corePackage);
        }
コード例 #16
0
        private CorePackage createPackage(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, XElement xpackage)
        {
            CorePackage corePackage = new CorePackageImpl();

            corePackage.setName(xpackage.Attribute("name").Value);
            corePackage.setElemOwner(owner);
            updateElemOwnedElements(owner, corePackage);
            corePackage.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, corePackage);

            lookup.Add(xpackage.Attribute("Id").Value, corePackage);

            var xcoreNamespace = xpackage.Element(xnamespace + "packagedElements");

            if (xcoreNamespace != null)
            {
                CoreNamespace coreNamespace = new CoreNamespaceImpl();

                var xhasnamedelements = xcoreNamespace.Element(xnamespace + "packageHasNamedElement");
                if (xhasnamedelements != null)
                {
                    var xenumerations = xcoreNamespace.Descendants(xnamespace + "enumeration");
                    var stereotype    = createStereotype(ownerNamespace, owner, "Enumeration");
                    foreach (var xenumeration in xenumerations)
                    {
                        createEnumeration(xnamespace, coreNamespace, corePackage, xenumeration, stereotype);
                    }

                    var stereotypeId  = createStereotype(ownerNamespace, owner, "Id");
                    var xmodelClasses = xcoreNamespace.Descendants(xnamespace + "class");
                    createModelClasses(xnamespace, coreNamespace, corePackage, xmodelClasses, stereotypeId);

                    var xpackages = xcoreNamespace.Descendants(xnamespace + "package");
                    foreach (var xinnerpackage in xpackages)
                    {
                        createPackage(xnamespace, coreNamespace, coreModel, xinnerpackage);
                    }
                }
            }

            return(corePackage);
        }
コード例 #17
0
 private void createModelClasses(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, IEnumerable <XElement> xmodelClasses, CoreStereotype coreStereotype)
 {
     if (xmodelClasses != null)
     {
         var iEnumerable = xmodelClasses as IList <XElement> ?? xmodelClasses.ToList();
         foreach (var xmodelClass in iEnumerable)
         {
             createClassifier(xnamespace, xmodelClass, ownerNamespace, owner, coreStereotype);
         }
         foreach (XElement xmodelClass in iEnumerable)
         {
             var xassociations = xmodelClass.Descendants(xnamespace + "association");
             foreach (var xassociation in xassociations)
             {
                 CoreAssociation coreAssociation = createAssociation(xnamespace, xassociation, new CoreAssociationImpl());
                 fillModelElementTypes();
                 updateElemOwnedElements(coreModel, coreAssociation);
             }
         }
     }
 }
コード例 #18
0
        private CoreAttribute createAttribute(CoreNamespace ownerNamespace, CoreModelElement owner, XElement xattribute)
        {
            CoreAttribute coreAttribute = new CoreAttributeImpl();

            coreAttribute.setName(xattribute.Attribute("name").Value);
            coreAttribute.setElemOwner(owner);
            updateElemOwnedElements(owner, coreAttribute);
            coreAttribute.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, coreAttribute);

            coreAttribute.setOwnerScope(getScopeKind(xattribute.Attribute("ownerScope").Value));

            var id = xattribute.Attribute("xmi.id").Value;

            lookup.Add(id, coreAttribute);
            string xidref = xattribute.Attribute("type").Value;

            idToType.Add(id, xidref);

            return(coreAttribute);
        }
コード例 #19
0
        private void createModelClasses(XNamespace xnamespace, CoreNamespace ownerNamespace, CoreModelElement owner, IEnumerable <XElement> xmodelClasses)
        {
            if (xmodelClasses != null)
            {
                var iEnumerable = xmodelClasses as IList <XElement> ?? xmodelClasses.ToList();
                foreach (var xmodelClass in iEnumerable)
                {
                    CoreClassifier modelClass = new CoreClassifierImpl();
                    modelClass.setName(xmodelClass.Attribute("name").Value);

                    modelClass.setElemOwner(owner);
                    updateElemOwnedElements(owner, modelClass);
                    modelClass.setNamespace(ownerNamespace);
                    updateNamespaceElemOwnedElements(ownerNamespace, modelClass);

                    var xclassifierfeature = xmodelClass.Element(xnamespace + "Classifier.feature");
                    if (xclassifierfeature != null)
                    {
                        var xoperations = xclassifierfeature.Elements(xnamespace + "Operation");
                        foreach (var xoperation in xoperations)
                        {
                            createOperation(xnamespace, ownerNamespace, modelClass, xoperation);
                        }

                        var xattributes = xclassifierfeature.Elements(xnamespace + "Attribute");
                        foreach (var xattribute in xattributes)
                        {
                            createAttribute(ownerNamespace, modelClass, xattribute);
                        }
                    }

                    var id = xmodelClass.Attribute("xmi.id").Value;
                    lookup.Add(id, modelClass);
                }
            }
        }
コード例 #20
0
 public void setNamespace(CoreNamespace newValue)
 {
     coreNamespace = newValue;
 }
コード例 #21
0
        private CoreClassifier createClassifier(XNamespace xnamespace, XElement xmodelClass, CoreNamespace ownerNamespace, CoreModelElement owner, CoreStereotype coreStereotype)
        {
            CoreClassifier modelClass = new CoreClassifierImpl();

            modelClass.setName(xmodelClass.Attribute("name").Value);

            modelClass.setElemOwner(owner);
            updateElemOwnedElements(owner, modelClass);
            modelClass.setNamespace(ownerNamespace);
            updateNamespaceElemOwnedElements(ownerNamespace, modelClass);

            var xoperations = xmodelClass.Descendants(xnamespace + "operation");

            foreach (var xoperation in xoperations)
            {
                createOperation(xnamespace, ownerNamespace, modelClass, xoperation);
            }

            var xattributes = xmodelClass.Descendants(xnamespace + "property");

            foreach (var xattribute in xattributes)
            {
                createAttribute(ownerNamespace, modelClass, xattribute, coreStereotype);
            }

            var id = xmodelClass.Attribute("Id").Value;

            lookup.Add(id, modelClass);

            return(modelClass);
        }
コード例 #22
0
 /* (non-Javadoc)
  * @see br.cos.ufrj.lens.odyssey.tools.psw.parser.environment.Environment#addNamespace(br.cos.ufrj.lens.odyssey.tools.psw.metamodels.core.CoreNamespace)
  */
 public Environment addNamespace(CoreNamespace ns)
 {
     this.addNamedElements(ns.getEnvironmentWithoutParents().getNamedElements());
     this.addVariableDeclarations(((EnvironmentImpl)ns.getEnvironmentWithoutParents()).getVariableDeclarations());
     return(this);
 }
コード例 #23
0
 public void setNamespace(CoreNamespace newValue)
 {
     throw new NotImplementedException();
 }