Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkhussey2004-11-01 22:23:50 +0000
committerkhussey2004-11-01 22:23:50 +0000
commit268d26ac0d94015811a064055dfaef4c17bd323e (patch)
tree9ee7d038c3e344d49d79b9cc007fb4f8953d159d
parent419a871dc7c7afb00b65fcc26d3f3ed91f42c1ef (diff)
downloadorg.eclipse.uml2.git.040612-268d26ac0d94015811a064055dfaef4c17bd323e.tar.gz
org.eclipse.uml2.git.040612-268d26ac0d94015811a064055dfaef4c17bd323e.tar.xz
org.eclipse.uml2.git.040612-268d26ac0d94015811a064055dfaef4c17bd323e.zip
https://bugs.eclipse.org/bugs/show_bug.cgi?id=77231build_200411041050
-rw-r--r--deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/NamespaceOperations.java17
-rw-r--r--deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/PackageOperations.java73
2 files changed, 64 insertions, 26 deletions
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/NamespaceOperations.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/NamespaceOperations.java
index ee4c1172..7b523e7e 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/NamespaceOperations.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/NamespaceOperations.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - Initial API and implementation
*
- * $Id: NamespaceOperations.java,v 1.7 2004/05/28 05:13:45 khussey Exp $
+ * $Id: NamespaceOperations.java,v 1.7.2.1 2004/11/01 22:23:50 khussey Exp $
*/
package org.eclipse.uml2.internal.operation;
@@ -117,21 +117,22 @@ public final class NamespaceOperations
for (Iterator elementImports = namespace.getElementImports().iterator(); elementImports
.hasNext();) {
- ElementImport elementImport = (ElementImport) elementImports.next();
+ PackageableElement importedElement = ((ElementImport) elementImports
+ .next()).getImportedElement();
- if (null != elementImport.getImportedElement()) {
- importedMember.add(elementImport.getImportedElement());
+ if (null != importedElement) {
+ importedMember.add(importedElement);
}
}
for (Iterator packageImports = namespace.getPackageImports().iterator(); packageImports
.hasNext();) {
- PackageImport packageImport = (PackageImport) packageImports.next();
+ org.eclipse.uml2.Package importedPackage = ((PackageImport) packageImports
+ .next()).getImportedPackage();
- if (null != packageImport.getImportedPackage()) {
- importedMember.addAll(packageImport.getImportedPackage()
- .visibleMembers());
+ if (null != importedPackage) {
+ importedMember.addAll(importedPackage.visibleMembers());
}
}
diff --git a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/PackageOperations.java b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/PackageOperations.java
index ffe29365..906d9729 100644
--- a/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/PackageOperations.java
+++ b/deprecated/plugins/org.eclipse.uml2/src/org/eclipse/uml2/internal/operation/PackageOperations.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - Initial API and implementation
*
- * $Id: PackageOperations.java,v 1.6 2004/05/11 15:24:01 khussey Exp $
+ * $Id: PackageOperations.java,v 1.6.2.1 2004/11/01 22:23:50 khussey Exp $
*/
package org.eclipse.uml2.internal.operation;
@@ -25,9 +25,9 @@ import org.eclipse.uml2.ElementImport;
import org.eclipse.uml2.NamedElement;
import org.eclipse.uml2.PackageImport;
import org.eclipse.uml2.PackageableElement;
-import org.eclipse.uml2.util.UML2Validator;
import org.eclipse.uml2.UML2Plugin;
import org.eclipse.uml2.VisibilityKind;
+import org.eclipse.uml2.util.UML2Validator;
/**
* A static utility class that provides operations related to packages.
@@ -72,9 +72,11 @@ public final class PackageOperations
|| VisibilityKind.PUBLIC_LITERAL.equals(packageImport
.getVisibility())) {
- return null != packageImport.getImportedPackage()
- && packageImport.getImportedPackage().visibleMembers()
- .contains(el);
+ org.eclipse.uml2.Package importedPackage = packageImport
+ .getImportedPackage();
+
+ return null != importedPackage
+ && importedPackage.visibleMembers().contains(el);
}
}
@@ -88,6 +90,21 @@ public final class PackageOperations
public static Set visibleMembers(org.eclipse.uml2.Package package_) {
Set visibleMembers = new HashSet();
+ visibleMembersHelper(package_, visibleMembers);
+
+ for (Iterator allImportedPackages = allImportedPackagesHelper(package_,
+ new HashSet()).iterator(); allImportedPackages.hasNext();) {
+
+ visibleMembersHelper((org.eclipse.uml2.Package) allImportedPackages
+ .next(), visibleMembers);
+ }
+
+ return visibleMembers;
+ }
+
+ protected static Set visibleMembersHelper(
+ org.eclipse.uml2.Package package_, Set visibleMembers) {
+
for (Iterator ownedMembers = package_.getOwnedMembers().iterator(); ownedMembers
.hasNext();) {
@@ -111,10 +128,21 @@ public final class PackageOperations
|| VisibilityKind.PUBLIC_LITERAL.equals(elementImport
.getVisibility())) {
- visibleMembers.add(elementImport.getImportedElement());
+ PackageableElement importedElement = elementImport
+ .getImportedElement();
+
+ if (null != importedElement) {
+ visibleMembers.add(importedElement);
+ }
}
}
+ return visibleMembers;
+ }
+
+ protected static Set allImportedPackagesHelper(
+ org.eclipse.uml2.Package package_, Set allImportedPackages) {
+
for (Iterator packageImports = package_.getPackageImports().iterator(); packageImports
.hasNext();) {
@@ -124,12 +152,21 @@ public final class PackageOperations
|| VisibilityKind.PUBLIC_LITERAL.equals(packageImport
.getVisibility())) {
- visibleMembers.addAll(packageImport.getImportedPackage()
- .visibleMembers());
+ org.eclipse.uml2.Package importedPackage = packageImport
+ .getImportedPackage();
+
+ if (null != importedPackage
+ && !allImportedPackages.contains(importedPackage)) {
+
+ allImportedPackages.add(importedPackage);
+
+ allImportedPackagesHelper(importedPackage,
+ allImportedPackages);
+ }
}
}
- return visibleMembers;
+ return allImportedPackages;
}
/**
@@ -162,15 +199,15 @@ public final class PackageOperations
} else {
diagnostics
.add(new BasicDiagnostic(
- Diagnostic.WARNING,
- UML2Validator.DIAGNOSTIC_SOURCE,
- UML2Validator.PACKAGE__ELEMENTS_PUBLIC_OR_PRIVATE,
- UML2Plugin.INSTANCE
- .getString(
- "_UI_Package_ElementsPublicOrPrivate_diagnostic", //$NON-NLS-1$
- getMessageSubstitutions(context,
- ownedElement, package_)),
- new Object[] {package_, ownedElement}));
+ Diagnostic.WARNING,
+ UML2Validator.DIAGNOSTIC_SOURCE,
+ UML2Validator.PACKAGE__ELEMENTS_PUBLIC_OR_PRIVATE,
+ UML2Plugin.INSTANCE
+ .getString(
+ "_UI_Package_ElementsPublicOrPrivate_diagnostic", //$NON-NLS-1$
+ getMessageSubstitutions(context,
+ ownedElement, package_)),
+ new Object[]{package_, ownedElement}));
}
}
}

Back to the top