Package org.jboss.xb.binding.sunday.unmarshalling

Examples of org.jboss.xb.binding.sunday.unmarshalling.CharactersHandler


      WildcardBinding wildcard = type.getWildcard();
      ElementBinding e = schema.getElement(new QName("http://org.jboss.ws/jbws434/types", "e"));

      // adjust binding
      ParticleHandler unresolvedElementHandler;
      CharactersHandler unresolvedCharactersHandler;
      if(genericElement)
      {
         unresolvedElementHandler = new GenericElementHandler();
         unresolvedCharactersHandler = new GenericCharactersHandler();
      }
View Full Code Here


            }
         }

      }
      );
      entry4Type.setSimpleType(new CharactersHandler()
      {
         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            Object[] arr = (Object[])owner;
            arr[1] = value;
View Full Code Here

            Immutable imm = (Immutable)o;
            return imm.newInstance();
         }
      }
      );
      attributeType.setSimpleType(new CharactersHandler(){
         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            Immutable imm = (Immutable)owner;
            Config.ConfigAttr.ConfigAttrDataValue o = new Config.ConfigAttr.ConfigAttrDataValue();
            o.setData((String)value);
            imm.addChild(qName.getLocalPart(), o);
         }
      });

      attributeType.pushInterceptor(new QName("value1"), new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Immutable imm = (Immutable)parent;
            Config.ConfigAttr.ConfigAttrValue1 value1 = (Config.ConfigAttr.ConfigAttrValue1)child;
            imm.addChild(name.getLocalPart(), value1);
         }
      }
      );

      attributeType.pushInterceptor(new QName("value2"), new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Immutable imm = (Immutable)parent;
            Config.ConfigAttr.ConfigAttrValue2 value2 = (Config.ConfigAttr.ConfigAttrValue2)child;
            imm.addChild(name.getLocalPart(), value2);
         }
      }
      );

      attributeValue1Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Config.ConfigAttr.ConfigAttrValue1();
         }
      }
      );
      attributeValue1Type.pushInterceptor(new QName("property"), new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Config.ConfigAttr.ConfigAttrValue1 value1 = (Config.ConfigAttr.ConfigAttrValue1)o;
            value1.setProperty(text);
         }
      }
      );

      attributeValue2Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Config.ConfigAttr.ConfigAttrValue2();
         }

      }
      );
      attributeValue2Type.setSimpleType(new CharactersHandler(){
         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            Config.ConfigAttr.ConfigAttrValue2 value2 = (Config.ConfigAttr.ConfigAttrValue2)owner;
            value2.setValue2((String)value);
         }
      });

      beansType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new ArrayList();
         }
      }
      );
      beansType.pushInterceptor(new QName("bean"), new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Collection<Bean> beans = (Collection<Bean>)parent;
            Config.Bean bean = (Config.Bean)child;
            beans.add(bean);
         }
      }
      );

      beanType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Immutable(Config.Bean.class);
         }

         public Object endElement(Object o, QName name, ElementBinding element)
         {
            Immutable imm = (Immutable)o;
            Config.Bean bean = (Config.Bean)imm.newInstance();
            return bean;
         }
      }
      );

      beanType.pushInterceptor(new QName("name"), new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Immutable imm = (Immutable)o;
            imm.addChild(name.getLocalPart(), text);
         }
      }
      );

      listType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new ArrayList();
         }
      }
      );
      listType.pushInterceptor(new QName("value"), new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Collection<ListValue> list = (Collection<ListValue>)parent;
            Config.ListValue value = (Config.ListValue)child;
            list.add(value);
         }
      }
      );
      listType.pushInterceptor(new QName("depends"), new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Collection<Depends> list = (Collection<Depends>)parent;
            Config.Depends depends = (Config.Depends)child;
            list.add(depends);
         }
      }
      );
      listType.pushInterceptor(new QName("list"), new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Collection<Collection<?>> list = (Collection<Collection<?>>)parent;
            Collection<?> sublist = (Collection<?>)child;
            list.add(sublist);
         }
      }
      );

      listValueType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Immutable(Config.ListValue.class);
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Immutable imm = (Immutable)o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("type".equals(lName))
               {
                  imm.addChild(lName, attrs.getValue(i));
               }
            }
         }

         public Object endElement(Object o, QName name, ElementBinding element)
         {
            Immutable imm = (Immutable)o;
            Config.ListValue value = (Config.ListValue)imm.newInstance();
            return value;
         }
      }
      );
      listValueType.setSimpleType(new CharactersHandler(){
         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            Immutable imm = (Immutable)owner;
            imm.addChild(qName.getLocalPart(), value);
         }
      });

      listDependsType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Immutable(Config.Depends.class);
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Immutable imm = (Immutable)o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("value".equals(lName))
               {
                  imm.addChild(lName, attrs.getValue(i));
               }
            }
         }

         public Object endElement(Object o, QName name, ElementBinding element)
         {
            Immutable imm = (Immutable)o;
            Config.Depends depends = (Config.Depends)imm.newInstance();
            return depends;
         }
      }
      );

      mapType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new HashMap();
         }
      }
      );

      ElementInterceptor addMapEntryInterceptor = new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Map<Object, Object> map = (Map<Object, Object>)parent;
            Object[] arr = (Object[])child;
            map.put(arr[0], arr[1]);
         }
      };
      mapType.pushInterceptor(new QName("entry1"), addMapEntryInterceptor);
      mapType.pushInterceptor(new QName("entry2"), addMapEntryInterceptor);
      mapType.pushInterceptor(new QName("entry3"), addMapEntryInterceptor);
      mapType.pushInterceptor(new QName("entry4"), addMapEntryInterceptor);
      mapType.pushInterceptor(new QName("map"), addMapEntryInterceptor);

      entry1Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }
      }
      );
      entry1Type.pushInterceptor(new QName("key1"), new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[0] = text;
         }
      }
      );
      entry1Type.pushInterceptor(new QName("value1"), new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[1] = text;
         }
      }
      );

      entry2Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key2".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
            }
         }
      }
      );
      entry2Type.pushInterceptor(new QName("value2"), new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[1] = text;
         }
      }
      );

      entry3Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key3".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
               else if("value3".equals(lName))
               {
                  arr[1] = attrs.getValue(i);
               }
            }
         }
      }
      );

      entry4Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key4".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
            }
         }

      }
      );
      entry4Type.setSimpleType(new CharactersHandler(){
         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            Object[] arr = (Object[])owner;
            arr[1] = value;
         }
View Full Code Here

            }
         }
      });
     
      // parameter can take a value
      parameterType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return new StringValueMetaData(value);
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            AbstractParameterMetaData parameter = (AbstractParameterMetaData) owner;
            parameter.setValue((StringValueMetaData) value);
         }
      });

      // bean has a create
      beanType.pushInterceptor(createQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("create");
            bean.setCreate(lifecycle);
         }
      });

      // beanfactory has a create
      beanFactoryType.pushInterceptor(createQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("create");
            bean.setBeanCreate(lifecycle);
         }
      });

      // bean has a start
      beanType.pushInterceptor(startQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("start");
            bean.setStart(lifecycle);
         }
      });

      // beanfactory has a start
      beanFactoryType.pushInterceptor(startQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("start");
            bean.setBeanStart(lifecycle);
         }
      });

      // bean has a stop
      beanType.pushInterceptor(stopQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("stop");
            bean.setStop(lifecycle);
         }
      });

      // bean has a destroy
      beanType.pushInterceptor(destroyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("destroy");
            bean.setDestroy(lifecycle);
         }
      });

      // lifecycle binding
      TypeBinding lifecycleType = schemaBinding.getType(lifecycleTypeQName);
      lifecycleType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractLifecycleMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("method".equals(localName))
                  lifecycle.setMethodName(attrs.getValue(i));
            }
         }
      });

      // lifecycle has a list parameters
      lifecycleType.pushInterceptor(parameterQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) parent;
            AbstractParameterMetaData parameter = (AbstractParameterMetaData) child;
            List<ParameterMetaData> parameters = lifecycle.getParameters();
            if (parameters == null)
            {
               parameters = new ArrayList<ParameterMetaData>();
               lifecycle.setParameters(parameters);
            }
            parameter.setIndex(parameters.size());
            parameters.add(parameter);
         }
      });

      // bean has a set of properties
      beanType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
            Set<PropertyMetaData> properties = bean.getProperties();
            if (properties == null)
            {
               properties = new HashSet<PropertyMetaData>();
               bean.setProperties(properties);
            }
            properties.add(property);
         }
      });

      // beanfactory has a set of properties
      beanFactoryType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
            bean.addBeanProperty(property);
         }
      });

      // bean has a set of depends
      beanType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractDependencyMetaData dependency = (AbstractDependencyMetaData) child;
            Set<DependencyMetaData> depends = bean.getDepends();
            if (depends == null)
            {
               depends = new HashSet<DependencyMetaData>();
               bean.setDepends(depends);
            }
            depends.add(dependency);
         }
      });

      // beanfactory has a set of depends
      beanFactoryType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
            AbstractDependencyMetaData dependency = (AbstractDependencyMetaData) child;
            Set<DependencyMetaData> depends = bean.getDepends();
            if (depends == null)
            {
               depends = new HashSet<DependencyMetaData>();
               bean.setDepends(depends);
            }
            depends.add(dependency);
         }
      });

      // bean has a set of demands
      beanType.pushInterceptor(demandQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractDemandMetaData demand = (AbstractDemandMetaData) child;
            Set<DemandMetaData> demands = bean.getDemands();
            if (demands == null)
            {
               demands = new HashSet<DemandMetaData>();
               bean.setDemands(demands);
            }
            demands.add(demand);
         }
      });

      // beanfactory has a set of demands
      beanFactoryType.pushInterceptor(demandQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractDemandMetaData demand = (AbstractDemandMetaData) child;
            Set<DemandMetaData> demands = bean.getDemands();
            if (demands == null)
            {
               demands = new HashSet<DemandMetaData>();
               bean.setDemands(demands);
            }
            demands.add(demand);
         }
      });

      // bean has a set of supplies
      beanType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) child;
            Set<SupplyMetaData> supplies = bean.getSupplies();
            if (supplies == null)
            {
               supplies = new HashSet<SupplyMetaData>();
               bean.setSupplies(supplies);
            }
            supplies.add(supply);
         }
      });

      // beanfactory has a set of supplies
      beanFactoryType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) child;
            Set<SupplyMetaData> supplies = bean.getSupplies();
            if (supplies == null)
            {
               supplies = new HashSet<SupplyMetaData>();
               bean.setSupplies(supplies);
            }
            supplies.add(supply);
         }
      });

      // property binding
      TypeBinding propertyType = schemaBinding.getType(propertyTypeQName);
      configureValueBindings(propertyType);
      propertyType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractPropertyMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("name".equals(localName))
                  property.setName(attrs.getValue(i));
               else if ("class".equals(localName))
               {
                  StringValueMetaData svmd = new StringValueMetaData();
                  svmd.setType(attrs.getValue(i));
                  property.setValue(svmd);
               }
            }
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractPropertyMetaData x = (AbstractPropertyMetaData) o;
            String name = x.getName();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty property name.");
            return o;
         }
      });

      // property can take a value
      propertyType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return new StringValueMetaData(value);
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) owner;
            StringValueMetaData svmd = (StringValueMetaData) value;
            ValueMetaData vmd = property.getValue();
            if (vmd != null && vmd instanceof StringValueMetaData)
            {
               StringValueMetaData previous = (StringValueMetaData) vmd;
               String type = previous.getType();
               if (type != null)
                  svmd.setType(type);
            }
            property.setValue(svmd);
         }
      });

      // dependency binding
      TypeBinding dependsType = schemaBinding.getType(dependsTypeQName);
      dependsType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractDependencyMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractDependencyMetaData x = (AbstractDependencyMetaData) o;
            String name = (String) x.getDependency();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty dependency.");
            return o;
         }
      });

      // depends can take a value
      dependsType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qname, ElementBinding element, Object owner, Object value)
         {
            AbstractDependencyMetaData depends = (AbstractDependencyMetaData) owner;
            depends.setDependency(value);
         }
      });

      // demand binding
      TypeBinding demandType = schemaBinding.getType(demandTypeQName);
      demandType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractDemandMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractDemandMetaData demand = (AbstractDemandMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("state".equals(localName))
                  demand.setWhenRequired(new ControllerState(attrs.getValue(i)));
            }
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractDemandMetaData x = (AbstractDemandMetaData) o;
            String name = (String) x.getDemand();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty demand.");
            return o;
         }
      });

      // demand can take a value
      demandType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qname, ElementBinding element, Object owner, Object value)
         {
            AbstractDemandMetaData demand = (AbstractDemandMetaData) owner;
            demand.setDemand(value);
         }
      });

      // supply binding
      TypeBinding supplyType = schemaBinding.getType(supplyTypeQName);
      supplyType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractSupplyMetaData();
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractSupplyMetaData x = (AbstractSupplyMetaData) o;
            String name = (String) x.getSupply();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty supply.");
            return o;
         }
      });

      // supply can take a value
      supplyType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) owner;
            supply.setSupply(value);
         }
      });

      // dependency binding
      TypeBinding dependencyType = schemaBinding.getType(dependencyTypeQName);
      dependencyType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractDependencyValueMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractDependencyValueMetaData dependency = (AbstractDependencyValueMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("bean".equals(localName))
                  dependency.setValue(attrs.getValue(i));
               else if ("property".equals(localName))
                  dependency.setProperty(attrs.getValue(i));
               else if ("state".equals(localName))
                  dependency.setDependentState(new ControllerState(attrs.getValue(i)));
               else if ("whenRequired".equals(localName))
                  dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
            }
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractDependencyValueMetaData x = (AbstractDependencyValueMetaData) o;
            String name = (String) x.getUnderlyingValue();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty bean in injection/factory.");
            return o;
         }
      });

      // injection binding
      TypeBinding injectionType = schemaBinding.getType(injectionTypeQName);
      injectionType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            AbstractInjectionValueMetaData vmd = new AbstractInjectionValueMetaData();
            if (parent instanceof AbstractPropertyMetaData)
            {
               AbstractPropertyMetaData x = (AbstractPropertyMetaData) parent;
               vmd.setPropertyMetaData(x);
            }
            return vmd;
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractInjectionValueMetaData injection = (AbstractInjectionValueMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("bean".equals(localName))
                  injection.setValue(attrs.getValue(i));
               else if ("property".equals(localName))
                  injection.setProperty(attrs.getValue(i));
               else if ("state".equals(localName))
                  injection.setDependentState(new ControllerState(attrs.getValue(i)));
               else if ("whenRequired".equals(localName))
                  injection.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
               else if ("type".equals(localName))
                  injection.setInjectionType(new InjectionType(attrs.getValue(i)));
            }
         }

      });

      // value binding
      TypeBinding plainValueType = schemaBinding.getType(plainValueTypeQName);
      plainValueType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new StringValueMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            StringValueMetaData value = (StringValueMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("class".equals(localName))
                  value.setType(attrs.getValue(i));
            }
         }
      });

      // value can take a value
      plainValueType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            StringValueMetaData valueMetaData = (StringValueMetaData) owner;
            valueMetaData.setValue(value);
         }
      });

      // value binding
      TypeBinding valueType = schemaBinding.getType(valueTypeQName);
      configureValueBindings(valueType);
      valueType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractValueMetaData(new StringValueMetaData());
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractValueMetaData value = (AbstractValueMetaData) o;
            StringValueMetaData string = (StringValueMetaData) value.getValue();
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("class".equals(localName))
                  string.setType(attrs.getValue(i));
            }
         }
      });

      // value can take a value
      valueType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }
View Full Code Here

            }
         }
      });
     
      // parameter can take a value
      parameterType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return new StringValueMetaData(value);
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            AbstractParameterMetaData parameter = (AbstractParameterMetaData) owner;
            StringValueMetaData svmd = (StringValueMetaData) value;
            ValueMetaData vmd = parameter.getValue();
            if (vmd != null && vmd instanceof StringValueMetaData)
            {
               StringValueMetaData previous = (StringValueMetaData) vmd;
               svmd.setReplace(previous.isReplace());
               svmd.setTrim(previous.isTrim());
               String type = previous.getType();
               if (type != null)
                  svmd.setType(type);
            }
            parameter.setValue(svmd);         }
      });

      // bean has a create
      beanType.pushInterceptor(createQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("create");
            bean.setCreate(lifecycle);
         }
      });

      // beanfactory has a create
      beanFactoryType.pushInterceptor(createQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("create");
            bean.setBeanCreate(lifecycle);
         }
      });

      // bean has a start
      beanType.pushInterceptor(startQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("start");
            bean.setStart(lifecycle);
         }
      });

      // beanfactory has a start
      beanFactoryType.pushInterceptor(startQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("start");
            bean.setBeanStart(lifecycle);
         }
      });

      // bean has a stop
      beanType.pushInterceptor(stopQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("stop");
            bean.setStop(lifecycle);
         }
      });

      // bean has a destroy
      beanType.pushInterceptor(destroyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) child;
            lifecycle.setType("destroy");
            bean.setDestroy(lifecycle);
         }
      });

      // lifecycle binding
      TypeBinding lifecycleType = schemaBinding.getType(lifecycleTypeQName);
      lifecycleType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractLifecycleMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("method".equals(localName))
                  lifecycle.setMethodName(attrs.getValue(i));
               else if ("ignored".equals(localName))
                  lifecycle.setIgnored(Boolean.parseBoolean(attrs.getValue(i)));
            }
         }
      });

      // lifecycle has a list parameters
      lifecycleType.pushInterceptor(parameterQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData) parent;
            AbstractParameterMetaData parameter = (AbstractParameterMetaData) child;
            List<ParameterMetaData> parameters = lifecycle.getParameters();
            if (parameters == null)
            {
               parameters = new ArrayList<ParameterMetaData>();
               lifecycle.setParameters(parameters);
            }
            parameter.setIndex(parameters.size());
            parameters.add(parameter);
         }
      });

      // bean has a set of properties
      beanType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
            Set<PropertyMetaData> properties = bean.getProperties();
            if (properties == null)
            {
               properties = new HashSet<PropertyMetaData>();
               bean.setProperties(properties);
            }
            properties.add(property);
         }
      });

      // beanfactory has a set of properties
      beanFactoryType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
            bean.addBeanProperty(property);
         }
      });

      // bean has a set of depends
      beanType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractDependencyMetaData dependency = (AbstractDependencyMetaData) child;
            Set<DependencyMetaData> depends = bean.getDepends();
            if (depends == null)
            {
               depends = new HashSet<DependencyMetaData>();
               bean.setDepends(depends);
            }
            depends.add(dependency);
         }
      });

      // beanfactory has a set of depends
      beanFactoryType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData bean = (org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData) parent;
            AbstractDependencyMetaData dependency = (AbstractDependencyMetaData) child;
            Set<DependencyMetaData> depends = bean.getDepends();
            if (depends == null)
            {
               depends = new HashSet<DependencyMetaData>();
               bean.setDepends(depends);
            }
            depends.add(dependency);
         }
      });

      // bean has a set of demands
      beanType.pushInterceptor(demandQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractDemandMetaData demand = (AbstractDemandMetaData) child;
            Set<DemandMetaData> demands = bean.getDemands();
            if (demands == null)
            {
               demands = new HashSet<DemandMetaData>();
               bean.setDemands(demands);
            }
            demands.add(demand);
         }
      });

      // beanfactory has a set of demands
      beanFactoryType.pushInterceptor(demandQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractDemandMetaData demand = (AbstractDemandMetaData) child;
            Set<DemandMetaData> demands = bean.getDemands();
            if (demands == null)
            {
               demands = new HashSet<DemandMetaData>();
               bean.setDemands(demands);
            }
            demands.add(demand);
         }
      });

      // bean has a set of supplies
      beanType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) child;
            Set<SupplyMetaData> supplies = bean.getSupplies();
            if (supplies == null)
            {
               supplies = new HashSet<SupplyMetaData>();
               bean.setSupplies(supplies);
            }
            supplies.add(supply);
         }
      });

      // beanfactory has a set of supplies
      beanFactoryType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) child;
            Set<SupplyMetaData> supplies = bean.getSupplies();
            if (supplies == null)
            {
               supplies = new HashSet<SupplyMetaData>();
               bean.setSupplies(supplies);
            }
            supplies.add(supply);
         }
      });

      // property binding
      TypeBinding propertyType = schemaBinding.getType(propertyTypeQName);
      configureValueBindings(propertyType);
      propertyType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractPropertyMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("name".equals(localName))
                  property.setName(attrs.getValue(i));
               else if ("preinstantiate".equals(localName))
                  property.setPreInstantiate(Boolean.parseBoolean(attrs.getValue(i)));
               else if ("class".equals(localName) || "replace".equals(localName) || "trim".equals(localName))
               {
                  StringValueMetaData svmd;
                  ValueMetaData vmd = property.getValue();
                  if (vmd == null || vmd instanceof StringValueMetaData == false)
                  {
                     svmd = new StringValueMetaData();
                     property.setValue(svmd);
                  }
                  else
                  {
                     svmd = (StringValueMetaData)vmd;
                  }
                  if ("class".equals(localName))
                     svmd.setType(attrs.getValue(i));
                  else if ("replace".equals(localName))
                     svmd.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
                  else if ("trim".equals(localName))
                     svmd.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
               }
            }
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractPropertyMetaData x = (AbstractPropertyMetaData) o;
            String name = x.getName();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty property name.");
            return o;
         }
      });

      // property can take a value
      propertyType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return new StringValueMetaData(value);
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            AbstractPropertyMetaData property = (AbstractPropertyMetaData) owner;
            StringValueMetaData svmd = (StringValueMetaData) value;
            ValueMetaData vmd = property.getValue();
            if (vmd != null && vmd instanceof StringValueMetaData)
            {
               StringValueMetaData previous = (StringValueMetaData) vmd;
               svmd.setReplace(previous.isReplace());
               svmd.setTrim(previous.isTrim());
               String type = previous.getType();
               if (type != null)
                  svmd.setType(type);
            }
            property.setValue(svmd);
         }
      });

      // dependency binding
      TypeBinding dependsType = schemaBinding.getType(dependsTypeQName);
      dependsType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractDependencyMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractDependencyMetaData x = (AbstractDependencyMetaData) o;
            String name = (String) x.getDependency();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty dependency.");
            return o;
         }
      });

      // depends can take a value
      dependsType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qname, ElementBinding element, Object owner, Object value)
         {
            AbstractDependencyMetaData depends = (AbstractDependencyMetaData) owner;
            depends.setDependency(value);
         }
      });

      // demand binding
      TypeBinding demandType = schemaBinding.getType(demandTypeQName);
      demandType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractDemandMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractDemandMetaData demand = (AbstractDemandMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("state".equals(localName))
                  demand.setWhenRequired(new ControllerState(attrs.getValue(i)));
            }
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractDemandMetaData x = (AbstractDemandMetaData) o;
            String name = (String) x.getDemand();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty demand.");
            return o;
         }
      });

      // demand can take a value
      demandType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qname, ElementBinding element, Object owner, Object value)
         {
            AbstractDemandMetaData demand = (AbstractDemandMetaData) owner;
            demand.setDemand(value);
         }
      });

      // supply binding
      TypeBinding supplyType = schemaBinding.getType(supplyTypeQName);
      supplyType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractSupplyMetaData();
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractSupplyMetaData x = (AbstractSupplyMetaData) o;
            String name = (String) x.getSupply();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty supply.");
            return o;
         }
      });

      // supply can take a value
      supplyType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            AbstractSupplyMetaData supply = (AbstractSupplyMetaData) owner;
            supply.setSupply(value);
         }
      });

      // dependency binding
      TypeBinding dependencyType = schemaBinding.getType(dependencyTypeQName);
      dependencyType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractDependencyValueMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractDependencyValueMetaData dependency = (AbstractDependencyValueMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("bean".equals(localName))
                  dependency.setValue(attrs.getValue(i));
               else if ("property".equals(localName))
                  dependency.setProperty(attrs.getValue(i));
               else if ("state".equals(localName))
                  dependency.setDependentState(new ControllerState(attrs.getValue(i)));
               else if ("whenRequired".equals(localName))
                  dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
            }
         }
        
         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            AbstractDependencyValueMetaData x = (AbstractDependencyValueMetaData) o;
            String name = (String) x.getUnderlyingValue();
            if (name == null || name.trim().length() == 0)
               throw new IllegalArgumentException("Null or empty bean in injection/factory.");
            return o;
         }
      });

      // injection binding
      TypeBinding injectionType = schemaBinding.getType(injectionTypeQName);
      injectionType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            AbstractInjectionValueMetaData vmd = new AbstractInjectionValueMetaData();
            if (parent instanceof AbstractPropertyMetaData)
            {
               AbstractPropertyMetaData x = (AbstractPropertyMetaData) parent;
               vmd.setPropertyMetaData(x);
            }
            return vmd;
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractInjectionValueMetaData injection = (AbstractInjectionValueMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("bean".equals(localName))
                  injection.setValue(attrs.getValue(i));
               else if ("property".equals(localName))
                  injection.setProperty(attrs.getValue(i));
               else if ("state".equals(localName))
                  injection.setDependentState(new ControllerState(attrs.getValue(i)));
               else if ("whenRequired".equals(localName))
                  injection.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
               else if ("type".equals(localName))
                  injection.setInjectionType(AutowireType.getInstance(attrs.getValue(i)));
               else if ("option".equals(localName))
                  injection.setInjectionOption(InjectOption.getInstance(attrs.getValue(i)));
               else if ("fromContext".equals(localName))
                  injection.setFromContext(FromContext.getInstance(attrs.getValue(i)));
            }
         }
      });

      // value binding
      TypeBinding plainValueType = schemaBinding.getType(plainValueTypeQName);
      plainValueType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new StringValueMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            StringValueMetaData value = (StringValueMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("class".equals(localName))
                  value.setType(attrs.getValue(i));
               else if ("replace".equals(localName))
                  value.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
               else if ("trim".equals(localName))
                  value.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
            }
         }
      });

      // value can take a value
      plainValueType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }

         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            StringValueMetaData valueMetaData = (StringValueMetaData) owner;
            valueMetaData.setValue(value);
         }
      });

      // value binding
      TypeBinding valueType = schemaBinding.getType(valueTypeQName);
      configureValueBindings(valueType);
      valueType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractValueMetaData(new StringValueMetaData());
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractValueMetaData value = (AbstractValueMetaData) o;
            StringValueMetaData string = (StringValueMetaData) value.getValue();
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("class".equals(localName))
                  string.setType(attrs.getValue(i));
               else if ("replace".equals(localName))
                  string.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
               else if ("trim".equals(localName))
                  string.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
            }
         }
      });

      // value can take a value
      valueType.setSimpleType(new CharactersHandler()
      {
         public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
         {
            return value;
         }
View Full Code Here

      //}

      // Bind the value
      if (valueProperty != null)
      {
         CharactersHandler charactersHandler = new ValueHandler(valueProperty);
         typeBinding.setSimpleType(charactersHandler);
      }
      else if (trace)
         log.trace("No value for type=" + beanInfo.getName());
View Full Code Here

               // Can it take text?
               JBossXmlGroupText groupText = ((ClassInfo) propertyType)
                     .getUnderlyingAnnotation(JBossXmlGroupText.class);
               if (groupText != null)
               {
                  CharactersHandler textHandler;
                  if (groupText.wrapper() != Object.class)
                  {
                     BeanInfo wrapperInfo = JBossXBBuilder.configuration.getBeanInfo(groupText.wrapper());
                     textHandler = new ValueHandler(property, wrapperInfo, groupText.property());
                  }
View Full Code Here

                           }
                        }
                     }
                     else
                     {
                        CharactersHandler cHandler = (CharactersHandler)handler;
                        if(parentValueList != null)
                        {
                           parentValueList.addTextValue(valueEntry.qName, childParticle, cHandler, valueEntry.value);
                        }
                        else
                        {
                           cHandler.setValue(valueEntry.qName, (ElementBinding) childParticle.getTerm(), parent, valueEntry.value);
                        }
                     }
                  }
                  else if(binding instanceof AttributeBinding)
                  {
View Full Code Here

         }
         else
         {
            if(!Constants.NS_XML_SCHEMA_INSTANCE.equals(attrs.getURI(i)))
            {
               CharactersHandler simpleType = type.getCharactersHandler();
               Object value;
               if(simpleType == null)
               {
                  value = attrs.getValue(i);
                  RtUtil.set(o, attrName, value, element.getSchema().isIgnoreLowLine());
View Full Code Here

/*  528 */               stringValueMetaData.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
/*      */           }
/*      */         }
/*      */       }
/*      */     });
/*  535 */     parameterType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/*  539 */         return new StringValueMetaData(value);
/*      */       }
/*      */
/*      */       public void setValue(QName qName, ElementBinding element, Object owner, Object value)
/*      */       {
/*  544 */         AbstractParameterMetaData parameter = (AbstractParameterMetaData)owner;
/*  545 */         StringValueMetaData svmd = (StringValueMetaData)value;
/*  546 */         org.jboss.beans.metadata.spi.ValueMetaData vmd = parameter.getValue();
/*  547 */         if ((vmd != null) && ((vmd instanceof StringValueMetaData)))
/*      */         {
/*  549 */           StringValueMetaData previous = (StringValueMetaData)vmd;
/*  550 */           svmd.setReplace(previous.isReplace());
/*  551 */           svmd.setTrim(previous.isTrim());
/*  552 */           String type = previous.getType();
/*  553 */           if (type != null)
/*  554 */             svmd.setType(type);
/*      */         }
/*  556 */         parameter.setValue(svmd);
/*      */       }
/*      */     });
/*  560 */     beanType.pushInterceptor(createQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  564 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  565 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/*  566 */         lifecycle.setType("create");
/*  567 */         bean.setCreate(lifecycle);
/*      */       }
/*      */     });
/*  572 */     beanFactoryType.pushInterceptor(createQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  576 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/*  577 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/*  578 */         lifecycle.setType("create");
/*  579 */         bean.setBeanCreate(lifecycle);
/*      */       }
/*      */     });
/*  584 */     beanType.pushInterceptor(startQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  588 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  589 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/*  590 */         lifecycle.setType("start");
/*  591 */         bean.setStart(lifecycle);
/*      */       }
/*      */     });
/*  596 */     beanFactoryType.pushInterceptor(startQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  600 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/*  601 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/*  602 */         lifecycle.setType("start");
/*  603 */         bean.setBeanStart(lifecycle);
/*      */       }
/*      */     });
/*  608 */     beanType.pushInterceptor(stopQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  612 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  613 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/*  614 */         lifecycle.setType("stop");
/*  615 */         bean.setStop(lifecycle);
/*      */       }
/*      */     });
/*  620 */     beanType.pushInterceptor(destroyQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  624 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  625 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/*  626 */         lifecycle.setType("destroy");
/*  627 */         bean.setDestroy(lifecycle);
/*      */       }
/*      */     });
/*  632 */     TypeBinding lifecycleType = schemaBinding.getType(lifecycleTypeQName);
/*  633 */     lifecycleType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  637 */         return new AbstractLifecycleMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*  642 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)o;
/*  643 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/*  645 */           String localName = attrs.getLocalName(i);
/*  646 */           if ("method".equals(localName))
/*  647 */             lifecycle.setMethodName(attrs.getValue(i));
/*  648 */           else if ("ignored".equals(localName))
/*  649 */             lifecycle.setIgnored(Boolean.parseBoolean(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */     });
/*  655 */     lifecycleType.pushInterceptor(parameterQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  659 */         AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)parent;
/*  660 */         AbstractParameterMetaData parameter = (AbstractParameterMetaData)child;
/*  661 */         List parameters = lifecycle.getParameters();
/*  662 */         if (parameters == null)
/*      */         {
/*  664 */           parameters = new ArrayList();
/*  665 */           lifecycle.setParameters(parameters);
/*      */         }
/*  667 */         parameter.setIndex(parameters.size());
/*  668 */         parameters.add(parameter);
/*      */       }
/*      */     });
/*  673 */     beanType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  677 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  678 */         AbstractPropertyMetaData property = (AbstractPropertyMetaData)child;
/*  679 */         Set properties = bean.getProperties();
/*  680 */         if (properties == null)
/*      */         {
/*  682 */           properties = new HashSet();
/*  683 */           bean.setProperties(properties);
/*      */         }
/*  685 */         properties.add(property);
/*      */       }
/*      */     });
/*  690 */     beanFactoryType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  694 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/*  695 */         AbstractPropertyMetaData property = (AbstractPropertyMetaData)child;
/*  696 */         bean.addBeanProperty(property);
/*      */       }
/*      */     });
/*  701 */     beanType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  705 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  706 */         AbstractDependencyMetaData dependency = (AbstractDependencyMetaData)child;
/*  707 */         Set depends = bean.getDepends();
/*  708 */         if (depends == null)
/*      */         {
/*  710 */           depends = new HashSet();
/*  711 */           bean.setDepends(depends);
/*      */         }
/*  713 */         depends.add(dependency);
/*      */       }
/*      */     });
/*  718 */     beanFactoryType.pushInterceptor(dependsQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  722 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/*  723 */         AbstractDependencyMetaData dependency = (AbstractDependencyMetaData)child;
/*  724 */         Set depends = bean.getDepends();
/*  725 */         if (depends == null)
/*      */         {
/*  727 */           depends = new HashSet();
/*  728 */           bean.setDepends(depends);
/*      */         }
/*  730 */         depends.add(dependency);
/*      */       }
/*      */     });
/*  735 */     beanType.pushInterceptor(demandQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  739 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  740 */         AbstractDemandMetaData demand = (AbstractDemandMetaData)child;
/*  741 */         Set demands = bean.getDemands();
/*  742 */         if (demands == null)
/*      */         {
/*  744 */           demands = new HashSet();
/*  745 */           bean.setDemands(demands);
/*      */         }
/*  747 */         demands.add(demand);
/*      */       }
/*      */     });
/*  752 */     beanFactoryType.pushInterceptor(demandQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  756 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  757 */         AbstractDemandMetaData demand = (AbstractDemandMetaData)child;
/*  758 */         Set demands = bean.getDemands();
/*  759 */         if (demands == null)
/*      */         {
/*  761 */           demands = new HashSet();
/*  762 */           bean.setDemands(demands);
/*      */         }
/*  764 */         demands.add(demand);
/*      */       }
/*      */     });
/*  769 */     beanType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  773 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  774 */         AbstractSupplyMetaData supply = (AbstractSupplyMetaData)child;
/*  775 */         Set supplies = bean.getSupplies();
/*  776 */         if (supplies == null)
/*      */         {
/*  778 */           supplies = new HashSet();
/*  779 */           bean.setSupplies(supplies);
/*      */         }
/*  781 */         supplies.add(supply);
/*      */       }
/*      */     });
/*  786 */     beanFactoryType.pushInterceptor(supplyQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  790 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  791 */         AbstractSupplyMetaData supply = (AbstractSupplyMetaData)child;
/*  792 */         Set supplies = bean.getSupplies();
/*  793 */         if (supplies == null)
/*      */         {
/*  795 */           supplies = new HashSet();
/*  796 */           bean.setSupplies(supplies);
/*      */         }
/*  798 */         supplies.add(supply);
/*      */       }
/*      */     });
/*  803 */     TypeBinding propertyType = schemaBinding.getType(propertyTypeQName);
/*  804 */     configureValueBindings(propertyType);
/*  805 */     propertyType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  809 */         return new AbstractPropertyMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*  814 */         AbstractPropertyMetaData property = (AbstractPropertyMetaData)o;
/*  815 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/*  817 */           String localName = attrs.getLocalName(i);
/*  818 */           if ("name".equals(localName)) {
/*  819 */             property.setName(attrs.getValue(i));
/*  820 */           } else if ("preinstantiate".equals(localName)) {
/*  821 */             property.setPreInstantiate(Boolean.parseBoolean(attrs.getValue(i))); } else {
/*  822 */             if ((!"class".equals(localName)) && (!"replace".equals(localName)) && (!"trim".equals(localName))) {
/*      */               continue;
/*      */             }
/*  825 */             org.jboss.beans.metadata.spi.ValueMetaData vmd = property.getValue();
/*      */             StringValueMetaData svmd;
/*  826 */             if ((vmd == null) || (!(vmd instanceof StringValueMetaData)))
/*      */             {
/*  828 */               StringValueMetaData svmd = new StringValueMetaData();
/*  829 */               property.setValue(svmd);
/*      */             }
/*      */             else
/*      */             {
/*  833 */               svmd = (StringValueMetaData)vmd;
/*      */             }
/*  835 */             if ("class".equals(localName))
/*  836 */               svmd.setType(attrs.getValue(i));
/*  837 */             else if ("replace".equals(localName))
/*  838 */               svmd.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
/*  839 */             else if ("trim".equals(localName))
/*  840 */               svmd.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
/*      */           }
/*      */         }
/*      */       }
/*      */
/*      */       public Object endElement(Object o, QName qName, ElementBinding element)
/*      */       {
/*  847 */         AbstractPropertyMetaData x = (AbstractPropertyMetaData)o;
/*  848 */         String name = x.getName();
/*  849 */         if ((name == null) || (name.trim().length() == 0))
/*  850 */           throw new IllegalArgumentException("Null or empty property name.");
/*  851 */         return o;
/*      */       }
/*      */     });
/*  856 */     propertyType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/*  860 */         return new StringValueMetaData(value);
/*      */       }
/*      */
/*      */       public void setValue(QName qName, ElementBinding element, Object owner, Object value)
/*      */       {
/*  865 */         AbstractPropertyMetaData property = (AbstractPropertyMetaData)owner;
/*  866 */         StringValueMetaData svmd = (StringValueMetaData)value;
/*  867 */         org.jboss.beans.metadata.spi.ValueMetaData vmd = property.getValue();
/*  868 */         if ((vmd != null) && ((vmd instanceof StringValueMetaData)))
/*      */         {
/*  870 */           StringValueMetaData previous = (StringValueMetaData)vmd;
/*  871 */           svmd.setReplace(previous.isReplace());
/*  872 */           svmd.setTrim(previous.isTrim());
/*  873 */           String type = previous.getType();
/*  874 */           if (type != null)
/*  875 */             svmd.setType(type);
/*      */         }
/*  877 */         property.setValue(svmd);
/*      */       }
/*      */     });
/*  882 */     TypeBinding dependsType = schemaBinding.getType(dependsTypeQName);
/*  883 */     dependsType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  887 */         return new AbstractDependencyMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*      */       }
/*      */
/*      */       public Object endElement(Object o, QName qName, ElementBinding element)
/*      */       {
/*  896 */         AbstractDependencyMetaData x = (AbstractDependencyMetaData)o;
/*  897 */         String name = (String)x.getDependency();
/*  898 */         if ((name == null) || (name.trim().length() == 0))
/*  899 */           throw new IllegalArgumentException("Null or empty dependency.");
/*  900 */         return o;
/*      */       }
/*      */     });
/*  905 */     dependsType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/*  909 */         return value;
/*      */       }
/*      */
/*      */       public void setValue(QName qname, ElementBinding element, Object owner, Object value)
/*      */       {
/*  914 */         AbstractDependencyMetaData depends = (AbstractDependencyMetaData)owner;
/*  915 */         depends.setDependency(value);
/*      */       }
/*      */     });
/*  920 */     TypeBinding demandType = schemaBinding.getType(demandTypeQName);
/*  921 */     demandType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  925 */         return new AbstractDemandMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*  930 */         AbstractDemandMetaData demand = (AbstractDemandMetaData)o;
/*  931 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/*  933 */           String localName = attrs.getLocalName(i);
/*  934 */           if ("state".equals(localName))
/*  935 */             demand.setWhenRequired(new ControllerState(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */
/*      */       public Object endElement(Object o, QName qName, ElementBinding element)
/*      */       {
/*  941 */         AbstractDemandMetaData x = (AbstractDemandMetaData)o;
/*  942 */         String name = (String)x.getDemand();
/*  943 */         if ((name == null) || (name.trim().length() == 0))
/*  944 */           throw new IllegalArgumentException("Null or empty demand.");
/*  945 */         return o;
/*      */       }
/*      */     });
/*  950 */     demandType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/*  954 */         return value;
/*      */       }
/*      */
/*      */       public void setValue(QName qname, ElementBinding element, Object owner, Object value)
/*      */       {
/*  959 */         AbstractDemandMetaData demand = (AbstractDemandMetaData)owner;
/*  960 */         demand.setDemand(value);
/*      */       }
/*      */     });
/*  965 */     TypeBinding supplyType = schemaBinding.getType(supplyTypeQName);
/*  966 */     supplyType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  970 */         return new AbstractSupplyMetaData();
/*      */       }
/*      */
/*      */       public Object endElement(Object o, QName qName, ElementBinding element)
/*      */       {
/*  975 */         AbstractSupplyMetaData x = (AbstractSupplyMetaData)o;
/*  976 */         String name = (String)x.getSupply();
/*  977 */         if ((name == null) || (name.trim().length() == 0))
/*  978 */           throw new IllegalArgumentException("Null or empty supply.");
/*  979 */         return o;
/*      */       }
/*      */     });
/*  984 */     supplyType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/*  988 */         return value;
/*      */       }
/*      */
/*      */       public void setValue(QName qName, ElementBinding element, Object owner, Object value)
/*      */       {
/*  993 */         AbstractSupplyMetaData supply = (AbstractSupplyMetaData)owner;
/*  994 */         supply.setSupply(value);
/*      */       }
/*      */     });
/*  999 */     TypeBinding dependencyType = schemaBinding.getType(dependencyTypeQName);
/* 1000 */     dependencyType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/* 1004 */         return new AbstractDependencyValueMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/* 1009 */         AbstractDependencyValueMetaData dependency = (AbstractDependencyValueMetaData)o;
/* 1010 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/* 1012 */           String localName = attrs.getLocalName(i);
/* 1013 */           if ("bean".equals(localName))
/* 1014 */             dependency.setValue(attrs.getValue(i));
/* 1015 */           else if ("property".equals(localName))
/* 1016 */             dependency.setProperty(attrs.getValue(i));
/* 1017 */           else if ("state".equals(localName))
/* 1018 */             dependency.setDependentState(new ControllerState(attrs.getValue(i)));
/* 1019 */           else if ("whenRequired".equals(localName))
/* 1020 */             dependency.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */
/*      */       public Object endElement(Object o, QName qName, ElementBinding element)
/*      */       {
/* 1026 */         AbstractDependencyValueMetaData x = (AbstractDependencyValueMetaData)o;
/* 1027 */         String name = (String)x.getUnderlyingValue();
/* 1028 */         if ((name == null) || (name.trim().length() == 0))
/* 1029 */           throw new IllegalArgumentException("Null or empty bean in injection/factory.");
/* 1030 */         return o;
/*      */       }
/*      */     });
/* 1035 */     TypeBinding injectionType = schemaBinding.getType(injectionTypeQName);
/* 1036 */     injectionType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/* 1040 */         AbstractInjectionValueMetaData vmd = new AbstractInjectionValueMetaData();
/* 1041 */         if ((parent instanceof AbstractPropertyMetaData))
/*      */         {
/* 1043 */           AbstractPropertyMetaData x = (AbstractPropertyMetaData)parent;
/* 1044 */           vmd.setPropertyMetaData(x);
/*      */         }
/* 1046 */         return vmd;
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/* 1051 */         AbstractInjectionValueMetaData injection = (AbstractInjectionValueMetaData)o;
/* 1052 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/* 1054 */           String localName = attrs.getLocalName(i);
/* 1055 */           if ("bean".equals(localName))
/* 1056 */             injection.setValue(attrs.getValue(i));
/* 1057 */           else if ("property".equals(localName))
/* 1058 */             injection.setProperty(attrs.getValue(i));
/* 1059 */           else if ("state".equals(localName))
/* 1060 */             injection.setDependentState(new ControllerState(attrs.getValue(i)));
/* 1061 */           else if ("whenRequired".equals(localName))
/* 1062 */             injection.setWhenRequiredState(new ControllerState(attrs.getValue(i)));
/* 1063 */           else if ("type".equals(localName))
/* 1064 */             injection.setInjectionType(AutowireType.getInstance(attrs.getValue(i)));
/* 1065 */           else if ("option".equals(localName))
/* 1066 */             injection.setInjectionOption(InjectionOption.getInstance(attrs.getValue(i)));
/* 1067 */           else if ("fromContext".equals(localName))
/* 1068 */             injection.setFromContext(FromContext.getInstance(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */     });
/* 1074 */     TypeBinding plainValueType = schemaBinding.getType(plainValueTypeQName);
/* 1075 */     plainValueType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/* 1079 */         return new StringValueMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/* 1084 */         StringValueMetaData value = (StringValueMetaData)o;
/* 1085 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/* 1087 */           String localName = attrs.getLocalName(i);
/* 1088 */           if ("class".equals(localName))
/* 1089 */             value.setType(attrs.getValue(i));
/* 1090 */           else if ("replace".equals(localName))
/* 1091 */             value.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
/* 1092 */           else if ("trim".equals(localName))
/* 1093 */             value.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */     });
/* 1099 */     plainValueType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/* 1103 */         return value;
/*      */       }
/*      */
/*      */       public void setValue(QName qName, ElementBinding element, Object owner, Object value)
/*      */       {
/* 1108 */         StringValueMetaData valueMetaData = (StringValueMetaData)owner;
/* 1109 */         valueMetaData.setValue(value);
/*      */       }
/*      */     });
/* 1114 */     TypeBinding valueType = schemaBinding.getType(valueTypeQName);
/* 1115 */     configureValueBindings(valueType);
/* 1116 */     valueType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/* 1120 */         return new AbstractValueMetaData(new StringValueMetaData());
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/* 1125 */         AbstractValueMetaData value = (AbstractValueMetaData)o;
/* 1126 */         StringValueMetaData string = (StringValueMetaData)value.getValue();
/* 1127 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/* 1129 */           String localName = attrs.getLocalName(i);
/* 1130 */           if ("class".equals(localName))
/* 1131 */             string.setType(attrs.getValue(i));
/* 1132 */           else if ("replace".equals(localName))
/* 1133 */             string.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
/* 1134 */           else if ("trim".equals(localName))
/* 1135 */             string.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */     });
/* 1141 */     valueType.setSimpleType(new CharactersHandler()
/*      */     {
/*      */       public Object unmarshal(QName qName, TypeBinding typeBinding, NamespaceContext nsCtx, org.jboss.xb.binding.metadata.ValueMetaData valueMetaData, String value)
/*      */       {
/* 1145 */         return value;
/*      */       }
View Full Code Here

TOP

Related Classes of org.jboss.xb.binding.sunday.unmarshalling.CharactersHandler

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.