Author: tdraier
Date: Thu Aug  2 16:17:30 2007
New Revision: 18108

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18108&repname=
=3Djahia
Log:
get absolute fields and container cross refs in one passe only (port 18052)

Modified:
    trunk/core/src/java/org/jahia/engines/core/Core_Engine.java

Modified: trunk/core/src/java/org/jahia/engines/core/Core_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/core/Core_Engine.java&rev=3D18108&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/core/Core_Engine.java (original)
+++ trunk/core/src/java/org/jahia/engines/core/Core_Engine.java Thu Aug  2 =
16:17:30 2007
@@ -21,9 +21,7 @@
 =

 package org.jahia.engines.core;
 =

-import org.jahia.content.ContentContainerListsXRefManager;
-import org.jahia.content.ContentFieldXRefManager;
-import org.jahia.content.ObjectKey;
+import org.jahia.content.*;
 import org.jahia.data.JahiaData;
 import org.jahia.data.events.JahiaEvent;
 import org.jahia.engines.EngineRenderer;
@@ -277,10 +275,24 @@
         // now we must compare it to the database store to see if there are
         // differences, and if so update the database...
 =

-        Set fieldKeys =3D ContentFieldXRefManager.getInstance ().getAbsolu=
teFieldsFromPageID (
-                jData.getProcessingContext ().getPageID ());
-        Set containerListKeys =3D ContentContainerListsXRefManager.getInst=
ance ()
-                .getAbsoluteContainerListsFromPageID (jData.getProcessingC=
ontext ().getPageID ());
+        Set fieldKeys =3D new TreeSet();
+        Set containerListKeys =3D new TreeSet();
+
+        ContentPageKey pageKey =3D new ContentPageKey( jData.getProcessing=
Context ().getPageID() );
+        Set objectRefs =3D CrossReferenceManager.getInstance().getReverseO=
bjectXRefs(pageKey);
+        if (objectRefs !=3D null) {
+            Iterator objectRefIter =3D objectRefs.iterator();
+            while (objectRefIter.hasNext()) {
+                Object source =3D objectRefIter.next();
+                if (source instanceof ContentContainerListKey) {
+                    containerListKeys.add(source);
+                } else if (source instanceof ContentFieldKey) {
+                    fieldKeys.add(source);
+                } else {
+                    logger.debug("Invalid key object in cross reference li=
st, ignoring... ");
+                }
+            }
+        }
 =

         // first let's convert the keys into IDs.
         Set databaseAbsoluteFieldIDs =3D new HashSet ();

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

Reply via email to