From 157bea2c0e8590967e565f5e333847dc4332b0b8 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 14 Apr 2009 03:58:01 +0000 Subject: [PATCH] git-svn-id: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core@3209 ae02f08e-27ec-0310-ae8c-8ba02fe2eafd --- src/main/java/org/xerial/util/impl/ChainBase.java | 37 ++++++++++++++++++----- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/xerial/util/impl/ChainBase.java b/src/main/java/org/xerial/util/impl/ChainBase.java index 3d0331a..17cbec0 100644 --- a/src/main/java/org/xerial/util/impl/ChainBase.java +++ b/src/main/java/org/xerial/util/impl/ChainBase.java @@ -46,11 +46,24 @@ public abstract class ChainBase protected abstract ValueChain newValueChain(); - public ChainBase() + protected ChainBase() { map = newMap(); } + protected Map getMap() + { + return map; + } + + /** + * Returns true when ValueChain for the specified key exists, otherwise + * returns false. + * + * @param key + * key value of the chain + * @return + */ public boolean containsKey(Key key) { return map.containsKey(key); @@ -58,12 +71,7 @@ public abstract class ChainBase public ValueChain put(Key key, Value value) { - ValueChain target = map.get(key); - if (target == null) - { - target = newValueChain(); - map.put(key, target); - } + ValueChain target = this.get(key); target.add(value); return target; @@ -79,9 +87,22 @@ public abstract class ChainBase return map.size(); } + /** + * Returns the chain of the specified key + * + * @param key + * key value of the chain + * @return chain corresponding to the specified key + */ public ValueChain get(Key key) { - return map.get(key); + ValueChain target = map.get(key); + if (target == null) + { + target = newValueChain(); + map.put(key, target); + } + return target; } public Set keySet() -- 2.11.0