Author: tdraier
Date: Thu Aug 2 16:09:07 2007
New Revision: 18102
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18102&repname=
=3Djahia
Log:
optimized workflow mainobject lookup
(port 18027)
Modified:
trunk/core/src/java/org/jahia/content/ContentContainerKey.java
trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java
Modified: trunk/core/src/java/org/jahia/content/ContentContainerKey.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/ContentContainerKey.java&rev=3D18102&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/ContentContainerKey.java (origina=
l)
+++ trunk/core/src/java/org/jahia/content/ContentContainerKey.java Thu Aug =
2 16:09:07 2007
@@ -116,6 +116,23 @@
return results;
}
=
+ public Collection getChildsFields(EntryLoadRequest request) {
+ List results =3D new ArrayList();
+ try {
+ Vector v =3D ServicesRegistry.getInstance().getJahiaContainers=
Service().getFieldIDsAndTypesInContainer(getIdInType(), request);
+ for (Iterator iterator =3D v.iterator(); iterator.hasNext();) {
+ Object[] o =3D (Object[]) iterator.next();
+ ContentFieldKey key =3D new ContentFieldKey(((Integer) o[0=
]).intValue());
+ key.setFieldType(((Integer) o[1]).intValue());
+ key.setParent(this);
+ results.add(key);
+ }
+ } catch (JahiaException e) {
+ e.printStackTrace();
+ }
+ return results;
+ }
+
public static String toObjectKeyString(String idInType) {
return toObjectKeyString(CONTAINER_TYPE, idInType);
}
Modified: trunk/core/src/java/org/jahia/services/workflow/WorkflowService.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/workflow/WorkflowService.java&rev=3D18102&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/workflow/WorkflowService.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java Th=
u Aug 2 16:09:07 2007
@@ -626,25 +626,22 @@
=
public ContentObjectKey getHardLinkedMainObject(ContentObjectKey objec=
t) throws JahiaException {
ContentObjectKey workflowMainObject =3D object;
+ Collection c =3D null;
if (ContentContainerKey.CONTAINER_TYPE.equals(object.getType())) {
- Collection l =3D object.getChilds(loadRequest);
+ Collection l =3D ((ContentContainerKey)object).getChildsFields=
(loadRequest);
for (Iterator iterator =3D l.iterator(); iterator.hasNext();) {
ContentObjectKey co =3D (ContentObjectKey) iterator.next();
- if (!co.getChilds(loadRequest).isEmpty()) {
- object =3D co;
- }
- // Also check current if page has been moved (container is=
still independant)
- if (!co.getChilds(EntryLoadRequest.CURRENT).isEmpty()) {
+ c =3D co.getChilds(loadRequest);
+ if (!c.isEmpty()) {
object =3D co;
+ break;
}
}
}
if (ContentFieldKey.FIELD_TYPE.equals(object.getType())) {
- Collection c =3D object.getChilds(loadRequest);
- if (c.isEmpty()) {
- c =3D object.getChilds(EntryLoadRequest.CURRENT);
+ if (c =3D=3D null) {
+ c =3D object.getChilds(loadRequest);
}
-
if (!c.isEmpty()) {
ContentPageKey page =3D (ContentPageKey) c.iterator().next=
();
=
@@ -748,6 +745,9 @@
}
=
private ContentObjectKey getTopLinkedObject(ContentObjectKey object) t=
hrows JahiaException{
+ if (ContentFieldKey.FIELD_TYPE.equals(object.getType())) {
+ object =3D object.getParent(null);
+ }
int mode =3D getWorkflowMode(object, false);
return getMainLinkObject(object,mode);
}
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list