コード例 #1
0
      /// <summary>Add tool extensions of a package element.</summary>
      /// <param name="bplPackage">The BplPackage.</param>
      public void AddToolExtensions(BplPackage bplPackage) {

         string stereotype = bplPackage.IsContract ? "bplContract" : "bplPackage";

         // Add the element extensions
         XElement xElementExt = new XElement("element",
             new XAttribute(xmiNs + "idref", bplPackage.GetID()),
             new XAttribute(xmiNs + "type", "uml:Package"),
             new XAttribute("name", bplPackage.Name),
             new XAttribute("scope", "public"));

         xElementExt.Add(new XElement("properties",
            new XAttribute("documentation", bplPackage.CanonicName),
            new XAttribute("isSpecification", "false"),
            new XAttribute("sType", "Package"),
            new XAttribute("scope", "public"),
            new XAttribute("stereotype", stereotype)));

         // Add the profile extension
         XElement xTags = new XElement("tags");
         xTags.AddTags(new Pair("isNamespace", "true"));
         xElementExt.Add(xTags);

         XmiElements.Add(xElementExt);

         // Add primitive elements
         bplPackage.Primitives.Apply<BplPrimitive>(pt => AddToolExtensions(pt));

         // Add class elements
         bplPackage.Classes.Apply<BplClass>(cls => AddToolExtensions(cls));

         // Add sub packaages
         bplPackage.Packages.Apply<BplPackage>(pkg => AddToolExtensions(pkg));
      }
コード例 #2
0
      /// <summary>Add uml extentions for package.</summary>
      private void AddUmlExtensions(BplPackage bplPackage) {

         // Add the profile extension for the package
         string stereotype = bplPackage.IsContract ? "bplContract" : "bplPackage";
         AddUmlExtentions(stereotype, BASE_PACKAGE, bplPackage.GetID(), new Pair("isNamespace", "true"), new Pair("canonicName", bplPackage.CanonicName));

         // Add profile extensions for the package primitives
         bplPackage.Primitives.Apply<BplPrimitive>(pt => AddUmlExtensions(pt));

         // Add the profile extension for the package classes
         bplPackage.Classes.Apply<BplClass>(cls => AddUmlExtensions(cls));

         // Add the profile extension for the contained packages
         bplPackage.Packages.Apply<BplPackage>(pkg => AddUmlExtensions(pkg));
      }