//=====================================================================
// File: NoSize.java
// Class: NoSize
// Package: AFLPcore
//
// Author: James J. Benham
// Date: August 10, 1998
// Contact: james_benham@hmc.edu
//
// Genographer v1.0 - Computer assisted scoring of gels.
// Copyright (C) 1998 Montana State University
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; version 2
// of the License.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// The GNU General Public License is distributed in the file GPL
//=====================================================================
package AFLPcore;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import AFLPcore.Option;
/**
* This class will not provide any sizing. However, it can be useful if one
* wants to show how different lanes ran. It works on the assumption,
* which is obviously false, that size = scan#. Therefore, this sizing
* function provides a way to get the scan numbers easily and without
* using different calls at other points in a program. Since it simply
* assumes that they are equal, it does not need to be initialized, nor
* does it have any options.
*
* @see SizeFunction
* @see LocalSouthern
*
* @author James J. Benham
* @version 1.0.0
* @date August 10, 1998
*/
public class NoSize extends SizeFunction
{
/**
* Create a new NoSize object, which will just use scan numbers as the
* size.
*/
public NoSize()
{
name = "Don't Size";
descript = "Simply uses the scan numbers so no sizing is performed.";
helpFile = "nosize.html";
}
/**
* Gives the name describing this sizing function.
*
* @return the name
*/
public String getName()
{
return name;
}
/**
* Gives a brief description of this sizing function.
*
* @return a one sentence explination.
*/
public String getDescription()
{
return descript;
}
/**
* Gives the help file that describes the function in more detail
*
* @return a plaintext of html help file.
*/
public String getHelpFile()
{
return helpFile;
}
/**
* There are no options for this sizing function.
*
* @return null
*/
public Option[] getOptions()
{
return null;
}
/**
* Since there are no options, this method doesn't do much. In fact,
* it does absolutely nothing, but it is required by the abstract class
* Operation
, which this class is a child of.
*/
public void setOptions(Option[] opts)
{
}
/**
* Since this class does not really perform any sizing and instead just
* assumes that size=scan#, there is no need to initialize it with
* known points. Therefore, this method does not do anything to this class.
*
* @param standardPeaks a list of peaks
*/
public void init(DataList standardPeaks)
{
}
/**
* Gives the scan number back as the size. This has the affect of not
* sizing the lane.
*
* @param scan the scan number to determine the size for.
*
* @return the scan number scan
*/
public final double getSize(int scan)
{
return (double)scan;
}
/**
* Gives the input value back as the scan number since the size is the
* scan number in this case.
*
* @param size the size in bp, which is also the scan number.
*
* @return the scan number, which is also size
*/
public final int getScan(double size)
{
return (int)size;
}
/**
* This class simply interprests the size number as the scan number,
* so the maximum scan number is not really needed.
*
* @param max the maximum scan number, ignored
*/
public void setMaxScan(int max)
{
}
/**
* Reads in the properties of this class from the specified input stream.
* The stream data should have been created by write
. This
* will retrieve this classes state from the input stream. All of the
* current data in this class will be replaced.
*
* @param in the input stream with the data for the class.
*
* @exception IOException occurs when a problem is encountered when
* reading from the stream.
*/
public void read(DataInputStream in) throws IOException
{
// Nothing to restore really.
}
/**
* Writes all of the information this class needs to store in order
* to be recreated. This will be used for things like storing the
* class in a file. Therefore, the write should output enough information
* so that read
can recreate the essential properties of this
* class.
*
* @param out the destination to write the data to.
*
* @exception IOException occurs when a problem is encountered when
* writing to the stream.
*/
public void write(DataOutputStream out) throws IOException
{
// since we don't store anything in this class, there is nothing to
// write out
}
}