001 package model;
002
003 import java.util.Random;
004
005 /**
006 * Singleton random number generator.
007 *
008 * @author Mathias G. Ricken
009 */
010 public final class RandNumGenerator extends Random {
011 /**
012 * Singleton instance.
013 */
014 private static RandNumGenerator _instance = null;
015
016 /**
017 * Seed value.
018 */
019 private int _seed = 0;
020
021 /**
022 * Return singleton instance.
023 *
024 * @return singleton instance
025 */
026 public static synchronized RandNumGenerator instance() {
027 if (null == _instance) {
028 _instance = new RandNumGenerator();
029 }
030 return _instance;
031 }
032
033 /**
034 * Overridden set seed method.
035 *
036 * @param seed new seed
037 */
038 public void setSeed(int seed) {
039 super.setSeed(seed);
040 _seed = seed;
041 }
042
043 /**
044 * Return seed.
045 *
046 * @return seed
047 */
048 public int getSeed() {
049 return _seed;
050 }
051
052 /**
053 * Private singleton constructor.
054 */
055 private RandNumGenerator() {
056 }
057 }
058