Package org.jboss.beans.metadata.plugins.factory

Examples of org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData


/*    */ {
/* 39 */   public static final BeanFactoryConstructorInterceptor INTERCEPTOR = new BeanFactoryConstructorInterceptor();
/*    */
/*    */   public void add(Object parent, Object child, QName name)
/*    */   {
/* 43 */     GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/* 44 */     AbstractConstructorMetaData constructor = (AbstractConstructorMetaData)child;
/* 45 */     bean.setBeanConstructor(constructor);
/*    */   }
View Full Code Here


/*    */ {
/* 39 */   public static final BeanFactoryCreateInterceptor INTERCEPTOR = new BeanFactoryCreateInterceptor();
/*    */
/*    */   public void add(Object parent, Object child, QName name)
/*    */   {
/* 43 */     GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/* 44 */     AbstractLifecycleMetaData lifecycle = (AbstractLifecycleMetaData)child;
/* 45 */     lifecycle.setType("create");
/* 46 */     bean.setBeanCreate(lifecycle);
/*    */   }
View Full Code Here

/*    */ {
/* 45 */   public static final BeanFactoryHandler HANDLER = new BeanFactoryHandler();
/*    */
/*    */   public Object startElement(Object parent, QName name, ElementBinding element)
/*    */   {
/* 49 */     return new GenericBeanFactoryMetaData();
/*    */   }
View Full Code Here

/* 49 */     return new GenericBeanFactoryMetaData();
/*    */   }
/*    */
/*    */   public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*    */   {
/* 54 */     GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)o;
/* 55 */     for (int i = 0; i < attrs.getLength(); i++)
/*    */     {
/* 57 */       String localName = attrs.getLocalName(i);
/* 58 */       if ("name".equals(localName))
/* 59 */         bean.setName(attrs.getValue(i));
/* 60 */       else if ("class".equals(localName))
/* 61 */         bean.setBeanClass(attrs.getValue(i));
/* 62 */       else if ("mode".equals(localName))
/* 63 */         bean.setMode(new ControllerMode(attrs.getValue(i)));
/*    */     }
/*    */   }
View Full Code Here

/*    */     }
/*    */   }
/*    */
/*    */   public Object endElement(Object o, QName qName, ElementBinding element)
/*    */   {
/* 69 */     GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)o;
/* 70 */     if (bean.getBeanClass() == null)
/*    */     {
/* 72 */       PropertyMetaData property = bean.getProperty("constructor");
/* 73 */       if (property == null)
/* 74 */         throw new IllegalArgumentException("BeanFactory should have a class attribute or a constructor element.");
/* 75 */       ValueMetaData value = property.getValue();
/* 76 */       if (value == null)
/* 77 */         throw new IllegalArgumentException("BeanFactory should have a class attribute or a constructor element.");
View Full Code Here

/*  361 */     TypeBinding beanFactoryType = schemaBinding.getType(beanFactoryTypeQName);
/*  362 */     beanFactoryType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  366 */         return new GenericBeanFactoryMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*  371 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)o;
/*  372 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/*  374 */           String localName = attrs.getLocalName(i);
/*  375 */           if ("name".equals(localName))
/*  376 */             bean.setName(attrs.getValue(i));
/*  377 */           else if ("class".equals(localName))
/*  378 */             bean.setBeanClass(attrs.getValue(i));
/*  379 */           else if ("mode".equals(localName))
/*  380 */             bean.setMode(new ControllerMode(attrs.getValue(i)));
/*      */         }
/*      */       }
/*      */     });
/*  386 */     beanType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  390 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  391 */         AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData)child;
/*  392 */         bean.setClassLoader(classloader);
/*      */       }
/*      */     });
/*  397 */     beanFactoryType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  401 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/*  402 */         AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData)child;
/*  403 */         bean.setClassLoader(classloader);
/*      */       }
/*      */     });
/*  408 */     beanType.pushInterceptor(constructorQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  412 */         AbstractBeanMetaData bean = (AbstractBeanMetaData)parent;
/*  413 */         AbstractConstructorMetaData constructor = (AbstractConstructorMetaData)child;
/*  414 */         bean.setConstructor(constructor);
/*      */       }
/*      */     });
/*  419 */     beanFactoryType.pushInterceptor(constructorQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  423 */         GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData)parent;
/*  424 */         AbstractConstructorMetaData constructor = (AbstractConstructorMetaData)child;
/*  425 */         bean.setBeanConstructor(constructor);
/*      */       }
/*      */     });
/*  430 */     TypeBinding classloaderType = schemaBinding.getType(classloaderTypeQName);
/*  431 */     configureValueBindings(classloaderType);
/*  432 */     classloaderType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  436 */         return new AbstractClassLoaderMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*      */       }
/*      */     });
/*  445 */     TypeBinding constructorType = schemaBinding.getType(constructorTypeQName);
/*  446 */     constructorType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  450 */         return new AbstractConstructorMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*  455 */         AbstractConstructorMetaData constructor = (AbstractConstructorMetaData)o;
/*  456 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/*  458 */           String localName = attrs.getLocalName(i);
/*  459 */           if ("factoryClass".equals(localName))
/*  460 */             constructor.setFactoryClass(attrs.getValue(i));
/*  461 */           else if ("factoryMethod".equals(localName))
/*  462 */             constructor.setFactoryMethod(attrs.getValue(i));
/*      */         }
/*      */       }
/*      */     });
/*  468 */     constructorType.pushInterceptor(factoryQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  472 */         AbstractConstructorMetaData constructor = (AbstractConstructorMetaData)parent;
/*  473 */         AbstractDependencyValueMetaData factory = (AbstractDependencyValueMetaData)child;
/*  474 */         constructor.setFactory(factory);
/*      */       }
/*      */     });
/*  479 */     constructorType.pushInterceptor(parameterQName, new DefaultElementInterceptor()
/*      */     {
/*      */       public void add(Object parent, Object child, QName name)
/*      */       {
/*  483 */         AbstractConstructorMetaData constructor = (AbstractConstructorMetaData)parent;
/*  484 */         AbstractParameterMetaData parameter = (AbstractParameterMetaData)child;
/*  485 */         List parameters = constructor.getParameters();
/*  486 */         if (parameters == null)
/*      */         {
/*  488 */           parameters = new ArrayList();
/*  489 */           constructor.setParameters(parameters);
/*      */         }
/*  491 */         parameter.setIndex(parameters.size());
/*  492 */         parameters.add(parameter);
/*      */       }
/*      */     });
/*  497 */     TypeBinding parameterType = schemaBinding.getType(parameterTypeQName);
/*  498 */     configureValueBindings(parameterType);
/*  499 */     parameterType.setHandler(new DefaultElementHandler()
/*      */     {
/*      */       public Object startElement(Object parent, QName name, ElementBinding element)
/*      */       {
/*  503 */         return new AbstractParameterMetaData();
/*      */       }
/*      */
/*      */       public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
/*      */       {
/*  508 */         AbstractParameterMetaData parameter = (AbstractParameterMetaData)o;
/*  509 */         for (int i = 0; i < attrs.getLength(); i++)
/*      */         {
/*  511 */           String localName = attrs.getLocalName(i);
/*  512 */           if ("class".equals(localName)) {
/*  513 */             parameter.setType(attrs.getValue(i)); } else {
/*  514 */             if ((!"replace".equals(localName)) && (!"trim".equals(localName)))
/*      */               continue;
/*  516 */             org.jboss.beans.metadata.spi.ValueMetaData vmd = parameter.getValue();
/*      */             StringValueMetaData stringValueMetaData;
/*      */             StringValueMetaData stringValueMetaData;
/*  518 */             if ((vmd != null) && ((vmd instanceof StringValueMetaData))) {
/*  519 */               stringValueMetaData = (StringValueMetaData)vmd;
/*      */             }
/*      */             else {
/*  522 */               stringValueMetaData = new StringValueMetaData();
/*  523 */               parameter.setValue(stringValueMetaData);
/*      */             }
/*  525 */             if ("replace".equals(localName))
/*  526 */               stringValueMetaData.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
/*  527 */             else if ("trim".equals(localName))
/*  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);
View Full Code Here

      }
   }

   public Object endElement(Object o, QName qName, ElementBinding element)
   {
      GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) o;
      if (bean.getBeanClass() == null)
      {
         PropertyMetaData property = bean.getProperty("constructor");
         if (property == null)
            throw new IllegalArgumentException("BeanFactory should have a class attribute or a constructor element.");
         ValueMetaData value = property.getValue();
         if (value == null)
            throw new IllegalArgumentException("BeanFactory should have a class attribute or a constructor element.");
View Full Code Here

   /** The interceptor */
   public static final BeanFactoryPropertyInterceptor INTERCEPTOR = new BeanFactoryPropertyInterceptor();

   public void add(Object parent, Object child, QName name)
   {
      GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
      AbstractPropertyMetaData property = (AbstractPropertyMetaData) child;
      bean.addBeanProperty(property);
   }
View Full Code Here

      TypeBinding beanFactoryType = schemaBinding.getType(beanFactoryTypeQName);
      beanFactoryType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new GenericBeanFactoryMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("name".equals(localName))
                  bean.setName(attrs.getValue(i));
               else if ("class".equals(localName))
                  bean.setBeanClass(attrs.getValue(i));
               else if ("mode".equals(localName))
                  bean.setMode(new ControllerMode(attrs.getValue(i)));
            }
         }
      });

      // bean has a classloader
      beanType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
            bean.setClassLoader(classloader);
         }
      });

      // beanfactory has a classloader
      beanFactoryType.pushInterceptor(classloaderQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
            AbstractClassLoaderMetaData classloader = (AbstractClassLoaderMetaData) child;
            bean.setClassLoader(classloader);
         }
      });

      // bean has a constructor
      beanType.pushInterceptor(constructorQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractBeanMetaData bean = (AbstractBeanMetaData) parent;
            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) child;
            bean.setConstructor(constructor);
         }
      });

      // beanfactory has a constructor
      beanFactoryType.pushInterceptor(constructorQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            GenericBeanFactoryMetaData bean = (GenericBeanFactoryMetaData) parent;
            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) child;
            bean.setBeanConstructor(constructor);
         }
      });

      // classloader binding
      TypeBinding classloaderType = schemaBinding.getType(classloaderTypeQName);
      configureValueBindings(classloaderType);
      classloaderType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractClassLoaderMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
         }
      });

      // constructor binding
      TypeBinding constructorType = schemaBinding.getType(constructorTypeQName);
      constructorType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractConstructorMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("factoryClass".equals(localName))
                  constructor.setFactoryClass(attrs.getValue(i));
               else if ("factoryMethod".equals(localName))
                  constructor.setFactoryMethod(attrs.getValue(i));
            }
         }
      });

      // constructor has a factory
      constructorType.pushInterceptor(factoryQName, new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            AbstractConstructorMetaData constructor = (AbstractConstructorMetaData) parent;
            AbstractDependencyValueMetaData factory = (AbstractDependencyValueMetaData) child;
            constructor.setFactory(factory);
         }
      });

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

      // parameter binding
      TypeBinding parameterType = schemaBinding.getType(parameterTypeQName);
      configureValueBindings(parameterType);
      parameterType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new AbstractParameterMetaData();
         }

         public void attributes(Object o, QName elementName, ElementBinding element, Attributes attrs, NamespaceContext nsCtx)
         {
            AbstractParameterMetaData parameter = (AbstractParameterMetaData) o;
            for (int i = 0; i < attrs.getLength(); ++i)
            {
               String localName = attrs.getLocalName(i);
               if ("class".equals(localName))
                  parameter.setType(attrs.getValue(i));
               else if ("replace".equals(localName) || "trim".equals(localName))
               {
                  ValueMetaData vmd = parameter.getValue();
                  StringValueMetaData stringValueMetaData;
                  if (vmd != null && vmd instanceof StringValueMetaData)
                     stringValueMetaData = (StringValueMetaData)vmd;
                  else
                  {
                     stringValueMetaData = new StringValueMetaData();
                     parameter.setValue(stringValueMetaData);
                  }
                  if ("replace".equals(localName))
                     stringValueMetaData.setReplace(Boolean.parseBoolean(attrs.getValue(i)));
                  else if ("trim".equals(localName))
                     stringValueMetaData.setTrim(Boolean.parseBoolean(attrs.getValue(i)));
               }
            }
         }
      });
     
      // 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)
         {
            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));
               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)
         {
            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);
         }
      });
View Full Code Here

TOP

Related Classes of org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData

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.