package ring.effects; /** * <p>Title: RingMUD Codebase</p> * * <p>Description: RingMUD is a java codebase for a MUD with a working similar * to DikuMUD</p> * * <p>Copyright: Copyright (c) 2004</p> * * <p>Company: RaiSoft/Thermetics</p> * * @author Jeff Hair * @version 1.0 */ import java.io.Serializable; import java.util.HashMap; /** * Class used to encapsulate effect creator parameters. Each * EffectCreator stores its own set of parameters. Cannot be * instantiated directly outside the package. * @author projectmoon * */ public final class EffectCreatorParameters implements Serializable { public static final long serialVersionUID = 1; // This class encapsulates EffectCreator parameters. They are stored as a // HashMap, with string names for keys. private HashMap<String, Object> params; protected EffectCreatorParameters() { params = new HashMap<String, Object>(); } protected EffectCreatorParameters(HashMap<String, Object> params) { this.params = params; } protected EffectCreatorParameters(EffectCreatorParameters other) { this.params = new HashMap<String, Object>(other.params); } // begin add methods. // There is a version of add for every pertinent primitive type, Strings, // and one for a general catch-all Object. public void add(String name, int i) { Integer in = new Integer(i); params.put(name, in); } public void add(String name, boolean b) { Boolean bo = new Boolean(b); params.put(name, bo); } public void add(String name, double d) { Double dou = new Double(d); params.put(name, dou); } public void add(String name, String s) { params.put(name, s); } public void add(String name, Object o) { params.put(name, o); } // begin get methods // There is a version of get for eveyr pertinent primitive type, Strings, // and one for a general catch-all Object. public int getInt(String name) { Integer i = (Integer) params.get(name); if (i == null) return 0; return i.intValue(); } public boolean getBoolean(String name) { Boolean bo = (Boolean) params.get(name); if (bo == null) return false; return bo.booleanValue(); } public double getDouble(String name) { Double dou = (Double) params.get(name); if (dou == null) return 0.0; return dou.doubleValue(); } public String getString(String name) { String s = (String) params.get(name); if (s == null) return ""; return s; } public Object getObject(String name) { return params.get(name); } public void removeParameter(String name) { params.remove(name); } public boolean equals(EffectCreatorParameters other) { return params.equals(other.params); } public EffectCreatorParameters uniqueInstance() { return new EffectCreatorParameters(this); } }