<s> package org . eclipse . jdt . internal . codeassist . complete ; import org . eclipse . jdt . internal . compiler . ast . MessageSend ; import org . eclipse . jdt . internal . compiler . lookup . BlockScope ; import org . eclipse . jdt . internal . compiler . lookup . TypeBinding ; public class CompletionOnMessageSendName extends MessageSend { public CompletionOnMessageSendName ( char [ ] selector , int start , int end ) { super ( ) ; this . selector = selector ; this . sourceStart = start ; this . sourceEnd = end ; this . nameSourcePosition = end ; } public TypeBinding resolveType ( BlockScope scope ) { if ( this . receiver . isImplicitThis ( ) ) throw new CompletionNodeFound ( ) ; this . actualReceiverType = this . receiver . resolveType ( scope ) ; if ( this . actualReceiverType == null || this . actualReceiverType . isBaseType ( ) || this . actualReceiverType . isArrayType ( ) ) throw new CompletionNodeFound ( ) ; if ( this . typeArguments != null ) { int length = this . typeArguments . length ; this . genericTypeArguments = new TypeBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { this . genericTypeArguments [ i ] = this . typeArguments [ i ] . resolveType ( scope , true ) ; } } throw new CompletionNodeFound ( this , this . actualReceiverType , scope ) ; } public StringBuffer printExpression ( int indent , StringBuffer output ) { output . append ( "" ) ; if ( ! this . receiver . isImplicitThis ( ) ) this . receiver . printExpression ( 0 , output ) . append ( '.' ) ; if ( this . typeArguments != null ) { output . append ( '<' ) ; int max = this . typeArguments . length - 1 ; for ( int j = 0 ; j < max ; j ++ ) { this . typeArguments [ j ] . print ( 0 , output ) ; output . append ( ", " ) ; } this . typeArguments [ max ] . print ( 0 , output ) ; output . append ( '>' ) ; } output . append ( this . selector ) . append ( '(' ) ; return output . append ( ")>" ) ; } } </s>