KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > regis > util > CompositeHashMap


1 package org.sapia.regis.util;
2
3 import java.io.Serializable JavaDoc;
4 import java.util.ArrayList JavaDoc;
5 import java.util.HashMap JavaDoc;
6 import java.util.List JavaDoc;
7 import java.util.Map JavaDoc;
8
9 public class CompositeHashMap extends HashMap JavaDoc
10   implements Serializable JavaDoc{
11   
12   static final long serialVersionUID = 1L;
13   
14   private List JavaDoc _children = new ArrayList JavaDoc();
15  
16   public CompositeHashMap(){}
17   
18   public CompositeHashMap addChild(Map JavaDoc child){
19     _children.add(0, child);
20     return this;
21   }
22   
23   public CompositeHashMap addAncestor(Map JavaDoc ancestor){
24     _children.add(ancestor);
25     return this;
26   }
27   
28   public Object JavaDoc get(Object JavaDoc name){
29     Object JavaDoc value = super.get(name);
30     if(value != null){
31       return value;
32     }
33     for(int i = 0; i < _children.size(); i++){
34       Map JavaDoc child = (Map JavaDoc)_children.get(i);
35       value = child.get(name);
36       if(value != null) return value;
37     }
38     return super.get(name);
39   }
40   
41 }
42
Popular Tags