in velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LinkTool.java [905:971]
protected boolean setFromURI(Object obj)
{
if (obj == null)
{
// clear everything out...
setScheme(null);
setUserInfo(null);
setHost(null);
setPort(null);
setPath(null);
setQuery(null);
setFragment(null);
return true;
}
URI uri = toURI(obj);
if (uri == null)
{
return false;
}
if (uri.getScheme() != null)
{
setScheme(uri.getScheme());
}
if (uri.isOpaque())
{
this.opaque = true;
if (uri.getSchemeSpecificPart() != null)
{
// path is used as scheme-specific part
setPath(uri.getSchemeSpecificPart());
}
}
else
{
if (uri.getUserInfo() != null)
{
setUserInfo(uri.getUserInfo());
}
if (uri.getHost() != null)
{
setHost(uri.getHost());
}
if (uri.getPort() > -1)
{
setPort(uri.getPort());
}
String pth = uri.getPath();
if (pth != null)
{
if (pth.equals("/") || pth.length() == 0)
{
pth = null;
}
setPath(pth);
}
}
if (uri.getQuery() != null)
{
setQuery(uri.getQuery());
}
if (uri.getFragment() != null)
{
setFragment(uri.getFragment());
}
return true;
}