Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/shared/model/AttributedTheme.java @ 804:374712890b94
Facets read from Collection's DESCRIBE document keep all their attributes after the Collection's attribute has been modified.
flys-client/trunk@2362 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 19 Jul 2011 16:32:52 +0000 |
parents | |
children | aa2313e0f18d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/AttributedTheme.java Tue Jul 19 16:32:52 2011 +0000 @@ -0,0 +1,157 @@ +package de.intevation.flys.client.shared.model; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + + +/** + * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> + */ +public class AttributedTheme implements Theme { + + protected Map<String, String> attributes; + + + public AttributedTheme() { + this.attributes = new HashMap<String, String>(); + } + + + public Set<String> getKeys() { + return attributes.keySet(); + } + + + public void addAttr(String name, String value) { + if (name != null && value != null) { + attributes.put(name, value); + } + } + + + public String getAttr(String name) { + return attributes.get(name); + } + + + public Integer getAttrAsInt(String name) { + String attr = getAttr(name); + + if (attr != null && attr.length() > 0) { + try { + return Integer.parseInt(attr); + } + catch (NumberFormatException nfe) { + } + } + + return null; + } + + + public boolean getAttrAsBoolean(String name) { + String attr = getAttr(name); + + if (attr != null) { + try { + int num = Integer.valueOf(attr); + return num > 0; + } + catch (NumberFormatException nfe) { + // do nothing + } + } + + return Boolean.valueOf(attr); + } + + + @Override + public int getPosition() { + Integer pos = getAttrAsInt("pos"); + + return pos != null ? pos.intValue() : -1; + } + + + @Override + public void setPosition(int pos) { + addAttr("pos", String.valueOf(pos)); + } + + + @Override + public int getIndex() { + Integer idx = getAttrAsInt("index"); + + return idx != null ? idx.intValue() : -1; + } + + + @Override + public int getActive() { + return getAttrAsInt("active"); + } + + + @Override + public void setActive(int active) { + addAttr("active", String.valueOf(active)); + } + + + @Override + public String getArtifact() { + return getAttr("artifact"); + } + + + @Override + public String getFacet() { + return getAttr("facet"); + } + + + @Override + public String getDescription() { + return getAttr("description"); + } + + + @Override + public boolean equals(Object o) { + if (!(o instanceof AttributedTheme)) { + return false; + } + + AttributedTheme other = (AttributedTheme) o; + + if (other.getPosition() != getPosition()) { + return false; + } + + if (!other.getArtifact().equals(getArtifact())) { + return false; + } + + if (other.getActive() != getActive()) { + return false; + } + + if (!other.getFacet().equals(getFacet())) { + return false; + } + + if (!other.getDescription().equals(getDescription())) { + return false; + } + + if (other.getIndex() != getIndex()) { + return false; + } + + return true; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :