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

com.jfrog.bintray.client.impl.model.PackageImpl Maven / Gradle / Ivy

package com.jfrog.bintray.client.impl.model;

import com.jfrog.bintray.client.api.ObjectMapperHelper;
import com.jfrog.bintray.client.api.details.PackageDetails;
import com.jfrog.bintray.client.api.model.Pkg;
import org.codehaus.jackson.map.ObjectMapper;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author Noam Y. Tenne
 */
public class PackageImpl implements Pkg {
    private static final Logger log = LoggerFactory.getLogger(PackageImpl.class);

    private String name;
    private String repository;
    private String owner;
    private String description;
    private List labels;
    private List attributeNames;
    private Integer rating;
    private Integer ratingCount;
    private Integer followersCount;
    private DateTime created;
    private List versions;
    private String latestVersion;
    private DateTime updated;
    private List linkedToRepos;
    private List systemIds;
    private List licenses;
    private String vcsUrl;
    private Map other;

    public PackageImpl(PackageDetails packageDetails) {
        this.name = packageDetails.getName();
        this.repository = packageDetails.getRepo();
        this.owner = packageDetails.getOwner();
        this.description = packageDetails.getDescription();
        this.labels = packageDetails.getLabels();
        this.attributeNames = packageDetails.getAttributeNames();
        this.ratingCount = packageDetails.getRatingCount();
        this.followersCount = packageDetails.getFollowersCount();
        this.created = packageDetails.getCreated();
        this.versions = packageDetails.getVersions();
        this.latestVersion = packageDetails.getLatestVersion();
        this.updated = packageDetails.getUpdated();
        this.linkedToRepos = packageDetails.getLinkedRepos();
        this.systemIds = packageDetails.getSystemIds();
        this.licenses = packageDetails.getLicenses();
        this.vcsUrl = packageDetails.getVcsUrl();
        this.other = packageDetails.other();
    }

    public PackageImpl(String name, String repository, String owner, String description, List labels,
                       List attributeNames, Integer rating, Integer ratingCount, Integer followersCount,
                       DateTime created, List versions, String latestVersion, DateTime updated,
                       List linkedToRepos, List systemIds) {
        this.name = name;
        this.repository = repository;
        this.owner = owner;
        this.description = description;
        this.labels = labels;
        this.attributeNames = attributeNames;
        this.rating = rating;
        this.ratingCount = ratingCount;
        this.followersCount = followersCount;
        this.created = created;
        this.versions = versions;
        this.latestVersion = latestVersion;
        this.updated = updated;
        this.linkedToRepos = linkedToRepos;
        this.systemIds = systemIds;
    }

    public static String getCreateUpdateJson(PackageDetails packageDetails) throws IOException {
        ObjectMapper mapper = ObjectMapperHelper.get();
        String jsonContent;
        try {
            jsonContent = mapper.writeValueAsString(packageDetails);
        } catch (IOException e) {
            log.error("Can't process the json file: " + e.getMessage());
            throw e;
        }
        return jsonContent;
    }

    @Override
    public String name() {
        return name;
    }

    @Override
    public String repository() {
        return repository;
    }

    @Override
    public String owner() {
        return owner;
    }

    @Override
    public String description() {
        return description;
    }

    @Override
    public List labels() {
        return labels;
    }

    @Override
    public List attributeNames() {
        return attributeNames;
    }

    @Override
    public Integer rating() {
        return rating;
    }

    @Override
    public Integer ratingCount() {
        return ratingCount;
    }

    @Override
    public Integer followersCount() {
        return followersCount;
    }

    @Override
    public DateTime created() {
        return created;
    }

    @Override
    public List versions() {
        return versions;
    }

    @Override
    public String latestVersion() {
        return latestVersion;
    }

    @Override
    public DateTime updated() {
        return updated;
    }

    @Override
    public List linkedToRepos() {
        return linkedToRepos;
    }

    @Override
    public List systemIds() {
        return systemIds;
    }

    @Override
    public List licenses() {
        return licenses;
    }

    @Override
    public String vcsUrl() {
        return vcsUrl;
    }

    @Override
    public Object getFieldByKey(String key) {
        return other.get(key);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        PackageImpl aPackage = (PackageImpl) o;

        if (!name.equals(aPackage.name)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        return name.hashCode();
    }

    @Override
    public String toString() {
        return "Package{" +
                "getName='" + name + '\'' +
                ", repository='" + repository + '\'' +
                ", owner='" + owner + '\'' +
                ", description='" + description + '\'' +
                ", labels=" + labels +
                ", attributeNames=" + attributeNames +
                ", rating=" + rating +
                ", ratingCount=" + ratingCount +
                ", followersCount=" + followersCount +
                ", created=" + created +
                ", versions=" + versions +
                ", latestVersion='" + latestVersion + '\'' +
                ", updated=" + updated +
                ", linkedToRepos='" + linkedToRepos + '\'' +
                ", systemIds=" + systemIds +
                '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy