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

coursierapi.IvyRepository Maven / Gradle / Ivy

package coursierapi;

import java.io.Serializable;
import java.util.Objects;

public final class IvyRepository implements Repository, Serializable {

    private final String pattern;
    private String metadataPattern;
    private Credentials credentials;
    private boolean dropInfoAttributes;


    private IvyRepository(String pattern, String metadataPattern) {
        this.pattern = pattern;
        this.metadataPattern = metadataPattern;
        this.credentials = null;
        this.dropInfoAttributes = false;
    }


    public static IvyRepository of(String pattern, String metadataPattern) {
        return new IvyRepository(pattern, metadataPattern);
    }

    public static IvyRepository of(String pattern) {
        return new IvyRepository(pattern, null);
    }


    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj instanceof IvyRepository) {
            IvyRepository other = (IvyRepository) obj;
            return this.pattern.equals(other.pattern) &&
                    Objects.equals(this.metadataPattern, other.metadataPattern) &&
                    Objects.equals(this.credentials, other.credentials) &&
                    this.dropInfoAttributes == other.dropInfoAttributes;
        }
        return false;
    }

    @Override
    public int hashCode() {
        return 37 * (37 * (37 * (17 + pattern.hashCode()) + Objects.hashCode(metadataPattern)) + Objects.hashCode(credentials)) + Boolean.hashCode(dropInfoAttributes);
    }

    @Override
    public String toString() {
        String credentialsString = "";
        if (credentials != null)
            credentialsString = ", " + credentials;
        String mdPatternString = "";
        if (metadataPattern != null)
            mdPatternString = ", " + metadataPattern;
        return "IvyRepository(" + pattern + mdPatternString + credentialsString + ", dropInfoAttributes = " + dropInfoAttributes + ")";
    }


    public String getPattern() {
        return pattern;
    }

    public String getMetadataPattern() {
        return metadataPattern;
    }

    public Credentials getCredentials() {
        return credentials;
    }

    public boolean getDropInfoAttributes() {
        return dropInfoAttributes;
    }

    public IvyRepository withMetadataPattern(String metadataPattern) {
        this.metadataPattern = metadataPattern;
        return this;
    }

    public IvyRepository withCredentials(Credentials credentials) {
        this.credentials = credentials;
        return this;
    }

    public IvyRepository withDropInfoAttributes(boolean dropInfoAttributes) {
        this.dropInfoAttributes = dropInfoAttributes;
        return this;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy