package jp.co.worksap.workspace.common; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import java.io.File; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; import javax.annotation.ParametersAreNonnullByDefault; @ParametersAreNonnullByDefault public class UrlCreator { public URL createFrom(URI uri) throws MalformedURLException { return createFrom(uri, new File(".")); } public URL createFrom(URI uri, File currentFolder) throws MalformedURLException { checkNotNull(uri); checkNotNull(currentFolder); checkArgument(currentFolder.isDirectory()); if (uri.isOpaque()) { throw new IllegalArgumentException("Given uri is opaque:" + uri.toString()); } else if (uri.isAbsolute()) { return uri.normalize().toURL(); } else { return new File(currentFolder, uri.toString()).toURI().normalize().toURL(); } } public URL createFrom(String string) throws MalformedURLException { return createFrom(URI.create(string)); } }