protected boolean setFromURI()

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;
    }