Author: bpapez
Date: Wed Jan  2 19:02:51 2008
New Revision: 19445

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19445&repname=
=3Djahia
Log:
Performance optimizations: Add a load-flag in the ContentObject.getChilds()=
 to specify, whether lists OR fields OR both should be loaded

Modified:
    trunk/core/src/java/org/jahia/ajax/sitemap/SiteMapAbstractAction.java
    trunk/core/src/java/org/jahia/content/ContentObject.java
    trunk/core/src/java/org/jahia/data/beans/ContainerBean.java
    trunk/core/src/java/org/jahia/data/viewhelper/sitemap/PageSiteMap.java
    trunk/core/src/java/org/jahia/engines/importexport/ManageContentPicker.=
java
    trunk/core/src/java/org/jahia/services/fields/ContentField.java
    trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java
    trunk/core/src/java/org/jahia/services/webdav/stores/JahiaDescriptorsSt=
ore.java
    trunk/core/src/java/org/jahia/views/engines/versioning/actions/Containe=
rListVersioningAction.java

Modified: trunk/core/src/java/org/jahia/ajax/sitemap/SiteMapAbstractAction.=
java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/ajax/sitemap/SiteMapAbstractAction.java&rev=3D19445&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/ajax/sitemap/SiteMapAbstractAction.java (=
original)
+++ trunk/core/src/java/org/jahia/ajax/sitemap/SiteMapAbstractAction.java W=
ed Jan  2 19:02:51 2008
@@ -20,6 +20,7 @@
 import org.jahia.ajax.AjaxAction;
 import org.jahia.bin.Jahia;
 import org.jahia.content.*;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.data.viewhelper.sitemap.PagesFilter;
 import org.jahia.engines.EngineLanguageHelper;
 import org.jahia.engines.JahiaEngine;
@@ -39,6 +40,7 @@
 import org.jahia.resourcebundle.JahiaResourceBundle;
 import org.jahia.services.acl.JahiaACLManagerService;
 import org.jahia.services.acl.JahiaBaseACL;
+import org.jahia.services.containers.ContainerFactoryProxy;
 import org.jahia.services.fields.ContentSmallTextField;
 import org.jahia.services.lock.LockKey;
 import org.jahia.services.lock.LockService;
@@ -842,7 +844,7 @@
                 if (objectKey.getType().equals(ContentContainerKey.CONTAIN=
ER_TYPE)) {
                     pageTitle1 +=3D " (Container " + objectKey.getIDInType=
() + ")";
                     try {
-                        final List l =3D object.getChilds(null, null);
+                        final List l =3D object.getChilds(null, null, Jahi=
aContainerStructure.JAHIA_FIELD);
                         for (final Iterator iterator =3D l.iterator(); ite=
rator.hasNext();) {
                             final ContentObject contentObject =3D (Content=
Object) iterator.next();
                             if (contentObject instanceof ContentSmallTextF=
ield) {

Modified: trunk/core/src/java/org/jahia/content/ContentObject.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/ContentObject.java&rev=3D19445&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/content/ContentObject.java (original)
+++ trunk/core/src/java/org/jahia/content/ContentObject.java Wed Jan  2 19:=
02:51 2008
@@ -19,6 +19,7 @@
 =

 import org.jahia.bin.Jahia;
 import org.jahia.content.events.ContentActivationEvent;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.data.fields.JahiaField;
 import org.jahia.data.fields.LoadFlags;
 import org.jahia.engines.EngineMessage;
@@ -130,6 +131,28 @@
     public abstract ArrayList getChilds(JahiaUser user, EntryLoadRequest l=
oadRequest) throws JahiaException;
 =

     /**
+     * Returns all the childrens of this object, given the current context=
 of
+     * the current user (permissions are checked), the current EntryLoadRe=
quest
+     * (used to determine if we are loading active, staging or versioned
+     * entries), and the current operation mode, to check for invalid state
+     * mixtures (such as loading a versioned entry in active mode !)
+     *
+     * @param user the JahiaUser for whom to retrieve the children objects
+     * @param loadRequest the EntryLoadRequest specifying for which state
+     * to retrive the child objects
+     * @param loadFlag JahiaContainerStructure.ALL_TYPES, =

+     * JahiaContainerStructure.JAHIA_FIELD or =

+     * JahiaContainerStructure.JAHIA_CONTAINER =

+     * @return an ArrayList of ContentObject objects that are the children=
 of
+     * this object. If the case of a JahiaContainer, the children might be
+     * ContentFields and ContentContainerLists !
+     *
+     * @throws JahiaException thrown in case there was a problem retrieving
+     * the children of this object.
+     */
+    public abstract ArrayList getChilds(JahiaUser user, EntryLoadRequest l=
oadRequest, int loadFlag) throws JahiaException;
+    =

+    /**
      * Backward compatibility
      * @deprecated
      */

Modified: trunk/core/src/java/org/jahia/data/beans/ContainerBean.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/beans/ContainerBean.java&rev=3D19445&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/beans/ContainerBean.java (original)
+++ trunk/core/src/java/org/jahia/data/beans/ContainerBean.java Wed Jan  2 =
19:02:51 2008
@@ -26,6 +26,7 @@
 import org.jahia.data.containers.JahiaContainer;
 import org.jahia.data.containers.JahiaContainerDefinition;
 import org.jahia.data.containers.JahiaContainerList;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.data.fields.FieldTypes;
 import org.jahia.data.fields.JahiaField;
 import org.jahia.exceptions.JahiaException;
@@ -683,28 +684,6 @@
     }
 =

     /**
-     * to clean a list from pseudomodel artifacts
-     *
-     * @param childs
-     * @return a list
-     */
-    private List getChildFieldsOnly(List childs) {
-        List results =3D new ArrayList();
-        if (childs =3D=3D null || childs.isEmpty()) {
-            return results;
-        }
-        Iterator iterator =3D childs.iterator();
-        while (iterator.hasNext()) {
-            ContentObject contentObject =3D (ContentObject) iterator.next(=
);
-            if (contentObject instanceof ContentField) {
-                results.add(contentObject);
-            }
-
-        }
-        return results;
-    }
-
-    /**
      * to get the actionuri for the pickers
      * specific format for the launcher to be processed by addactions js f=
unction<br>
      *
@@ -728,7 +707,7 @@
                 pageID =3D o.getPageID();
                 siteID =3D o.getSiteID();
 =

-                List l =3D getChildFieldsOnly(o.getChilds(processingContex=
t.getUser(), EntryLoadRequest.STAGED));
+                List l =3D o.getChilds(processingContext.getUser(), EntryL=
oadRequest.STAGED, JahiaContainerStructure.JAHIA_FIELD);
 =

                 for (Iterator iterator1 =3D l.iterator(); iterator1.hasNex=
t();) {
 =


Modified: trunk/core/src/java/org/jahia/data/viewhelper/sitemap/PageSiteMap=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/viewhelper/sitemap/PageSiteMap.java&rev=3D19445&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/viewhelper/sitemap/PageSiteMap.java =
(original)
+++ trunk/core/src/java/org/jahia/data/viewhelper/sitemap/PageSiteMap.java =
Wed Jan  2 19:02:51 2008
@@ -47,6 +47,7 @@
 package org.jahia.data.viewhelper.sitemap;
 =

 import org.jahia.content.*;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.resourcebundle.JahiaResourceBundle;
 import org.jahia.services.fields.ContentSmallTextField;
@@ -237,7 +238,7 @@
                     if (objectKey.getType().equals(ContentContainerKey.CON=
TAINER_TYPE)) {
                         pageTitle1 +=3D " (Container " + objectKey.getIDIn=
Type() + ")";
                         try {
-                            List l =3D object.getChilds(null,null);
+                            List l =3D object.getChilds(null,null,JahiaCon=
tainerStructure.JAHIA_FIELD);
                             for (Iterator iterator =3D l.iterator(); itera=
tor.hasNext();) {
                                 ContentObject contentObject =3D (ContentOb=
ject) iterator.next();
                                 if (contentObject instanceof ContentSmallT=
extField) {

Modified: trunk/core/src/java/org/jahia/engines/importexport/ManageContentP=
icker.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/importexport/ManageContentPicker.java&rev=3D19445&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/engines/importexport/ManageContentPicker.=
java (original)
+++ trunk/core/src/java/org/jahia/engines/importexport/ManageContentPicker.=
java Wed Jan  2 19:02:51 2008
@@ -22,6 +22,7 @@
 import org.jahia.content.ContentObject;
 import org.jahia.content.StructuralRelationship;
 import org.jahia.data.containers.JahiaContainerDefinition;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.data.search.JahiaContainerSearchHit;
 import org.jahia.data.search.JahiaSearchHit;
 import org.jahia.data.search.JahiaSearchHitInterface;
@@ -793,7 +794,7 @@
                         int type =3D JahiaSearchHitInterface.UNDEFINED_TYP=
E;
                         logger.debug("found compatible?" + key);
                         String t =3D key;// default object found ID
-                        List l =3D getChildFieldsOnly(contentContainer.get=
Childs(null, lr));
+                        List l =3D contentContainer.getChilds(null, lr, Ja=
hiaContainerStructure.JAHIA_FIELD);
 =

                         boolean descriptionFieldFound =3D false;
 =

@@ -962,24 +963,6 @@
         return url;
     }
 =

-
-
-    private List getChildFieldsOnly(List childs) {
-        List results =3D new ArrayList();
-        if (childs =3D=3D null || childs.isEmpty()) {
-            return results;
-        }
-        Iterator iterator =3D childs.iterator();
-        ContentObject contentObject;
-        while (iterator.hasNext()) {
-            contentObject =3D (ContentObject) iterator.next();
-            if (contentObject instanceof ContentField) {
-                results.add(contentObject);
-            }
-        }
-        return results;
-    }
-
     private void fillSearchHitsWithMetadataValues(JahiaSearchResult result=
s, String metadataName, ProcessingContext ctx) throws JahiaException {
         Vector v =3D results.results();
         for (Iterator iterator =3D v.iterator(); iterator.hasNext();) {

Modified: trunk/core/src/java/org/jahia/services/fields/ContentField.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/fields/ContentField.java&rev=3D19445&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/ContentField.java (origin=
al)
+++ trunk/core/src/java/org/jahia/services/fields/ContentField.java Wed Jan=
  2 19:02:51 2008
@@ -1820,14 +1820,18 @@
         }
     }
 =

-    public ArrayList getChilds(JahiaUser user,
-                               EntryLoadRequest loadRequest
-    )
+    public ArrayList getChilds(JahiaUser user, EntryLoadRequest loadReques=
t)
             throws JahiaException {
         // default implementation returns no children.
-        return new ArrayList ();
+        return new ArrayList();
     }
 =

+    public ArrayList getChilds(JahiaUser user, EntryLoadRequest loadReques=
t,
+            int loadFlag) throws JahiaException {
+        // default implementation returns no children.
+        return new ArrayList();
+    }    =

+
     public ContentObject getParent (EntryLoadRequest loadRequest)
             throws JahiaException {
 //        if(parent=3D=3Dnull) {

Modified: trunk/core/src/java/org/jahia/services/importexport/ImportHandler=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportHandler.java&rev=3D19445&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/services/importexport/ImportHandler.java =
(original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java =
Wed Jan  2 19:02:51 2008
@@ -1096,11 +1096,11 @@
             JahiaFieldDefinition jfd =3D ((JahiaFieldDefinition)def);
             ContentField cf =3D null;
             if (parent instanceof ContentContainer) {
-                List l =3D parent.getChilds(jParams.getUser(),elr);
+                List l =3D parent.getChilds(jParams.getUser(),elr, JahiaCo=
ntainerStructure.JAHIA_FIELD);
                 for (Iterator iterator =3D l.iterator(); iterator.hasNext(=
);) {
-                    ContentObject contentObject =3D (ContentObject) iterat=
or.next();
-                    if (contentObject instanceof ContentField && ((Content=
Field)contentObject).getDefinitionID(elr)=3D=3Djfd.getID()) {
-                        cf =3D (ContentField) contentObject;
+                    ContentField contentObject =3D (ContentField) iterator=
.next();
+                    if (contentObject.getDefinitionID(elr)=3D=3Djfd.getID(=
)) {
+                        cf =3D contentObject;
                         break;
                     }
                 }

Modified: trunk/core/src/java/org/jahia/services/webdav/stores/JahiaDescrip=
torsStore.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/webdav/stores/JahiaDescriptorsStore.java&rev=3D19445&repn=
ame=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/webdav/stores/JahiaDescriptorsSt=
ore.java (original)
+++ trunk/core/src/java/org/jahia/services/webdav/stores/JahiaDescriptorsSt=
ore.java Wed Jan  2 19:02:51 2008
@@ -31,6 +31,7 @@
 import org.jahia.content.comparators.ContainerListComparator;
 import org.jahia.content.comparators.ObjectTypeDispatcherComparator;
 import org.jahia.data.containers.JahiaContainerDefinition;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.data.fields.JahiaField;
 import org.jahia.data.fields.JahiaFieldDefinition;
 import org.jahia.data.fields.LoadFlags;
@@ -284,7 +285,9 @@
         throw new ServiceAccessException(this, "Invalid uri - "+uri);
     }
 =

-    private PathItem getContentPathItem(Uri uri, JahiaSite site, StringTok=
enizer tok, String root, EntryLoadRequest loadRequest, List path) throws Ja=
hiaException, ServiceAccessException {
+    private PathItem getContentPathItem(Uri uri, JahiaSite site,
+            StringTokenizer tok, String root, EntryLoadRequest loadRequest,
+            List path) throws JahiaException, ServiceAccessException {
         if (!tok.hasMoreTokens()) {
             return new PathItem(root, loadRequest, LANGSELECT, site, path);
         }
@@ -292,9 +295,11 @@
         String lang =3D tok.nextToken();
         path.add(lang);
         ArrayList locales =3D new ArrayList();
-        locales.add(LanguageCodeConverters.languageCodeToLocale (ContentFi=
eld.SHARED_LANGUAGE));
-        locales.add(LanguageCodeConverters.languageCodeToLocale (lang));
-        loadRequest =3D new EntryLoadRequest(loadRequest.getWorkflowState(=
), 0, locales);
+        locales.add(LanguageCodeConverters
+                .languageCodeToLocale(ContentField.SHARED_LANGUAGE));
+        locales.add(LanguageCodeConverters.languageCodeToLocale(lang));
+        loadRequest =3D new EntryLoadRequest(loadRequest.getWorkflowState(=
), 0,
+                locales);
         int type =3D PAGE;
         ContentObject object =3D site.getHomeContentPage();
         boolean content =3D false;
@@ -316,52 +321,80 @@
 =

                         boolean isContainerList =3D s.indexOf('[') !=3D -1;
 =

-//                    JahiaContainerDefinition jcd =3D JahiaContainerDefin=
itionsRegistry.getInstance().getDefinition(site.getID(), s);
-//                    JahiaFieldDefinition jfd =3D JahiaFieldDefinitionsRe=
gistry.getInstance().getDefinition(site.getID(), s);
-//                    boolean isContainerList =3D (jcd !=3D null);
+                        // JahiaContainerDefinition jcd =3D JahiaContainer=
DefinitionsRegistry.getInstance().getDefinition(site.getID(), s);
+                        // JahiaFieldDefinition jfd =3D JahiaFieldDefiniti=
onsRegistry.getInstance().getDefinition(site.getID(), s);
+                        // boolean isContainerList =3D (jcd !=3D null);
                         if (isContainerList) {
                             ContentContainerList ccl;
-                            String name =3D s.substring(0,s.lastIndexOf('[=
'));
+                            String name =3D s.substring(0, s.lastIndexOf('=
['));
                             if (object instanceof ContentContainer) {
-                                ccl =3D ((ContentContainer) object).getJah=
iaContainer(null, loadRequest).getContainerList(name).getContentContainerLi=
st();
+                                ccl =3D ((ContentContainer) object)
+                                        .getJahiaContainer(null, loadReque=
st)
+                                        .getContainerList(name)
+                                        .getContentContainerList();
                             } else {
-                                int id =3D ServicesRegistry.getInstance().=
getJahiaContainersService().getContainerListID(name, pageID);
-                                ccl =3D ServicesRegistry.getInstance().get=
JahiaContainersService().loadContainerList(id, LoadFlags.NOTHING, null, loa=
dRequest, new Hashtable (), new Hashtable (), new Hashtable()).getContentCo=
ntainerList();
+                                int id =3D ServicesRegistry.getInstance()
+                                        .getJahiaContainersService()
+                                        .getContainerListID(name, pageID);
+                                ccl =3D ServicesRegistry.getInstance()
+                                        .getJahiaContainersService()
+                                        .loadContainerList(id,
+                                                LoadFlags.NOTHING, null,
+                                                loadRequest, new Hashtable=
(),
+                                                new Hashtable(),
+                                                new Hashtable())
+                                        .getContentContainerList();
                             }
 =

-                            int index =3D Integer.parseInt(s.substring(s.l=
astIndexOf('[')+1,s.lastIndexOf(']')));
+                            int index =3D Integer.parseInt(s.substring(s
+                                    .lastIndexOf('[') + 1, s.lastIndexOf('=
]')));
                             List l =3D ccl.getChilds(null, loadRequest);
                             orderContainerList(l);
-                            ContentContainer cc =3D (ContentContainer) l.g=
et(index-1);
+                            ContentContainer cc =3D (ContentContainer) l
+                                    .get(index - 1);
                             type =3D CONTAINER;
                             object =3D cc;
                         } else {
                             ContentField cf =3D null;
                             if (object instanceof ContentContainer) {
-                                List l =3D ((ContentContainer) object).get=
Childs(null, loadRequest);
-                                for (Iterator iterator =3D l.iterator(); i=
terator.hasNext();) {
-                                    ContentObject contentObject =3D (Conte=
ntObject) iterator.next();
-                                    if (contentObject instanceof ContentFi=
eld) {
-                                        FieldDefinitionKey fdk =3D (FieldD=
efinitionKey) contentObject.getDefinitionKey(loadRequest);
-                                        JahiaFieldDefinition jfd =3D (Jahi=
aFieldDefinition) ContentObject.getInstance(fdk);
-                                        if (jfd.getName().equals(s)) {
-                                            cf =3D (ContentField) contentO=
bject;
-                                            break;
-                                        }
+                                List l =3D ((ContentContainer) object).get=
Childs(
+                                        null, loadRequest,
+                                        JahiaContainerStructure.JAHIA_FIEL=
D);
+                                for (Iterator iterator =3D l.iterator(); i=
terator
+                                        .hasNext();) {
+                                    ContentObject contentObject =3D (Conte=
ntObject) iterator
+                                            .next();
+                                    FieldDefinitionKey fdk =3D (FieldDefin=
itionKey) contentObject
+                                            .getDefinitionKey(loadRequest);
+                                    JahiaFieldDefinition jfd =3D (JahiaFie=
ldDefinition) ContentObject
+                                            .getInstance(fdk);
+                                    if (jfd.getName().equals(s)) {
+                                        cf =3D (ContentField) contentObjec=
t;
+                                        break;
                                     }
                                 }
                             } else {
-                                int id =3D ServicesRegistry.getInstance().=
getJahiaFieldService().getFieldID(s, pageID);
-                                cf =3D ContentField.getField(id); //Servic=
esRegistry.getInstance().getJahiaFieldService().loadField(id, LoadFlags.NOT=
HING, null, loadRequest).getContentField();
+                                int id =3D ServicesRegistry.getInstance()
+                                        .getJahiaFieldService().getFieldID=
(s,
+                                                pageID);
+                                cf =3D ContentField.getField(id); // Servi=
cesRegistry.getInstance().getJahiaFieldService().loadField(id,
+                                // LoadFlags.NOTHING, null, loadRequest).g=
etContentField();
                             }
                             object =3D cf;
                             if (cf instanceof ContentFileField) {
                                 type =3D FILE_FIELD;
                             } else if (cf instanceof ContentPageField) {
-                                object =3D ((ContentPageField)object).getC=
ontentPage(loadRequest);
-                                if (tok.hasMoreTokens() && ((ContentPage)o=
bject).getPageType(loadRequest) =3D=3D JahiaPage.TYPE_LINK) {
-                                    int pageId =3D ((ContentPage)object).g=
etPageLinkID(loadRequest);
-                                    object =3D ServicesRegistry.getInstanc=
e().getJahiaPageService().lookupContentPage(pageId, loadRequest, true);
+                                object =3D ((ContentPageField) object)
+                                        .getContentPage(loadRequest);
+                                if (tok.hasMoreTokens()
+                                        && ((ContentPage) object)
+                                                .getPageType(loadRequest) =
=3D=3D JahiaPage.TYPE_LINK) {
+                                    int pageId =3D ((ContentPage) object)
+                                            .getPageLinkID(loadRequest);
+                                    object =3D ServicesRegistry.getInstanc=
e()
+                                            .getJahiaPageService()
+                                            .lookupContentPage(pageId,
+                                                    loadRequest, true);
                                 }
                                 type =3D PAGE;
                             } else {
@@ -370,12 +403,14 @@
                         }
                         continue;
                     }
-                    case CONTAINERLIST : {
+                    case CONTAINERLIST: {
                         // s =3D <containername>_1
-                        int index =3D Integer.parseInt(s.substring(s.lastI=
ndexOf('[')+1,s.lastIndexOf(']')));
+                        int index =3D Integer.parseInt(s.substring(s
+                                .lastIndexOf('[') + 1, s.lastIndexOf(']'))=
);
                         List l =3D object.getChilds(null, loadRequest);
                         orderContainerList(l);
-                        ContentContainer cc =3D (ContentContainer) l.get(i=
ndex-1);
+                        ContentContainer cc =3D (ContentContainer) l
+                                .get(index - 1);
                         type =3D CONTAINER;
                         object =3D cc;
                         continue;
@@ -389,10 +424,17 @@
                     case FIELD: {
                         if (object instanceof ContentPageField) {
                             // only one child - page link
-                            object =3D ((ContentPageField)object).getConte=
ntPage(loadRequest);
-                            if (tok.hasMoreTokens() && ((ContentPage)objec=
t).getPageType(loadRequest) =3D=3D JahiaPage.TYPE_LINK) {
-                                int pageId =3D ((ContentPage)object).getPa=
geLinkID(loadRequest);
-                                object =3D ServicesRegistry.getInstance().=
getJahiaPageService().lookupContentPage(pageId, loadRequest, true);
+                            object =3D ((ContentPageField) object)
+                                    .getContentPage(loadRequest);
+                            if (tok.hasMoreTokens()
+                                    && ((ContentPage) object)
+                                            .getPageType(loadRequest) =3D=
=3D JahiaPage.TYPE_LINK) {
+                                int pageId =3D ((ContentPage) object)
+                                        .getPageLinkID(loadRequest);
+                                object =3D ServicesRegistry.getInstance()
+                                        .getJahiaPageService()
+                                        .lookupContentPage(pageId, loadReq=
uest,
+                                                true);
                             }
                             type =3D PAGE;
                         } else if (object instanceof ContentField) {
@@ -401,8 +443,9 @@
                         }
                         continue;
                     }
-                    default : {
-                        throw new ServiceAccessException(this, "Invalid ur=
i - "+uri);
+                    default: {
+                        throw new ServiceAccessException(this, "Invalid ur=
i - "
+                                + uri);
                     }
                 }
             }

Modified: trunk/core/src/java/org/jahia/views/engines/versioning/actions/Co=
ntainerListVersioningAction.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/views/engines/versioning/actions/ContainerListVersioningAction.jav=
a&rev=3D19445&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/views/engines/versioning/actions/Containe=
rListVersioningAction.java (original)
+++ trunk/core/src/java/org/jahia/views/engines/versioning/actions/Containe=
rListVersioningAction.java Wed Jan  2 19:02:51 2008
@@ -7,6 +7,7 @@
 import org.jahia.views.engines.JahiaEngineViewHelper;
 import org.jahia.views.engines.JahiaEngineCommonData;
 import org.jahia.views.engines.JahiaEngineButtonsHelper;
+import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.bin.JahiaErrorDisplay;
 import org.jahia.services.version.*;
@@ -401,15 +402,15 @@
     protected void containerUndelete(ContentContainer contentContainer,
                                    ProcessingContext jParams, EntryLoadReq=
uest loadRequest, boolean undoStaging)
     throws JahiaException {
-        List childs =3D contentContainer.getChilds(jParams.getUser(),loadR=
equest);
+        List childs =3D contentContainer.getChilds(jParams.getUser(),loadR=
equest, JahiaContainerStructure.JAHIA_FIELD);
         Iterator iterator =3D childs.iterator();
-        ContentObject child =3D null;
+        Object child =3D null;
         ContentPageField pageField =3D null;
         ContentPage subPage =3D null;
         String fieldValue =3D null;
         boolean pageRestore =3D false;
         while ( iterator.hasNext() ){
-            child =3D (ContentObject)iterator.next();
+            child =3D iterator.next();
             if ( child instanceof ContentPageField ){
                 pageField =3D (ContentPageField)child;
                 fieldValue =3D pageField.getValue(jParams,loadRequest);

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

Reply via email to