001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021
022package org.biojava.bio.dist;
023
024import org.biojava.bio.symbol.FiniteAlphabet;
025
026/**
027 * A distribution which does not interact with the training framework.
028 * This class behaves in exactly the same manner as SimpleDistribution,
029 * except that it has a no-op <code>registerWithTrainer</code> method.
030 * It is useful for building Markov models where you wish to train only
031 * a subset of the Distributions.
032 *
033 * @author Thomas Down
034 * @since 1.3
035 */
036 
037public class UntrainableDistribution extends SimpleDistribution {
038    /**
039     * Construct a new untrainable distribution over the specified alphabet.
040     *
041     * @param alpha  the finite alphabet to be over
042     */
043    public UntrainableDistribution(FiniteAlphabet alpha) {
044        super(alpha);
045    }
046    
047    public void registerWithTrainer(DistributionTrainerContext dtc) {
048        dtc.registerTrainer(this, IgnoreCountsTrainer.getInstance());
049    }
050}