package fi.otavanopisto.muikku.facelets; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; import org.apache.commons.codec.binary.Base64; public class DataStreamHandler extends URLStreamHandler { private static class DataURLConnection extends URLConnection { @Override public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(this.content.getBytes()); } private static String PREFIX = "data://text/plain;base64,"; private static int PREFIX_LEN = PREFIX.length(); protected DataURLConnection(URL url) { super(url); this.url = url; String encoded = this.url.toString().substring(PREFIX_LEN); this.content = new String(Base64.decodeBase64(encoded)); } @Override public void connect() throws IOException { // Do nothing } private URL url; private String content; } @Override protected URLConnection openConnection(URL url) throws IOException { return new DataURLConnection(url); } }