[exo-jcr-commits] exo-jcr SVN: r3537 - in jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: dataflow/session and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 24 08:59:40 EST 2010


Author: tolusha
Date: 2010-11-24 08:59:40 -0500 (Wed, 24 Nov 2010)
New Revision: 3537

Modified:
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java
Log:
JCR-1523: Avoid iterating over a List thanks to its iterator when it is possible [Part #2]

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2010-11-24 13:43:49 UTC (rev 3536)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2010-11-24 13:59:40 UTC (rev 3537)
@@ -629,8 +629,9 @@
 
          List<NodeData> refNodes = new ArrayList<NodeData>();
 
-         for (ItemState changedItem : changes)
+         for (int i = 0, length = changes.size(); i < length; i++)
          {
+            ItemState changedItem = changes.get(i);
             if (changedItem.isNode())
             {
                NodeData refNode = (NodeData)changedItem.getData();
@@ -651,11 +652,13 @@
          }
 
          // check ref changes
-         for (NodeData refNode : refNodes)
+         for (int i = 0, length = refNodes.size(); i < length; i++)
          {
+            NodeData refNode = refNodes.get(i);
             List<PropertyData> nodeRefs = dataManager.getReferencesData(refNode.getIdentifier(), true);
-            for (PropertyData refProp : nodeRefs)
+            for (int j = 0, length2 = nodeRefs.size(); j < length2; j++)
             {
+               PropertyData refProp = nodeRefs.get(j);
                // if ref property is deleted in this session
                ItemState refState = dataManager.getChangesLog().getItemState(refProp.getIdentifier());
                if (refState != null && refState.isDeleted())

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java	2010-11-24 13:43:49 UTC (rev 3536)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java	2010-11-24 13:59:40 UTC (rev 3537)
@@ -85,9 +85,11 @@
    public SessionChangesLog(List<ItemState> items, String sessionId)
    {
       super(items, sessionId);
-
-      for (ItemState change : items)
+      for (int i = 0, length = items.size(); i < length; i++)
+      {
+         ItemState change = items.get(i);
          addItem(change);
+      }     
    }
 
    /**
@@ -109,9 +111,11 @@
    public PlainChangesLog addAll(List<ItemState> changes)
    {
       super.addAll(changes);
-      for (ItemState change : changes)
+      for (int i = 0, length = changes.size(); i < length; i++)
+      {
+         ItemState change = changes.get(i);
          addItem(change);
-
+      }
       return this;
    }
 
@@ -200,8 +204,9 @@
 
    private void traverseChangesByIdentifier(String identifier, List<ItemState> changesList)
    {
-      for (ItemState item : items)
+      for (int i = 0, length = items.size(); i < length; i++)
       {
+         ItemState item = items.get(i);
          if (item.getData().getIdentifier().equals(identifier))
          {
             changesList.add(item);
@@ -221,8 +226,9 @@
     */
    public void eraseEventFire(String identifier)
    {
-      for (ItemState item : items)
+      for (int i = 0, length = items.size(); i < length; i++)
       {
+         ItemState item = items.get(i);
          if (item.getData().getIdentifier().equals(identifier))
          {
             // erase flag
@@ -242,11 +248,12 @@
    public List<ItemState> getDescendantsChanges(QPath rootPath)
    {
       List<ItemState> list = new ArrayList<ItemState>();
-      for (int i = 0; i < items.size(); i++)
+      for (int i = 0, length = items.size(); i < length; i++)
       {
-         if (items.get(i).isDescendantOf(rootPath))
+         ItemState item = items.get(i);
+         if (item.isDescendantOf(rootPath))
          {
-            list.add(items.get(i));
+            list.add(item);
          }
       }
       return list;
@@ -261,8 +268,10 @@
    public List<ItemState> getItemStates(String itemIdentifier)
    {
       List<ItemState> states = new ArrayList<ItemState>();
-      for (ItemState state : getAllStates())
+      List<ItemState> currentStates = getAllStates();
+      for (int i = 0, length = currentStates.size(); i < length; i++)
       {
+         ItemState state = currentStates.get(i);
          if (state.getData().getIdentifier().equals(itemIdentifier))
          {
             states.add(state);



More information about the exo-jcr-commits mailing list