org.nanocontainer.script.xml
Class XStreamContainerBuilder

java.lang.Object
  extended by org.nanocontainer.integrationkit.LifecycleContainerBuilder
      extended by org.nanocontainer.script.ScriptedContainerBuilder
          extended by org.nanocontainer.script.xml.XStreamContainerBuilder
All Implemented Interfaces:
ContainerBuilder, ContainerPopulator

public class XStreamContainerBuilder
extends ScriptedContainerBuilder
implements ContainerPopulator

This class builds up a hierarchy of PicoContainers from an XML configuration file.

Version:
$Revision: 2164 $
Author:
Konstantin Pribluda

Constructor Summary
XStreamContainerBuilder(java.io.Reader script)
          construct with just reader, use context classloader
XStreamContainerBuilder(java.io.Reader script, java.lang.ClassLoader classLoader)
          construct with given script and specified classloader
XStreamContainerBuilder(java.io.Reader script, java.lang.ClassLoader classLoader, com.thoughtworks.xstream.io.HierarchicalStreamDriver driver)
           
XStreamContainerBuilder(java.net.URL script, java.lang.ClassLoader classLoader, com.thoughtworks.xstream.io.HierarchicalStreamDriver driver)
           
 
Method Summary
protected  org.picocontainer.PicoContainer createContainerFromScript(org.picocontainer.PicoContainer parentContainer, java.lang.Object assemblyScope)
           
protected  void insertAdapter(org.picocontainer.MutablePicoContainer container, org.w3c.dom.Element rootElement)
          process adapter node
protected  void insertImplementation(org.picocontainer.MutablePicoContainer container, org.w3c.dom.Element rootElement)
          process implementation node
protected  void insertInstance(org.picocontainer.MutablePicoContainer container, org.w3c.dom.Element rootElement)
          process instance node.
protected  java.lang.Object parseElementChild(org.w3c.dom.Element rootElement)
          parse element child with xstream and provide object
 void populateContainer(org.picocontainer.MutablePicoContainer container)
          Populate a container
 
Methods inherited from class org.nanocontainer.script.ScriptedContainerBuilder
composeContainer, createContainer, getClassLoader, getScriptInputStream, getScriptReader
 
Methods inherited from class org.nanocontainer.integrationkit.LifecycleContainerBuilder
autoStart, buildContainer, killContainer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XStreamContainerBuilder

public XStreamContainerBuilder(java.io.Reader script)
construct with just reader, use context classloader


XStreamContainerBuilder

public XStreamContainerBuilder(java.io.Reader script,
                               java.lang.ClassLoader classLoader)
construct with given script and specified classloader


XStreamContainerBuilder

public XStreamContainerBuilder(java.io.Reader script,
                               java.lang.ClassLoader classLoader,
                               com.thoughtworks.xstream.io.HierarchicalStreamDriver driver)

XStreamContainerBuilder

public XStreamContainerBuilder(java.net.URL script,
                               java.lang.ClassLoader classLoader,
                               com.thoughtworks.xstream.io.HierarchicalStreamDriver driver)
Method Detail

populateContainer

public void populateContainer(org.picocontainer.MutablePicoContainer container)
Description copied from interface: ContainerPopulator
Populate a container

Specified by:
populateContainer in interface ContainerPopulator
Parameters:
container - the MutablePicoContainer to populate

insertAdapter

protected void insertAdapter(org.picocontainer.MutablePicoContainer container,
                             org.w3c.dom.Element rootElement)
process adapter node


insertImplementation

protected void insertImplementation(org.picocontainer.MutablePicoContainer container,
                                    org.w3c.dom.Element rootElement)
                             throws java.lang.ClassNotFoundException
process implementation node

Throws:
java.lang.ClassNotFoundException

insertInstance

protected void insertInstance(org.picocontainer.MutablePicoContainer container,
                              org.w3c.dom.Element rootElement)
process instance node. we get key from atributes ( if any ) and leave content to xstream. we allow only one child node inside. ( first one wins )


parseElementChild

protected java.lang.Object parseElementChild(org.w3c.dom.Element rootElement)
parse element child with xstream and provide object


createContainerFromScript

protected org.picocontainer.PicoContainer createContainerFromScript(org.picocontainer.PicoContainer parentContainer,
                                                                    java.lang.Object assemblyScope)
Specified by:
createContainerFromScript in class ScriptedContainerBuilder


Copyright © 2003-2009 Codehaus. All Rights Reserved.