Package org.jboss.javabean.plugins.xml.Common

Examples of org.jboss.javabean.plugins.xml.Common.Holder


   /** The handler */
   public static final JavaBeanHandler HANDLER = new JavaBeanHandler();

   public Object startElement(Object parent, QName name, ElementBinding element)
   {
      return new Holder();
   }
View Full Code Here


      return new Holder();
   }

   public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
   {
      Holder holder = (Holder) o;
      String className = null;
      for (int i = 0; i < attrs.getLength(); ++i)
      {
         String localName = attrs.getLocalName(i);
         if ("class".equals(localName))
            className = attrs.getValue(i);
      }
     
      if (className == null)
         throw new IllegalArgumentException("No class attribute for " + elementName);
     
      try
      {
         Ctor ctor = new Ctor(className);
         holder.setValue(ctor);
      }
      catch (RuntimeException e)
      {
         throw e;
      }
View Full Code Here

      }
   }

   public Object endElement(Object o, QName qName, ElementBinding element)
   {
      Holder holder = (Holder) o;
      Object result = holder.getValue();
     
      // We still have a constructor because there was no constructor element
      if (result != null && result instanceof Ctor)
      {
         Ctor ctor = (Ctor) result;
View Full Code Here

   /** The interceptor */
   public static final ConstructorInterceptor INTERCEPTOR = new ConstructorInterceptor();
  
   public void add(Object parent, Object child, QName name)
   {
      Holder holder = (Holder) parent;
      holder.setValue(child);
   }
View Full Code Here

    * @param parent Holder containing either a Ctor or javabean instance.
    * @param child - the Property instance to add
    */
   public void add(Object parent, Object child, QName name)
   {
      Holder holder = (Holder) parent;
      Object parentValue = holder.getValue();
      Property prop = (Property) child;
      Object value = prop.getValue();
      String property = prop.getProperty();

      try
      {
         if( parentValue instanceof Ctor )
         {
            Ctor ctor = (Ctor) parentValue;
            if( ctor.isCtorWasDeclared() )
            {
               BeanInfo beanInfo = ConfigurationUtil.getBeanInfo(ctor.getClassName());
               PropertyInfo propertyInfo = beanInfo.getProperty(property);
               value = ConfigurationUtil.convertValue(propertyInfo, prop.getType(), value);
               ctor.addParam(propertyInfo.getType().getName(), value);
            }
            else
            {
               // There was no explicit ctor to create the bean and reset the parent value
               parentValue = ctor.newInstance();
               holder.setValue(parentValue);
               add(parent, child, name);
            }
         }
         else
         {
View Full Code Here

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

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            Holder holder = (Holder) o;
            String className = null;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("class".equals(localName))
                  className = attrs.getValue(i);
            }
           
            if (className == null)
               throw new IllegalArgumentException("No class attribute for " + elementName);
           
            try
            {
               BeanInfo beanInfo = ConfigurationUtil.getBeanInfo(className);
               Object object = beanInfo.newInstance();
               holder.setValue(object);
            }
            catch (RuntimeException e)
            {
               throw e;
            }
            catch (Error e)
            {
               throw e;
            }
            catch (Throwable t)
            {
               throw new RuntimeException("Error instantiating class " + className, t);
            }
         }

         public Object endElement(Object o, QName qName, ElementBinding element)
         {
            Holder holder = (Holder) o;
            return holder.getValue();
         }
      });

      // bean has properties
      beanType.pushInterceptor(propertyQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Holder holder = (Holder) parent;
            Object parentValue = holder.getValue();
           
            Property prop = (Property) child;
            String property = prop.getProperty();
            Object value = prop.getValue();
            try
View Full Code Here

   /** The handler */
   public static final ConstructorHandler HANDLER = new ConstructorHandler();

   public Object startElement(Object parent, QName name, ElementBinding element)
   {
      Holder holder = (Holder) parent;
      Ctor ctor = (Ctor) holder.getValue();
      ctor.setCtorWasDeclared(true);
      return holder;
   }
View Full Code Here

      return holder;
   }

   public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
   {
      Holder holder = (Holder) o;
      Ctor ctor = (Ctor) holder.getValue();
      Common.Constructor constructor = ctor.getConstructor();
      for (int i = 0; i < attrs.getLength(); ++i)
      {
         String localName = attrs.getLocalName(i);
         if ("factoryClass".equals(localName))
View Full Code Here

         constructor.setFactoryClass(ctor.getClassName());
   }

   public Object endElement(Object o, QName qName, ElementBinding element)
   {
      Holder holder = (Holder) o;
      Ctor ctor = (Ctor) holder.getValue();
      try
      {
         return ctor.newInstance();
      }
      catch (RuntimeException e)
View Full Code Here

TOP

Related Classes of org.jboss.javabean.plugins.xml.Common.Holder

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.