1 10 11 12 package org.nanocontainer.script.groovy.buildernodes; 13 14 import java.util.Map ; 15 import org.nanocontainer.NanoContainer; 16 import org.nanocontainer.script.NanoContainerMarkupException; 17 import org.picocontainer.PicoContainer; 18 19 45 public class AppendContainerNode extends AbstractBuilderNode { 46 49 public static final String NODE_NAME = "append"; 50 51 52 56 public static final String CONTAINER = "container"; 57 58 61 public AppendContainerNode() { 62 super(NODE_NAME); 63 } 64 65 76 public Object createNewNode(final Object current, final Map attributes) throws NanoContainerMarkupException, ClassCastException { 77 if (!isAttribute(attributes, CONTAINER)) { 78 throw new NanoContainerMarkupException(NODE_NAME + " must have a container attribute"); 79 } 80 81 82 Object attributeValue = attributes.get(CONTAINER); 83 if (! (attributeValue instanceof NanoContainer) && !(attributeValue instanceof PicoContainer) ) { 84 throw new ClassCastException (attributeValue.toString() + " must be a derivative of nanocontainer. Got: " 85 + attributeValue.getClass().getName() + " instead."); 86 } 87 return attributeValue; 88 } 89 90 91 } 92 | Popular Tags |