package org.lobobrowser.protocol.data; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; /** * http://www.ietf.org/rfc/rfc2397.txt * * * dataurl := "data:" [ mediatype ] [ ";base64" ] "," data mediatype := [ type * "/" subtype ] *( ";" parameter ) data := *urlchar parameter := attribute "=" * value * * * @author toenz * */ public class Handler extends URLStreamHandler { @Override protected URLConnection openConnection(final URL url) throws IOException { return new DataURLConnection(url); } @Override protected void parseURL(final URL u, final String spec, final int start, final int limit) { final int index = spec.toLowerCase().indexOf(":"); final String protocol = "data"; final String path = spec.substring(index + 1); setURL(u, protocol, /* host */null, /* port */80, /* authority */null, /* userinfo */null, /* path */path, /* query */null, /* ref */null); } @Override protected String toExternalForm(final URL u) { return u.getProtocol() + ":" + u.getPath(); } }