Author: knguyen
Date: Tue Jan 22 18:12:02 2008
New Revision: 19564
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19564&repname=
=3Djahia
Log:
load field definitions by name using db query instead of iterating over all=
the registry.
Modified:
trunk/core/src/java/org/jahia/data/containers/ContainerFilterBean.java
trunk/core/src/java/org/jahia/data/containers/ContainerMetadataFilterBe=
an.java
trunk/core/src/java/org/jahia/data/containers/ContainerSorterByContaine=
rDefinition.java
trunk/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java
trunk/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDefinitionDAO.ja=
va
trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDefinitionMa=
nager.java
trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.java
trunk/core/src/java/org/jahia/services/fields/JahiaFieldService.java
Modified: trunk/core/src/java/org/jahia/data/containers/ContainerFilterBean=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/containers/ContainerFilterBean.java&rev=3D19564&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=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/data/containers/ContainerFilterBean.java =
(original)
+++ trunk/core/src/java/org/jahia/data/containers/ContainerFilterBean.java =
Tue Jan 22 18:12:02 2008
@@ -667,31 +667,18 @@
StringBuffer buff =3D new StringBuffer(1024);
HashMap parameters =3D new HashMap();
=
- ArrayList fieldDefIDs =3D new ArrayList();
- int index =3D 0;
- try {
- ArrayList defs =3D JahiaFieldDefinitionsRegistry.getInstance()=
.getAllDefinitions();
- Iterator it =3D defs.iterator();
- JahiaFieldDefinition fieldDef =3D null;
- while (it.hasNext()){
- fieldDef =3D (JahiaFieldDefinition)it.next();
- if ( fieldDef.getName().equals(this.fieldName)){
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- }
- }
- } catch( Throwable t ){
- }
- if ( fieldDefIDs.isEmpty() ){
+ List fieldDefIDs =3D ServicesRegistry.getInstance().getJahiaFieldS=
ervice().loadFieldDefinitionIds(this.fieldName,false);
+ if ( fieldDefIDs =3D=3D null || fieldDefIDs.isEmpty() ){
return result;
}
=
- buff.append(" SELECT f.metadataOwnerId FROM JahiaFieldsData f ");
+ buff.append(" SELECT f.containerId FROM JahiaFieldsData f ");
buff.append(", JahiaContainer c ");
parameters.put("ctListId",new Integer(ctnListID));
buff.append(" WHERE (");
Iterator it =3D fieldDefIDs.iterator();
Integer fieldDefID =3D null;
- index =3D 0;
+ int index =3D 0;
while (it.hasNext()){
fieldDefID =3D (Integer)it.next();
buff.append(" f.fieldDefinition.id =3D " + fieldDefID.toString=
());
@@ -1640,21 +1627,8 @@
StringBuffer buff =3D new StringBuffer(1024);
HashMap parameters =3D new HashMap();
=
- ArrayList fieldDefIDs =3D new ArrayList();
- int index =3D 0;
- try {
- ArrayList defs =3D JahiaFieldDefinitionsRegistry.getInstance()=
.getAllDefinitions();
- Iterator it =3D defs.iterator();
- JahiaFieldDefinition fieldDef =3D null;
- while (it.hasNext()){
- fieldDef =3D (JahiaFieldDefinition)it.next();
- if ( fieldDef.getName().equals(this.fieldName) ){
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- }
- }
- } catch( Throwable t ){
- }
- if ( fieldDefIDs.isEmpty() ){
+ List fieldDefIDs =3D ServicesRegistry.getInstance().getJahiaFieldS=
ervice().loadFieldDefinitionIds(this.fieldName,false);
+ if ( fieldDefIDs =3D=3D null || fieldDefIDs.isEmpty() ){
return result;
}
boolean allSitesAllowed =3D (siteIDs =3D=3D null || siteIDs.length=
=3D=3D0);
@@ -1706,7 +1680,7 @@
buff.append(" WHERE (");
Iterator it =3D fieldDefIDs.iterator();
Integer fieldDefID =3D null;
- index =3D 0;
+ int index =3D 0;
while (it.hasNext()){
fieldDefID =3D (Integer)it.next();
buff.append(" f.fieldDefinition.id =3D " + fieldDefID.toString=
());
Modified: trunk/core/src/java/org/jahia/data/containers/ContainerMetadataFi=
lterBean.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/containers/ContainerMetadataFilterBean.java&rev=3D19564&repna=
me=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/data/containers/ContainerMetadataFilterBe=
an.java (original)
+++ trunk/core/src/java/org/jahia/data/containers/ContainerMetadataFilterBe=
an.java Tue Jan 22 18:12:02 2008
@@ -365,21 +365,8 @@
StringBuffer buff =3D new StringBuffer(1024);
HashMap parameters =3D new HashMap();
=
- ArrayList fieldDefIDs =3D new ArrayList();
- int index =3D 0;
- try {
- ArrayList defs =3D JahiaFieldDefinitionsRegistry.getInstance()=
.getAllDefinitions();
- Iterator it =3D defs.iterator();
- JahiaFieldDefinition fieldDef =3D null;
- while (it.hasNext()){
- fieldDef =3D (JahiaFieldDefinition)it.next();
- if ( fieldDef.getName().equals(this.fieldName) && fieldDef=
.getIsMetadata()){
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- }
- }
- } catch( Throwable t ){
- }
- if ( fieldDefIDs.isEmpty() ){
+ List fieldDefIDs =3D ServicesRegistry.getInstance().getJahiaFieldS=
ervice().loadFieldDefinitionIds(this.fieldName,true);
+ if ( fieldDefIDs =3D=3D null || fieldDefIDs.isEmpty() ){
return result;
}
parameters.put("contentType", ContentContainerKey.CONTAINER_TYPE);
@@ -391,6 +378,7 @@
buff.append(" WHERE (");
Iterator it =3D fieldDefIDs.iterator();
Integer fieldDefID =3D null;
+ int index =3D 0;
index =3D 0;
while (it.hasNext()){
fieldDefID =3D (Integer)it.next();
@@ -618,21 +606,8 @@
StringBuffer buff =3D new StringBuffer(1024);
HashMap parameters =3D new HashMap();
=
- ArrayList fieldDefIDs =3D new ArrayList();
- int index =3D 0;
- try {
- ArrayList defs =3D JahiaFieldDefinitionsRegistry.getInstance()=
.getAllDefinitions();
- Iterator it =3D defs.iterator();
- JahiaFieldDefinition fieldDef =3D null;
- while (it.hasNext()){
- fieldDef =3D (JahiaFieldDefinition)it.next();
- if ( fieldDef.getName().equals(this.fieldName) && fieldDef=
.getIsMetadata()){
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- }
- }
- } catch( Throwable t ){
- }
- if ( fieldDefIDs.isEmpty() ){
+ List fieldDefIDs =3D ServicesRegistry.getInstance().getJahiaFieldS=
ervice().loadFieldDefinitionIds(this.fieldName,true);
+ if ( fieldDefIDs =3D=3D null || fieldDefIDs.isEmpty() ){
return result;
}
parameters.put("contentType", ContentContainerKey.CONTAINER_TYPE);
@@ -682,7 +657,7 @@
buff.append(" WHERE (");
Iterator it =3D fieldDefIDs.iterator();
Integer fieldDefID =3D null;
- index =3D 0;
+ int index =3D 0;
while (it.hasNext()){
fieldDefID =3D (Integer)it.next();
buff.append(" f.fieldDefinition.id =3D " + fieldDefID.toString=
());
Modified: trunk/core/src/java/org/jahia/data/containers/ContainerSorterByCo=
ntainerDefinition.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/containers/ContainerSorterByContainerDefinition.java&rev=3D19=
564&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/data/containers/ContainerSorterByContaine=
rDefinition.java (original)
+++ trunk/core/src/java/org/jahia/data/containers/ContainerSorterByContaine=
rDefinition.java Tue Jan 22 18:12:02 2008
@@ -214,8 +214,8 @@
if (fieldNames[i] !=3D null && !fieldNames[i].trim().equals(""=
)) {
//Must have at least one container definition correctly de=
fined
for (int d =3D 0; d < containerDefinitionNames.length; d++=
) {
- if (containerDefinitionNames[i] !=3D null &&
- !containerDefinitionNames[i].trim().equals("")) {
+ if (containerDefinitionNames[d] !=3D null &&
+ !containerDefinitionNames[d].trim().equals("")) {
if (siteId > 0){
this.siteIds =3D new Integer[]{new Integer(sit=
eId)};
}
@@ -274,7 +274,7 @@
//Must have at least one container definition correctly de=
fined
Iterator it =3D null;
if (siteIds !=3D null && !siteIds.isEmpty()){
- this.siteIds =3D (Integer[])siteIds.toArray(this.siteI=
ds);
+ this.siteIds =3D (Integer[])siteIds.toArray(new Intege=
r[]{});
}
if (containerDefinitionNames !=3D null && !containerDefini=
tionNames.isEmpty()){
this.containerDefinitionNames =3D new String[container=
DefinitionNames.size()];
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=3D19564&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 Tue =
Jan 22 18:12:02 2008
@@ -1182,37 +1182,21 @@
HashMap parameters =3D new HashMap();
=
ArrayList fieldDefIDs =3D new ArrayList();
- List fieldNamesList =3D Arrays.asList(fieldNames);
List siteIdsList =3D new ArrayList();
- for (int i=3D0; i<siteIds.length; i++){
- siteIdsList.add(siteIds[i]);
+ if ( siteIds !=3D null && siteIds.length>0){
+ siteIdsList =3D Arrays.asList(siteIds);
}
int index =3D 0;
try {
- ArrayList defs =3D JahiaFieldDefinitionsRegistry.getInstance()=
.getAllDefinitions();
+ List defs =3D ServicesRegistry.getInstance().getJahiaFieldServ=
ice()
+ .loadFieldDefinitionIds(fieldNames,sortByMetadata);
Iterator it =3D defs.iterator();
- JahiaFieldDefinition fieldDef =3D null;
+ Integer defId =3D null;
while (it.hasNext()){
- fieldDef =3D (JahiaFieldDefinition)it.next();
- if (fieldNamesList.contains(fieldDef.getName())){
- if (sortByMetadata){
- if (fieldDef.getIsMetadata()){
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- parameters.put("fieldDefID"+String.valueOf(ind=
ex),new Integer(fieldDef.getID()));
- index++;
- }
- } else if ( siteIds !=3D null && siteIds.length> 0 ){
- if (siteIdsList =3D=3D null || siteIdsList.contain=
s(new Integer(fieldDef.getJahiaID()))){
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- parameters.put("fieldDefID"+String.valueOf(ind=
ex),new Integer(fieldDef.getID()));
- index++;
- }
- } else {
- fieldDefIDs.add(new Integer(fieldDef.getID()));
- parameters.put("fieldDefID"+String.valueOf(index),=
new Integer(fieldDef.getID()));
- index++;
- }
- }
+ defId =3D (Integer)it.next();
+ fieldDefIDs.add(defId);
+ parameters.put("fieldDefID"+String.valueOf(index),defId);
+ index++;
}
} catch( Throwable t ){
}
Modified: trunk/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDefinition=
DAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/dao/JahiaFieldsDefinitionDAO.java&rev=3D19564&repname=3D=
jahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=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/JahiaFieldsDefinitionDAO.ja=
va (original)
+++ trunk/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDefinitionDAO.ja=
va Tue Jan 22 18:12:02 2008
@@ -80,6 +80,51 @@
return jahiaFieldsDef;
}
=
+ /**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionName
+ * @param isMetadata if true, return only metadata field definition
+ * @return
+ */
+ public List getDefinitionIds(String definitionName, boolean isMetadata=
) {
+ final HibernateTemplate template =3D getHibernateTemplate();
+ template.setCacheQueries(true);
+ StringBuffer hql =3D new StringBuffer("select distinct def.id from=
JahiaFieldsDef def where def.name=3D?");
+ if (isMetadata){
+ hql.append(" AND def.isMetadata =3D 1");
+ } else {
+ hql.append(" AND def.isMetadata <> 1");
+ }
+ return template.find(hql.toString(), new Object[]{definitionName}=
);
+ }
+
+ /**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionNames
+ * @param isMetadata if true, return only metadata field definition
+ * @return
+ */
+ public List getDefinitionIds(String[] definitionNames, boolean isMetad=
ata) {
+ final HibernateTemplate template =3D getHibernateTemplate();
+ template.setCacheQueries(true);
+ StringBuffer hql =3D new StringBuffer("select distinct def.id from=
JahiaFieldsDef def where ( ");
+ for ( int i=3D0; i< definitionNames.length; i++ ){
+ hql.append(" def.name=3D? ");
+ if (i<definitionNames.length-1){
+ hql.append(" OR ");
+ }
+ }
+ hql.append(" ) ");
+ if (isMetadata){
+ hql.append(" AND def.isMetadata =3D 1");
+ } else {
+ hql.append(" AND def.isMetadata <> 1");
+ }
+ return template.find(hql.toString(), definitionNames);
+ }
+
private void saveProperties(JahiaFieldsDef ctnDef, final HibernateTemp=
late template) {
Map properties =3D ctnDef.getProperties();
int size =3D properties.size();
Modified: trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDefini=
tionManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/manager/JahiaFieldsDefinitionManager.java&rev=3D19564&re=
pname=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/JahiaFieldsDefinitionMa=
nager.java (original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaFieldsDefinitionMa=
nager.java Tue Jan 22 18:12:02 2008
@@ -116,6 +116,28 @@
return null;
}
=
+ /**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionName
+ * @param isMetadata if true, return only metadata field definition
+ * @return
+ */
+ public List getDefinitionIds(String definitionName, boolean isMetadata=
) {
+ return dao.getDefinitionIds(definitionName,isMetadata);
+ }
+
+ /**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionNames
+ * @param isMetadata if true, return only metadata field definition
+ * @return
+ */
+ public List getDefinitionIds(String[] definitionNames, boolean isMetad=
ata) {
+ return dao.getDefinitionIds(definitionNames,isMetadata);
+ }
+
public JahiaFieldDefinition loadFieldDefinition(int siteID, String def=
initionName) {
try {
JahiaFieldDefinition fieldDefinition =3D null;
Modified: trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseServi=
ce.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/JahiaFieldBaseService.java&rev=3D19564&repname=3Dj=
ahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=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/services/fields/JahiaFieldBaseService.jav=
a (original)
+++ trunk/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.jav=
a Tue Jan 22 18:12:02 2008
@@ -1445,6 +1445,35 @@
return definitionManager.loadFieldDefinition(siteID, definitionNam=
e);
} // loadFieldDefinition
=
+ /**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionName
+ * @param isMetadata if true, return only metadata field definition
+ * @param definitionName
+ * @param isMetadata
+ * @return
+ * @throws JahiaException
+ */
+ public List loadFieldDefinitionIds(String definitionName, boolean isMe=
tadata)
+ throws JahiaException {
+ return definitionManager.getDefinitionIds(definitionName,isMetadat=
a);
+ }
+
+ /**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionNames
+ * @param isMetadata if true, return only metadata field definition
+ * @param definitionName
+ * @param isMetadata
+ * @return
+ * @throws JahiaException
+ */
+ public List loadFieldDefinitionIds(String[] definitionNames, boolean i=
sMetadata)
+ throws JahiaException {
+ return definitionManager.getDefinitionIds(definitionNames,isMetada=
ta); =
+ }
=
/**
* Saves a Field Definition
Modified: trunk/core/src/java/org/jahia/services/fields/JahiaFieldService.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/JahiaFieldService.java&rev=3D19564&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/services/fields/JahiaFieldService.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/fields/JahiaFieldService.java Tu=
e Jan 22 18:12:02 2008
@@ -467,6 +467,28 @@
throws JahiaException;
=
/**
+ * Load all def Ids of the given name.
+ *
+ * @param definitionName
+ * @param isMetadata if true, return only metadata field definition
+ * @return
+ * @throws JahiaException
+ */
+ public abstract List loadFieldDefinitionIds(String definitionName, boo=
lean isMetadata)
+ throws JahiaException;
+
+ /**
+ * Load all def Ids of the given names.
+ *
+ * @param definitionNames
+ * @param isMetadata if true, return only metadata field definition
+ * @return
+ * @throws JahiaException
+ */
+ public abstract List loadFieldDefinitionIds(String[] definitionNames, =
boolean isMetadata)
+ throws JahiaException;
+
+ /**
* Saves a Field Definition
*
* @param theDef the JahiaFieldDefinition object to save
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list