package jadex.tools.comanalyzer; import java.io.Serializable; import java.util.HashMap; import java.util.Map; /** * Base class for agents and messages. This class provides the common elements * such as the parameter attribute and the setters and getters for the * parameters. */ public abstract class ParameterElement implements Serializable, Comparable { //-------- constants -------- // Names of fields for ElementPanel public static final String CLASS = "class"; public static final String NAME = "name"; // -------- attributes -------- /** The visibility */ protected boolean visible; /** The parameters. */ protected Map parameters; // ------ constructors ------ /** * Default constructor */ public ParameterElement() { parameters = new HashMap(); } //-------- ParameterElement methods -------- /** * Returns the parameter map. * @return The parameter map. */ public Map getParameters() { return parameters; } /** * Returns a parameter value. * @param name The name of the parameter. * @return The value. */ public Object getParameter(String name) { return parameters.get(name); } /** * Replaces the existing parameter map. * @param map The parameter map. */ public void setParameters(Map map) { parameters = map; } /** * Sets a parameter value * @param name The name of the parameter. * @param value The value. */ public void setParameter(String name, Object value) { parameters.put(name, value); } /** * Checks if a given parameter is contained by the parameter map. * @param name The name of the parameter. * @return <code>true</code> if the parameter is contained. */ public boolean hasParameter(String name) { return parameters.containsKey(name); } /** * @return The visiblity. */ public boolean isVisible() { return visible; } /** * Set the visbile state. * @param visible The visible state. */ public void setVisible(boolean visible) { this.visible = visible; } /** * @return The id of the element. */ public abstract String getId(); // -------- Comparable interface -------- /** * Elements are compared by their ids. */ public int compareTo(Object o) { ParameterElement other = (ParameterElement)o; return this.getId().compareTo(other.getId()); } // -------- Object methods -------- /** * Only messages with the same id are equal. */ public boolean equals(final Object obj) { if(this == obj) return true; if(obj == null) return false; if(getClass() != obj.getClass()) return false; final ParameterElement other = (ParameterElement)obj; return getId().equals(other.getId()); } /** * @return The string representation for the element. */ public String toString() { return "ParameterElement(" + "id=" + getId() + ")"; } }