/* */ package org.jboss.kernel.plugins.deployment.xml;
/* */
/* */ import javax.xml.namespace.NamespaceContext;
/* */ import javax.xml.namespace.QName;
/* */ import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
/* */ import org.jboss.beans.metadata.spi.ValueMetaData;
/* */ import org.jboss.dependency.spi.ControllerState;
/* */ import org.jboss.xb.binding.sunday.unmarshalling.DefaultElementHandler;
/* */ import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
/* */ import org.xml.sax.Attributes;
/* */
/* */ public class FactoryHandler extends DefaultElementHandler
/* */ {
/* 43 */ public static final FactoryHandler HANDLER = new FactoryHandler();
/* */
/* */ public Object startElement(Object parent, QName name, ElementBinding element)
/* */ {
/* 47 */ return new Holder(new AbstractDependencyValueMetaData());
/* */ }
/* */
/* */ public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/* */ {
/* 52 */ Holder value = (Holder)o;
/* 53 */ AbstractDependencyValueMetaData dependency = (AbstractDependencyValueMetaData)value.getValue();
/* 54 */ for (int i = 0; i < attrs.getLength(); i++)
/* */ {
/* 56 */ String localName = attrs.getLocalName(i);
/* 57 */ if ("bean".equals(localName))
/* 58 */ dependency.setValue(attrs.getValue(i));
/* 59 */ else if ("property".equals(localName))
/* 60 */ dependency.setProperty(attrs.getValue(i));
/* 61 */ else if ("state".equals(localName))
/* 62 */ dependency.setDependentState(new ControllerState(attrs.getValue(i)));
/* 63 */ else if ("whenRequired".equals(localName))
/* 64 */ dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
/* */ }
/* */ }
/* */
/* */ public Object endElement(Object o, QName qName, ElementBinding element)
/* */ {
/* 70 */ Holder holder = (Holder)o;
/* 71 */ ValueMetaData value = (ValueMetaData)holder.getValue();
/* */
/* 73 */ if ((value == null) || (value.getUnderlyingValue() == null))
/* 74 */ throw new IllegalArgumentException("Factory should have a bean attribute or nested element.");
/* 75 */ return value;
/* */ }
/* */ }
/* Location: /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name: org.jboss.kernel.plugins.deployment.xml.FactoryHandler
* JD-Core Version: 0.6.0
*/