package io.rover.util; import java.net.MalformedURLException; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Rover Labs Inc. on 2017-05-08. */ public class DataUri { private static final Pattern dataUriPatter = Pattern.compile("^(data)\\:([\\w\\/\\+]*)(\\;(base64)){0,1}\\,(.*)"); private String mContentType; private String mEncodingType; private String mData; public static boolean isDataUri(String uri) { if (uri == null) { return false; } Matcher matcher = dataUriPatter.matcher(uri); return matcher.matches(); } public DataUri(String uri) throws MalformedURLException { Matcher matcher = dataUriPatter.matcher(uri); if (!matcher.matches()) { throw new MalformedURLException("Invalid data uri"); } mContentType = emptyAsNull(matcher.group(2)); mEncodingType = emptyAsNull(matcher.group(4)); mData = emptyAsNull(matcher.group(5)); } public String getContentType() { return mContentType; } public String getEncodingType() { return mEncodingType; } public String getData() { return mData; } /* Private */ private String emptyAsNull(String string) { if (string != null && string.isEmpty()) { return null; } return string; } }