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:
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 :