<s> package org . eclipse . jdt . internal . compiler . lookup ; import org . eclipse . jdt . core . compiler . CharOperation ; public class UnresolvedReferenceBinding extends ReferenceBinding { ReferenceBinding resolvedType ; TypeBinding [ ] wrappers ; UnresolvedReferenceBinding ( char [ ] [ ] compoundName , PackageBinding packageBinding ) { this . compoundName = compoundName ; this . sourceName = compoundName [ compoundName . length - 1 ] ; this . fPackage = packageBinding ; this . wrappers = null ; } void addWrapper ( TypeBinding wrapper , LookupEnvironment environment ) { if ( this . resolvedType != null ) { wrapper . swapUnresolved ( this , this . resolvedType , environment ) ; return ; } if ( this . wrappers == null ) { this . wrappers = new TypeBinding [ ] { wrapper } ; } else { int length = this . wrappers . length ; System . arraycopy ( this . wrappers , 0 , this . wrappers = new TypeBinding [ length + 1 ] , 0 , length ) ; this . wrappers [ length ] = wrapper ; } } public String debugName ( ) { return toString ( ) ; } ReferenceBinding resolve ( LookupEnvironment environment , boolean convertGenericToRawType ) { ReferenceBinding targetType = this . resolvedType ; if ( targetType == null ) { targetType = this . fPackage . getType0 ( this . compoundName [ this . compoundName . length - 1 ] ) ; if ( targetType == this ) { targetType = environment . askForType ( this . compoundName ) ; } if ( targetType == null || targetType == this ) { if ( ( this . tagBits & TagBits . HasMissingType ) == 0 ) { environment . problemReporter . isClassPathCorrect ( this . compoundName , environment . unitBeingCompleted , environment . missingClassFileLocation ) ; } targetType = environment . createMissingType ( null , this . compoundName ) ; } setResolvedType ( targetType , environment ) ; } if ( convertGenericToRawType ) { targetType = ( ReferenceBinding ) environment . convertUnresolvedBinaryToRawType ( targetType ) ; } return targetType ; } void setResolvedType ( ReferenceBinding targetType , LookupEnvironment environment ) { if ( this . resolvedType == targetType ) return ; this . resolvedType = targetType ; if ( this . wrappers != null ) for ( int i = 0 , l = this . wrappers . length ; i < l ; i ++ ) this . wrappers [ i ] . swapUnresolved ( this , targetType , environment ) ; environment . updateCaches ( this , targetType ) ; } public String toString ( ) { return "" + ( ( this . compoundName != null ) ? CharOperation . toString ( this . compoundName ) : "UNNAMED" ) ; } } </s>