KickJava   Java API By Example, From Geeks To Geeks.

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


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