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

📄 jahiacontainerdefinitionsregistry.java

📁 java 写的一个新闻发布系统
💻 JAVA
字号:
////                                   ____.//                       __/\ ______|    |__/\.     _______//            __   .____|    |       \   |    +----+       \//    _______|  /--|    |    |    -   \  _    |    :    -   \_________//   \\______: :---|    :    :           |    :    |         \________>//           |__\---\_____________:______:    :____|____:_____\//                                      /_____|////                 . . . i n   j a h i a   w e   t r u s t . . .//////  JahiaContainerDefinitionsRegistry////  loadAllDefinitions//  getDefinition( defID )//  getDefinition( containerName )//  getDefinitionsInTemplate( templateID )//  setDefinition( theFieldDef )//package org.jahia.registries;import java.util.*;                     // Vectorimport org.jahia.utils.*;           // JahiaConsoleimport org.jahia.data.containers.*; // JahiaContainerDefinitionimport org.jahia.services.*;        // ServicesRegistryimport org.jahia.exceptions.JahiaException;public class JahiaContainerDefinitionsRegistry {    private static  JahiaContainerDefinitionsRegistry   theObject   = null;    /**     * @associates JahiaContainerDefinition      */    private         Vector                              theRegistry;    /***        * registry constructor        *        */    private JahiaContainerDefinitionsRegistry()    {        JahiaConsole.println( "JahiaContainerDefinitionsRegistry", "***** Starting ContainerDefinitions Registry *****" );    } // end constructor    /***        * registry accessor        * @return       the registry object        *        */    public static synchronized JahiaContainerDefinitionsRegistry getInstance()    {        if (theObject == null) {            theObject = new JahiaContainerDefinitionsRegistry();        }        return theObject;    } // end getInstance    /***        * calls the loadAllDefinitions method        *        */    public void init()    throws JahiaException    {        loadAllDefinitions();    } // end init    /***        * loads all container definitions from the database        *        * calls load_container_definitions in JahaiContainersDBService        *        */    public synchronized void loadAllDefinitions()    throws JahiaException    {        theRegistry = new Vector();        Vector defIDs = ServicesRegistry.getInstance().getJahiaContainersService(                            ).getAllContainerDefinitionIDs();        for (int i=0; i < defIDs.size(); i++) {            theRegistry.add( ServicesRegistry.getInstance().getJahiaContainersService(                                ).loadContainerDefinition( ((Integer)defIDs.elementAt(i)).intValue() ) );        }    } // end loadAllDefinitions    /***        * gets a definition in the registry through its definition ID        *        * @param        defID           the definition ID        * @return       a JahiaContainerDefinition object; null if not found        * @see          org.jahia.data.containers.JahiaContainerDefinition        *        * @exception    raises a critical JahiaException if no definition found        *        */    public JahiaContainerDefinition getDefinition( int defID )    throws JahiaException    {        if (theRegistry != null) {            for (int i=0; i < theRegistry.size(); i++) {                JahiaContainerDefinition theFieldDef = (JahiaContainerDefinition) theRegistry.elementAt( i );                if (theFieldDef.getID() == defID) {                    return theFieldDef;                }            }        }        return null;    } // end getDefinition    /***        * gets a definition in the registry through its page definition id and container name        *        * @param		siteID			the site id        * @param        containerName   the container name        * @return       a JahiaContainerDefinition object; null if not found        * @see          org.jahia.data.containers.JahiaContainerDefinition        *        *        */    public JahiaContainerDefinition getDefinition( int siteID, String containerName )    {        if (theRegistry != null) {            for (int i=0; i < theRegistry.size(); i++) {                JahiaContainerDefinition theContainerDef = (JahiaContainerDefinition) theRegistry.elementAt( i );                if ( (theContainerDef.getJahiaID()==siteID) && theContainerDef.getName().equals(containerName)) {                    return theContainerDef;                }            }        }        return null;    } // end getDefinition    /***        * gets all definitions of a page template in the registry        *        * @param        pageDefID       the page definition id        * @return       a JahiaContainerDefinition object; null if not found        * @see          org.jahia.data.containers.JahiaContainerDefinition        *        *        */    public Vector getDefinitionsInTemplate( int pageDefID )    {        Vector theDefs = new Vector();        if (theRegistry != null) {            for (int i=0; i < theRegistry.size(); i++) {                JahiaContainerDefinition theContainerDef = (JahiaContainerDefinition) theRegistry.elementAt( i );                Hashtable subDefs = theContainerDef.getSubDefs();                Enumeration subKeys = subDefs.keys();                boolean ok = false;                while ((subKeys.hasMoreElements()) && (!ok)) {                    JahiaContainerSubDefinition theSubDef = (JahiaContainerSubDefinition)                        subDefs.get( (Integer)subKeys.nextElement() );                    if (theSubDef.getPageDefID() == pageDefID) {                        theDefs.add( theContainerDef );                        ok = true;                    }                }            }        }        return theDefs;    } // end getDefinitionsInTemplate    /***        * sets a definition in the registry, and synchronizes it with the database        *        * @param        theContainerDef the JahiaContainerDefinition object to set        * @see          org.jahia.data.containers.JahiaContainerDefinition        *        */    public synchronized void setDefinition( JahiaContainerDefinition theContainerDef )    throws JahiaException    {        JahiaContainerDefinition aContainerDef;        aContainerDef = getDefinition( theContainerDef.getJahiaID(), theContainerDef.getName() );        if (aContainerDef != null) {            // container definition already exists, just have to update            ServicesRegistry.getInstance().getJahiaContainersService(                ).saveContainerDefinition( theContainerDef );            int index = getDefinitionIndex( aContainerDef );            theRegistry.setElementAt( theContainerDef, index );        } else {            // container definition doesn't exist, need to add to registry            ServicesRegistry.getInstance().getJahiaContainersService(                ).saveContainerDefinition( theContainerDef );            theRegistry.add( theContainerDef );        }    } // end setDefinition    /***        * remove a Container Definition         *        */    public synchronized void removeContainerDefinition( int ctnDefID )    throws JahiaException    {                for (int i=0; i < theRegistry.size(); i++) {            JahiaContainerDefinition theCtnDef = (JahiaContainerDefinition) theRegistry.elementAt( i );            if (theCtnDef.getID() == ctnDefID) {                theRegistry.remove(i);                return;            }        }    } // end removeContainerDefinition    /***        * gets the index of a definition in the registry        *        * @param        theContainerDef the JahiaContainerDefinition object to set        * @return       the index        * @see          org.jahia.data.containers.JahiaContainerDefinition        *        * @exception    raises a critical JahiaException if the definition doesn't exist in the registry        *        */    private int getDefinitionIndex( JahiaContainerDefinition theContainerDef )    throws JahiaException    {        for (int i=0; i < theRegistry.size(); i++) {            JahiaContainerDefinition aContainerDef = (JahiaContainerDefinition) theRegistry.elementAt( i );            if (theContainerDef.getID() == aContainerDef.getID()) {                return i;            }        }        String errorMsg = "Could not find an index for container desc " + theContainerDef.getName();        JahiaConsole.println ("JahiaContainerDefinitionsRegistry", errorMsg + " -> BAILING OUT");        throw new JahiaException ("Database synchronisation error",                                  errorMsg, JahiaException.REGISTRY_ERROR, JahiaException.CRITICAL);    } // end getDefinitionIndex} // end JahiaContainerDefinitionsRegistry

⌨️ 快捷键说明

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