public class URLHandlersStreamHandlerProxy extends java.net.URLStreamHandler implements URLStreamHandlerSetter, java.lang.reflect.InvocationHandler
This class implements a stream handler proxy. When the stream handler proxy instance is created, it is associated with a particular protocol and will answer all future requests for handling of that stream type. It does not directly handle the stream handler requests, but delegates the requests to an underlying stream handler service.
The proxy instance for a particular protocol is used for all framework instances that may contain their own stream handler services. When performing a stream handler operation, the proxy retrieves the handler service from the framework instance associated with the current call stack and delegates the call to the handler service.
The proxy will create simple stream handler service trackers for each framework instance. The trackers will listen to service events in its respective framework instance to maintain a reference to the "best" stream handler service at any given time.
| Modifier and Type | Field and Description |
|---|---|
private static java.lang.reflect.Method |
EQUALS |
private static java.lang.reflect.Method |
GET_DEFAULT_PORT |
private static java.lang.reflect.Method |
GET_HOST_ADDRESS |
private static java.lang.reflect.Method |
HASH_CODE |
private static java.lang.reflect.Method |
HOSTS_EQUAL |
private SecureAction |
m_action |
private java.net.URLStreamHandler |
m_builtIn |
private java.net.URL |
m_builtInURL |
private static java.lang.ThreadLocal |
m_loopCheck |
private java.lang.String |
m_protocol |
private java.lang.Object |
m_service |
private static java.lang.reflect.Method |
OPEN_CONNECTION |
private static java.lang.reflect.Method |
OPEN_CONNECTION_PROXY |
private static java.lang.reflect.Method |
SAME_FILE |
private static java.lang.Class[] |
STRING_TYPES |
private static java.lang.reflect.Method |
TO_EXTERNAL_FORM |
private static java.lang.Class[] |
URL_PROXY_CLASS |
| Modifier | Constructor and Description |
|---|---|
private |
URLHandlersStreamHandlerProxy(java.lang.Object service,
SecureAction action) |
|
URLHandlersStreamHandlerProxy(java.lang.String protocol,
SecureAction action,
java.net.URLStreamHandler builtIn,
java.net.URL builtInURL) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
equals(java.net.URL url1,
java.net.URL url2) |
protected int |
getDefaultPort() |
protected java.net.InetAddress |
getHostAddress(java.net.URL url) |
private java.lang.Object |
getStreamHandlerService()
Private method to retrieve the stream handler service from the
framework instance associated with the current call stack.
|
protected int |
hashCode(java.net.URL url) |
protected boolean |
hostsEqual(java.net.URL url1,
java.net.URL url2) |
java.lang.Object |
invoke(java.lang.Object obj,
java.lang.reflect.Method method,
java.lang.Object[] params) |
protected java.net.URLConnection |
openConnection(java.net.URL url) |
protected java.net.URLConnection |
openConnection(java.net.URL url,
java.net.Proxy proxy) |
protected void |
parseURL(java.net.URL url,
java.lang.String spec,
int start,
int limit) |
protected boolean |
sameFile(java.net.URL url1,
java.net.URL url2) |
void |
setURL(java.net.URL url,
java.lang.String protocol,
java.lang.String host,
int port,
java.lang.String file,
java.lang.String ref) |
void |
setURL(java.net.URL url,
java.lang.String protocol,
java.lang.String host,
int port,
java.lang.String authority,
java.lang.String userInfo,
java.lang.String path,
java.lang.String query,
java.lang.String ref) |
protected java.lang.String |
toExternalForm(java.net.URL url) |
private java.lang.String |
toExternalForm(java.net.URL url,
java.lang.Object svc) |
private static final java.lang.Class[] URL_PROXY_CLASS
private static final java.lang.Class[] STRING_TYPES
private static final java.lang.reflect.Method EQUALS
private static final java.lang.reflect.Method GET_DEFAULT_PORT
private static final java.lang.reflect.Method GET_HOST_ADDRESS
private static final java.lang.reflect.Method HASH_CODE
private static final java.lang.reflect.Method HOSTS_EQUAL
private static final java.lang.reflect.Method OPEN_CONNECTION
private static final java.lang.reflect.Method OPEN_CONNECTION_PROXY
private static final java.lang.reflect.Method SAME_FILE
private static final java.lang.reflect.Method TO_EXTERNAL_FORM
private final java.lang.Object m_service
private final SecureAction m_action
private final java.net.URLStreamHandler m_builtIn
private final java.net.URL m_builtInURL
private final java.lang.String m_protocol
private static final java.lang.ThreadLocal m_loopCheck
public URLHandlersStreamHandlerProxy(java.lang.String protocol,
SecureAction action,
java.net.URLStreamHandler builtIn,
java.net.URL builtInURL)
private URLHandlersStreamHandlerProxy(java.lang.Object service,
SecureAction action)
protected boolean equals(java.net.URL url1,
java.net.URL url2)
equals in class java.net.URLStreamHandlerprotected int getDefaultPort()
getDefaultPort in class java.net.URLStreamHandlerprotected java.net.InetAddress getHostAddress(java.net.URL url)
getHostAddress in class java.net.URLStreamHandlerprotected int hashCode(java.net.URL url)
hashCode in class java.net.URLStreamHandlerprotected boolean hostsEqual(java.net.URL url1,
java.net.URL url2)
hostsEqual in class java.net.URLStreamHandlerprotected java.net.URLConnection openConnection(java.net.URL url)
throws java.io.IOException
openConnection in class java.net.URLStreamHandlerjava.io.IOExceptionprotected java.net.URLConnection openConnection(java.net.URL url,
java.net.Proxy proxy)
throws java.io.IOException
openConnection in class java.net.URLStreamHandlerjava.io.IOExceptionprotected void parseURL(java.net.URL url,
java.lang.String spec,
int start,
int limit)
parseURL in class java.net.URLStreamHandlerprotected boolean sameFile(java.net.URL url1,
java.net.URL url2)
sameFile in class java.net.URLStreamHandlerpublic void setURL(java.net.URL url,
java.lang.String protocol,
java.lang.String host,
int port,
java.lang.String authority,
java.lang.String userInfo,
java.lang.String path,
java.lang.String query,
java.lang.String ref)
setURL in interface URLStreamHandlerSettersetURL in class java.net.URLStreamHandlerpublic void setURL(java.net.URL url,
java.lang.String protocol,
java.lang.String host,
int port,
java.lang.String file,
java.lang.String ref)
setURL in interface URLStreamHandlerSettersetURL in class java.net.URLStreamHandlerprotected java.lang.String toExternalForm(java.net.URL url)
toExternalForm in class java.net.URLStreamHandlerprivate java.lang.String toExternalForm(java.net.URL url,
java.lang.Object svc)
private java.lang.Object getStreamHandlerService()
Private method to retrieve the stream handler service from the framework instance associated with the current call stack. A simple service tracker is created and cached for the associated framework instance when this method is called.
public java.lang.Object invoke(java.lang.Object obj,
java.lang.reflect.Method method,
java.lang.Object[] params)
throws java.lang.Throwable
invoke in interface java.lang.reflect.InvocationHandlerjava.lang.Throwable