1 package net.sourceforge.rpgee.dice; 2 3 import net.sourceforge.rpgee.dice.exceptions.InvalidParameterException; 4 5 public abstract class AbstractRandomValue implements RandomValue { 6 private int sides = 0; 7 private int value = 0; 8 private RandomValueResultMapper mapper; 9 private RandomValue original; 10 11 public AbstractRandomValue(Integer _sides, RandomValueResultMapper _mapper) { 12 this(_sides, _mapper, null); 13 } 14 15 public AbstractRandomValue(Integer _sides, RandomValueResultMapper _mapper, RandomValue _original) { 16 mapper = _mapper; 17 sides = _sides; 18 if (_original == null) 19 _original = this; 20 original = _original; 21 } 22 23 24 public int getValue() { 25 return value; 26 } 27 28 public String getValueAsString() { 29 if (mapper == null) 30 return value + ""; 31 try { 32 return mapper.getMappedValue(value); 33 } catch (InvalidParameterException e) { 34 return "[ERROR]"; 35 } 36 } 37 38 public int getSides() { 39 return sides; 40 } 41 42 public void setValue(int _value) throws InvalidParameterException { 43 this.value = _value; 44 } 45 46 public String getHTMLDescription() { 47 return CODE_HEADER + getDescription() + CODE_FOOTER; 48 } 49 50 public RandomValueResultMapper getMapper() { 51 return this.mapper; 52 } 53 54 public RandomValue getOriginalValue() { 55 return original; 56 } 57 58 public boolean isOriginalValue() { 59 return getOriginalValue() == this; 60 } 61 62 }