⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jahiacontainerset.java

📁 java 写的一个新闻发布系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            throw new JahiaException( errorMsg, errorMsg, JahiaException.TEMPLATE_ERROR,                                    JahiaException.CRITICAL );        }    } // end getContainer    //-------------------------------------------------------------------------    /***        * gets a container through its ID        *        * @param        ctnid     the container ID        * @return       a JahiaContainer object (may be null)        * @see          org.jahia.data.containers.JahiaContainer        *        * @exception    raises a critical JahiaException if container not found        *        * !!! Warning : this method can return a null value !!!        *        */    public JahiaContainer getContainer( int ctnid )    throws JahiaException    {    	checkContainerStructure();        Enumeration theContainers   = containerLists.elements();        while (theContainers.hasMoreElements()) {            JahiaContainerList  aList           = (JahiaContainerList) theContainers.nextElement();            Enumeration         containerList   = aList.getContainers();            while (containerList.hasMoreElements()) {                JahiaContainer aContainer = (JahiaContainer) containerList.nextElement();                if (aContainer.getID() == ctnid) {                    return aContainer;                }            }        }        return null;    } // end getContainer    //-------------------------------------------------------------------------    /***        * gets a containerlist through its name        *        * @param        containerName   the countainer list name        * @return       a JahiaContainerList object        * @see          org.jahia.data.containers.JahiaContainerList        *        * @exception    raises a critical JahiaException if container list not found        *        */    public JahiaContainerList getContainerList( String containerName )    throws JahiaException    {    	checkContainerStructure();        if (checkDeclared( containerName ))        {            JahiaContainerList theContainerList = (JahiaContainerList) containerLists.get( containerName );            if (theContainerList == null) {                int clistID = ServicesRegistry.getInstance().getJahiaContainersService().                        getContainerListID( containerName, jData.params().getPage().getID() );                if (clistID != -1) {                    // apply containers search and filtering.                    try {                        Vector ctnids = doContainerFilterSearchSort(jData.params(),containerName,clistID);                        if ( ctnids != null ){	                        theContainerList = ServicesRegistry.getInstance().getJahiaContainersService().	                            loadContainerList( clistID, ctnids, LoadFlags.ALL, jData.params(), this.cachedFieldsFromContainers );	                    } else {	                        theContainerList = ServicesRegistry.getInstance().getJahiaContainersService().	                            loadContainerList( clistID, LoadFlags.ALL, jData.params(), this.cachedFieldsFromContainers );	                    }                    } catch ( Throwable t ){                        t.printStackTrace();                    }                }            }            // 05.05.2002 NK : Why the container list wasn't added in the list before ?            if ( theContainerList != null )            {                addContainerList(theContainerList);            }            return theContainerList;        } else {            String errorMsg = "Container not declared : " + containerName;            JahiaConsole.println( "JahiaContainerSet.getContainerList", errorMsg + " -> BAILING OUT" );            throw new JahiaException( errorMsg, errorMsg, JahiaException.TEMPLATE_ERROR,                                    JahiaException.CRITICAL );        }    } // end getContainerList    //-------------------------------------------------------------------------    /***        * gets a containerlist through its ID        *        * @param        ctnid     the countainer list ID        * @return       a JahiaContainerList object, may return null        * @see          org.jahia.data.containers.JahiaContainerList        *        */    public JahiaContainerList getContainerList( int listID )    throws JahiaException    {    	checkContainerStructure();        Enumeration theContainers   = containerLists.elements();        while (theContainers.hasMoreElements()) {            JahiaContainerList  aList       = (JahiaContainerList) theContainers.nextElement();            if (aList.getID() == listID) {                return aList;            }        }        return null;    } // end getContainerList    //-------------------------------------------------------------------------    /***        * gets a container list in another page (absolute page reference by its id)        *        * @param        containerName   the container list name        * @param        pageID          the page ID        * @return       a JahiaContainerList object, or null if nothing found        * @see          org.jahia.data.containers.JahiaContainerList        *        * !!! Warning : this method can return a null value !!!        */    public JahiaContainerList getAbsoluteContainerList( String containerName, int pageID )    throws JahiaException    {    	checkContainerStructure();        //JahiaConsole.println("JahiaContainerSet.getAbsoluteContainerList","Get absolute container " + containerName + ", pageID " + pageID);        int containerListID = ServicesRegistry.getInstance().                                getJahiaContainersService().                                getContainerListID( containerName, pageID );        if (containerListID != -1)        {            // let's update cross reference table            ContainerListsXRefManager.getInstance().                setAbsoluteContainerListPageID(jData.params().getSiteKey(),                                               containerName,                                               pageID,                                               jData.params().getPageID());            JahiaContainerList theContainerList = null;            //JahiaConsole.println("JahiaContainerSet.getAbsoluteContainerList"," != -1 ");            try {                Vector ctnids = doContainerFilterSearchSort(jData.params(),containerName,containerListID);				if ( ctnids != null ){            		//JahiaConsole.println("JahiaContainerSet.getAbsoluteContainerList"," filter search sort return " + ctnids.size() + " containers ");					theContainerList = ServicesRegistry.getInstance().getJahiaContainersService().					  	loadContainerList( containerListID, ctnids, LoadFlags.ALL, jData.params(), this.cachedFieldsFromContainers );                 } else {            		//JahiaConsole.println("JahiaContainerSet.getAbsoluteContainerList"," filter search sort return 0 container ");					theContainerList = ServicesRegistry.getInstance().getJahiaContainersService().					  	loadContainerList( containerListID, LoadFlags.ALL, jData.params(), this.cachedFieldsFromContainers );                 }            } catch ( Throwable t ){                t.printStackTrace();            }            return theContainerList;        } else {            // not found : gets definition id, then creates fake container list and saves it into memory            JahiaContainerDefinition theDef = JahiaContainerDefinitionsRegistry.getInstance().                    getDefinition( jData.params().getSiteID(), containerName );            if (theDef != null) {                //JahiaConsole.println("JahiaContainerSet.getAbsoluteContainer", " found ctn def " + theDef.getID());                // let's update cross reference table                ContainerListsXRefManager.getInstance().                    setAbsoluteContainerListPageID(jData.params().getSiteKey(),                                                   containerName,                                                   pageID,                                                   jData.params().getPageID());                JahiaContainerList fakeContainerList = new JahiaContainerList( 0, 0,                        pageID, theDef.getID(), 0 );                addContainerList( fakeContainerList );                return fakeContainerList;            } else {                return null;            }        }    } // end getAbsoluteContainerList    //-------------------------------------------------------------------------    /***        * gets a container list in another page (relative page reference by        * number of levels to go up)        *        * @param        containerName   the container list name        * @param        levelNb         the numbers of level to go up in the        *                               site structure;        *                               -1 = Home Page        * @return       a JahiaContainerList object, or null if nothing found        * @see          org.jahia.data.containers.JahiaContainerList        *        * !!! Warning : this method can return a null value !!!        */    public JahiaContainerList getRelativeContainerList( String containerName, int levelNb )    throws JahiaException    {        JahiaConsole.println("JahiaContainerSet.getRelativeContainerList","into relative...................." );        int pageID = ServicesRegistry.getInstance().getJahiaPageService().findPageIDFromLevel(                        jData.params().getPage().getID(), levelNb );        JahiaConsole.println("JahiaContainerSet.getRelativeContainerList",".........page id found : " + pageID );        if (pageID != -1) {            return getAbsoluteContainerList (containerName, pageID);        } else {            return null;        }    } // end getRelativeContainerList    //-------------------------------------------------------------------------    /***        * Apply searching, filtering and sorting on the given container list.        *        * @param        ParamBean jParams, the param bean.        * @param        String the container list name.        * @param        int the container list id.        * @return       Vector of matching ctn ids, sorted and filtered.        * @auhtor NK        */    private Vector doContainerFilterSearchSort( ParamBean params,                                                String containerListName,                                                int clistID )    throws JahiaException    {        /*        JahiaConsole.println("JahiaContainerSet.doContainerFilterSearch",                             "Started for container list [" + clistID + "-" + containerListName + "]" );        */        if ( params == null || containerListName == null || clistID == -1 ){            return null;		}				try {	        BitSet resultBitSet = null;	        BitSet filterBitSet = null;	 		ContainerSearcher cSearcher = null;	 		JahiaSearchResult searchResult = null;	 		ContainerFilters cFilters = null;	 		boolean resultHasChanged = false;	 			        // Apply container list search if needed.	        cSearcher = getCtnListSearcher(params,containerListName,clistID);	        if ( cSearcher != null ){	        	searchResult = (JahiaSearchResult)cSearcher.getResult();	        }			if ( searchResult != null ){				if ( searchResult.bits() != null ){					resultBitSet = (BitSet)searchResult.bits().clone();				}			}			/*			if ( resultBitSet != null ){					JahiaConsole.println("JahiaContainerSet.doContainerFilterSearch",								 "Search result :" + resultBitSet.toString());			} else {				JahiaConsole.println("JahiaContainerSet.doContainerFilterSearch",								 "Search result is null:");			}							*/		        // Apply container list filtering if needed.	        if ( (searchResult==null) || !(searchResult != null && searchResult.getHitCount()==0) )	        {	        	cFilters = getCtnListFilters(params,containerListName,clistID);	            if ( cFilters != null ) {	            	if ( cFilters.bits() != null ){	                	filterBitSet = (BitSet)cFilters.bits().clone();	                }	            }	        }            /*            if ( filterBitSet != null ){				JahiaConsole.println("JahiaContainerSet.doContainerFilterSearch",							 "Filter result is : " + filterBitSet.toString());            } else {				JahiaConsole.println("JahiaContainerSet.doContainerFilterSearch",							 "Filter result is null:");			}            */            			// Retrieve previous search and filtering bitset from cache	     	HttpSession session = params.getSession();	     	BitSet cachedResultBitSet = null;	     	if ( session != null )	     	{				cachedResultBitSet =				(BitSet)session.getAttribute( clistID + "_searchfiltering_result_bitset" );							}			//resultHasChanged = ( cSearcher.getUpdateStatus() || cFilters.getUpdateStatus() );			resultHasChanged = ( (cSearcher != null && cSearcher.getUpdateStatus()) || ( cFilters != null && cFilters.getUpdateStatus() ) );								if ( resultHasChanged )			{		        if ( resultBitSet != null){		            if ( filterBitSet != null ){		                resultBitSet.and(filterBitSet);		            }		        } else if ( filterBitSet != null ){		            resultBitSet = filterBitSet;		        }		        resultHasChanged = true;			} else {				resultBitSet = cachedResultBitSet;				}				     	if ( session != null )	     	{				session.setAttribute( clistID + "_searchfiltering_result_bitset" ,									  resultBitSet );			}				        if ( resultBitSet != null && resultBitSet.length() == 0 ){	            return ( new Vector() );	        }					        // Apply Sorting if needed.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -