All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.shrinkwrap.resolver.api.maven.MavenArtifactInfo Maven / Gradle / Ivy

package org.jboss.shrinkwrap.resolver.api.maven;

import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenCoordinate;

/**
 * Resolved Maven-based artifact's metadata
 *
 * @author Andrew Lee Rubinger
 * @author Karel Piwko
 * @author Michal Matloka
 */
public interface MavenArtifactInfo {

    /**
     * Returns the defined coordinate (i.e. address) of this resolved artifact.
     *
     * @return The defined coordinate (i.e. address) of this resolved artifact.
     */
    MavenCoordinate getCoordinate();

    /**
     * Returns the resolved "version" portion of this artifact's coordinates; SNAPSHOTs may declare a version field (as
     * represented by {@link MavenResolvedArtifact#getResolvedVersion()}), which must resolve to a versioned snapshot version
     * number. That resolved version number is reflected by this field. In the case of true versions (i.e.
     * non-SNAPSHOTs), this call will be equal to {@link MavenCoordinate#getVersion()}.
     *
     * @return The resolved "version" portion of this artifact's coordinates
     */
    String getResolvedVersion();

    /**
     * Returns whether this artifact is using a SNAPSHOT version.
     *
     * @return Whether this artifact is using a SNAPSHOT version.
     */
    boolean isSnapshotVersion();

    /**
     * Returns the file extension of this artifact, i.e. ("jar")
     *
     * @return The file extension, which is never null
     */
    String getExtension();

    /**
     * Returns artifacts dependencies.
     *
     * @return Artifacts dependencies.
     */
    MavenArtifactInfo[] getDependencies();

    /**
     * Returns the scope information of this artifact
     *
     * @return the scope information of this artifact
     */
    ScopeType getScope();

    /**
     * Returns true if artifact is optional.
     *
     * @return return true if artifact is optional.
     */
    boolean isOptional();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy