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