Examples of AbstractSiteView


Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

                String systemType = contentTypeMapper.mapSystemType(requestPath);
                if ((systemType != null) && contentTypeMapper.isContentTypeFallbackEnabled())
                {
                    // test for exact system match if content fallback enabled;
                    // clear system type if not found
                    AbstractSiteView view = getSiteView();
                    if (view != null)
                    {
                        try
                        {
                            view.getNodeView(requestPath, null, null, !forceTemplatesAccessible, false, false);
                        }
                        catch (NodeNotFoundException nnfe)
                        {
                            // log fallback mapping
                            if (log.isDebugEnabled())
                            {
                                log.debug("System request: requestPath="+requestPath+" does not exist: fallback to content type");
                            }                   
                            systemType = null;
                        }
                    }
                }
                // if not system type, test for content type
                if (systemType == null)
                {
                    // test for content type mappings; if no content type matched
                    // request, continue with native portal resolution of request
                    String contentType = contentTypeMapper.mapContentType(requestPath);
                    if (contentType != null)
                    {
                        // log mapping
                        if (log.isDebugEnabled())
                        {
                            log.debug("Content request: requestPath="+requestPath+", mapped to content type: "+contentType);
                        }
                       
                        // generate external content path if mapping defined
                        String contentPageRequestPath = contentTypeMapper.mapContentRequestPath(requestServerName, contentType, requestPath);
                        if (contentPageRequestPath != null)
                        {
                            // log mapping
                            if (log.isDebugEnabled())
                            {
                                log.debug("Mapped content request to content path: serverName="+requestServerName+", contentType="+contentType+", requestPath="+requestPath+", mapped to: "+contentPageRequestPath);
                            }
                           
                            if (requestPageContentPath != null)
                            {
                                requestPageContentPath[0] = contentPageRequestPath;
                            }
                        }

                        // support request path mapping of system page requests
                        String systemPageRequestPath = contentTypeMapper.mapSystemRequestPath(requestServerName, contentType, requestPath);
                        if (systemPageRequestPath != null)
                        {
                            // verify system page existence
                            AbstractSiteView view = getSiteView();
                            if (view != null)
                            {
                                try
                                {
                                    if (view.getNodeView(systemPageRequestPath, null, null, true, false, false) instanceof Page)
                                    {
                                        systemType = PortalSiteContentTypeMapper.PAGE_SYSTEM_TYPE;
                                    }
                                }
                                catch (NodeNotFoundException nnfe)
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

    {
        // save access exceptions
        SecurityException accessException = null;

        // valid SiteView required from session profile locators
        AbstractSiteView view = getSiteView();
        if (view != null)
        {
            // default request to root folder if not specified
            if (requestPath == null)
            {
                requestPath = Folder.PATH_SEPARATOR;
            }
           
            // log page request
            if (log.isDebugEnabled())
            {
                log.debug("Request page: request path=" + requestPath);
            }

            // lookup request path in view for viewable page or folder
            // nodes; note: directly requested pages/folders may be hidden
            // or not viewable
            Node requestNode = null;
            try
            {
                // try page or folder request url
                requestNode = view.getNodeView(requestPath, null, null, !forceTemplatesAccessible, false, false);
            }
            catch (NodeNotFoundException nnfe)
            {
                // if request path ends with default page, strip from
                // request url to retry for folder default
                if (requestPath.endsWith(Folder.PATH_SEPARATOR + Folder.FALLBACK_DEFAULT_PAGE))
                {
                    // retry folder request url
                    requestPath = requestPath.substring(0, requestPath.length() - Folder.FALLBACK_DEFAULT_PAGE.length());
                    requestNode = view.getNodeView(requestPath, null, null, !forceTemplatesAccessible, true, false);
                }
                else
                {
                    // rethrow original exception
                    throw nnfe;
                }
            }
           
            // invoke default page logic to determine folder page
            if (requestNode instanceof Folder)
            {
                Folder requestFolder = (Folder)requestNode;
               
                // support subfolders specified as default pages;
                // find highest subfolder with a default page that
                // specifies a default folder, (not a default page).
                try
                {
                    String defaultFolderName = requestFolder.getDefaultPage();
                    if (defaultFolderName != null)
                    {
                        // do not follow broken default folders
                        Folder defaultRequestFolder = requestFolder;
                        // follow default folders to parent folders
                        while ((defaultRequestFolder != null) && (defaultFolderName != null) &&
                               defaultFolderName.equals(".."))
                        {
                            defaultRequestFolder = (Folder)defaultRequestFolder.getParent();
                            if (defaultRequestFolder != null)
                            {
                                defaultFolderName = defaultRequestFolder.getDefaultPage();
                            }
                            else
                            {
                                defaultFolderName = null;
                            }
                        }
                        // follow default folders to subfolders
                        while ((defaultRequestFolder != null) && (defaultFolderName != null) &&
                               !defaultFolderName.endsWith(Page.DOCUMENT_TYPE) && !defaultFolderName.equals(".."))
                        {
                            defaultRequestFolder = defaultRequestFolder.getFolder(defaultFolderName);
                            defaultFolderName = defaultRequestFolder.getDefaultPage();
                        }
                        // use default request folder
                        if (defaultRequestFolder != null)
                        {
                            requestFolder = defaultRequestFolder;
                        }
                    }
                }
                catch (NodeException ne)
                {
                }
                catch (NodeNotFoundException nnfe)
                {
                }
                catch (SecurityException se)
                {
                    requestFolder = null;
                    accessException = se;
                }

                // only request folders with pages can be
                // selected by request; otherwise, fall back to
                // parent folders assuming that immediate parents
                // will have the most appropriate default page
                NodeSet requestFolderPages = null;
                if (requestFolder != null)
                {
                    try
                    {
                        requestFolderPages = requestFolder.getPages();
                        while (((requestFolderPages == null) || requestFolderPages.isEmpty()) && (requestFolder.getParent() != null))
                        {
                            requestFolder = (Folder)requestFolder.getParent();
                            requestFolderPages = requestFolder.getPages();
                        }
                    }
                    catch (NodeException ne)
                    {
                        requestFolderPages = null;
                    }
                    catch (SecurityException se)
                    {
                        requestFolderPages = null;
                        accessException = se;
                    }
                }
                if ((requestFolder != null) && (requestFolderPages != null) && !requestFolderPages.isEmpty())
                {
                    Page requestPage = null;

                    // attempt to lookup last visited page by folder path;
                    // page id test must be performed since identical paths
                    // may occur in multiple site views
                    if (useHistory)
                    {
                        String requestPageId = (String)getFolderPageHistory().get(requestFolder.getPath());
                        if (requestPageId != null)
                        {
                            // find page by id in request folder pages
                            Iterator requestFolderPagesIter = requestFolderPages.iterator();
                            while ((requestPage == null) && (requestFolderPagesIter.hasNext()))
                            {
                                Page requestFolderPage = (Page)requestFolderPagesIter.next();
                                if (requestPageId.equals(requestFolderPage.getId()))
                                {
                                    requestPage = requestFolderPage;
                                }
                            }
                           
                            // log selected request page
                            if (requestPage != null)
                            {
                                if (log.isDebugEnabled())
                                {
                                    log.debug("Selected folder historical page: path=" + view.getManagedPage(requestPage).getPath());
                                }
                                return requestPage;
                            }
                        }
                    }
                   
                    // get default page for folder view if more than one
                    // page is available to choose from
                    if (requestFolderPages.size() > 1)
                    {
                        String defaultPageName = requestFolder.getDefaultPage();
                        if (defaultPageName == null)
                        {
                            // use fallback default if default page
                            // not explicitly specified
                            defaultPageName = Folder.FALLBACK_DEFAULT_PAGE;
                        }
                        try
                        {
                            // save last visited non-hidden page for folder path
                            // and return default page
                            requestPage = requestFolder.getPage(defaultPageName);
                            if (!requestPage.isHidden())
                            {
                                getFolderPageHistory().put(requestFolder.getPath(), requestPage.getId());
                            }
                           
                            // log selected request page
                            if (log.isDebugEnabled())
                            {
                                log.debug("Selected folder default page: path=" + view.getManagedPage(requestPage).getPath());
                            }
                            return requestPage;
                        }
                        catch (NodeException ne)
                        {
                        }
                        catch (NodeNotFoundException nnfe)
                        {
                        }
                        catch (SecurityException se)
                        {
                            accessException = se;
                        }
                    }
                   
                    // default page not available, select first page
                    // view in request folder; save last visited
                    // non-hidden page for folder path and return default page
                    requestPage = (Page)requestFolderPages.iterator().next();
                    if (!requestPage.isHidden())
                    {
                        getFolderPageHistory().put(requestFolder.getPath(), requestPage.getId());
                    }

                    // log selected request page
                    if (log.isDebugEnabled())
                    {
                        log.debug("Selected first folder page, path=" + view.getManagedPage(requestPage).getPath());
                    }
                    return requestPage;
                }
            }
            else if (requestNode instanceof Page)
            {
                Page requestPage = (Page)requestNode;
               
                // save last visited non-hidden page for folder path
                // and return matched page
                Folder requestFolder = (Folder)requestPage.getParent();
                if (!requestPage.isHidden())
                {
                  getFolderPageHistory().put(requestFolder.getPath(), requestPage.getId());
                }

                // log selected request page
                if (log.isDebugEnabled())
                {
                    log.debug("Selected page, path=" + view.getManagedPage(requestPage).getPath());
                }
                return requestPage;
            }
            else if (forceTemplatesAccessible)
            {
                if (requestNode instanceof PageTemplate)
                {
                    PageTemplate requestPageTemplate = (PageTemplate)requestNode;
                   
                    // log selected request page template
                    if (log.isDebugEnabled())
                    {
                        log.debug("Selected page template, path=" + view.getManagedPageTemplate(requestPageTemplate).getPath());
                    }
                    return requestPageTemplate;
                }
                else if (requestNode instanceof DynamicPage)
                {
                    DynamicPage requestDynamicPage = (DynamicPage)requestNode;
                   
                    // log selected request dynamic page
                    if (log.isDebugEnabled())
                    {
                        log.debug("Selected dynamic page, path=" + view.getManagedDynamicPage(requestDynamicPage).getPath());
                    }
                    return requestDynamicPage;
                }
                else if (requestNode instanceof FragmentDefinition)
                {
                    FragmentDefinition requestFragmentDefinition = (FragmentDefinition)requestNode;
                   
                    // log selected request fragment definition
                    if (log.isDebugEnabled())
                    {
                        log.debug("Selected fragment definition, path=" + view.getManagedFragmentDefinition(requestFragmentDefinition).getPath());
                    }
                    return requestFragmentDefinition;
                }
            }
        }
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

    {
        // save access exceptions
        SecurityException accessException = null;

        // valid SiteView required from session profile locators
        AbstractSiteView view = getSiteView();
        if (view != null)
        {
            // default request to root folder if not specified
            if (requestPath == null)
            {
                requestPath = Folder.PATH_SEPARATOR;
            }
           
            // log content page request
            if (log.isDebugEnabled())
            {
                log.debug("Request content page: request path=" + requestPath);
            }
           
            // search for deepest matching content request path
            // that matches request path; start with root folder in view
            Folder contentRequestFolder = (Folder)view.getNodeView(Folder.PATH_SEPARATOR, null, null, true, false, false);
            String contentRequestPath = contentRequestFolder.getPath();
            for (;;)
            {
                // find next path name
                int startOfPathNameIndex = (contentRequestPath.equals(Folder.PATH_SEPARATOR) ? 1 : contentRequestPath.length()+1);
                int endOfPathNameIndex = requestPath.indexOf(Folder.PATH_SEPARATOR, startOfPathNameIndex);
                if ((endOfPathNameIndex == -1) || (endOfPathNameIndex == startOfPathNameIndex))
                {
                    break;
                }
                // find folder in view
                try
                {
                    String pathFolderName = requestPath.substring(startOfPathNameIndex, endOfPathNameIndex);
                    contentRequestFolder = contentRequestFolder.getFolder(pathFolderName);
                    contentRequestPath = contentRequestFolder.getPath();
                }
                catch (Exception e)
                {
                    break;
                }
            }
           
            // determine if content request folder matches request
            // folder assuming request path may include a content
            // document name, but no deeper folders
            boolean matchingContentRequestFolder = true;
            if (contentRequestPath.length() < requestPath.length())
            {
                String requestPathTail = requestPath.substring(contentRequestPath.length());
                matchingContentRequestFolder = (requestPathTail.indexOf(Folder.PATH_SEPARATOR_CHAR, (requestPathTail.startsWith(Folder.PATH_SEPARATOR) ? 1 : 0)) == -1);
            }
           
            // select matching dynamic pages in folders from deepest
            // to root folders in content request path
            while (contentRequestFolder != null)
            {
                // select dynamic page by content type or wildcard match
                try
                {
                    NodeSet dynamicPages = contentRequestFolder.getDynamicPages();
                    if ((dynamicPages != null) && !dynamicPages.isEmpty())
                    {
                        // select matching page
                        DynamicPage matchingPage = null;
                        DynamicPage inheritableMatchingPage = null;
                        DynamicPage wildcardMatchingPage = null;
                        Iterator dynamicPagesIter = dynamicPages.iterator();
                        while (dynamicPagesIter.hasNext())
                        {
                            DynamicPage dynamicPage = (DynamicPage)dynamicPagesIter.next();
                            if ((dynamicPage.getContentType() == null) || dynamicPage.getContentType().equals(DynamicPage.WILDCARD_CONTENT_TYPE))
                            {
                                wildcardMatchingPage = dynamicPage;
                            }
                            else if (dynamicPage.getContentType().equals(contentType))
                            {
                                boolean inheritableDynamicPage = dynamicPage.isInheritable();
                                if (matchingContentRequestFolder && !inheritableDynamicPage)
                                {
                                    matchingPage = dynamicPage;
                                }
                                else if (inheritableDynamicPage)
                                {
                                    inheritableMatchingPage = dynamicPage;
                                }
                            }
                        }
                        // select matching page
                        if (matchingPage != null)
                        {
                            // log selected dynamic page
                            if (log.isDebugEnabled())
                            {
                                log.debug("Selected "+contentType+" content dynamic page, path=" + view.getManagedDynamicPage(matchingPage).getPath());
                            }
                            return matchingPage;
                        }
                        // select inheritable matching page
                        if (inheritableMatchingPage != null)
                        {
                            // log selected dynamic page
                            if (log.isDebugEnabled())
                            {
                                log.debug("Selected "+contentType+" inheritable content dynamic page, path=" + view.getManagedDynamicPage(inheritableMatchingPage).getPath());
                            }
                            return inheritableMatchingPage;
                        }
                        // select wildcard matching page
                        if (wildcardMatchingPage != null)
                        {
                            // log selected dynamic page
                            if (log.isDebugEnabled())
                            {
                                log.debug("Selected "+contentType+" wildcard content dynamic page, path=" + view.getManagedDynamicPage(wildcardMatchingPage).getPath());
                            }
                            return wildcardMatchingPage;
                        }
                    }
                }
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

    {
        // validate and update session profile locators if modified
        if (updateSessionProfileLocators(requestProfileLocators, requestUserPrincipal, requestForceReservedVisible))
        {
            // valid site view required from session profile locators
            AbstractSiteView view = getSiteView();
            if (view != null)
            {
                // return root folder view from session site view
                return view.getRootFolderView();
            }
        }

        // no root folder available
        throw new NodeNotFoundException("No root folder available in site view.");
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

     * @return site view instance
     */
    public AbstractSiteView getSiteView()
    {
        // get or create site view
        AbstractSiteView view = siteView;
        while (view == null)
        {
            // access site view and test for creation
            Map createViewProfileLocators = null;
            String createViewUserPrincipal = null;
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

     * @return menu names set
     */
    public Set getStandardMenuNames()
    {
        // return standard menu names defined for site view
        AbstractSiteView view = getSiteView();
        return ((view != null) ? view.getStandardMenuNames() : null);           
    }
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

     * @return definition locator list
     */
    public List getMenuDefinitionLocators(Node node)
    {
        // return menu definition locators for node in site view
        AbstractSiteView view = getSiteView();
        return ((view != null) ? view.getMenuDefinitionLocators(node) : null);           
    }
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

     * @return menu definition locator
     */
    public SiteViewMenuDefinitionLocator getMenuDefinitionLocator(Node node, String name)
    {
        // return named menu definition locator for node in site view
        AbstractSiteView view = getSiteView();
        return ((view != null) ? view.getMenuDefinitionLocator(node, name) : null);           
    }
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

     * @return managed page
     */
    public BaseFragmentsElement getManagedPageOrTemplate(BaseFragmentsElement pageOrTemplate)
    {
        // return managed page or template in site view
        AbstractSiteView view = getSiteView();
        if (pageOrTemplate instanceof Page)
        {
            return ((view != null) ? view.getManagedPage((Page)pageOrTemplate) : null);
        }
        else if (pageOrTemplate instanceof PageTemplate)
        {
            return ((view != null) ? view.getManagedPageTemplate((PageTemplate)pageOrTemplate) : null);
        }
        else if (pageOrTemplate instanceof DynamicPage)
        {
            return ((view != null) ? view.getManagedDynamicPage((DynamicPage)pageOrTemplate) : null);
        }
        else if (pageOrTemplate instanceof FragmentDefinition)
        {
            return ((view != null) ? view.getManagedFragmentDefinition((FragmentDefinition)pageOrTemplate) : null);
        }
        return null;
    }
View Full Code Here

Examples of org.apache.jetspeed.portalsite.view.AbstractSiteView

     * @return managed page template
     */
    public PageTemplate getManagedPageTemplate(PageTemplate pageTemplate)
    {
        // return managed page template in site view
        AbstractSiteView view = getSiteView();
        return ((view != null) ? view.getManagedPageTemplate(pageTemplate) : null);           
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.