org.axway.grapes.commons.datamodel.Artifact.java Source code

Java tutorial

Introduction

Here is the source code for org.axway.grapes.commons.datamodel.Artifact.java

Source

package org.axway.grapes.commons.datamodel;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import java.util.ArrayList;
import java.util.List;

/**
 * Artifact Model Class
 *
 * <P> Model Objects are used in the communication with the Grapes server. These objects are serialized/un-serialized in JSON objects to be exchanged via http REST calls.
 *
 * @author jdcoffre
 */
public class Artifact {

    private String artifactId;
    private String groupId = "";
    private String version = "";
    private String classifier = "";
    private String type = "";
    private String extension = "";

    private boolean promoted = false;

    private String size;
    private String downloadUrl;
    private String provider;

    private List<String> licenses = new ArrayList<String>();

    protected Artifact() {
        // Should only be instantiated via the DataModelObjectFactory
    }

    public String getArtifactId() {
        return artifactId;
    }

    public void setArtifactId(final String artifactId) {
        this.artifactId = artifactId;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(final String groupId) {
        this.groupId = groupId;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(final String version) {
        this.version = version;
    }

    public String getType() {
        return type;
    }

    public void setType(final String type) {
        this.type = type;
    }

    public boolean isPromoted() {
        return promoted;
    }

    public void setPromoted(final boolean promoted) {
        this.promoted = promoted;
    }

    public String getClassifier() {
        return classifier;
    }

    public void setClassifier(final String classifier) {
        this.classifier = classifier;
    }

    public List<String> getLicenses() {
        return licenses;
    }

    public void setLicenses(final List<String> licenses) {
        this.licenses = licenses;
    }

    public void addLicense(final String licenseName) {
        licenses.add(licenseName);
    }

    public String getSize() {
        return size;
    }

    public void setSize(final String size) {
        this.size = size;
    }

    public String getDownloadUrl() {
        return downloadUrl;
    }

    public void setDownloadUrl(final String downloadUrl) {
        this.downloadUrl = downloadUrl;
    }

    public String getExtension() {
        return extension;
    }

    public void setExtension(final String extension) {
        this.extension = extension;
    }

    public String getProvider() {
        return provider;
    }

    public void setProvider(final String provider) {
        this.provider = provider;
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    @JsonIgnore
    public String getGavc() {
        final StringBuilder sb = new StringBuilder();

        sb.append(groupId);
        sb.append(":");
        sb.append(artifactId);
        sb.append(":");
        sb.append(version);
        sb.append(":");
        sb.append(classifier);
        sb.append(":");
        sb.append(extension);

        return sb.toString();
    }

    /**
     * Checks if the artifact is the same than an other one.
     *
     * @param obj Object
     * @return <tt>true</tt> only if grId/arId/classifier/version are the same in both.
     */
    @Override
    public boolean equals(final Object obj) {
        if (obj instanceof Artifact) {
            return hashCode() == obj.hashCode();
        }

        return false;
    }

    @Override
    public int hashCode() {
        final StringBuilder sb = new StringBuilder();

        sb.append(groupId);
        sb.append(artifactId);
        sb.append(version);
        sb.append(classifier);
        sb.append(type);
        sb.append(extension);

        return sb.toString().hashCode();
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();

        sb.append(groupId);
        sb.append(":");
        sb.append(artifactId);
        sb.append(":");
        sb.append(version);
        sb.append(":");
        sb.append(classifier);
        sb.append(":");
        sb.append(type);
        sb.append(":");
        sb.append(extension);

        return sb.toString();
    }

}