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