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

com.hfg.bio.seq.genomic.assembly.GenomicPairedAssemblyComparison Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.bio.seq.genomic.assembly;

import java.io.Serializable;
import java.util.Set;

import com.hfg.util.collection.OrderedSet;

//------------------------------------------------------------------------------
/**
 * Enumeration of genomic paired assembly comparison types.
 * 
* @author J. Alex Taylor, hairyfatguy.com *
*/ //------------------------------------------------------------------------------ // com.hfg XML/HTML Coding Library // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com // [email protected] //------------------------------------------------------------------------------ public final class GenomicPairedAssemblyComparison implements Serializable { private final String mName; private final int mIndex; private static final Set sValues = new OrderedSet<>(3); public static final GenomicPairedAssemblyComparison IDENTICAL = new GenomicPairedAssemblyComparison("identical"); public static final GenomicPairedAssemblyComparison DIFFERENT = new GenomicPairedAssemblyComparison("different"); public static final GenomicPairedAssemblyComparison NA = new GenomicPairedAssemblyComparison("na"); //########################################################################### // CONSTRUCTORS //########################################################################### //-------------------------------------------------------------------------- private GenomicPairedAssemblyComparison(String inName) { mName = inName; mIndex = sValues.size(); sValues.add(this); } //########################################################################### // PUBLIC METHODS //########################################################################### //-------------------------------------------------------------------------- @Override public final String toString() { return mName; } //-------------------------------------------------------------------------- public static GenomicPairedAssemblyComparison valueOf(String inValue) { GenomicPairedAssemblyComparison outValue = null; for (GenomicPairedAssemblyComparison value : sValues) { if (value.toString().equalsIgnoreCase(inValue)) { outValue = value; break; } } return outValue; } //-------------------------------------------------------------------------- public static GenomicPairedAssemblyComparison[] values() { return sValues.toArray(new GenomicPairedAssemblyComparison[] {}); } //-------------------------------------------------------------------------- public final String name() { return mName; } //-------------------------------------------------------------------------- @Override public final int hashCode() { return mIndex; } //-------------------------------------------------------------------------- @Override public final boolean equals(Object inObj) { return (inObj instanceof GenomicPairedAssemblyComparison && mIndex == ((GenomicPairedAssemblyComparison) inObj).mIndex); } //-------------------------------------------------------------------------- /** * This method is called after de-serialization, allowing the object * to nominate a replacement object to be used in the output * graph instead of this object. We don't want multiple objects of each type * to exist in a target VM, so instances replace themselves with * local objects. */ private Object readResolve() { GenomicPairedAssemblyComparison outValue = null; for (GenomicPairedAssemblyComparison value : sValues) { if (mIndex == value.mIndex) { outValue = value; break; } } return outValue; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy