Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2006, 2010 Cognos Incorporated, IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html /
  
  package org.eclipse.osgi.framework.internal.protocol;
 
 import java.net.*;
 
 public class MultiplexingURLStreamHandler extends URLStreamHandler {
 	private static Method openConnectionMethod;
 	private static Method equalsMethod;
 	private static Method getDefaultPortMethod;
 	private static Method getHostAddressMethod;
 	private static Method hashCodeMethod;
 	private static Method hostsEqualMethod;
 	private static Method parseURLMethod;
 	private static Method sameFileMethod;
 	private static Method setURLMethod;
 	private static Method toExternalFormMethod;
 	private static Field handlerField;
 	private static boolean methodsInitialized = false;
 
 	private String protocol;
 
 	private static synchronized void initializeMethods(StreamHandlerFactory factory) {
 			return;
 		try {
 			 = URLStreamHandler.class.getDeclaredMethod("openConnection"new Class[] {URL.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("equals"new Class[] {URL.classURL.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("getDefaultPort"null); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("getHostAddress"new Class[] {URL.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("hashCode"new Class[] {URL.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("hostsEqual"new Class[] {URL.classURL.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("parseURL"new Class[] {URL.classString.class..}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("sameFile"new Class[] {URL.classURL.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("setURL"new Class[] {URL.classString.classString.class.String.classString.classString.classString.classString.class}); //$NON-NLS-1$
 
 			 = URLStreamHandler.class.getDeclaredMethod("toExternalForm"new Class[] {URL.class}); //$NON-NLS-1$
 
 			try {
 				 = URL.class.getDeclaredField("handler"); //$NON-NLS-1$
 			} catch (NoSuchFieldException e) {
 				 = Framework.getField(URL.classURLStreamHandler.classtrue);
 				if ( == null)
 					throw e;
 			}
 		} catch (Exception e) {
 			factory.adaptor.getFrameworkLog().log(new FrameworkLogEntry(MultiplexingURLStreamHandler.class.getName(), "initializeMethods".enull)); //$NON-NLS-1$
 			throw new RuntimeException(e.getMessage(), e);
 		}
 	}
 
 	public MultiplexingURLStreamHandler(String protocolStreamHandlerFactory factory) {
 		this. = protocol;
 		this. = factory;
 		initializeMethods(factory);
 	}
 
 	protected URLConnection openConnection(URL urlthrows IOException {
 		if (handler != null) {
 			try {
 				return (URLConnection.invoke(handlernew Object[] {url});
 			} catch (InvocationTargetException e) {
 				if (e.getTargetException() instanceof IOException)
 			} catch (Exception e) {
 				..getFrameworkLog().log(new FrameworkLogEntry(MultiplexingURLStreamHandler.class.getName(), "openConnection".enull)); //$NON-NLS-1$
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new MalformedURLException();
	}
	protected boolean equals(URL url1URL url2) {
		if (handler != null) {
			try {
				return ((Boolean.invoke(handlernew Object[] {url1url2})).booleanValue();
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected int getDefaultPort() {
		if (handler != null) {
			try {
				return ((Integer.invoke(handlernull)).intValue();
catch (InvocationTargetException e) {
catch (Exception e) {
				..getFrameworkLog().log(new FrameworkLogEntry(MultiplexingURLStreamHandler.class.getName(), "getDefaultPort".enull)); //$NON-NLS-1$
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected InetAddress getHostAddress(URL url) {
		if (handler != null) {
			try {
				return (InetAddress.invoke(handlernew Object[] {url});
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected int hashCode(URL url) {
		if (handler != null) {
			try {
				return ((Integer.invoke(handlernew Object[] {url})).intValue();
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected boolean hostsEqual(URL url1URL url2) {
		if (handler != null) {
			try {
				return ((Boolean.invoke(handlernew Object[] {url1url2})).booleanValue();
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected void parseURL(URL arg0String arg1int arg2int arg3) {
		if (handler != null) {
			try {
				// set the real handler for the URL
				.set(arg0handler);
				.invoke(handlernew Object[] {arg0arg1new Integer(arg2), new Integer(arg3)});
				return;
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected boolean sameFile(URL url1URL url2) {
		if (handler != null) {
			try {
				return ((Boolean.invoke(handlernew Object[] {url1url2})).booleanValue();
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected void setURL(URL arg0String arg1String arg2int arg3String arg4String arg5String arg6String arg7String arg8) {
		if (handler != null) {
			try {
				// set the real handler for the URL
				.set(arg0handler);
				.invoke(handlernew Object[] {arg0arg1arg2new Integer(arg3), arg4arg5arg6arg7arg8});
				return;
catch (InvocationTargetException e) {
catch (Exception e) {
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
	protected String toExternalForm(URL url) {
		if (handler != null) {
			try {
				return (String.invoke(handlernew Object[] {url});
catch (InvocationTargetException e) {
catch (Exception e) {
				..getFrameworkLog().log(new FrameworkLogEntry(MultiplexingURLStreamHandler.class.getName(), "toExternalForm".enull)); //$NON-NLS-1$
				throw new RuntimeException(e.getMessage(), e);
			}
		}
		throw new IllegalStateException();
	}
New to GrepCode? Check out our FAQ X