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); }
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); }