public virtual string createRelativeURL(URL url, URL baseURL)
{
if (url == null)
{
string str = "content url must not be null.";
Throwable.__\u003CsuppressFillInStackTrace\u003E();
throw new NullPointerException(str);
}
else if (baseURL == null)
{
string str = "baseURL must not be null.";
Throwable.__\u003CsuppressFillInStackTrace\u003E();
throw new NullPointerException(str);
}
else if (this.isFileStyleProtocol(url) && this.isSameService(url, baseURL))
{
List list1 = this.parseName(this.getPath(url));
List list2 = this.parseName(this.getPath(baseURL));
string query = this.getQuery(url);
if (!this.isPath(baseURL))
list2.remove(list2.size() - 1);
if (url.equals((object) baseURL))
return (string) list1.get(list1.size() - 1);
int num1 = this.startsWithUntil(list1, list2);
if (num1 == 0)
{
return url.toExternalForm();
}
else
{
if (num1 == list1.size())
num1 += -1;
ArrayList arrayList = new ArrayList();
if (list2.size() >= list1.size())
{
int num2 = list2.size() - num1;
for (int index = 0; index < num2; ++index)
arrayList.add((object) "..");
}
arrayList.addAll((Collection) list1.subList(num1, list1.size()));
return this.formatName((List) arrayList, query);
}
}
else
return url.toExternalForm();
}