KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > regis > loader > RegistryTag


1 package org.sapia.regis.loader;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.HashMap JavaDoc;
5 import java.util.List JavaDoc;
6
7 import org.sapia.regis.DuplicateNodeException;
8 import org.sapia.regis.RWNode;
9 import org.sapia.util.xml.confix.ConfigurationException;
10 import org.sapia.util.xml.confix.ObjectHandlerIF;
11
12 public class RegistryTag extends BaseTag implements ObjectHandlerIF{
13   
14   private List JavaDoc nodes = new ArrayList JavaDoc();
15   private String JavaDoc defaultOperation = NodeTag.OP_UPDATE;
16   
17   static Class JavaDoc[] ALLOWED = new Class JavaDoc[]{NodeTag.class};
18   
19   public NodeTag createNode(){
20     NodeTag node = new NodeTag();
21     nodes.add(node);
22     return node;
23   }
24   
25   public void setDefaultOperation(String JavaDoc operation){
26     this.defaultOperation = operation;
27   }
28   
29   void create(RWNode root) throws DuplicateNodeException{
30     ConfigContext ctx = new ConfigContext(root, new HashMap JavaDoc());
31     ctx.setDefaultOperation(defaultOperation);
32     for(int i = 0; i < nodes.size(); i++){
33       NodeTag nodeCfg = (NodeTag)nodes.get(i);
34       nodeCfg.create(ctx);
35     }
36   }
37   
38   public void handleObject(String JavaDoc name, Object JavaDoc child) throws ConfigurationException {
39     ConfigUtils.checkAllowed(getTagName(), name, child, ALLOWED);
40     this.nodes.add(child);
41   }
42
43 }
44
Popular Tags