package org.jboss.windup.rules.apps.mavenize;
/**
* Dependency reference can be anything that can appear in pom.xml's dependencies:
* A library, project cross-module dependency, another app (EAR, WAR), etc.
* This is a shared interface for implementation classes of those.
*
* @author <a href="http://ondra.zizka.cz/">Ondrej Zizka, zizka@seznam.cz</a>
*/
public interface Dependency
{
MavenCoord getCoord();
Role getRole();
/**
* Whether the target artifact is internal project's module, third-party library,
* or an API definitions for the services provided by the application server.
*/
enum Role {
/**
* A known library bundled with the project; typically opensource from Maven Central.
*/
LIBRARY,
/**
* A reference to another module of a project; typically used for inter-project cross-references.
*/
MODULE,
/**
* API dependency, typically not bundled, rather provided by an application server.
*/
API
}
}