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 } }