EAImvertor.EAImvertorJob.getProjectPackage C# (CSharp) Method

getProjectPackage() public static method

public static getProjectPackage ( TSF.UmlToolingFramework.UML startingPackage ) : TSF.UmlToolingFramework.UML.Classes.Kernel.Package
startingPackage TSF.UmlToolingFramework.UML
return TSF.UmlToolingFramework.UML.Classes.Kernel.Package
        public static UML.Classes.Kernel.Package getProjectPackage(UML.Classes.Kernel.Package startingPackage)
        {
            if (startingPackage.owningPackage == null) return null;
            if (startingPackage.owningPackage.stereotypes.Any(x => x.name.Equals("project", StringComparison.InvariantCultureIgnoreCase)))
            {
                return startingPackage.owningPackage;
            }
            else
            {
                return getProjectPackage(startingPackage.owningPackage);
            }
        }

Usage Example

 /// <summary>
 /// a package can be published if it's stereotype is present in the list of allowed stereotypes in the settings
 /// </summary>
 /// <param name="package">the package to publish</param>
 /// <returns>whether or not a package can be published</returns>
 private bool canBePublished(UML.Classes.Kernel.Package package)
 {
     return(package != null &&
            (package.stereotypes.Any
                 (x => this.settings.imvertorStereotypes.Any
                     (y => y.Equals(x.name, StringComparison.InvariantCultureIgnoreCase))) ||
             package.taggedValues.Any(x => "imvertor".Equals(x.name, StringComparison.InvariantCultureIgnoreCase) &&
                                      "model".Equals(x.tagValue.ToString(), StringComparison.InvariantCultureIgnoreCase))) &&
            EAImvertorJob.getProjectPackage(package) != null);
 }