teichmann@5835: package org.dive4elements.river.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: felix@1435: /** CollectionItem associated with this facet/themes artifact. */ felix@1435: protected CollectionItem collectionItem; 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@1331: public void setDescription(String description) { ingo@1331: if (description != null && description.length() > 0) { ingo@1331: addAttr("description", description); ingo@1331: } ingo@1331: } ingo@1331: ingo@1331: ingo@1331: @Override ingo@1340: public int getVisible() { ingo@1340: return getAttrAsInt("visible"); ingo@1340: } ingo@1340: ingo@1340: ingo@1340: @Override ingo@1340: public void setVisible(int visible) { ingo@1340: addAttr("visible", String.valueOf(visible)); ingo@1340: } ingo@1340: ingo@1340: ingo@1340: @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@1340: if (other.getVisible() != getVisible()) { ingo@1340: return false; ingo@1340: } ingo@1340: ingo@804: return true; ingo@804: } felix@1435: felix@1435: felix@1435: /** Get the CollectionItem representing the facets artifact. */ felix@1435: @Override felix@1435: public CollectionItem getCollectionItem() { felix@1435: return collectionItem; felix@1435: } felix@1435: felix@1435: felix@1435: /** Set the CollectionItem representing the facets artifact. */ felix@1435: @Override felix@1435: public void setCollectionItem(CollectionItem ci) { felix@1435: this.collectionItem = ci; felix@1435: } ingo@804: } ingo@804: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :