ModelPackage.java

/**
 * Copyright (c) 2018 European Organisation for Nuclear Research (CERN), All Rights Reserved.
 */

package org.jmad.modelpack.domain;

import static java.util.Objects.requireNonNull;

import java.net.URI;
import java.util.Objects;

public class ModelPackage {

    protected final String name;
    protected final JMadModelPackageRepository repository;
    protected final URI uri;

    public ModelPackage(String name, JMadModelPackageRepository repository, URI uri) {
        this.name = requireNonNull(name, "name must not be null");
        this.repository = requireNonNull(repository, "repository must not be null");
        this.uri = requireNonNull(uri, "URI must not be null");
    }

    public String name() {
        return name;
    }

    public URI uri() {
        return uri;
    }

    public JMadModelPackageRepository repository() {
        return repository;
    }

    @Override
    public String toString() {
        return "ModelPackage [uri=" + uri + ", name=" + name + ", repository=" + repository + "]";
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ModelPackage that = (ModelPackage) o;
        return Objects.equals(uri, that.uri);
    }

    @Override
    public int hashCode() {
        return Objects.hash(uri);
    }
}