package com.scrivenvar.util;
import java.io.File;
import java.net.URI;
import java.net.URL;
import static com.scrivenvar.Constants.DEFINITION_PROTOCOL_UNKNOWN;
public class ProtocolResolver {
public static String getProtocol( final String resource ) {
String protocol;
try {
final URI uri = new URI( resource );
if( uri.isAbsolute() ) {
protocol = uri.getScheme();
}
else {
final URL url = new URL( resource );
protocol = url.getProtocol();
}
} catch( final Exception e ) {
if( resource.startsWith( "//" ) ) {
throw new IllegalArgumentException( "Relative context: " + resource );
}
else {
final File file = new File( resource );
protocol = getProtocol( file );
}
}
return protocol;
}
public static String getProtocol( final File file ) {
String result;
try {
result = file.toURI().toURL().getProtocol();
} catch( final Exception e ) {
result = DEFINITION_PROTOCOL_UNKNOWN;
}
return result;
}
}