1 /**
2 * @(#)ChromosomeProperties.java
3 * Copyright (C) 2008-2011 delhezi.com
4 *
5 * This class is released under the:
6 * GNU Lesser General Public License (LGPL) version 3 or later.
7 * http://www.gnu.org/copyleft/lesser.html
8 */
9 package com.delhezi.ga;
10
11 import com.delhezi.ga.fitnessfunction.FitnessFunction;
12 //import java.util.logging.Logger;
13
14 /**
15 * <code>ChromosomeProperties</code>: Parametry wspólne dla
16 * wszystkich chromosomów w ramach jednej instancji populacji.
17 * @version 1.0 2010-10-13
18 * @author <a href="mailto:wojciech.wolszczak@delhezi.com">
19 * Wojciech Wolszczak</a>
20 */
21 public final class ChromosomeProperties {
22
23 /** Logger object. */
24 //private static final Logger LOGGER =
25 // Logger.getLogger(ChromosomeProperties.class.getName());
26
27 /** Delhezi Error Code. */
28 //private static final String DERC = "1-2-";
29
30 /** Konstruktor. */
31 private ChromosomeProperties() {
32 super();
33 }
34
35 /**
36 * Zwraca instancję obiektu.
37 * @return instancja obiektu.
38 * @since 1.0
39 */
40 public static ChromosomeProperties getInstance() {
41 return new ChromosomeProperties();
42 }
43
44 /**
45 * Ustawia referencję do obiektu implementującego funkcję celu.
46 * @param fitnessFunction Referencja do obiektu implementującego
47 * funkcję celu.
48 * @since 1.0
49 */
50 public void setFitnessFunction(final FitnessFunction fitnessFunction) {
51 this.fitnessFunction = fitnessFunction;
52 }
53
54 /**
55 * Zwraca referenceję do obiektu implementującego funkcję celu;
56 * Uwaga;
57 * Zwracana jest referencja do objektu a nie jego kopia;
58 * Jeśli za pomocą otrzymanej referencji dojdzie do modyfikacji objektu
59 * należy wykonać funkcję changed() klasy Chromosome w celu
60 * ponownego wyznaczenia wskaźnika przystosowania chromosomu.
61 * @return fitnessFunction Referencja do obiektu implementującego
62 * funkcję celu.
63 * @since 1.0
64 */
65 public FitnessFunction getFitnessFunction() {
66 return this.fitnessFunction;
67 }
68
69 /** Referencja do obiektu implementującego funkcję celu. */
70 private FitnessFunction fitnessFunction;
71 }