Package org.jboss.aop

Source Code of org.jboss.aop.Domain

/*      */ package org.jboss.aop;
/*      */
/*      */ import java.security.AccessController;
/*      */ import java.security.PrivilegedAction;
/*      */ import java.util.ArrayList;
/*      */ import java.util.HashMap;
/*      */ import java.util.LinkedHashMap;
/*      */ import java.util.List;
/*      */ import java.util.Map;
/*      */ import org.jboss.aop.advice.AdviceBinding;
/*      */ import org.jboss.aop.advice.AdviceStack;
/*      */ import org.jboss.aop.advice.AspectDefinition;
/*      */ import org.jboss.aop.advice.InterceptorFactory;
/*      */ import org.jboss.aop.advice.PrecedenceDef;
/*      */ import org.jboss.aop.introduction.AnnotationIntroduction;
/*      */ import org.jboss.aop.introduction.InterfaceIntroduction;
/*      */ import org.jboss.aop.metadata.ClassMetaDataBinding;
/*      */ import org.jboss.aop.metadata.ClassMetaDataLoader;
/*      */ import org.jboss.aop.microcontainer.lifecycle.LifecycleCallbackBinding;
/*      */ import org.jboss.aop.pointcut.CFlowStack;
/*      */ import org.jboss.aop.pointcut.DynamicCFlow;
/*      */ import org.jboss.aop.pointcut.Pointcut;
/*      */ import org.jboss.aop.pointcut.PointcutStats;
/*      */ import org.jboss.aop.pointcut.Typedef;
/*      */ import org.jboss.aop.pointcut.ast.ClassExpression;
/*      */
/*      */ public class Domain extends AspectManager
/*      */ {
/*      */   String name;
/*      */   protected AspectManager parent;
/*      */   protected boolean parentFirst;
/*   61 */   protected boolean inheritsDeclarations = true;
/*   62 */   protected boolean inheritsBindings = false;
/*      */   protected boolean hasOwnPointcuts;
/*      */   protected boolean hasOwnBindings;
/*      */   protected boolean hasOwnAnnotationIntroductions;
/*      */   protected boolean hasOwnAnnotationOverrides;
/*      */   protected boolean hasOwnInterfaceIntroductions;
/*      */   protected boolean hasOwnTypedefs;
/*      */   protected boolean hasOwnPrecedenceDefs;
/*      */   protected boolean hasOwnClassMetaData;
/*      */   private static int sequenceNumber;
/*      */
/*      */   public Domain(AspectManager manager, String name, boolean parentFirst)
/*      */   {
/*   78 */     this.parent = manager;
/*   79 */     this.parentFirst = parentFirst;
/*   80 */     this.name = name;
/*   81 */     manager.addSubDomainByName(this);
/*      */   }
/*      */
/*      */   public boolean isValid()
/*      */   {
/*   87 */     return true;
/*      */   }
/*      */
/*      */   public String getDomainName()
/*      */   {
/*   92 */     return this.name;
/*      */   }
/*      */
/*      */   public String getManagerFQN()
/*      */   {
/*   97 */     return this.parent.getManagerFQN() + this.name + "/";
/*      */   }
/*      */
/*      */   public static String getDomainName(Class clazz, boolean forInstance)
/*      */   {
/*  102 */     String name = (String)AccessController.doPrivileged(new PrivilegedAction(clazz, forInstance)
/*      */     {
/*      */       public Object run()
/*      */       {
/*  106 */         StringBuffer sb = new StringBuffer();
/*  107 */         sb.append(this.val$clazz.getName());
/*  108 */         sb.append("_");
/*  109 */         sb.append(System.identityHashCode(this.val$clazz.getClassLoader()));
/*      */
/*  111 */         if (this.val$forInstance)
/*      */         {
/*  113 */           sb.append("_");
/*  114 */           sb.append(Domain.access$000());
/*      */         }
/*  116 */         return sb.toString();
/*      */       }
/*      */     });
/*  119 */     return name;
/*      */   }
/*      */
/*      */   private static synchronized int getNextSequenceNumber()
/*      */   {
/*  124 */     return sequenceNumber++;
/*      */   }
/*      */
/*      */   public void setInheritsDeclarations(boolean inheritsDeclarations)
/*      */   {
/*  133 */     this.inheritsDeclarations = inheritsDeclarations;
/*      */   }
/*      */
/*      */   public void setInheritsBindings(boolean inheritBindings)
/*      */   {
/*  138 */     this.inheritsBindings = inheritBindings;
/*  139 */     if (this.inheritsBindings)
/*      */     {
/*  141 */       this.parent.subscribeSubDomain(this);
/*      */     }
/*      */     else
/*      */     {
/*  145 */       this.parent.unsubscribeSubDomain(this);
/*      */     }
/*      */   }
/*      */
/*      */   public LinkedHashMap getBindings()
/*      */   {
/*  152 */     if (this.inheritsBindings)
/*      */     {
/*  154 */       if (!this.parentFirst)
/*      */       {
/*  157 */         LinkedHashMap parentBindings = this.parent.getBindings();
/*  158 */         LinkedHashMap map = null;
/*  159 */         synchronized (this.parent.getBindings())
/*      */         {
/*  161 */           map = new LinkedHashMap(this.parent.getBindings());
/*  162 */           map.putAll(this.bindings);
/*      */         }
/*  164 */         return map;
/*      */       }
/*      */
/*  168 */       LinkedHashMap bindings = this.bindings;
/*  169 */       LinkedHashMap parentBindings = this.parent.getBindings();
/*  170 */       LinkedHashMap map = null;
/*  171 */       synchronized (bindings) {
/*  172 */         map = new LinkedHashMap(bindings);
/*  173 */         map.putAll(parentBindings);
/*      */       }
/*  175 */       return map;
/*      */     }
/*      */
/*  178 */     return (LinkedHashMap)super.getBindings();
/*      */   }
/*      */
/*      */   public boolean hasOwnBindings()
/*      */   {
/*  183 */     return this.hasOwnBindings;
/*      */   }
/*      */
/*      */   public synchronized void addBinding(AdviceBinding binding)
/*      */   {
/*  189 */     this.hasOwnPointcuts = true;
/*  190 */     this.hasOwnBindings = true;
/*  191 */     super.addBinding(binding);
/*      */   }
/*      */
/*      */   public synchronized void removeBinding(String name)
/*      */   {
/*  197 */     super.removeBinding(name);
/*  198 */     this.hasOwnBindings = (this.bindings.size() > 0);
/*      */   }
/*      */
/*      */   public synchronized void removeBindings(ArrayList binds)
/*      */   {
/*  204 */     super.removeBindings(binds);
/*  205 */     this.hasOwnBindings = (this.bindings.size() > 0);
/*  206 */     this.hasOwnPointcuts = (this.bindings.size() > 0);
/*      */   }
/*      */
/*      */   public LinkedHashMap getPointcuts()
/*      */   {
/*  211 */     if (this.inheritsBindings)
/*      */     {
/*  213 */       if (!this.parentFirst)
/*      */       {
/*  216 */         LinkedHashMap map = new LinkedHashMap(this.parent.getPointcuts());
/*  217 */         map.putAll(this.pointcuts);
/*  218 */         return map;
/*      */       }
/*      */
/*  222 */       LinkedHashMap map = new LinkedHashMap(this.pointcuts);
/*  223 */       map.putAll(this.parent.getPointcuts());
/*  224 */       return map;
/*      */     }
/*      */
/*  227 */     return super.getPointcuts();
/*      */   }
/*      */
/*      */   public boolean hasOwnPointcuts()
/*      */   {
/*  232 */     return this.hasOwnPointcuts;
/*      */   }
/*      */
/*      */   public synchronized void addPointcut(Pointcut pointcut)
/*      */   {
/*  238 */     this.hasOwnPointcuts = true;
/*  239 */     super.addPointcut(pointcut);
/*      */   }
/*      */
/*      */   public void removePointcut(String name)
/*      */   {
/*  245 */     super.removePointcut(name);
/*  246 */     this.hasOwnPointcuts = (this.pointcuts.size() > 0);
/*      */   }
/*      */
/*      */   public LinkedHashMap getPointcutInfos()
/*      */   {
/*  252 */     if (this.inheritsBindings)
/*      */     {
/*  254 */       if (!this.parentFirst)
/*      */       {
/*  257 */         LinkedHashMap map = new LinkedHashMap(this.parent.getPointcutInfos());
/*  258 */         map.putAll(this.pointcutInfos);
/*  259 */         return map;
/*      */       }
/*      */
/*  263 */       LinkedHashMap map = new LinkedHashMap(this.pointcutInfos);
/*  264 */       map.putAll(this.parent.getPointcutInfos());
/*  265 */       return map;
/*      */     }
/*      */
/*  268 */     return super.getPointcutInfos();
/*      */   }
/*      */
/*      */   public List getAnnotationIntroductions()
/*      */   {
/*  275 */     if (this.inheritsBindings)
/*      */     {
/*  277 */       List result = new ArrayList();
/*  278 */       if (!this.parentFirst)
/*      */       {
/*  281 */         result.addAll(this.parent.getAnnotationIntroductions());
/*  282 */         synchronized (this.annotationIntroductions)
/*      */         {
/*  284 */           result = new ArrayList(this.annotationIntroductions.values());
/*      */         }
/*  286 */         return result;
/*      */       }
/*      */
/*  290 */       synchronized (this.annotationIntroductions)
/*      */       {
/*  292 */         result = new ArrayList(this.annotationIntroductions.values());
/*      */       }
/*  294 */       result.addAll(this.parent.getAnnotationIntroductions());
/*  295 */       return result;
/*      */     }
/*      */
/*  299 */     return super.getAnnotationIntroductions();
/*      */   }
/*      */
/*      */   public Map getArrayReplacements()
/*      */   {
/*  304 */     if (this.inheritsBindings)
/*      */     {
/*  306 */       HashMap map = new HashMap();
/*  307 */       if (!this.parentFirst)
/*      */       {
/*  310 */         map.putAll(this.parent.getArrayReplacements());
/*  311 */         synchronized (this.arrayReplacements)
/*      */         {
/*  313 */           map.putAll(this.arrayReplacements);
/*      */         }
/*  315 */         return map;
/*      */       }
/*      */
/*  319 */       synchronized (this.arrayReplacements)
/*      */       {
/*  321 */         map.putAll(this.arrayReplacements);
/*      */       }
/*  323 */       map.putAll(this.parent.getArrayReplacements());
/*  324 */       return map;
/*      */     }
/*      */
/*  327 */     return super.getArrayReplacements();
/*      */   }
/*      */
/*      */   public boolean hasOwnAnnotationIntroductions()
/*      */   {
/*  333 */     return this.hasOwnAnnotationIntroductions;
/*      */   }
/*      */
/*      */   public synchronized void addAnnotationIntroduction(AnnotationIntroduction pointcut)
/*      */   {
/*  339 */     this.hasOwnAnnotationIntroductions = true;
/*  340 */     super.addAnnotationIntroduction(pointcut);
/*      */   }
/*      */
/*      */   public void removeAnnotationIntroduction(AnnotationIntroduction pointcut)
/*      */   {
/*  346 */     super.removeAnnotationIntroduction(pointcut);
/*  347 */     this.hasOwnAnnotationIntroductions = (this.annotationIntroductions.size() > 0);
/*      */   }
/*      */
/*      */   public List getAnnotationOverrides()
/*      */   {
/*  353 */     if (this.inheritsBindings)
/*      */     {
/*  355 */       ArrayList list = new ArrayList();
/*  356 */       if (!this.parentFirst)
/*      */       {
/*  359 */         list.addAll(this.parent.getAnnotationOverrides());
/*  360 */         synchronized (this.annotationOverrides)
/*      */         {
/*  362 */           list.addAll(this.annotationOverrides.values());
/*      */         }
/*  364 */         return list;
/*      */       }
/*      */
/*  368 */       synchronized (this.annotationOverrides)
/*      */       {
/*  370 */         list.addAll(this.annotationOverrides.values());
/*      */       }
/*  372 */       list.addAll(this.parent.getAnnotationOverrides());
/*  373 */       return list;
/*      */     }
/*      */
/*  376 */     return super.getAnnotationOverrides();
/*      */   }
/*      */
/*      */   public boolean hasOwnAnnotationOverrides()
/*      */   {
/*  381 */     return this.hasOwnAnnotationOverrides;
/*      */   }
/*      */
/*      */   public synchronized void addAnnotationOverride(AnnotationIntroduction pointcut)
/*      */   {
/*  387 */     this.hasOwnAnnotationOverrides = true;
/*  388 */     super.addAnnotationOverride(pointcut);
/*      */   }
/*      */
/*      */   public void removeAnnotationOverride(AnnotationIntroduction pointcut)
/*      */   {
/*  394 */     super.removeAnnotationOverride(pointcut);
/*  395 */     this.hasOwnAnnotationOverrides = (this.annotationOverrides.size() > 0);
/*      */   }
/*      */
/*      */   public Map getInterfaceIntroductions()
/*      */   {
/*  401 */     if (this.inheritsBindings)
/*      */     {
/*  403 */       HashMap map = new HashMap();
/*  404 */       if (!this.parentFirst)
/*      */       {
/*  407 */         map.putAll(this.parent.getInterfaceIntroductions());
/*  408 */         synchronized (this.interfaceIntroductions)
/*      */         {
/*  410 */           map.putAll(this.interfaceIntroductions);
/*      */         }
/*  412 */         return map;
/*      */       }
/*      */
/*  416 */       synchronized (this.interfaceIntroductions)
/*      */       {
/*  418 */         map.putAll(this.interfaceIntroductions);
/*      */       }
/*  420 */       map.putAll(this.parent.getInterfaceIntroductions());
/*  421 */       return map;
/*      */     }
/*      */
/*  424 */     return super.getInterfaceIntroductions();
/*      */   }
/*      */
/*      */   public boolean hasOwnInterfaceIntroductions()
/*      */   {
/*  429 */     return this.hasOwnInterfaceIntroductions;
/*      */   }
/*      */
/*      */   public synchronized void addInterfaceIntroduction(InterfaceIntroduction pointcut)
/*      */   {
/*  435 */     this.hasOwnInterfaceIntroductions = true;
/*  436 */     super.addInterfaceIntroduction(pointcut);
/*      */   }
/*      */
/*      */   public void removeInterfaceIntroduction(String name)
/*      */   {
/*  442 */     super.removeInterfaceIntroduction(name);
/*  443 */     this.hasOwnInterfaceIntroductions = (this.interfaceIntroductions.size() > 0);
/*      */   }
/*      */
/*      */   public Map getTypedefs()
/*      */   {
/*  449 */     if (this.inheritsBindings)
/*      */     {
/*  451 */       HashMap map = new HashMap();
/*  452 */       if (!this.parentFirst)
/*      */       {
/*  455 */         map.putAll(this.parent.getTypedefs());
/*  456 */         synchronized (this.typedefs)
/*      */         {
/*  458 */           map.putAll(this.typedefs);
/*      */         }
/*  460 */         return map;
/*      */       }
/*      */
/*  464 */       synchronized (this.typedefs)
/*      */       {
/*  466 */         map.putAll(this.typedefs);
/*      */       }
/*  468 */       map.putAll(this.parent.getTypedefs());
/*  469 */       return map;
/*      */     }
/*      */
/*  472 */     return super.getTypedefs();
/*      */   }
/*      */
/*      */   public boolean hasOwnTypedefs()
/*      */   {
/*  478 */     return this.hasOwnTypedefs;
/*      */   }
/*      */
/*      */   public synchronized void addTypedef(Typedef def)
/*      */     throws Exception
/*      */   {
/*  484 */     this.hasOwnTypedefs = true;
/*  485 */     super.addTypedef(def);
/*      */   }
/*      */
/*      */   public void removeTypedef(String name)
/*      */   {
/*  491 */     super.removeTypedef(name);
/*  492 */     this.hasOwnTypedefs = (this.typedefs.size() > 0);
/*      */   }
/*      */
/*      */   public Map getInterceptorStacks()
/*      */   {
/*  497 */     if (this.inheritsBindings)
/*      */     {
/*  499 */       HashMap map = new HashMap();
/*  500 */       if (!this.parentFirst)
/*      */       {
/*  503 */         map.putAll(this.parent.getInterceptorStacks());
/*  504 */         synchronized (this.interceptorStacks)
/*      */         {
/*  506 */           map.putAll(this.interceptorStacks);
/*      */         }
/*  508 */         return map;
/*      */       }
/*      */
/*  512 */       synchronized (this.interceptorStacks)
/*      */       {
/*  514 */         map.putAll(this.interceptorStacks);
/*      */       }
/*  516 */       map.putAll(this.parent.getInterceptorStacks());
/*  517 */       return map;
/*      */     }
/*      */
/*  520 */     return super.getInterceptorStacks();
/*      */   }
/*      */
/*      */   public Map getClassMetaDataLoaders()
/*      */   {
/*  525 */     if (this.inheritsBindings)
/*      */     {
/*  527 */       HashMap map = new HashMap();
/*  528 */       if (!this.parentFirst)
/*      */       {
/*  531 */         map.putAll(this.parent.getClassMetaDataLoaders());
/*  532 */         synchronized (this.classMetaDataLoaders)
/*      */         {
/*  534 */           map.putAll(this.classMetaDataLoaders);
/*      */         }
/*  536 */         return map;
/*      */       }
/*      */
/*  540 */       synchronized (this.classMetaDataLoaders)
/*      */       {
/*  542 */         map.putAll(this.classMetaDataLoaders);
/*      */       }
/*  544 */       map.putAll(this.parent.getClassMetaDataLoaders());
/*  545 */       return map;
/*      */     }
/*      */
/*  548 */     return super.getClassMetaDataLoaders();
/*      */   }
/*      */
/*      */   public Map getCflowStacks()
/*      */   {
/*  553 */     if (this.inheritsBindings)
/*      */     {
/*  555 */       HashMap map = new HashMap();
/*  556 */       if (!this.parentFirst)
/*      */       {
/*  559 */         map.putAll(this.parent.getCflowStacks());
/*  560 */         synchronized (this.cflowStacks)
/*      */         {
/*  562 */           map.putAll(this.cflowStacks);
/*      */         }
/*  564 */         return map;
/*      */       }
/*      */
/*  568 */       synchronized (this.cflowStacks)
/*      */       {
/*  570 */         map.putAll(this.cflowStacks);
/*      */       }
/*  572 */       map.putAll(this.parent.getCflowStacks());
/*  573 */       return map;
/*      */     }
/*      */
/*  576 */     return super.getCflowStacks();
/*      */   }
/*      */
/*      */   public Map getDynamicCFlows()
/*      */   {
/*  581 */     if (this.inheritsBindings)
/*      */     {
/*  583 */       HashMap map = new HashMap();
/*  584 */       if (!this.parentFirst)
/*      */       {
/*  587 */         map.putAll(this.parent.getDynamicCFlows());
/*  588 */         synchronized (this.dynamicCFlows)
/*      */         {
/*  590 */           map.putAll(this.dynamicCFlows);
/*      */         }
/*  592 */         return map;
/*      */       }
/*      */
/*  596 */       synchronized (this.dynamicCFlows)
/*      */       {
/*  598 */         map.putAll(this.dynamicCFlows);
/*      */       }
/*  600 */       map.putAll(this.parent.getDynamicCFlows());
/*  601 */       return map;
/*      */     }
/*      */
/*  604 */     return super.getDynamicCFlows();
/*      */   }
/*      */
/*      */   public Map getPerVMAspects()
/*      */   {
/*  609 */     if (this.inheritsBindings)
/*      */     {
/*  611 */       HashMap map = new HashMap();
/*  612 */       if (!this.parentFirst)
/*      */       {
/*  615 */         map.putAll(this.parent.getPerVMAspects());
/*  616 */         synchronized (this.perVMAspects)
/*      */         {
/*  618 */           map.putAll(this.perVMAspects);
/*      */         }
/*  620 */         return map;
/*      */       }
/*      */
/*  624 */       synchronized (this.perVMAspects)
/*      */       {
/*  626 */         map.putAll(this.perVMAspects);
/*      */       }
/*  628 */       map.putAll(this.parent.getPerVMAspects());
/*  629 */       return map;
/*      */     }
/*      */
/*  632 */     return super.getPerVMAspects();
/*      */   }
/*      */
/*      */   public LinkedHashMap getPrecedenceDefs()
/*      */   {
/*  638 */     if (this.inheritsDeclarations)
/*      */     {
/*  640 */       if (!this.parentFirst)
/*      */       {
/*  643 */         LinkedHashMap map = new LinkedHashMap(this.parent.getPrecedenceDefs());
/*  644 */         map.putAll(this.precedenceDefs);
/*  645 */         return map;
/*      */       }
/*      */
/*  649 */       LinkedHashMap map = new LinkedHashMap(this.precedenceDefs);
/*  650 */       map.putAll(this.parent.getPrecedenceDefs());
/*  651 */       return map;
/*      */     }
/*      */
/*  654 */     return super.getPrecedenceDefs();
/*      */   }
/*      */
/*      */   public boolean hasOwnPrecedenceDefs()
/*      */   {
/*  659 */     return this.hasOwnPrecedenceDefs;
/*      */   }
/*      */
/*      */   public void addPrecedence(PrecedenceDef precedenceDef)
/*      */   {
/*  665 */     this.hasOwnPrecedenceDefs = true;
/*  666 */     super.addPrecedence(precedenceDef);
/*      */   }
/*      */
/*      */   public void removePrecedence(String name)
/*      */   {
/*  672 */     super.removePrecedence(name);
/*  673 */     this.hasOwnPrecedenceDefs = (this.precedenceDefs.size() > 0);
/*      */   }
/*      */
/*      */   public Map getClassMetaData()
/*      */   {
/*  679 */     if (this.inheritsBindings)
/*      */     {
/*  681 */       HashMap map = new HashMap();
/*  682 */       if (!this.parentFirst)
/*      */       {
/*  685 */         map.putAll(this.parent.getClassMetaData());
/*  686 */         synchronized (this.classMetaData)
/*      */         {
/*  688 */           map.putAll(this.classMetaData);
/*      */         }
/*  690 */         return map;
/*      */       }
/*      */
/*  694 */       synchronized (this.classMetaData)
/*      */       {
/*  696 */         map.putAll(this.classMetaData);
/*      */       }
/*  698 */       map.putAll(this.parent.getClassMetaData());
/*  699 */       return map;
/*      */     }
/*      */
/*  702 */     return super.getClassMetaData();
/*      */   }
/*      */
/*      */   public boolean hasOwnClassMetaData()
/*      */   {
/*  707 */     return this.hasOwnClassMetaData;
/*      */   }
/*      */
/*      */   public void removeClassMetaData(String name)
/*      */   {
/*  713 */     super.removeClassMetaData(name);
/*  714 */     this.hasOwnClassMetaData = (this.classMetaData.size() > 0);
/*      */   }
/*      */
/*      */   public void addClassMetaData(ClassMetaDataBinding meta)
/*      */   {
/*  720 */     this.hasOwnClassMetaData = true;
/*  721 */     super.addClassMetaData(meta);
/*      */   }
/*      */
/*      */   public boolean hasOwnDataWithEffectOnAdvices()
/*      */   {
/*  726 */     return (this.hasOwnBindings) || (this.hasOwnPointcuts) || (this.hasOwnAnnotationIntroductions) || (this.hasOwnAnnotationOverrides) || (this.hasOwnInterfaceIntroductions) || (this.hasOwnTypedefs) || (this.hasOwnPrecedenceDefs) || (this.hasOwnClassMetaData);
/*      */   }
/*      */
/*      */   public InterceptorFactory getInterceptorFactory(String name)
/*      */   {
/*  738 */     InterceptorFactory factory = null;
/*  739 */     if (this.parentFirst)
/*      */     {
/*  741 */       factory = this.parent.getInterceptorFactory(name);
/*  742 */       if (factory != null) return factory;
/*      */     }
/*  744 */     factory = super.getInterceptorFactory(name);
/*      */
/*  746 */     if (factory != null) return factory;
/*  747 */     return this.parent.getInterceptorFactory(name);
/*      */   }
/*      */
/*      */   public AdviceStack getAdviceStack(String name)
/*      */   {
/*  752 */     AdviceStack factory = null;
/*  753 */     if (this.parentFirst)
/*      */     {
/*  755 */       factory = this.parent.getAdviceStack(name);
/*  756 */       if (factory != null) return factory;
/*      */     }
/*  758 */     factory = super.getAdviceStack(name);
/*      */
/*  760 */     if (factory != null) return factory;
/*  761 */     return this.parent.getAdviceStack(name);
/*      */   }
/*      */
/*      */   public Object getPerVMAspect(AspectDefinition def)
/*      */   {
/*  766 */     return getPerVMAspect(def.getName());
/*      */   }
/*      */
/*      */   public Object getPerVMAspect(String def)
/*      */   {
/*  771 */     Object factory = null;
/*  772 */     if (this.parentFirst)
/*      */     {
/*  774 */       factory = this.parent.getPerVMAspect(def);
/*  775 */       if (factory != null) return factory;
/*      */     }
/*  777 */     factory = super.getPerVMAspect(def);
/*      */
/*  779 */     if (factory != null) return factory;
/*  780 */     return this.parent.getPerVMAspect(def);
/*      */   }
/*      */
/*      */   public AspectDefinition getAspectDefinition(String name)
/*      */   {
/*  785 */     AspectDefinition factory = null;
/*  786 */     if (this.parentFirst)
/*      */     {
/*  788 */       factory = this.parent.getAspectDefinition(name);
/*  789 */       if (factory != null) return factory;
/*      */     }
/*  791 */     factory = super.getAspectDefinition(name);
/*      */
/*  793 */     if (factory != null) return factory;
/*  794 */     return this.parent.getAspectDefinition(name);
/*      */   }
/*      */
/*      */   public Typedef getTypedef(String name)
/*      */   {
/*  799 */     Typedef factory = null;
/*  800 */     if (this.parentFirst)
/*      */     {
/*  802 */       factory = this.parent.getTypedef(name);
/*  803 */       if (factory != null) return factory;
/*      */     }
/*  805 */     factory = super.getTypedef(name);
/*      */
/*  807 */     if (factory != null) return factory;
/*  808 */     return this.parent.getTypedef(name);
/*      */   }
/*      */
/*      */   public DomainDefinition getContainer(String name)
/*      */   {
/*  813 */     DomainDefinition container = null;
/*  814 */     if (this.parentFirst)
/*      */     {
/*  816 */       container = this.parent.getContainer(name);
/*  817 */       if (container != null) return container;
/*      */     }
/*  819 */     container = super.getContainer(name);
/*  820 */     if (container != null) return container;
/*  821 */     return this.parent.getContainer(name);
/*      */   }
/*      */
/*      */   public Pointcut getPointcut(String name)
/*      */   {
/*  831 */     Pointcut pointcut = null;
/*      */
/*  833 */     if (this.parentFirst)
/*      */     {
/*  835 */       pointcut = this.parent.getPointcut(name);
/*  836 */       if (pointcut != null) return pointcut;
/*      */     }
/*  838 */     pointcut = super.getPointcut(name);
/*  839 */     if (pointcut != null) return pointcut;
/*  840 */     return this.parent.getPointcut(name);
/*      */   }
/*      */
/*      */   public void attachMetaData(Advisor advisor, Class clazz)
/*      */   {
/*  846 */     if (this.inheritsBindings)
/*      */     {
/*  848 */       if (!this.parentFirst)
/*      */       {
/*  851 */         this.parent.attachMetaData(advisor, clazz);
/*  852 */         super.attachMetaData(advisor, clazz);
/*      */       }
/*      */       else
/*      */       {
/*  856 */         super.attachMetaData(advisor, clazz);
/*  857 */         this.parent.attachMetaData(advisor, clazz);
/*      */       }
/*      */     }
/*      */     else
/*      */     {
/*  862 */       super.attachMetaData(advisor, clazz);
/*      */     }
/*      */   }
/*      */
/*      */   public CFlowStack getCFlowStack(String name)
/*      */   {
/*  868 */     if (this.inheritsDeclarations)
/*      */     {
/*  870 */       if (!this.parentFirst)
/*      */       {
/*  872 */         CFlowStack cflow = super.getCFlowStack(name);
/*  873 */         if (cflow == null)
/*      */         {
/*  875 */           cflow = this.parent.getCFlowStack(name);
/*      */         }
/*  877 */         return cflow;
/*      */       }
/*      */
/*  881 */       CFlowStack cflow = this.parent.getCFlowStack(name);
/*  882 */       if (cflow == null)
/*      */       {
/*  884 */         cflow = super.getCFlowStack(name);
/*      */       }
/*  886 */       return cflow;
/*      */     }
/*      */
/*  891 */     return super.getCFlowStack(name);
/*      */   }
/*      */
/*      */   public DynamicCFlow getDynamicCFlow(String name)
/*      */   {
/*  898 */     if (this.inheritsBindings)
/*      */     {
/*  900 */       if (!this.parentFirst)
/*      */       {
/*  902 */         DynamicCFlow cflow = super.getDynamicCFlow(name);
/*  903 */         if (cflow == null)
/*      */         {
/*  905 */           cflow = this.parent.getDynamicCFlow(name);
/*      */         }
/*  907 */         return cflow;
/*      */       }
/*      */
/*  911 */       DynamicCFlow cflow = this.parent.getDynamicCFlow(name);
/*  912 */       if (cflow == null)
/*      */       {
/*  914 */         cflow = super.getDynamicCFlow(name);
/*      */       }
/*  916 */       return cflow;
/*      */     }
/*      */
/*  921 */     return super.getDynamicCFlow(name);
/*      */   }
/*      */
/*      */   public ClassMetaDataLoader findClassMetaDataLoader(String group)
/*      */   {
/*  927 */     if (this.inheritsDeclarations)
/*      */     {
/*  929 */       if (!this.parentFirst)
/*      */       {
/*  931 */         ClassMetaDataLoader loader = super.findClassMetaDataLoader(group);
/*  932 */         if (loader == null)
/*      */         {
/*  934 */           loader = this.parent.findClassMetaDataLoader(group);
/*      */         }
/*  936 */         return loader;
/*      */       }
/*      */
/*  940 */       ClassMetaDataLoader loader = this.parent.findClassMetaDataLoader(group);
/*  941 */       if (loader == null)
/*      */       {
/*  943 */         loader = super.findClassMetaDataLoader(group);
/*      */       }
/*  945 */       return loader;
/*      */     }
/*      */
/*  949 */     return super.findClassMetaDataLoader(group);
/*      */   }
/*      */
/*      */   public Map<String, LifecycleCallbackBinding> getLifecycleBindings()
/*      */   {
/*  954 */     if (this.inheritsBindings)
/*      */     {
/*  956 */       if (!this.parentFirst)
/*      */       {
/*  959 */         LinkedHashMap map = new LinkedHashMap(this.parent.getLifecycleBindings());
/*  960 */         map.putAll(super.getLifecycleBindings());
/*  961 */         return map;
/*      */       }
/*      */
/*  965 */       LinkedHashMap map = new LinkedHashMap(super.getLifecycleBindings());
/*  966 */       map.putAll(this.parent.getLifecycleBindings());
/*  967 */       return map;
/*      */     }
/*      */
/*  970 */     return super.getLifecycleBindings();
/*      */   }
/*      */
/*      */   public InterceptionMarkers getInterceptionMarkers()
/*      */   {
/*  980 */     return this.parent.getInterceptionMarkers();
/*      */   }
/*      */
/*      */   protected Map getSubDomainsPerClass()
/*      */   {
/*  986 */     return this.parent.getSubDomainsPerClass();
/*      */   }
/*      */
/*      */   public ArrayList getExclude()
/*      */   {
/*  992 */     return this.parent.getExclude();
/*      */   }
/*      */
/*      */   public ArrayList getInclude()
/*      */   {
/*  998 */     return this.parent.getInclude();
/*      */   }
/*      */
/*      */   public ArrayList getIgnore()
/*      */   {
/* 1004 */     return this.parent.getIgnore();
/*      */   }
/*      */
/*      */   public ClassExpression[] getIgnoreExpressions()
/*      */   {
/* 1010 */     return this.parent.getIgnoreExpressions();
/*      */   }
/*      */
/*      */   public DynamicAOPStrategy getDynamicAOPStrategy()
/*      */   {
/* 1015 */     return this.parent.getDynamicAOPStrategy();
/*      */   }
/*      */
/*      */   public void setDynamicAOPStrategy(DynamicAOPStrategy strategy)
/*      */   {
/* 1020 */     this.parent.setDynamicAOPStrategy(strategy);
/*      */   }
/*      */
/*      */   protected void updatePointcutStats(Pointcut pointcut)
/*      */   {
/* 1025 */     this.parent.updatePointcutStats(pointcut);
/*      */   }
/*      */
/*      */   protected void updateStats(PointcutStats stats)
/*      */   {
/* 1030 */     this.parent.updateStats(stats);
/*      */   }
/*      */
/*      */   public boolean isExecution()
/*      */   {
/* 1035 */     return this.parent.isExecution();
/*      */   }
/*      */
/*      */   public boolean isConstruction()
/*      */   {
/* 1040 */     return this.parent.isConstruction();
/*      */   }
/*      */
/*      */   public boolean isCall()
/*      */   {
/* 1045 */     return this.parent.isCall();
/*      */   }
/*      */
/*      */   public boolean isWithin()
/*      */   {
/* 1050 */     return this.parent.isWithin();
/*      */   }
/*      */
/*      */   public boolean isWithincode()
/*      */   {
/* 1055 */     return this.parent.isWithincode();
/*      */   }
/*      */
/*      */   public boolean isGet()
/*      */   {
/* 1060 */     return this.parent.isGet();
/*      */   }
/*      */
/*      */   public boolean isSet()
/*      */   {
/* 1065 */     return this.parent.isSet();
/*      */   }
/*      */ }

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

Related Classes of org.jboss.aop.Domain

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.