01: package org.nanocontainer.script.groovy.buildernodes;
02:
03: import java.util.Map;
04:
05: import org.nanocontainer.NanoContainer;
06: import org.nanocontainer.script.NanoContainerMarkupException;
07:
08: public class DecoratingPicoContainerNode extends AbstractBuilderNode {
09:
10: public static final String NODE_NAME = "decoratingPicoContainer";
11:
12: public DecoratingPicoContainerNode() {
13: super (NODE_NAME);
14: }
15:
16: public Object createNewNode(Object current, Map attributes) {
17:
18: if (!(current instanceof NanoContainer)) {
19: throw new NanoContainerMarkupException(
20: "Don't know how to create a 'decoratingPicoContainer' child of a '"
21: + current.getClass() + "' parent");
22: }
23:
24: Class clazz = (Class) attributes.remove("class");
25: NanoContainer container = (NanoContainer) current;
26:
27: return container.addDecoratingPicoContainer(clazz);
28: }
29:
30: }
|