Author: bpapez
Date: Mon Jul  2 16:31:20 2007
New Revision: 17860

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17860&repname=
=3Djahia
Log:
refactor and optimize some jahia_links database access methods

Modified:
    trunk/core/src/java/org/jahia/content/CrossReferenceManager.java
    trunk/core/src/java/org/jahia/content/ObjectLink.java
    trunk/core/src/java/org/jahia/hibernate/dao/JahiaLinkDAO.java
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaLinkManager.java
    trunk/core/src/java/org/jahia/services/categories/CategoryServiceImpl.j=
ava

Modified: trunk/core/src/java/org/jahia/content/CrossReferenceManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/CrossReferenceManager.java&rev=3D17860&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/CrossReferenceManager.java (origi=
nal)
+++ trunk/core/src/java/org/jahia/content/CrossReferenceManager.java Mon Ju=
l  2 16:31:20 2007
@@ -48,7 +48,8 @@
     // the preloaded object link by reference object.
     public static final String PRELOADED_OBJECT_LINKS_BY_REF_OBJECT_CACHE =
=3D "PreloadedObjectLinksByRefObjectCache";
 =

-
+    private static final String CONTENT_PAGE_PREFIX =3D "ContentPage";
+    =

     /** the unique instance of this class */
     private static CrossReferenceManager instance;
 =

@@ -94,7 +95,7 @@
         logger.debug ("Retrieving xrefs for object " + objectKey);
 =

         // let's try to load it from the database
-        List leftLinks =3D linkManager.findByRightObjectKey (objectKey);
+        List leftLinks =3D linkManager.findByRightAndLikeLeftObjectKey (ob=
jectKey, CONTENT_PAGE_PREFIX);
         Set set =3D new HashSet ();
         Iterator leftLinksIter =3D leftLinks.listIterator ();
         while (leftLinksIter.hasNext ()) {

Modified: trunk/core/src/java/org/jahia/content/ObjectLink.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/ObjectLink.java&rev=3D17860&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/ObjectLink.java (original)
+++ trunk/core/src/java/org/jahia/content/ObjectLink.java Mon Jul  2 16:31:=
20 2007
@@ -145,6 +145,14 @@
         return linkManager.findByTypeAndRightObjectKey(type, rightObjectKe=
y);
     }
 =

+    static public List findByTypeAndRightAndLikeLeftObjectKey(String type,
+                       ObjectKey rightObjectKey, String leftObjectKey)
+                       throws JahiaException {
+        JahiaLinkManager linkManager =3D (JahiaLinkManager) SpringContextS=
ingleton.getInstance().getContext().getBean(JahiaLinkManager.class.getName(=
));     =

+               return linkManager.findByTypeAndRightAndLikeLeftObjectKey(type,
+                               rightObjectKey, leftObjectKey);
+       }    =

+    =

     public void save()
         throws JahiaException {
         JahiaLinkManager linkManager =3D (JahiaLinkManager) SpringContextS=
ingleton.getInstance().getContext().getBean(JahiaLinkManager.class.getName(=
));

Modified: trunk/core/src/java/org/jahia/hibernate/dao/JahiaLinkDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/dao/JahiaLinkDAO.java&rev=3D17860&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/JahiaLinkDAO.java (original)
+++ trunk/core/src/java/org/jahia/hibernate/dao/JahiaLinkDAO.java Mon Jul  =
2 16:31:20 2007
@@ -70,6 +70,14 @@
         return hibernateTemplate.find("from JahiaLink link where link.righ=
tOid=3D?", objectKey);
     }
     =

+    public List findByRightAndLikeLeftObjectKey(String objectKey, String l=
eftKey) {
+        HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
+        hibernateTemplate.setCacheQueries(true);
+        hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+        return hibernateTemplate.find("from JahiaLink link where link.righ=
tOid=3D? and link.leftOid like ?", =

+                       new Object[]{objectKey, leftKey});
+    }    =

+    =

     public List findByTypeAndLeftAndLikeRightObjectKeys(String leftKey, St=
ring rightKey, String type) {
         HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
         hibernateTemplate.setCacheQueries(true);
@@ -112,6 +120,14 @@
                                       new Object[]{rightKey, type});
     }
 =

+    public List findByTypeAndRightAndLikeLeftObjectKey(String rightKey, St=
ring leftKey, String type) {
+        HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
+        hibernateTemplate.setCacheQueries(true);
+        hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
+        return hibernateTemplate.find("from JahiaLink link where link.type=
=3D? and link.rightOid=3D? and link.leftOid like ?",
+                                      new Object[]{type, rightKey, leftKey=
});
+    }    =

+    =

     public List findByTypeAndRightObjectKeys(String[] rightKeys, String ty=
pe) {
         HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
         hibernateTemplate.setCacheQueries(true);

Modified: trunk/core/src/java/org/jahia/hibernate/manager/JahiaLinkManager.=
java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/manager/JahiaLinkManager.java&rev=3D17860&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/JahiaLinkManager.java (=
original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaLinkManager.java M=
on Jul  2 16:31:20 2007
@@ -167,22 +167,30 @@
         return objectLinks;
     }
 =

+    public List findByRightAndLikeLeftObjectKey(ObjectKey objectKey, Strin=
g likeLeftObjectKey) {
+        List jahiaLinks =3D dao.findByRightAndLikeLeftObjectKey(objectKey
+                               .toString(), likeLeftObjectKey);
+               List objectLinks =3D new FastArrayList(jahiaLinks.size());
+               for (int i =3D 0; i < jahiaLinks.size(); i++) {
+                       JahiaLink jahiaLink =3D (JahiaLink) jahiaLinks.get(i);
+                       ObjectLink objectLink =3D fillObjectLink(jahiaLink);
+                       objectLinks.add(objectLink);
+               }
+        return objectLinks;
+    }
+    =

     public List findByTypeAndLeftAndLikeRightObjectKeys(String type, Objec=
tKey leftObjectKey, String rightObjectKey) {
         if (!typeExists(type)) {
             return emptyList;
         }
-        List objectLinks =3D null;
-
-        if (objectLinks =3D=3D null) {
-            List jahiaLinks =3D dao.findByTypeAndLeftAndLikeRightObjectKey=
s(leftObjectKey.toString(), rightObjectKey,
-                                                                      type=
);
-            objectLinks =3D new FastArrayList(jahiaLinks.size());
-            for (int i =3D 0; i < jahiaLinks.size(); i++) {
-                JahiaLink jahiaLink =3D (JahiaLink) jahiaLinks.get(i);
-                ObjectLink objectLink =3D fillObjectLink(jahiaLink);
-                objectLinks.add(objectLink);
-            }
-        }
+        List jahiaLinks =3D dao.findByTypeAndLeftAndLikeRightObjectKeys(
+                               leftObjectKey.toString(), rightObjectKey, type);
+               List objectLinks =3D new FastArrayList(jahiaLinks.size());
+               for (int i =3D 0; i < jahiaLinks.size(); i++) {
+                       JahiaLink jahiaLink =3D (JahiaLink) jahiaLinks.get(i);
+                       ObjectLink objectLink =3D fillObjectLink(jahiaLink);
+                       objectLinks.add(objectLink);
+               }
         return objectLinks;
     }    =

 =

@@ -285,6 +293,24 @@
         }
         return objectLinks;
     }
+    =

+    public List findByTypeAndRightAndLikeLeftObjectKey(String type, Object=
Key rightObjectKey, String leftObjectKey) {
+        if (!typeExists(type)) {
+            return emptyList;
+        }
+        List objectLinks =3D null;
+
+        if (type.equals(StructuralRelationship.ACTIVATION_PICKER_LINK)) {
+            List jahiaLinks =3D dao.findByTypeAndRightAndLikeLeftObjectKey=
(rightObjectKey.toString(), leftObjectKey, type);
+            objectLinks =3D new FastArrayList(jahiaLinks.size());
+            for (int i =3D 0; i < jahiaLinks.size(); i++) {
+                JahiaLink jahiaLink =3D (JahiaLink) jahiaLinks.get(i);
+                ObjectLink objectLink =3D fillObjectLink(jahiaLink);
+                objectLinks.add(objectLink);
+            }
+        }
+        return objectLinks;
+    }    =

 =

     public List findByTypeAndRightObjectKey(String type, ObjectKey[] right=
ObjectKeys) {
         if (!typeExists(type)) {

Modified: trunk/core/src/java/org/jahia/services/categories/CategoryService=
Impl.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/categories/CategoryServiceImpl.java&rev=3D17860&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/categories/CategoryServiceImpl.j=
ava (original)
+++ trunk/core/src/java/org/jahia/services/categories/CategoryServiceImpl.j=
ava Mon Jul  2 16:31:20 2007
@@ -227,7 +227,6 @@
             return;
         }
 =

-        Date currentDate =3D new Date ();
         ObjectLink.createLink(parentCategory.getObjectKey(), childKey, CAT=
EGORY_LINKTYPE,
                 new HashMap());
         lastModifCache.flush();
@@ -254,17 +253,14 @@
     public Set getObjectCategories (ObjectKey objectKey)
             throws JahiaException {
         Set categorySet =3D new HashSet ();
-        List links =3D ObjectLink.findByTypeAndRightObjectKey (CATEGORY_LI=
NKTYPE, objectKey);
+        List links =3D ObjectLink.findByTypeAndRightAndLikeLeftObjectKey (=
CATEGORY_LINKTYPE, objectKey, CATEGORY_CHILD_PREFIX);
         Iterator linkIter =3D links.iterator ();
         while (linkIter.hasNext ()) {
             ObjectLink curLink =3D (ObjectLink) linkIter.next ();
-            ObjectKey leftKey =3D curLink.getLeftObjectKey ();
-            if (leftKey instanceof CategoryKey) {
-                CategoryKey curCatKey =3D (CategoryKey) leftKey;
-                Category curCategory =3D getCategory (Integer.parseInt (cu=
rCatKey.getIDInType ()));
-                if (curCategory !=3D null) {
-                    categorySet.add (curCategory);
-                }
+            CategoryKey curCatKey =3D (CategoryKey) curLink.getLeftObjectK=
ey ();
+            Category curCategory =3D getCategory (curCatKey.getIdInType ()=
);
+            if (curCategory !=3D null) {
+                categorySet.add (curCategory);
             }
         }
         return categorySet;

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

Reply via email to