/* * Copyright [1999-2015] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute * Copyright [2016-2017] EMBL-European Bioinformatics Institute * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Unit * * @author dstaines * @author $Author$ * @version $Revision$ */ package org.ensembl.healthcheck.util; import org.apache.commons.lang.NullArgumentException; /** * @author dstaines * * @param <A> */ public class Unit<A> { public final A a; public Unit(A a) { if (a == null) { throw new NullArgumentException(this.getClass().getSimpleName() + " cannot be instantiated with null arguments"); } this.a = a; } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { return (a == null) ? 0 : a.hashCode(); } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @SuppressWarnings("unchecked") @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Unit<A> other = (Unit<A>) obj; if (a == null) { if (other.a != null) return false; } else if (!a.equals(other.a)) return false; return true; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "a=[" + String.valueOf(a) + "]"; } }