cmailleux    2005/11/18 14:41:23 CET

  Modified files:
    core/src/java/org/jahia/engines/addcontainer 
                                                 AddContainer_Engine.java 
    core/src/java/org/jahia/hibernate/dao 
                                          JahiaContainerListDAO.java 
    core/src/java/org/jahia/hibernate/manager 
                                              JahiaContainerListManager.java 
    core/src/java/org/jahia/services/containers 
                                                JahiaContainersBaseService.java 
                                                JahiaContainersService.java 
  Log:
  Add a method to get a containerlistid from its page,parent and definitionname
  
  Revision  Changes    Path
  1.37      +2 -2      
jahia/core/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java.diff?r1=1.36&r2=1.37&f=h
  1.13      +14 -0     
jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java.diff?r1=1.12&r2=1.13&f=h
  1.11      +32 -0     
jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java.diff?r1=1.10&r2=1.11&f=h
  1.33      +5 -0      
jahia/core/src/java/org/jahia/services/containers/JahiaContainersBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/containers/JahiaContainersBaseService.java.diff?r1=1.32&r2=1.33&f=h
  1.9       +2 -0      
jahia/core/src/java/org/jahia/services/containers/JahiaContainersService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/containers/JahiaContainersService.java.diff?r1=1.8&r2=1.9&f=h
  
  
  
  Index: AddContainer_Engine.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- AddContainer_Engine.java  14 Nov 2005 12:37:58 -0000      1.36
  +++ AddContainer_Engine.java  18 Nov 2005 13:41:21 -0000      1.37
  @@ -743,9 +743,9 @@
           JahiaContainersService jahiaContainersService = 
ServicesRegistry.getInstance().
                           getJahiaContainersService();
           JahiaContainerList list = 
jahiaContainersService.loadContainerListInfo(theContainer.getListID());
  -        int id = 
jahiaContainersService.getContainerListID(theContainer.getDefinition().getName(),
 theContainer.getPageID());
           int containerParentID = ((Integer) 
engineMap.get("containerParentID")).intValue();
  -        if (id > 0 && (list!= null && 
list.getParentEntryID()==containerParentID && list.getID()==id )) {
  +        int id = 
jahiaContainersService.getContainerListID(theContainer.getDefinition().getName(),
 theContainer.getPageID(),containerParentID);        
  +        if (id > 0) {
               list = jahiaContainersService.loadContainerListInfo(id);
               theContainer.setListID(list.getID());
           }
  
  
  
  Index: JahiaContainerListDAO.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- JahiaContainerListDAO.java        10 Nov 2005 17:28:13 -0000      1.12
  +++ JahiaContainerListDAO.java        18 Nov 2005 13:41:22 -0000      1.13
  @@ -706,5 +706,19 @@
           template.deleteAll(list);
           return map;
       }
  +
  +    public Integer getIdByPageIdAndDefinitionNameAndParentID(Integer pageId, 
String containerListName, Integer parentId) {
  +        Integer retval = null;
  +        String hql = "select distinct l.comp_id.id from JahiaContainerList l 
where l.pageid=? and l.containerDefinition.name=? and l.parentId=?";
  +        if (pageId != null && containerListName != null) {
  +            final HibernateTemplate template = getHibernateTemplate();
  +            template.setCacheQueries(true);
  +            List objList = template.find(hql, new Object[]{pageId, 
containerListName,parentId});
  +            if (objList.size() > 0) {
  +                retval = (Integer) objList.get(0);
  +            }
  +        }
  +        return retval;
  +    }
   }
   
  
  
  
  Index: JahiaContainerListManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JahiaContainerListManager.java    13 Oct 2005 13:11:16 -0000      1.10
  +++ JahiaContainerListManager.java    18 Nov 2005 13:41:22 -0000      1.11
  @@ -633,5 +633,37 @@
               }
           }
       }
  +
  +    public int getIdByPageIdAndDefinitionNameAndParentId(String 
containerListName, int pageID, int containerParentID) {
  +        Integer idByPageIdAndDefinitionName = null;
  +        GroupCacheKey groupCacheKey = new 
GroupCacheKey("JahiaContainerListIdByNameAndPageId_" + containerListName + 
pageID+containerParentID,
  +                                                        Arrays.asList(new 
Object[]{"ContainerListName_" + containerListName,
  +                                                                             
      PAGE_ID_CACHE_PREFIX + new 
Integer(pageID),"ContainerParentID"+containerParentID}));
  +        if (idsCache == null) {
  +            try {
  +                idsCache = 
cacheService.createCacheInstance(JAHIA_CONTAINER_LIST_ID_CACHE);
  +            } catch (JahiaInitializationException e) {
  +                e.printStackTrace();  //To change body of catch statement 
use File | Settings | File Templates.
  +            }
  +        }
  +        if (idsCache != null) {
  +            idByPageIdAndDefinitionName = (Integer) 
idsCache.get(groupCacheKey);
  +        }
  +        if (idByPageIdAndDefinitionName == null) {
  +            idByPageIdAndDefinitionName = 
dao.getIdByPageIdAndDefinitionNameAndParentID(new Integer(pageID), 
containerListName,new Integer(containerParentID));
  +            if (idByPageIdAndDefinitionName != null) {
  +                if (idsCache != null) {
  +                    idsCache.put(groupCacheKey, idByPageIdAndDefinitionName);
  +                }
  +                return idByPageIdAndDefinitionName.intValue();
  +            } else {
  +                if (idsCache != null) {
  +                    idsCache.put(groupCacheKey, new Integer(-1));
  +                }
  +                return -1;
  +            }
  +        }
  +        return idByPageIdAndDefinitionName.intValue();
  +    }
   }
   
  
  
  
  Index: JahiaContainersBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/containers/JahiaContainersBaseService.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- JahiaContainersBaseService.java   17 Nov 2005 13:42:05 -0000      1.32
  +++ JahiaContainersBaseService.java   18 Nov 2005 13:41:23 -0000      1.33
  @@ -2798,4 +2798,9 @@
   //        }
       }
   
  +    public int getContainerListID(String containerListName, int pageID, int 
containerParentID) throws JahiaException {
  +        if(containerParentID==0)
  +        return getContainerListID(containerListName, pageID);
  +        return 
containerListManager.getIdByPageIdAndDefinitionNameAndParentId(containerListName,pageID,containerParentID);
  +    }
   } // end JahiaContainersBaseService
  
  
  
  Index: JahiaContainersService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/containers/JahiaContainersService.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JahiaContainersService.java       25 Jul 2005 08:28:16 -0000      1.8
  +++ JahiaContainersService.java       18 Nov 2005 13:41:23 -0000      1.9
  @@ -1131,4 +1131,6 @@
        * @return a list containing JahiaContainerDefinition objects.           
                                                                     
        */
       public abstract List loadContainerDefinitionInTemplate(int templateID);
  +
  +    public abstract int getContainerListID(String containerListName, int 
pageID, int containerParentID) throws JahiaException;
   } // end JahiaContainersService
  

Reply via email to