/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * */ package org.biojava.bio.symbol; import java.io.Serializable; /** * An abstract implementation of Location. * * This provides implementations of the binary operators which delegate to * the LocationTools class. * @author Matthew Pocock */ public abstract class AbstractLocation implements Location, Serializable { public Location getDecorator(Class decoratorClass) { if(decoratorClass.isInstance(this)) { return this; } else { return null; } } public Location newInstance(Location loc) { return loc; } public boolean contains(Location l) { return LocationTools.contains(this, l); } public boolean overlaps(Location l) { return LocationTools.overlaps(this, l); } public Location union(Location loc) { return LocationTools.union(this, loc); } public Location intersection(Location loc) { return LocationTools.intersection(this, loc); } public boolean equals(Object o) { if(!(o instanceof Location)) { return false; } else { return LocationTools.areEqual(this, (Location) o); } } public int hashCode() { return getMin() ^ getMax(); } }