diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java @ 415:7c018f466d6d

Datacage: Added river parameter to meta data services. flys-artifacts/trunk@1879 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 10 May 2011 12:43:12 +0000
parents fc3cf0ef777e
children e91996b46e3c
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java	Tue May 10 12:19:17 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java	Tue May 10 12:43:12 2011 +0000
@@ -13,6 +13,13 @@
         frames = new ArrayList<Map<String, Object>>();
     }
 
+    public StackFrames(Map<String, Object> initialFrame) {
+        this();
+        if (initialFrame != null) {
+            frames.add(new HashMap<String, Object>(initialFrame));
+        }
+    }
+
     public void enter() {
         frames.add(new HashMap<String, Object>());
     }
@@ -21,6 +28,13 @@
         frames.remove(frames.size()-1);
     }
 
+    public void put(String key, Object value) {
+        int N = frames.size();
+        if (N > 0) {
+            frames.get(N-1).put(key, value);
+        }
+    }
+
     public void put(String [] keys, Object [] values) {
         Map<String, Object> top = frames.get(frames.size()-1);
         for (int i = 0; i < keys.length; ++i) {
@@ -28,6 +42,15 @@
         }
     }
 
+    public boolean containsKey(String key) {
+        for (int i = frames.size()-1; i >= 0; --i) {
+            if (frames.get(i).containsKey(key)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     public Object get(String key) {
         return get(key, null);
     }

http://dive4elements.wald.intevation.org