package org.bundlemaker.core.spi.analysis; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.bundlemaker.core.analysis.IBundleMakerArtifact; import org.bundlemaker.core.analysis.IDependency; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class ReferencingArtifactTrait implements IReferencingArtifact { /** the map with all core dependencies */ private Map<IBundleMakerArtifact, IDependency> _coreDependenciesToMap; /** indicates whether this instance has been initialized or not */ private boolean _isInitialized = false; /** * {@inheritDoc} */ @Override public Collection<IDependency> getDependenciesTo() { // _initialize(); // if (_coreDependenciesToMap == null) { return Collections.emptyList(); } // return _coreDependenciesToMap.values(); } /** * {@inheritDoc} */ @Override public boolean hasDependencyTo(IBundleMakerArtifact artifact) { // _initialize(); return _coreDependenciesToMap != null && _coreDependenciesToMap.containsKey(artifact); } /** * {@inheritDoc} */ @Override public IDependency getDependencyTo(IBundleMakerArtifact artifact) { // _initialize(); // if (_coreDependenciesToMap == null) { return null; } // return _coreDependenciesToMap.get(artifact); } /** * {@inheritDoc} */ @Override public Collection<IDependency> getDependenciesTo(Collection<? extends IBundleMakerArtifact> artifacts) { // _initialize(); // if (_coreDependenciesToMap == null) { return Collections.emptyList(); } // List<IDependency> result = new LinkedList<IDependency>(); // for (IBundleMakerArtifact artifact : artifacts) { IDependency dependency = getDependencyTo(artifact); if (dependency != null) { result.add(getDependencyTo(artifact)); } } // return result; } /** * {@inheritDoc} */ @Override public Collection<IDependency> getDependenciesTo(IBundleMakerArtifact... artifacts) { // _initialize(); return getDependenciesTo(Arrays.asList(artifacts)); } /** * {@inheritDoc} */ public Map<IBundleMakerArtifact, IDependency> coreDependenciesToMap() { // if (_coreDependenciesToMap == null) { return _coreDependenciesToMap = new HashMap<IBundleMakerArtifact, IDependency>(); } // return _coreDependenciesToMap; } /** * <p> * </p> * * @return */ public boolean isInitialized() { return _isInitialized; } /** * <p> * </p> * * @param isInitialized */ public void setInitialized(boolean isInitialized) { _isInitialized = isInitialized; } /** * <p> * </p> */ private final void _initialize() { // if (_isInitialized) { return; } // initialize(); // set initialized _isInitialized = true; } /** * <p> * </p> */ protected void initialize() { // do nothing... } }