blob: 983574a566d3a6e4132c2601683bdf675b5a3377 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.configuration.closure;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.epf.uma.MethodElement;
/**
* Holds the a list of package references of one package element it also holds a
* list of dependant package elements.
*
* @author Jinhua Xi
* @since 1.0
*/
public class PackageDependency extends ElementDependency {
private boolean loaded = false;
/**
* construct a package dependency for the element
* @param element
*/
public PackageDependency(MethodElement element) {
super(element);
}
/**
* set the loaded flag
* @param loaded boolean
*/
public void setLoaded(boolean loaded) {
this.loaded = loaded;
}
/**
* check if is loaded or not
* @return boolean
*/
public boolean isLoaded() {
return this.loaded;
}
/**
* get the reference for an element
* @param refElement Object
* @param create boolean if true create if not exist.
* @return PackageReference
*/
public PackageReference getReference(MethodElement refElement, boolean create) {
PackageReference ref = (PackageReference) super
.getReference(refElement);
if (ref == null && create) {
ref = new PackageReference(element, refElement);
super.addReference(ref);
}
return ref;
}
public List getPackageReferences() {
return super.getReferences();
}
public List getAllElementReferences() {
List allRefs = new ArrayList();
for ( Iterator it = getPackageReferences().iterator(); it.hasNext(); ) {
PackageReference pkgRef = (PackageReference)it.next();
allRefs.addAll(pkgRef.getReferences());
}
return allRefs;
}
/**
* remove all references with the given owner element
* @param ownerElement Object
*/
public void removeReference(MethodElement ownerElement) {
PackageReference ref;
for (Iterator it = super.getReferences().iterator(); it.hasNext();) {
ref = (PackageReference) it.next();
ref.removeReference(ownerElement);
}
}
/**
* debug method to print out the references
*/
public void print() {
super.print();
}
}