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