Package org.aspectj.weaver

Examples of org.aspectj.weaver.ResolvedMemberImpl


    if (ret == null) {
      int mods = mg.getAccessFlags();
      if (mg.getEnclosingClass().isInterface()) {
        mods |= Modifier.INTERFACE;
      }
      return new ResolvedMemberImpl(kind, UnresolvedType.forName(mg.getClassName()), mods, fromBcel(mg.getReturnType()), mg
          .getName(), fromBcel(mg.getArgumentTypes()));
    } else {
      return ret;
    }
View Full Code Here


    int pos = 0;

    ResolvedMember whatToBridgeTo = whatToBridgeToMethodGen.getMemberView();

    if (whatToBridgeTo == null) {
      whatToBridgeTo = new ResolvedMemberImpl(Member.METHOD, whatToBridgeToMethodGen.getEnclosingClass().getType(),
          whatToBridgeToMethodGen.getAccessFlags(), whatToBridgeToMethodGen.getName(),
          whatToBridgeToMethodGen.getSignature());
    }
    // The bridge method in this type will have the same signature as the one in the supertype
    LazyMethodGen bridgeMethod = makeBridgeMethod(clazz, theBridgeMethod);
View Full Code Here

              kind = Member.STATIC_INITIALIZATION;
            } else {
              kind = Member.METHOD;
            }
          }
          return new ResolvedMemberImpl(kind,
                  UnresolvedType.forName(mg.getClassName()),
                  mods,
                  fromBcel(mg.getReturnType()),
                  mg.getName(),
                  fromBcel(mg.getArgumentTypes())
View Full Code Here

    ResolvedMember whatToBridgeTo = whatToBridgeToMethodGen.getMemberView();
   
    if (whatToBridgeTo==null) {
      whatToBridgeTo =
        new ResolvedMemberImpl(Member.METHOD,
        whatToBridgeToMethodGen.getEnclosingClass().getType(),
        whatToBridgeToMethodGen.getAccessFlags(),
        whatToBridgeToMethodGen.getName(),
        whatToBridgeToMethodGen.getSignature());
    }
View Full Code Here

         localCflowField = (ResolvedMember)field; // Use the one we already have
        
      } else {
       
        // Create a counter field in the aspect
        localCflowField = new ResolvedMemberImpl(Member.FIELD,concreteAspect,Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL,
          NameMangler.cflowCounter(xcut),UnresolvedType.forName(NameMangler.CFLOW_COUNTER_TYPE).getSignature());
      
        // Create type munger to add field to the aspect
        concreteAspect.crosscuttingMembers.addTypeMunger(world.makeCflowCounterFieldAdder(localCflowField));
     
        // Create shadow munger to push stuff onto the stack
        concreteAspect.crosscuttingMembers.addConcreteShadowMunger(
        Advice.makeCflowEntry(world,concreteEntry,isBelow,localCflowField,freeVars==null?0:freeVars.length,innerCflowEntries,inAspect));
     
      putCflowfield(concreteEntry,concreteAspect,localCflowField); // Remember it
        }
       
      Pointcut ret = new ConcreteCflowPointcut(localCflowField, null,true);
      ret.copyLocationFrom(this);
      return ret;
    } else {

      List slots = new ArrayList();
     
      for (int i=0, len=freeVars.length; i < len; i++) {
        int freeVar = freeVars[i];
       
        // we don't need to keep state that isn't actually exposed to advice
        //??? this means that we will store some state that we won't actually use, optimize this later
        if (!bindings.hasKey(freeVar)) continue;
       
        int formalIndex = bindings.get(freeVar);
       
        // We need to look in the right place for the type of the formal.  Suppose the advice looks like this:
        //  before(String s):  somePointcut(*,s)
        // where the first argument in somePointcut is of type Number
        // for free variable 0 we want to ask the pointcut for the type of its first argument, if we only
        // ask the advice for the type of its first argument then we'll get the wrong type (pr86903)
       
        ResolvedPointcutDefinition enclosingDef = bindings.peekEnclosingDefinition();
        ResolvedType formalType = null;
       
        // Is there a useful enclosing pointcut?
        if (enclosingDef!=null && enclosingDef.getParameterTypes().length>0) {
          formalType = enclosingDef.getParameterTypes()[freeVar].resolve(world);
        } else {
          formalType = bindings.getAdviceSignature().getParameterTypes()[formalIndex].resolve(world);
        }
       
        ConcreteCflowPointcut.Slot slot =
          new ConcreteCflowPointcut.Slot(formalIndex, formalType, i);
        slots.add(slot);
      }
      ResolvedMember localCflowField = null;
      if (field != null) {
        localCflowField = (ResolvedMember)field;
      } else {
         
        localCflowField = new ResolvedMemberImpl(
        Member.FIELD, concreteAspect, Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL,
            NameMangler.cflowStack(xcut),
            UnresolvedType.forName(NameMangler.CFLOW_STACK_TYPE).getSignature());
        //System.out.println("adding field to: " + inAspect + " field " + cflowField);
           
View Full Code Here

  public PerClause concretize(ResolvedType inAspect) {
    PerCflow ret = new PerCflow(entry, isBelow);
    ret.inAspect = inAspect;
    if (inAspect.isAbstract()) return ret;
   
    Member cflowStackField = new ResolvedMemberImpl(
      Member.FIELD, inAspect, Modifier.STATIC|Modifier.PUBLIC|Modifier.FINAL,
            UnresolvedType.forName(NameMangler.CFLOW_STACK_TYPE), NameMangler.PERCFLOW_FIELD_NAME, UnresolvedType.NONE);
           
    World world = inAspect.getWorld();
   
View Full Code Here

    if (interTypeScope==null) return null; // We encountered a problem building the scope, don't continue - error already reported

   
    // Build a half correct resolvedmember (makeResolvedMember understands tvars) then build a fully correct sig from it
    ResolvedMember sigtemp = world.makeResolvedMemberForITD(binding,onTypeBinding,interTypeScope.getRecoveryAliases());
    ResolvedMember sig = new ResolvedMemberImpl(Member.FIELD,declaringType,declaredModifiers,
                          sigtemp.getReturnType(),new String(declaredSelector),UnresolvedType.NONE);
    sig.setTypeVariables(sigtemp.getTypeVariables());
   
    NewFieldTypeMunger myMunger = new NewFieldTypeMunger(sig, null,typeVariableAliases);
    setMunger(myMunger);
    ResolvedType aspectType = world.fromEclipse(classScope.referenceContext.binding);
    ResolvedMember me =
View Full Code Here

    if (expr instanceof FalseLiteral) {
      return IfPointcut.makeIfFalsePointcut(Pointcut.SYMBOLIC);
    } else if (expr instanceof TrueLiteral) {
      return IfPointcut.makeIfTruePointcut(Pointcut.SYMBOLIC);
    } else {
      pointcut = new IfPointcut(new ResolvedMemberImpl(Member.METHOD, UnresolvedType.OBJECT, 0, "if_", "()V"), 0);
    }
    return pointcut;
   
  }
View Full Code Here

      ThisJoinPointVisitor tjp = new ThisJoinPointVisitor(this);
      ifPointcut.extraParameterFlags |= tjp.removeUnusedExtraArguments();
     
      //XXX this is where we should remove unavailable args if we're in a cflow
      EclipseFactory factory = EclipseFactory.fromScopeLookupEnvironment(scope);
      ifPointcut.testMethod = new ResolvedMemberImpl(
        Member.METHOD,
        factory.fromBinding(binding.declaringClass),
        this.modifiers, ResolvedType.BOOLEAN, 
        new String(this.selector),
        factory.fromBindings(this.binding.parameters));
View Full Code Here

    ret.setGenericSignatureInformationProvider(createGenericSignatureProvider(inWorld));
    return ret;
  }
 
  public static ResolvedMember createStaticInitMember(Class forType, World inWorld) {
    return new ResolvedMemberImpl(org.aspectj.weaver.Member.STATIC_INITIALIZATION,
        toResolvedType(forType,(ReflectionWorld)inWorld),
        Modifier.STATIC,
        ResolvedType.VOID,
        "<clinit>",
        new UnresolvedType[0],
View Full Code Here

TOP

Related Classes of org.aspectj.weaver.ResolvedMemberImpl

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.