Example #1
0
 /* (non-Javadoc)
  * @see org.eclipse.jdt.internal.compiler.parser.AbstractCommentParser#createMethodReference(java.lang.Object[])
  */
 protected Object createMethodReference(Object receiver, List arguments)
     throws InvalidInputException {
   try {
     // Create method ref
     MethodRef methodRef = this.ast.newMethodRef();
     SimpleName methodName = new SimpleName(this.ast);
     int length =
         this.identifierLengthStack[0] - 1; // may be > 0 for member class constructor reference
     methodName.internalSetIdentifier(new String(this.identifierStack[length]));
     methodRef.setName(methodName);
     int start = (int) (this.identifierPositionStack[length] >>> 32);
     int end = (int) this.identifierPositionStack[length];
     methodName.setSourceRange(start, end - start + 1);
     // Set qualifier
     if (receiver == null) {
       start = this.memberStart;
       methodRef.setSourceRange(start, end - start + 1);
     } else {
       Name typeRef = (Name) receiver;
       methodRef.setQualifier(typeRef);
       start = typeRef.getStartPosition();
     }
     // Add arguments
     if (arguments != null) {
       Iterator parameters = arguments.listIterator();
       while (parameters.hasNext()) {
         MethodRefParameter param = (MethodRefParameter) parameters.next();
         methodRef.parameters().add(param);
       }
     }
     methodRef.setSourceRange(start, this.scanner.getCurrentTokenEndPosition() - start + 1);
     return methodRef;
   } catch (ClassCastException ex) {
     throw new InvalidInputException();
   }
 }