/*
* Initial version copyright 2008 Lockheed Martin Corporation, except
* as stated in the file entitled Licensing-Information.
*
* All modifications copyright 2009-2012 Data Access Technologies, Inc.
*
* Licensed under the Academic Free License version 3.0
* (http://www.opensource.org/licenses/afl-3.0.php), except as stated
* in the file entitled Licensing-Information.
*
* Contributors:
* MDS - initial API and implementation
*
*/
package fUML.Syntax.Classes.Kernel;
import fUML.Debug;
import UMLPrimitiveTypes.*;
public abstract class Namespace extends
fUML.Syntax.Classes.Kernel.PackageableElement {
public fUML.Syntax.Classes.Kernel.NamedElementList member = new fUML.Syntax.Classes.Kernel.NamedElementList();
public fUML.Syntax.Classes.Kernel.NamedElementList ownedMember = new fUML.Syntax.Classes.Kernel.NamedElementList();
public fUML.Syntax.Classes.Kernel.ElementImportList elementImport = new fUML.Syntax.Classes.Kernel.ElementImportList();
public fUML.Syntax.Classes.Kernel.PackageImportList packageImport = new fUML.Syntax.Classes.Kernel.PackageImportList();
public fUML.Syntax.Classes.Kernel.PackageableElementList importedMember = new fUML.Syntax.Classes.Kernel.PackageableElementList();
protected void addOwnedMember(
fUML.Syntax.Classes.Kernel.NamedElement ownedMember) {
this.addOwnedElement(ownedMember);
this.ownedMember.addValue(ownedMember);
ownedMember.namespace = this;
this.addMember(ownedMember);
} // addOwnedMember
protected void addMember(fUML.Syntax.Classes.Kernel.NamedElement member) {
// Note: This operation should not be used for owned members. The
// operation addOwnedMember should be used instead.
// Debug.println("[addMember] member is a " +
// member.getClass().getName() + "; name = " + member.name);
this.member.addValue(member);
} // addMember
public void addElementImport(
fUML.Syntax.Classes.Kernel.ElementImport elementImport) {
this.addOwnedElement(elementImport);
this.elementImport.addValue(elementImport);
elementImport.importingNamespace = this;
this.addImportedMember(elementImport.importedElement);
} // addElementImport
public void addPackageImport(
fUML.Syntax.Classes.Kernel.PackageImport packageImport) {
this.addOwnedElement(packageImport);
this.packageImport.addValue(packageImport);
packageImport.importingNamespace = this;
PackageableElementList importedElements = packageImport.importedPackage
.visibleMembers();
for (int i = 0; i < importedElements.size(); i++) {
PackageableElement importedElement = importedElements.getValue(i);
this.addImportedMember(importedElement);
}
} // addPackageImport
private void addImportedMember(
fUML.Syntax.Classes.Kernel.PackageableElement importedMember) {
this.addMember(importedMember);
this.importedMember.addValue(importedMember);
} // addImportedMember
} // Namespace