Author: sshyrkov
Date: Sun Jan 13 18:06:02 2008
New Revision: 19494

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19494&repname=
=3Djahia
Log:
[trunk 19371-19378]: 1) Correct Syntax error for Websphere
2) Refactor StagedContainerFilterByContainerDefinition to use Hibernate and=
 fix visibility issue in superclass and getting of a Boolean
3) add new getContainerIds method to be used by StagedContainerFilterByCont=
ainerDefinition =


Modified:
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/ContainerFilterByContainerDefinition.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/StagedContainerFilterByContainerDefinition.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao=
/JahiaContainerDAO.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/man=
ager/JahiaContainerManager.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/administrat=
ion/group_management/group_search.jsp

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/co=
ntainers/ContainerFilterByContainerDefinition.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/data/containers/ContainerFilterByConta=
inerDefinition.java&rev=3D19494&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
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/ContainerFilterByContainerDefinition.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/ContainerFilterByContainerDefinition.java Sun Jan 13 18:06:02 2008
@@ -55,7 +55,7 @@
     public static final String VERSION_ID =3D "version_id";
     public static final String WORKFLOW_STATE =3D "workflow_state";
 =

-    private EntryLoadRequest entryLoadRequest =3D EntryLoadRequest.CURRENT;
+    protected EntryLoadRequest entryLoadRequest =3D EntryLoadRequest.CURRE=
NT;
 =

     private String containerDefinitionName;
 =


Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/co=
ntainers/StagedContainerFilterByContainerDefinition.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/data/containers/StagedContainerFilterB=
yContainerDefinition.java&rev=3D19494&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
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/StagedContainerFilterByContainerDefinition.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/data/containe=
rs/StagedContainerFilterByContainerDefinition.java Sun Jan 13 18:06:02 2008
@@ -18,10 +18,14 @@
 package org.jahia.data.containers;
 =

 import java.util.BitSet;
+import java.util.Iterator;
+import java.util.List;
 =

 import org.jahia.exceptions.JahiaException;
+import org.jahia.hibernate.manager.JahiaContainerManager;
+import org.jahia.hibernate.manager.SpringContextSingleton;
 import org.jahia.services.version.EntryLoadRequest;
-import org.jahia.utils.JahiaTools;
+import org.springframework.context.ApplicationContext;
 =

 /**
  * Retrieves the unpublished container IDs in the site by the container
@@ -32,8 +36,6 @@
 public class StagedContainerFilterByContainerDefinition extends
         ContainerFilterByContainerDefinition {
 =

-    private int siteId;
-
     /**
      * Initializes an instance of this class.
      * =

@@ -45,44 +47,48 @@
     public StagedContainerFilterByContainerDefinition(
             String containerDefinitionName, int siteId) {
         super(containerDefinitionName, EntryLoadRequest.STAGED);
-        this.siteId =3D siteId;
-    }
-
-    public BitSet doFilter() throws JahiaException {
-        return super.doFilterBySite(siteId, getContainerDefinitionName(), =
0);
-    }
-
-    public BitSet doFilter(int ctnListID) throws JahiaException {
-        throw new UnsupportedOperationException(
-                "Method is not supported. Use doFilter() instead.");
-    }
-
-    public BitSet doFilterBySite(int siteId, String containerDefinitionNam=
e,
-            int listId) throws JahiaException {
-        throw new UnsupportedOperationException(
-                "Method is not supported. Use doFilter() instead.");
     }
-
-    public String getSelectBySiteID(int siteId, String containerDefinition=
Name,
-            boolean ignoreLang) {
-        StringBuffer buff =3D new StringBuffer(256);
-        buff.append("SELECT DISTINCT id_jahia_ctn_entries,workflow_state"
-                + " FROM jahia_ctn_entries a, jahia_ctn_def b WHERE "
-                + WORKFLOW_STATE + "=3D"
-                + EntryLoadRequest.STAGING_WORKFLOW_STATE
-                + " AND version_id <> -1 ");
-
-        buff.append(" AND  jahiaid_jahia_ctn_entries=3D");
-        buff.append(siteId);
-        buff.append(" AND "
-                + " a.ctndefid_jahia_ctn_entries =3D b.id_jahia_ctn_def "
-                + " AND b.name_jahia_ctn_def=3D'");
-        buff.append(JahiaTools.quote(containerDefinitionName));
-        buff.append("'");
-
-        buff.append(" ORDER BY id_jahia_ctn_entries," + WORKFLOW_STATE);
-
-        return buff.toString();
+    /**
+     * The expected result is a bit set of matching container ids.
+     *
+     * @param int ctnListID, the container list id
+     * @return BitSet bits, the expected result as a bit set of matching c=
tn ids,each bit position set to true correspond to matching ctn ids.
+     */
+    private BitSet doFiltering(int ctnListID) throws JahiaException {
+        return doFilteringBySite(0, "", ctnListID);
     }
-
+    =

+    /**
+    *
+    * The expected result is a bit set of matching container ids for a giv=
en siteId.
+    * if siteId =3D -1 , return result from all sites
+    *
+    * If the containerDefinitionName is null, return result from all conta=
iners
+    * no regards to it definition !
+    *
+    * @param siteId
+    * @return BitSet bits, the expected result as a bit set of matching ct=
n ids,each bit position set to true correspond to matching ctn ids.
+    * @throws JahiaException
+    */
+   private BitSet doFilteringBySite(int siteId,
+            String containerDefinitionName, int listId) throws JahiaExcept=
ion {
+        ApplicationContext context =3D SpringContextSingleton.getInstance()
+                .getContext();
+        JahiaContainerManager containerMgr =3D (JahiaContainerManager) con=
text
+                .getBean(JahiaContainerManager.class.getName());
+        List ctnIds =3D containerMgr.getContainerIds(new Integer(listId),
+                new Integer(siteId), siteId > 0 ? Boolean.TRUE : Boolean.F=
ALSE,
+                containerDefinitionName, this.entryLoadRequest, false, tru=
e,
+                true, siteId > 0 ? true : false);
+
+        BitSet bits =3D new BitSet();
+
+        for (Iterator it =3D ctnIds.iterator(); it.hasNext();) {
+            Object[] row =3D (Object[]) it.next();
+            int ctnID =3D ((Integer) row[0]).intValue();
+            bits.set(ctnID);
+
+        }
+        return bits;
+    }    =

 }
\ No newline at end of file

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hiberna=
te/dao/JahiaContainerDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java&r=
ev=3D19494&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
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao=
/JahiaContainerDAO.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/dao=
/JahiaContainerDAO.java Sun Jan 13 18:06:02 2008
@@ -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 ");
@@ -1150,6 +1206,7 @@
 =

     }
 =

+
     /**
      *
      * @param query
@@ -1158,7 +1215,7 @@
      * @param ignoreLang
      * @param stagingOnly
      */
-    private void appendMultilangAndWorlflowParams(  StringBuffer query,
+    private void appendFieldMultilangAndWorkflowParams(  StringBuffer quer=
y,
                                                     HashMap params,
                                                     EntryLoadRequest entry=
LoadRequest,
                                                     boolean ignoreLang,
@@ -1189,6 +1246,32 @@
         }
     }
 =

+    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.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(" c.comp_id.versionId =3D ");
+            query.append(entryLoadRequest.getVersionID());
+        }
+        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 ");
+            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: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hiberna=
te/manager/JahiaContainerManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaContainerManage=
r.java&rev=3D19494&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
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/man=
ager/JahiaContainerManager.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/hibernate/man=
ager/JahiaContainerManager.java Sun Jan 13 18:06:02 2008
@@ -1214,6 +1214,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

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/admin=
istration/group_management/group_search.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/webapp/jsp/jahia/administration/group_management/grou=
p_search.jsp&rev=3D19494&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
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/administrat=
ion/group_management/group_search.jsp (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/webapp/jsp/jahia/administrat=
ion/group_management/group_search.jsp Sun Jan 13 18:06:02 2008
@@ -98,7 +98,7 @@
                         &nbsp;&nbsp;&nbsp;&nbsp;
                             <input type=3D"checkbox" name=3D"providers" va=
lue=3D"<%=3DcurProvider.getKey()%>" disabled
                                 <%if (providerList.size() <=3D 1) { %> che=
cked <% } %>>
-                            <jahia:engineResourceBundle resourceName=3D"<%=
=3D "org.jahia.engines.users.SelectUG_Engine.providers." + curProvider.getK=
ey() + ".label"%>"/> (<%=3DcurProvider.getKey()%>)<br>
+                            <jahia:engineResourceBundle resourceName=3D'<%=
=3D "org.jahia.engines.users.SelectUG_Engine.providers." + curProvider.getK=
ey() + ".label"%>'/> (<%=3DcurProvider.getKey()%>)<br>
 <%
                         }
 %>

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

Reply via email to