ModelPackageVariant.java

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

  4. package org.jmad.modelpack.domain;

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

  7. import static java.util.Objects.requireNonNull;

  8. public class ModelPackageVariant {

  9.     protected final ModelPackage modelPackage;
  10.     protected final Variant variant;
  11.     protected final URI uri;

  12.     public ModelPackageVariant(URI uri, ModelPackage modelPackage, Variant variant) {
  13.         this.uri = requireNonNull(uri, "URI must not be null");
  14.         this.modelPackage = requireNonNull(modelPackage, "modelPackage must not be null");
  15.         this.variant = requireNonNull(variant, "variant must not be null");
  16.     }

  17.     public ModelPackage modelPackage() {
  18.         return this.modelPackage;
  19.     }

  20.     public Variant variant() {
  21.         return this.variant;
  22.     }

  23.     public String fullName() {
  24.         return modelPackage.name() + "-" + variant.fullName();
  25.     }

  26.     public URI uri() {
  27.         return uri;
  28.     }

  29.     @Override
  30.     public boolean equals(Object o) {
  31.         if (this == o) return true;
  32.         if (o == null || getClass() != o.getClass()) return false;
  33.         ModelPackageVariant that = (ModelPackageVariant) o;
  34.         return Objects.equals(modelPackage, that.modelPackage) &&
  35.                 Objects.equals(variant, that.variant) &&
  36.                 Objects.equals(uri, that.uri);
  37.     }

  38.     @Override
  39.     public int hashCode() {
  40.         return Objects.hash(modelPackage, variant, uri);
  41.     }

  42.     @Override
  43.     public String toString() {
  44.         return "ModelPackageVariant{" +
  45.                 "modelPackage=" + modelPackage +
  46.                 ", variant=" + variant +
  47.                 ", uri=" + uri +
  48.                 '}';
  49.     }
  50. }