<s> package org . eclipse . jdt . internal . codeassist ; import org . eclipse . jdt . core . CompletionProposal ; import org . eclipse . jdt . core . CompletionRequestor ; import org . eclipse . jdt . core . Flags ; import org . eclipse . jdt . core . Signature ; import org . eclipse . jdt . core . compiler . CharOperation ; import org . eclipse . jdt . core . compiler . IProblem ; public class CompletionRequestorWrapper extends CompletionRequestor { private static boolean DECODE_SIGNATURE = false ; private org . eclipse . jdt . core . ICompletionRequestor requestor ; public CompletionRequestorWrapper ( org . eclipse . jdt . core . ICompletionRequestor requestor ) { this . requestor = requestor ; } public void accept ( CompletionProposal proposal ) { InternalCompletionProposal internalCompletionProposal = ( InternalCompletionProposal ) proposal ; switch ( internalCompletionProposal . getKind ( ) ) { case CompletionProposal . KEYWORD : this . requestor . acceptKeyword ( internalCompletionProposal . getName ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; break ; case CompletionProposal . PACKAGE_REF : if ( DECODE_SIGNATURE ) { this . requestor . acceptPackage ( internalCompletionProposal . getDeclarationSignature ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptPackage ( internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . TYPE_REF : if ( ( internalCompletionProposal . getFlags ( ) & Flags . AccEnum ) != 0 ) { } else if ( ( internalCompletionProposal . getFlags ( ) & Flags . AccInterface ) != 0 ) { if ( DECODE_SIGNATURE ) { this . requestor . acceptInterface ( internalCompletionProposal . getDeclarationSignature ( ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) & ~ Flags . AccInterface , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptInterface ( internalCompletionProposal . getPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) & ~ Flags . AccInterface , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } } else { if ( DECODE_SIGNATURE ) { this . requestor . acceptClass ( internalCompletionProposal . getDeclarationSignature ( ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptClass ( internalCompletionProposal . getPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } } break ; case CompletionProposal . FIELD_REF : if ( DECODE_SIGNATURE ) { this . requestor . acceptField ( Signature . getSignatureQualifier ( internalCompletionProposal . getDeclarationSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getDeclarationSignature ( ) ) , internalCompletionProposal . getName ( ) , Signature . getSignatureQualifier ( internalCompletionProposal . getSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptField ( internalCompletionProposal . getDeclarationPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getDeclarationPackageName ( ) , internalCompletionProposal . getDeclarationTypeName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getDeclarationTypeName ( ) , internalCompletionProposal . getName ( ) , internalCompletionProposal . getPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . METHOD_REF : if ( DECODE_SIGNATURE ) { this . requestor . acceptMethod ( Signature . getSignatureQualifier ( internalCompletionProposal . getDeclarationSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getDeclarationSignature ( ) ) , internalCompletionProposal . getName ( ) , getParameterPackages ( internalCompletionProposal . getSignature ( ) ) , getParameterTypes ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . findParameterNames ( null ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . findParameterNames ( null ) , Signature . getSignatureQualifier ( Signature . getReturnType ( internalCompletionProposal . getSignature ( ) ) ) , Signature . getSignatureSimpleName ( Signature . getReturnType ( internalCompletionProposal . getSignature ( ) ) ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptMethod ( internalCompletionProposal . getDeclarationPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getDeclarationPackageName ( ) , internalCompletionProposal . getDeclarationTypeName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getDeclarationTypeName ( ) , internalCompletionProposal . getName ( ) , internalCompletionProposal . getParameterPackageNames ( ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . getParameterPackageNames ( ) , internalCompletionProposal . getParameterTypeNames ( ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . getParameterTypeNames ( ) , internalCompletionProposal . findParameterNames ( null ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . findParameterNames ( null ) , internalCompletionProposal . getPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . METHOD_DECLARATION : if ( DECODE_SIGNATURE ) { this . requestor . acceptMethodDeclaration ( Signature . getSignatureQualifier ( internalCompletionProposal . getDeclarationSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getDeclarationSignature ( ) ) , internalCompletionProposal . getName ( ) , getParameterPackages ( internalCompletionProposal . getSignature ( ) ) , getParameterTypes ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . findParameterNames ( null ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . findParameterNames ( null ) , Signature . getSignatureQualifier ( Signature . getReturnType ( internalCompletionProposal . getSignature ( ) ) ) , Signature . getSignatureSimpleName ( Signature . getReturnType ( internalCompletionProposal . getSignature ( ) ) ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptMethodDeclaration ( internalCompletionProposal . getDeclarationPackageName ( ) , internalCompletionProposal . getDeclarationTypeName ( ) , internalCompletionProposal . getName ( ) , internalCompletionProposal . getParameterPackageNames ( ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . getParameterPackageNames ( ) , internalCompletionProposal . getParameterTypeNames ( ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . getParameterTypeNames ( ) , internalCompletionProposal . findParameterNames ( null ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . findParameterNames ( null ) , internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . ANONYMOUS_CLASS_DECLARATION : if ( DECODE_SIGNATURE ) { this . requestor . acceptAnonymousType ( Signature . getSignatureQualifier ( internalCompletionProposal . getDeclarationSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getDeclarationSignature ( ) ) , getParameterPackages ( internalCompletionProposal . getSignature ( ) ) , getParameterTypes ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . findParameterNames ( null ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . findParameterNames ( null ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptAnonymousType ( internalCompletionProposal . getDeclarationPackageName ( ) , internalCompletionProposal . getDeclarationTypeName ( ) , internalCompletionProposal . getParameterPackageNames ( ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . getParameterPackageNames ( ) , internalCompletionProposal . getParameterTypeNames ( ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . getParameterTypeNames ( ) , internalCompletionProposal . findParameterNames ( null ) == null ? CharOperation . NO_CHAR_CHAR : internalCompletionProposal . findParameterNames ( null ) , internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . LABEL_REF : this . requestor . acceptLabel ( internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; break ; case CompletionProposal . LOCAL_VARIABLE_REF : if ( DECODE_SIGNATURE ) { this . requestor . acceptLocalVariable ( internalCompletionProposal . getCompletion ( ) , Signature . getSignatureQualifier ( internalCompletionProposal . getSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptLocalVariable ( internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getPackageName ( ) == null ? CharOperation . NO_CHAR : internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . VARIABLE_DECLARATION : if ( DECODE_SIGNATURE ) { this . requestor . acceptLocalVariable ( internalCompletionProposal . getCompletion ( ) , Signature . getSignatureQualifier ( internalCompletionProposal . getSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getSignature ( ) ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { this . requestor . acceptLocalVariable ( internalCompletionProposal . getCompletion ( ) , internalCompletionProposal . getPackageName ( ) , internalCompletionProposal . getTypeName ( ) , internalCompletionProposal . getFlags ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } break ; case CompletionProposal . POTENTIAL_METHOD_DECLARATION : if ( this . requestor instanceof IExtendedCompletionRequestor ) { IExtendedCompletionRequestor r = ( IExtendedCompletionRequestor ) this . requestor ; if ( DECODE_SIGNATURE ) { r . acceptPotentialMethodDeclaration ( Signature . getSignatureQualifier ( internalCompletionProposal . getDeclarationSignature ( ) ) , Signature . getSignatureSimpleName ( internalCompletionProposal . getDeclarationSignature ( ) ) , internalCompletionProposal . getName ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } else { r . acceptPotentialMethodDeclaration ( internalCompletionProposal . getDeclarationPackageName ( ) , internalCompletionProposal . getDeclarationTypeName ( ) , internalCompletionProposal . getName ( ) , internalCompletionProposal . getReplaceStart ( ) , internalCompletionProposal . getReplaceEnd ( ) , internalCompletionProposal . getRelevance ( ) ) ; } } break ; } } public void completionFailure ( IProblem problem ) { this . requestor . acceptError ( problem ) ; } private char [ ] [ ] getParameterPackages ( char [ ] methodSignature ) { char [ ] [ ] parameterQualifiedTypes = Signature . getParameterTypes ( methodSignature ) ; int length = parameterQualifiedTypes == null ? 0 : parameterQualifiedTypes . length ; char [ ] [ ] parameterPackages = new char [ length ] [ ] ; for ( int i = 0 ; i < length ; i ++ ) { parameterPackages [ i ] = Signature . getSignatureQualifier ( parameterQualifiedTypes [ i ] ) ; } return parameterPackages ; } private char [ ] [ ] getParameterTypes ( char [ ] methodSignature ) { char [ ] [ ] parameterQualifiedTypes = Signature . getParameterTypes ( methodSignature ) ; int length = parameterQualifiedTypes == null ? 0 : parameterQualifiedTypes . length ; char [ ] [ ] parameterPackages = new char [ length ] [ ] ; for ( int i = 0 ; i < length ; i ++ ) { parameterPackages [ i ] = Signature . getSignatureSimpleName ( parameterQualifiedTypes [ i ] ) ; } return parameterPackages ; } } </s>