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