package org.bundlemaker.core.analysis;
import java.util.Collection;
import java.util.Set;
import com.tinkerpop.blueprints.Edge;
/**
* <p>
* </p>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public interface IDependency extends Edge {
/**
* <p>
* </p>
*
* @return
*/
IBundleMakerArtifact getTo();
/**
* <p>
* </p>
*
* @return
*/
IBundleMakerArtifact getFrom();
/**
* <p>
* Returns a {@link Collection} of dependencies if this dependency is an aggregated dependency.
* </p>
*
* @return a {@link Collection} of dependencies
*/
public Collection<IDependency> getDependencies();
/**
* <p>
* Returns the weight of this dependency.
* </p>
*
* @return the weight of this dependency.
*/
public int getWeight();
/**
* <p>
* </p>
*
* @return
*/
public Collection<IDependency> getCoreDependencies();
DependencyKind getDependencyKind();
/**
* @return
*/
Set<String> getPropertyKeys();
/**
* @param key
* @return
*/
Object getProperty(String key);
}