Mercurial > dive4elements > river
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); }