Package org.jboss.aop.microcontainer.beans.beanmetadatafactory

Source Code of org.jboss.aop.microcontainer.beans.beanmetadatafactory.LifecycleBeanMetaDataFactory

/*     */ package org.jboss.aop.microcontainer.beans.beanmetadatafactory;
/*     */
/*     */ import java.util.ArrayList;
/*     */ import java.util.HashSet;
/*     */ import java.util.Iterator;
/*     */ import java.util.List;
/*     */ import org.jboss.aop.microcontainer.beans.LifecycleBinding;
/*     */ import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
/*     */ import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
/*     */ import org.jboss.beans.metadata.spi.BeanMetaData;
/*     */ import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
/*     */ import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
/*     */ import org.jboss.beans.metadata.spi.PropertyMetaData;
/*     */ import org.jboss.dependency.spi.ControllerState;
/*     */
/*     */ public abstract class LifecycleBeanMetaDataFactory extends AspectManagerAwareBeanMetaDataFactory
/*     */   implements BeanMetaDataFactory
/*     */ {
/*     */   private static final long serialVersionUID = 1L;
/*     */   private String classes;
/*     */   private String expr;
/*     */   private String installMethod;
/*     */   private String uninstallMethod;
/*  53 */   HashSet<PropertyMetaData> properties = new HashSet();
/*     */
/*     */   public void setClasses(String classes)
/*     */   {
/*  57 */     this.classes = classes;
/*     */   }
/*     */
/*     */   public void setExpr(String classes)
/*     */   {
/*  62 */     this.expr = classes;
/*     */   }
/*     */
/*     */   public void setInstallMethod(String installMethod)
/*     */   {
/*  67 */     this.installMethod = installMethod;
/*     */   }
/*     */
/*     */   public void setUninstallMethod(String uninstallMethod)
/*     */   {
/*  72 */     this.uninstallMethod = uninstallMethod;
/*     */   }
/*     */
/*     */   protected abstract ControllerState getState();
/*     */
/*     */   public List<BeanMetaData> getBeans() {
/*  79 */     ArrayList result = new ArrayList();
/*     */
/*  82 */     AbstractBeanMetaData lifecycle = new AbstractBeanMetaData();
/*  83 */     lifecycle.setName(this.name);
/*  84 */     lifecycle.setBean(getBeanClass());
/*  85 */     for (PropertyMetaData pmd : this.properties)
/*     */     {
/*  87 */       lifecycle.addProperty(pmd);
/*     */     }
/*  89 */     lifecycle.setDepends(getDepends());
/*  90 */     result.add(lifecycle);
/*     */
/*  93 */     String aspectBindingName = this.name + "$AspectBinding";
/*  94 */     AbstractBeanMetaData aspectBinding = new AbstractBeanMetaData();
/*  95 */     aspectBinding.setName(aspectBindingName);
/*  96 */     aspectBinding.setBean(LifecycleBinding.class.getName());
/*     */
/*  98 */     BeanMetaDataUtil.setSimpleProperty(aspectBinding, "callbackBean", this.name);
/*  99 */     this.util.setAspectManagerProperty(aspectBinding, "manager");
/* 100 */     if (this.expr != null)
/*     */     {
/* 102 */       BeanMetaDataUtil.setSimpleProperty(aspectBinding, "expr", this.expr);
/*     */     }
/* 104 */     else if (this.classes != null)
/*     */     {
/* 106 */       BeanMetaDataUtil.setSimpleProperty(aspectBinding, "classes", this.classes);
/*     */     }
/* 108 */     BeanMetaDataUtil.setSimpleProperty(aspectBinding, "state", getState());
/* 109 */     if (this.installMethod != null)
/*     */     {
/* 111 */       BeanMetaDataUtil.setSimpleProperty(aspectBinding, "installMethod", this.installMethod);
/*     */     }
/* 113 */     if (this.uninstallMethod != null)
/*     */     {
/* 115 */       BeanMetaDataUtil.setSimpleProperty(aspectBinding, "uninstallMethod", this.uninstallMethod);
/*     */     }
/* 117 */     result.add(aspectBinding);
/*     */
/* 119 */     return result;
/*     */   }
/*     */
/*     */   protected boolean hasInjectedBeans()
/*     */   {
/* 125 */     ArrayList dependencies = new ArrayList();
/* 126 */     getDependencies(dependencies, this);
/*     */
/* 128 */     for (AbstractDependencyValueMetaData dep : dependencies)
/*     */     {
/* 130 */       if (!((String)dep.getValue()).startsWith("jboss.kernel:service="))
/*     */       {
/* 132 */         return true;
/*     */       }
/*     */     }
/* 135 */     return false;
/*     */   }
/*     */
/*     */   private void getDependencies(ArrayList<AbstractDependencyValueMetaData> dependencies, MetaDataVisitorNode node)
/*     */   {
/* 140 */     Iterator children = node.getChildren();
/*     */
/* 142 */     if (children != null)
/*     */     {
/* 144 */       while (children.hasNext())
/*     */       {
/* 146 */         MetaDataVisitorNode child = (MetaDataVisitorNode)children.next();
/* 147 */         if ((child instanceof AbstractDependencyValueMetaData))
/*     */         {
/* 149 */           dependencies.add((AbstractDependencyValueMetaData)child);
/*     */         }
/* 151 */         getDependencies(dependencies, child);
/*     */       }
/*     */     }
/*     */   }
/*     */
/*     */   public void addBeanProperty(PropertyMetaData property)
/*     */   {
/* 159 */     this.properties.add(property);
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.aop.microcontainer.beans.beanmetadatafactory.LifecycleBeanMetaDataFactory
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.aop.microcontainer.beans.beanmetadatafactory.LifecycleBeanMetaDataFactory

TOP
Copyright © 2018 www.massapi.com. 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.