Package org.aspectj.org.eclipse.jdt.internal.compiler.lookup

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding


        codeStream.aload_0();
        codeStream.checkcast(interfaceType);
        codeStream.new_(binding);
        codeStream.dup();
        codeStream.invokespecial(
          new MethodBinding(0, "<init>".toCharArray(),
            BaseTypes.VoidBinding, new TypeBinding[0],
            new ReferenceBinding[0], binding));
        codeStream.invokeinterface(world.makeMethodBindingForCall(
          AjcMemberMaker.perObjectInterfaceSet(typeX)));
       
View Full Code Here


          exc.placeStart();
          codeStream.aload_0();
          codeStream.ldc(NameMangler.perTypeWithinLocalAspectOf(typeX));
          codeStream.aconst_null();
          codeStream.invokevirtual(
              new MethodBinding(
                  0,
                  "getDeclaredMethod".toCharArray(),
                  world.makeTypeBinding(UnresolvedType.forSignature("Ljava/lang/reflect/Method;")), // return type
                   new TypeBinding[]{world.makeTypeBinding(UnresolvedType.forSignature("Ljava/lang/String;")),
                                 world.makeTypeBinding(UnresolvedType.forSignature("[Ljava/lang/Class;"))},
                  new ReferenceBinding[0],
                  (ReferenceBinding)world.makeTypeBinding(UnresolvedType.JAVA_LANG_CLASS)));
          codeStream.astore_1();
          codeStream.aload_1();
          codeStream.aconst_null();
          codeStream.aconst_null();
          codeStream.invokevirtual(
              new MethodBinding(
                  0,
                  "invoke".toCharArray(),
                  world.makeTypeBinding(UnresolvedType.OBJECT),
                  new TypeBinding[]{world.makeTypeBinding(UnresolvedType.OBJECT),world.makeTypeBinding(UnresolvedType.forSignature("[Ljava/lang/Object;"))},
                  new ReferenceBinding[0],
View Full Code Here

    new BodyGenerator() {
      public void generate(CodeStream codeStream) {
       
        codeStream.new_(world.makeTypeBinding(typeX));
        codeStream.dup();
        codeStream.invokespecial(new MethodBinding(0, "<init>".toCharArray(),
            BaseTypes.VoidBinding, new TypeBinding[0],
            new ReferenceBinding[0], binding));
        codeStream.astore_1();
        codeStream.aload_1();
        codeStream.aload_0();
View Full Code Here

      public void generate(CodeStream codeStream) {
        // body starts here
        codeStream.new_(binding);
        codeStream.dup();
        codeStream.invokespecial(
          new MethodBinding(0, "<init>".toCharArray(),
            BaseTypes.VoidBinding, new TypeBinding[0],
            new ReferenceBinding[0], binding));
         
        codeStream.putstatic(
          world.makeFieldBinding(
View Full Code Here

    if (binding == null || ignoreFurtherInvestigation) return;
   
    if (kind == AdviceKind.Around) {
      ReferenceBinding[] exceptions =
        new ReferenceBinding[] { upperScope.getJavaLangThrowable() };
      proceedMethodBinding = new MethodBinding(Modifier.STATIC,
        "proceed".toCharArray(), binding.returnType,
        resize(baseArgumentCount+1, binding.parameters),
        exceptions, binding.declaringClass);
      proceedMethodBinding.selector =
        CharOperation.concat(selector, proceedMethodBinding.selector);
View Full Code Here

    return this.arguments.length - 3 - ((extraArgument == null) ? 0 : 1);
    //Advice.countOnes(extraArgumentFlags);
  }

  private void generateProceedMethod(ClassScope classScope, ClassFile classFile) {
    MethodBinding binding = (MethodBinding)proceedMethodBinding;
   
    classFile.generateMethodInfoHeader(binding);
    int methodAttributeOffset = classFile.contentsOffset;
    int attributeNumber = classFile.generateMethodInfoAttribute(binding, false, AstUtil.getAjSyntheticAttribute());
    int codeAttributeOffset = classFile.contentsOffset;
    classFile.generateCodeAttributeHeader();
    CodeStream codeStream = classFile.codeStream;
    codeStream.reset(this, classFile);
   
    // push the closure
    int nargs = binding.parameters.length;
    int closureIndex = 0;
    for (int i=0; i < nargs-1; i++) {
      closureIndex += AstUtil.slotsNeeded(binding.parameters[i]);
    }
   
   
    codeStream.loadObject(closureIndex);
   
    // build the Object[]

    codeStream.generateInlinedValue(nargs-1);
    codeStream.newArray(
        new ArrayBinding(
            classScope.getType(TypeBinding.JAVA_LANG_OBJECT,
                TypeBinding.JAVA_LANG_OBJECT.length),
                1,
                classScope.environment()));
   
    int index = 0;
    for (int i=0; i < nargs-1; i++) {
      TypeBinding type = binding.parameters[i];
      codeStream.dup();
      codeStream.generateInlinedValue(i);
      codeStream.load(type, index);
      index += AstUtil.slotsNeeded(type);
      if (type.isBaseType()) {
        codeStream.invokestatic(AjTypeConstants.getConversionMethodToObject(classScope, type));
      }
     
      codeStream.aastore();
    }
   
    // call run
    ReferenceBinding closureType = (ReferenceBinding)binding.parameters[nargs-1];
    MethodBinding runMethod = closureType.getMethods("run".toCharArray())[0];
    codeStream.invokevirtual(runMethod);

    TypeBinding returnType = binding.returnType;
    if (returnType.isBaseType()) {
      codeStream.invokestatic(AjTypeConstants.getConversionMethodFromObject(classScope, returnType));
View Full Code Here

  public int removeUnusedExtraArguments() {
    int extraArgumentFlags = 0;
   
    this.computeJoinPointParams();
    MethodBinding binding = method.binding;
   
   
    int index = binding.parameters.length - 3;
    if (needsStaticEnclosing) {
      extraArgumentFlags |= Advice.ThisEnclosingJoinPointStaticPart;
View Full Code Here

    MethodBinding[] orig = sourceTypeBinding.methods();
//    if (interTypeMethods.isEmpty()) return orig;
   
    List ret = new ArrayList(Arrays.asList(orig));
    for (int i=0, len=interTypeMethods.size(); i < len; i++) {
      MethodBinding method = (MethodBinding)interTypeMethods.get(i);
      ret.add(method);
    }
   
    ReferenceBinding [] interfaces = sourceTypeBinding.superInterfaces();
    for (int i = 0; i < interfaces.length; i++) {
View Full Code Here

 
  private void addPublicITDSFrom(SourceTypeBinding anInterface,List toAList) {
    if (anInterface.memberFinder != null) {
      InterTypeMemberFinder finder = (InterTypeMemberFinder) anInterface.memberFinder;
      for (Iterator iter = finder.interTypeMethods.iterator(); iter.hasNext();) {
        MethodBinding aBinding = (MethodBinding) iter.next();
        if (Modifier.isPublic(aBinding.modifiers)) {
          toAList.add(aBinding);
        }
      }
    }
View Full Code Here

   
    List ret = new ArrayList(Arrays.asList(orig));
//    System.err.println("declared method: " + ret + " inters = " + interTypeMethods);
   
    for (int i=0, len=interTypeMethods.size(); i < len; i++) {
      MethodBinding method = (MethodBinding)interTypeMethods.get(i);
     
      if (CharOperation.equals(selector, method.selector)) {
        ret.add(method);
      }
    }
View Full Code Here

TOP

Related Classes of org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding

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.