ingo@804: package de.intevation.flys.client.shared.model; ingo@804: ingo@804: import java.util.HashMap; ingo@804: import java.util.Map; ingo@804: import java.util.Set; ingo@804: ingo@804: ingo@804: /** ingo@804: * @author Ingo Weinzierl ingo@804: */ ingo@804: public class AttributedTheme implements Theme { ingo@804: ingo@804: protected Map attributes; ingo@804: ingo@804: ingo@804: public AttributedTheme() { ingo@804: this.attributes = new HashMap(); ingo@804: } ingo@804: ingo@804: ingo@804: public Set getKeys() { ingo@804: return attributes.keySet(); ingo@804: } ingo@804: ingo@804: ingo@804: public void addAttr(String name, String value) { ingo@804: if (name != null && value != null) { ingo@804: attributes.put(name, value); ingo@804: } ingo@804: } ingo@804: ingo@804: ingo@804: public String getAttr(String name) { ingo@804: return attributes.get(name); ingo@804: } ingo@804: ingo@804: ingo@804: public Integer getAttrAsInt(String name) { ingo@804: String attr = getAttr(name); ingo@804: ingo@804: if (attr != null && attr.length() > 0) { ingo@804: try { ingo@804: return Integer.parseInt(attr); ingo@804: } ingo@804: catch (NumberFormatException nfe) { ingo@804: } ingo@804: } ingo@804: ingo@804: return null; ingo@804: } ingo@804: ingo@804: ingo@804: public boolean getAttrAsBoolean(String name) { ingo@804: String attr = getAttr(name); ingo@804: ingo@804: if (attr != null) { ingo@804: try { ingo@804: int num = Integer.valueOf(attr); ingo@804: return num > 0; ingo@804: } ingo@804: catch (NumberFormatException nfe) { ingo@804: // do nothing ingo@804: } ingo@804: } ingo@804: ingo@804: return Boolean.valueOf(attr); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public int getPosition() { ingo@804: Integer pos = getAttrAsInt("pos"); ingo@804: ingo@804: return pos != null ? pos.intValue() : -1; ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public void setPosition(int pos) { ingo@804: addAttr("pos", String.valueOf(pos)); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public int getIndex() { ingo@804: Integer idx = getAttrAsInt("index"); ingo@804: ingo@804: return idx != null ? idx.intValue() : -1; ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public int getActive() { ingo@804: return getAttrAsInt("active"); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public void setActive(int active) { ingo@804: addAttr("active", String.valueOf(active)); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public String getArtifact() { ingo@804: return getAttr("artifact"); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public String getFacet() { ingo@804: return getAttr("facet"); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public String getDescription() { ingo@804: return getAttr("description"); ingo@804: } ingo@804: ingo@804: ingo@804: @Override ingo@804: public boolean equals(Object o) { ingo@804: if (!(o instanceof AttributedTheme)) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: AttributedTheme other = (AttributedTheme) o; ingo@804: ingo@804: if (other.getPosition() != getPosition()) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: if (!other.getArtifact().equals(getArtifact())) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: if (other.getActive() != getActive()) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: if (!other.getFacet().equals(getFacet())) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: if (!other.getDescription().equals(getDescription())) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: if (other.getIndex() != getIndex()) { ingo@804: return false; ingo@804: } ingo@804: ingo@804: return true; ingo@804: } ingo@804: } ingo@804: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :