ChromosomeProperties.java

/**
 * @(#)ChromosomeProperties.java
 * Copyright (C) 2008-2011 delhezi.com
 *
 * This class is released under the:
 * GNU Lesser General Public License (LGPL) version 3 or later.
 * http://www.gnu.org/copyleft/lesser.html
 */
package com.delhezi.ga;

import com.delhezi.ga.fitnessfunction.FitnessFunction;
//import java.util.logging.Logger;

/**
 * <code>ChromosomeProperties</code>: Parametry wspólne dla
 * wszystkich chromosomów w ramach jednej instancji populacji.
 * @version 1.0 2010-10-13
 * @author <a href="mailto:wojciech.wolszczak@delhezi.com">
 * Wojciech Wolszczak</a>
 */
public final class ChromosomeProperties {

    /** Logger object. */
    //private static final Logger LOGGER =
    //    Logger.getLogger(ChromosomeProperties.class.getName());

    /** Delhezi Error Code. */
    //private static final String DERC = "1-2-";

    /** Konstruktor. */
    private ChromosomeProperties() {
        super();
    }

    /**
     * Zwraca instancję obiektu.
     * @return instancja obiektu.
     * @since 1.0
     */
    public static ChromosomeProperties getInstance() {
        return new ChromosomeProperties();
    }

    /**
     * Ustawia referencję do obiektu implementującego funkcję celu.
     * @param fitnessFunction Referencja do obiektu implementującego
     * funkcję celu.
     * @since 1.0
     */
    public void setFitnessFunction(final FitnessFunction fitnessFunction) {
        this.fitnessFunction = fitnessFunction;
        }

    /**
     * Zwraca referenceję do obiektu implementującego funkcję celu;
     * Uwaga;
     * Zwracana jest referencja do objektu a nie jego kopia;
     * Jeśli za pomocą otrzymanej referencji dojdzie do modyfikacji objektu
     * należy wykonać funkcję changed() klasy Chromosome w celu
     * ponownego wyznaczenia wskaźnika przystosowania chromosomu.
     * @return fitnessFunction Referencja do obiektu implementującego
     * funkcję celu.
     * @since 1.0
     */
    public FitnessFunction getFitnessFunction() {
        return this.fitnessFunction;
        }

    /** Referencja do obiektu implementującego funkcję celu. */
    private FitnessFunction fitnessFunction;
}