Author: tolusha
Date: 2010-11-24 09:11:49 -0500 (Wed, 24 Nov 2010)
New Revision: 3539
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java
Log:
EXOJCR-1074: Avoid iterating over a List thanks to its iterator when it is possible [Part
#2]
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java 2010-11-24
14:02:56 UTC (rev 3538)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java 2010-11-24
14:11:49 UTC (rev 3539)
@@ -654,8 +654,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();
@@ -680,11 +681,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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java 2010-11-24
14:02:56 UTC (rev 3538)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/SessionChangesLog.java 2010-11-24
14:11:49 UTC (rev 3539)
@@ -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);
Show replies by date