Bufferlo parser = new Bufferlo();
parser.write(uri);
parser.consume("glazedlists\\:\\/\\/");
String host = parser.readUntil("\\:");
String portString = parser.readUntil("\\/");
int port = Integer.parseInt(portString);
String path = "/" + parser.toString();
boolean local = (localHost.equals(host)) && (localPort == port);
return new ResourceUri(host, port, path, local);