diff flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java @ 831:9101b4d64666

Datacage: Re-written ToLoad to feature the new filter models. flys-client/trunk@2539 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 23 Aug 2011 16:58:07 +0000
parents 2f65c742803f
children 77469d7f3c93
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java	Tue Aug 23 16:30:22 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java	Tue Aug 23 16:58:07 2011 +0000
@@ -1,133 +1,46 @@
 package de.intevation.flys.client.shared.model;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
-import java.util.Iterator;
 
 import java.io.Serializable;
 
 public class ToLoad implements Serializable
 {
-    public static class Tuple {
-
-        protected String ids;
-        protected String num;
-
-        public Tuple() {
-        }
-
-        public Tuple(String ids, String num) {
-            this.ids = ids;
-            this.num = num;
-        }
+    protected Map<String, Map<String, ArtifactFilter>> artifacts;
 
-        @Override
-        public boolean equals(Object other) {
-            if (!(other instanceof Tuple)) {
-                return false;
-            }
-            Tuple o = (Tuple)other;
-            return ToLoad.equals(o.ids, ids) && ToLoad.equals(o.num, num);
-        }
-
-        public void toString(StringBuilder sb) {
-            sb.append("[ids='").append(ids)
-              .append("', num='").append(num).append("']");
-        }
+    public ToLoad() {
+        artifacts = new HashMap<String, Map<String, ArtifactFilter>>();
     }
 
-    public static class Factory {
-
-        protected String      name;
-        protected List<Tuple> tuples;
-
-        public Factory() {
-            tuples = new ArrayList<Tuple>();
-        }
+    public void add(
+        String artifactName,
+        String factory,
+        String out,
+        String name,
+        String num
+    ) {
+        if (artifactName == null) artifactName = "";
+        if (out          == null) out          = "";
 
-        public Factory(String name) {
-            this();
-            this.name = name;
-        }
+        Map<String, ArtifactFilter> artifact = artifacts.get(artifactName);
 
-        void add(String ids, String num) {
-            Tuple t = new Tuple(ids, num);
-            if (!tuples.contains(t)) {
-                tuples.add(t);
-            }
+        if (artifact == null) {
+            artifact = new HashMap<String, ArtifactFilter>();
+            artifacts.put(artifactName, artifact);
         }
 
-        public void toString(StringBuilder sb) {
-            for (Iterator<Tuple> iter = tuples.iterator(); iter.hasNext();) {
-                Tuple t = iter.next();
-                t.toString(sb);
-                if (iter.hasNext()) {
-                    sb.append(", ");
-                }
-            }
+        ArtifactFilter filter = artifact.get(factory);
+        if (filter == null) {
+            filter = new ArtifactFilter(factory);
+            artifact.put(factory, filter);
         }
-    }
-
-    protected String artifactId;
-
-    protected Map<String, Factory> factories;
-
-    public ToLoad() {
-        factories = new HashMap<String, Factory>();
-    }
-
-    public ToLoad(String artifactId) {
-        this.artifactId = artifactId;
-    }
-
-    public String getArtifactId() {
-        return artifactId;
-    }
-
-    public void setArtifactId(String artifactId) {
-        this.artifactId = artifactId;
-    }
 
-    public void add(String factoryName, String ids, String num) {
-        Factory factory = factories.get(factoryName);
-        if (factory == null) {
-            factory = new Factory(factoryName);
-        }
-        factory.add(ids, num);
-    }
-
-    protected static final boolean equals(String a, String b) {
-        if ((a == null && b != null) || (a != null && b == null)) {
-            return false;
-        }
-        return (a == null && b == null) || a.equals(b);
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder("[")
-          .append("artifactId='").append(artifactId).append("', factories=[");
-
-        for (Iterator<Map.Entry<String, Factory>> 
-            iter = factories.entrySet().iterator(); iter.hasNext();) {
-            Map.Entry<String, Factory> entry = iter.next();
-            String  name    = entry.getKey();
-            Factory factory = entry.getValue();
-
-            sb.append("[name='").append(name).append("', factory=[");
-            factory.toString(sb);
-            sb.append(']');
-            if (iter.hasNext()) {
-                sb.append(", ");
-            }
-        }
-        return sb.append("]]").toString();
+        filter.add(out, name, num);
     }
 
     public boolean isEmpty() {
-        return factories.isEmpty();
+        return artifacts.isEmpty();
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org