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 :

http://dive4elements.wald.intevation.org