Author: bpapez
Date: Mon Dec 17 19:37:47 2007
New Revision: 19378

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19378&repname=
=3Djahia
Log:
add new getContainerIds method to be used by StagedContainerFilterByContain=
erDefinition =


Modified:
    trunk/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.j=
ava

Modified: trunk/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/dao/JahiaContainerDAO.java&rev=3D19378&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java (ori=
ginal)
+++ trunk/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java Mon =
Dec 17 19:37:47 2007
@@ -609,6 +609,62 @@
         return retVal;
     }
 =

+    public List getContainerIds(Integer ctListId, Integer siteId,
+            Boolean siteLevel, String containerDefinitionName,
+            EntryLoadRequest loadRequest, boolean ignoreLang,
+            boolean stagingOnly, boolean ascendingOrder, boolean orderByPa=
ge) {
+
+        StringBuffer buff =3D new StringBuffer(1024);
+        HashMap parameters =3D new HashMap();
+        buff.append(" select distinct c.comp_id.id, c.comp_id.workflowStat=
e, c.comp_id.versionId, c.jahiaAclId from JahiaContainer c ");
+        if (!ignoreLang) {
+            buff.append(", JahiaFieldsData f ");
+        }
+        buff.append(" where ");
+        if (Boolean.TRUE.equals(siteLevel) && siteId !=3D null
+                && siteId.intValue() > 0) {
+            parameters.put("siteId", siteId);
+        }
+        if (containerDefinitionName !=3D null
+                && containerDefinitionName.length() > 0) {
+            parameters.put("containerDefinitionName", containerDefinitionN=
ame);
+        } else if (ctListId !=3D null && ctListId.intValue() > 0) {
+            parameters.put("ctListId", ctListId);
+        }
+
+        if (parameters.containsKey("siteId")) {
+            buff.append(" c.siteId=3D :siteId AND ");
+        }
+        if (parameters.containsKey("containerDefinitionName")) {
+            buff.append(" c.ctndef.name=3D :containerDefinitionName AND ");
+        }
+        if (parameters.containsKey("ctListId")) {
+            buff.append(" c.listid=3D :ctListId AND ");
+        }
+        appendContainerMultilangAndWorkflowParams(buff, parameters, loadRe=
quest,
+                ignoreLang, stagingOnly);
+        buff.append(" order by ");
+        if (orderByPage) {
+            buff.append(" c.pageId,");
+        }
+        buff.append("c.comp_id.id");
+        if (!ascendingOrder) {
+            buff.append(" desc");
+        }
+        buff.append(", c.comp_id.workflowState ");
+        =

+        Query query =3D this.getSession().createQuery(buff.toString());
+        Iterator it =3D parameters.keySet().iterator();
+        while (it.hasNext()) {
+            String name =3D (String) it.next();
+            Object parameter =3D parameters.get(name);
+            query.setParameter(name, parameter);
+        }
+        //query.setMaxResults(10000);
+        return query.list();
+
+    }
+
     public List getVersionedContainerIdsFromList(Integer listId, Long vers=
ion) {
         List retVal =3D null;
         String hql =3D "select distinct c.comp_id.id,c.comp_id.versionId,c=
.rank from JahiaContainer c "+
@@ -1085,7 +1141,7 @@
         return template.find("select distinct p.comp_id.containerId from J=
ahiaContainerProperty p " +
                              "where p.comp_id.name=3D? and p.value=3D?", n=
ew Object[]{name, value});
     }
-
+    =

     public List getSortedContainerIds(Integer ctListId, Integer siteId, Bo=
olean siteLevel,
                                       String containerDefinitionName, Stri=
ng fieldName,
                                       EntryLoadRequest loadRequest, boolea=
n ignoreLang, boolean stagingOnly,
@@ -1133,7 +1189,7 @@
         if (addContainerDefinitionNameParam||addContainerListIdParam){
             buff.append(" AND c.comp_id.id=3Df.metadataOwnerId ");
         }
-        appendMultilangAndWorlflowParams(buff, parameters, loadRequest, ig=
noreLang, stagingOnly);
+        appendFieldMultilangAndWorkflowParams(buff, parameters, loadReques=
t, ignoreLang, stagingOnly);
         buff.append(" ORDER BY f.value ");
         if ( !ascendingOrder ){
             buff.append(" DESC ");
@@ -1158,8 +1214,8 @@
      * @param ignoreLang
      * @param stagingOnly
      */
-    private void appendMultilangAndWorlflowParams(  StringBuffer query,
-                                                    List params,
+    private void appendFieldMultilangAndWorkflowParams(  StringBuffer quer=
y,
+                                                    HashMap params,
                                                     EntryLoadRequest entry=
LoadRequest,
                                                     boolean ignoreLang,
                                                     boolean stagingOnly ){
@@ -1182,52 +1238,40 @@
             String languageCode =3D entryLoadRequest.getFirstLocale(true).
                 toString();
             query.append(" AND (");
-            query.append("f.comp_id.languageCode =3D ? OR f.comp_id.langua=
geCode=3D ? ");
-            params.add(languageCode);
-            params.add(ContentField.SHARED_LANGUAGE);
+            query.append("f.comp_id.languageCode =3D :languageCode OR f.co=
mp_id.languageCode=3D :sharedLanguageCode ");
+            params.put("languageCode",languageCode);
+            params.put("sharedLanguageCode",ContentField.SHARED_LANGUAGE);
             query.append(" ) ");
         }
     }
 =

-    /**
-     *
-     * @param query
-     * @param params
-     * @param entryLoadRequest
-     * @param ignoreLang
-     * @param stagingOnly
-     */
-    private void appendMultilangAndWorlflowParams(  StringBuffer query,
-                                                    HashMap params,
-                                                    EntryLoadRequest entry=
LoadRequest,
-                                                    boolean ignoreLang,
-                                                    boolean stagingOnly ){
-
-        if ( entryLoadRequest.isCurrent()){
-            query.append(" AND f.comp_id.workflowState =3D ");
+    private void appendContainerMultilangAndWorkflowParams(StringBuffer qu=
ery,
+            HashMap params, EntryLoadRequest entryLoadRequest,
+            boolean ignoreLang, boolean stagingOnly) {
+        if (stagingOnly) {
+            query.append(" c.comp_id.workflowState > ");
             query.append(EntryLoadRequest.ACTIVE_WORKFLOW_STATE);
-        } else if ( entryLoadRequest.isStaging() ) {
-            query.append(" AND f.comp_id.workflowState > ");
-            if ( stagingOnly ){
-                query.append(EntryLoadRequest.ACTIVE_WORKFLOW_STATE);
-            } else {
-                query.append(EntryLoadRequest.VERSIONED_WORKFLOW_STATE);
-            }
+        } else if (entryLoadRequest.isCurrent()) {
+            query.append(" c.comp_id.workflowState =3D ");
+            query.append(EntryLoadRequest.ACTIVE_WORKFLOW_STATE);
+        } else if (entryLoadRequest.isStaging()) {
+            query.append(" c.comp_id.workflowState > ");
+            query.append(EntryLoadRequest.VERSIONED_WORKFLOW_STATE);
         } else {
-            query.append(" AND f.comp_id.versionId =3D ");
+            query.append(" c.comp_id.versionId =3D ");
             query.append(entryLoadRequest.getVersionID());
         }
-        if ( !ignoreLang ) {
-            String languageCode =3D entryLoadRequest.getFirstLocale(true).
-                toString();
-            query.append(" AND (");
+        if (!ignoreLang) {
+            query.append(" AND c.comp_id.id=3Df.containerId AND (");
             query.append("f.comp_id.languageCode =3D :languageCode OR f.co=
mp_id.languageCode=3D :sharedLanguageCode ");
-            params.put("languageCode",languageCode);
-            params.put("sharedLanguageCode",ContentField.SHARED_LANGUAGE);
             query.append(" ) ");
+            params.put("languageCode", entryLoadRequest.getFirstLocale(tru=
e)
+                    .toString());
+            params.put("sharedLanguageCode", ContentField.SHARED_LANGUAGE)=
;            =

         }
     }
-
+    =

+    =

     public List executeQuery(String queryString, Map parameters){
         Query query =3D this.getSession().createQuery(queryString);
         Iterator it =3D parameters.keySet().iterator();

Modified: trunk/core/src/java/org/jahia/hibernate/manager/JahiaContainerMan=
ager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/manager/JahiaContainerManager.java&rev=3D19378&repname=
=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.j=
ava (original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.j=
ava Mon Dec 17 19:37:47 2007
@@ -1215,6 +1215,16 @@
                                       ascendingOrder);
     }
 =

+    public List getContainerIds(Integer ctListId, Integer siteId,
+            Boolean siteLevel, String containerDefinitionName,
+            EntryLoadRequest loadRequest, boolean ignoreLang,
+            boolean stagingOnly, boolean ascendingOrder, boolean orderByPa=
ge) {
+
+        return dao.getContainerIds(ctListId, siteId, siteLevel,
+                containerDefinitionName, loadRequest, ignoreLang, stagingO=
nly,
+                ascendingOrder, orderByPage);
+    }    =

+    =

     /**
      *
      * @param queryString

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to