Mercurial > dive4elements > river
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 :