code: @Override
    public ITypeRef create( IType type )
    {
      // already a proxy? return as is then
      if( type instanceof ITypeRef )
      {
        return (ITypeRef)type;
      }
  
      if( type instanceof INonLoadableType )
      {
        throw new UnsupportedOperationException( "Type references are not supported for nonloadable types: " + type.getName() );
      }
  
      String strTypeName = TypeLord.getNameWithQualifiedTypeVariables( type, true );
      if( strTypeName == null || strTypeName.length() == 0 )
      {
        throw new IllegalStateException( "Type has no name" );
      }
  
      ITypeRef ref;
      if (ExecutionMode.isRuntime()) {
        ref = getRefTheFastWay(type, strTypeName);
      } else {
        ref = getRefTheSafeWay(type, strTypeName);
      }
      return ref;
    }
docs: Wraps the actual class with a proxy.