Author: tolusha
Date: 2011-08-30 07:36:06 -0400 (Tue, 30 Aug 2011)
New Revision: 4807
Removed:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java
Log:
EXOJCR-923: DefaultItemDataCopyVisitory refactoring
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -34,8 +34,8 @@
import org.exoplatform.services.jcr.impl.core.query.QueryManagerImpl;
import org.exoplatform.services.jcr.impl.core.version.VersionImpl;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataCloneVisitor;
+import org.exoplatform.services.jcr.impl.dataflow.ItemDataCopyVisitor;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataMoveVisitor;
-import org.exoplatform.services.jcr.impl.dataflow.WorkspaceItemDataCopyVisitor;
import org.exoplatform.services.jcr.impl.dataflow.session.SessionChangesLog;
import org.exoplatform.services.jcr.impl.dataflow.session.TransactionableDataManager;
import org.exoplatform.services.jcr.impl.dataflow.version.VersionHistoryDataHelper;
@@ -208,8 +208,8 @@
}
}
- WorkspaceItemDataCopyVisitor initializer =
- new WorkspaceItemDataCopyVisitor((NodeData)destParentNode.getData(),
destNodePath.getName().getInternalName(),
+ ItemDataCopyVisitor initializer =
+ new ItemDataCopyVisitor((NodeData)destParentNode.getData(),
destNodePath.getName().getInternalName(),
nodeTypeManager, srcSession.getTransientNodesManager(),
session.getTransientNodesManager(), false);
srcNode.getData().accept(initializer);
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -53,7 +53,7 @@
public ItemDataCopyIgnoredVisitor(NodeData context, InternalQName destNodeName,
NodeTypeDataManager nodeTypeManager,
SessionDataManager dataManager, SessionChangesLog changes)
{
- super(context, destNodeName, nodeTypeManager, dataManager, true);
+ super(context, destNodeName, nodeTypeManager, dataManager, dataManager, true);
this.restoredChanges = changes;
}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -267,7 +267,7 @@
ItemDataCopyVisitor copier =
new ItemDataCopyVisitor(context.getParent(),
corrNode.getQPath().getName(), mergeSession
- .getWorkspace().getNodeTypesHolder(), mergeDataManager, true);
+ .getWorkspace().getNodeTypesHolder(), mergeDataManager,
mergeDataManager, true);
corrNode.accept(copier);
changes.addAll(copier.getItemAddStates());
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -815,9 +815,9 @@
if (existed != null)
{
// copy existed - i.e. left unchanged
- ItemDataCopyVisitor copyVisitor = new ItemDataCopyVisitor(currentNode(),
frozen.getQPath().getName(),
- // node,
- nodeTypeDataManager, userSession.getTransientNodesManager(), true);
+ ItemDataCopyVisitor copyVisitor =
+ new ItemDataCopyVisitor(currentNode(), frozen.getQPath().getName(),
nodeTypeDataManager,
+ userSession.getTransientNodesManager(),
userSession.getTransientNodesManager(), true);
existed.accept(copyVisitor);
changes.addAll(copyVisitor.getItemAddStates());
} // else - nothing to do, i.e. left unchanged
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -50,6 +50,11 @@
{
/**
+ * Destination data manager.
+ */
+ protected SessionDataManager dstDataManager;
+
+ /**
* Destination node name
*/
protected InternalQName destNodeName;
@@ -86,17 +91,18 @@
* - Destination node name
* @param nodeTypeManager
* - The NodeTypeManager
- * @param dataManager
+ * @param srcDataManager
* - Source data manager
* @param keepIdentifiers
* - Is it necessity to keep <code>Identifier</code>
*/
public DefaultItemDataCopyVisitor(NodeData parent, InternalQName destNodeName,
NodeTypeDataManager nodeTypeManager,
- SessionDataManager dataManager, boolean keepIdentifiers)
+ SessionDataManager srcDataManager, SessionDataManager dstDataManager, boolean
keepIdentifiers)
{
- super(dataManager);
+ super(srcDataManager);
+ this.dstDataManager = dstDataManager;
this.keepIdentifiers = keepIdentifiers;
this.ntManager = nodeTypeManager;
this.destNodeName = destNodeName;
@@ -264,7 +270,7 @@
protected int calculateNewNodeOrderNumber() throws RepositoryException
{
- return dataManager.getLastOrderNumber(curParent()) + 1;
+ return dstDataManager.getLastOrderNumber(curParent()) + 1;
}
protected QPath calculateNewNodePath(NodeData node, int level) throws
RepositoryException
@@ -273,7 +279,7 @@
InternalQName qname = null;
- List<NodeData> existedChilds = dataManager.getChildNodesData(parent);
+ List<NodeData> existedChilds = dstDataManager.getChildNodesData(parent);
int newIndex = 1;
if (level == 0)
{
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -54,8 +54,6 @@
*/
protected List<ItemState> itemDeletedExistingStates = new
ArrayList<ItemState>();
- protected final SessionDataManager dstDataManager;
-
private boolean removeExisting;
private boolean deletedExistingPropery = false;
@@ -87,9 +85,8 @@
SessionDataManager srcDataManager, SessionDataManager dstDataManager, boolean
removeExisting,
SessionChangesLog changes)
{
- super(parent, dstNodeName, nodeTypeManager, srcDataManager, false);
+ super(parent, dstNodeName, nodeTypeManager, srcDataManager, dstDataManager,
false);
- this.dstDataManager = dstDataManager;
this.removeExisting = removeExisting;
this.changes = changes;
}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -44,9 +44,9 @@
private Log log =
ExoLogger.getLogger("exo.jcr.component.core.ItemDataCopyVisitor");
public ItemDataCopyVisitor(NodeData parent, InternalQName destNodeName,
NodeTypeDataManager nodeTypeManager,
- SessionDataManager dataManager, boolean keepIdentifiers)
+ SessionDataManager srcDataManager, SessionDataManager dstDataManager, boolean
keepIdentifiers)
{
- super(parent, destNodeName, nodeTypeManager, dataManager, keepIdentifiers);
+ super(parent, destNodeName, nodeTypeManager, srcDataManager, dstDataManager,
keepIdentifiers);
}
@Override
Deleted:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java 2011-08-30
09:41:24 UTC (rev 4806)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java 2011-08-30
11:36:06 UTC (rev 4807)
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not,
see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.impl.dataflow;
-
-import org.exoplatform.services.jcr.core.nodetype.NodeTypeDataManager;
-import org.exoplatform.services.jcr.datamodel.InternalQName;
-import org.exoplatform.services.jcr.datamodel.NodeData;
-import org.exoplatform.services.jcr.datamodel.PropertyData;
-import org.exoplatform.services.jcr.impl.core.SessionDataManager;
-
-import javax.jcr.RepositoryException;
-
-/**
- * This ItemData copy visitor uses two data managers:
- * <UL>
- * <LI>srcDataManager - used for service data that comes from source workspace
(visit all items on
- * source workspace);
- * <LI>destDataManager - used for adding data to destination workspace (used to
check like
- * DefaultItemDataVisitor.calculateNewNodePath(), etc);
- * </UL>
- *
- * Created by The eXo Platform SAS.
- *
- * <br/>Date:
- *
- * @author <a href="karpenko.sergiy(a)gmail.com">Karpenko Sergiy</a>
- * @version $Id: WorkspaceItemDataCopyVisitor.java 111 2010-26-08 11:11:11Z serg $
- */
-public class WorkspaceItemDataCopyVisitor extends ItemDataCopyVisitor
-{
- private SessionDataManager srcDataManager;
-
- /**
- * Constructor.
- *
- * @param parent - parent node, where copied item tree must be saved;
- * @param destNodeName - copied nodes destination name;
- * @param nodeTypeManager - node type manager;
- * @param srcDataManager - used for service data that comes from source workspace
(visit all items
- * on source workspace)
- * @param destDataManager - used for adding data to destination workspace (used to
check like
- * DefaultItemDataVisitor.calculateNewNodePath(), etc);
- * @param keepIdentifiers - should we keep items identifiers or not;
- */
- public WorkspaceItemDataCopyVisitor(NodeData parent, InternalQName destNodeName,
- NodeTypeDataManager nodeTypeManager, SessionDataManager srcDataManager,
SessionDataManager destDataManager,
- boolean keepIdentifiers)
- {
- super(parent, destNodeName, nodeTypeManager, destDataManager, keepIdentifiers);
- this.srcDataManager = srcDataManager;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void visit(NodeData node) throws RepositoryException
- {
- try
- {
- entering(node, currentLevel);
- if (maxLevel == -1 || currentLevel < maxLevel)
- {
- currentLevel++;
- for (PropertyData data : srcDataManager.getChildPropertiesData(node))
- data.accept(this);
- for (NodeData data : srcDataManager.getChildNodesData(node))
- data.accept(this);
- currentLevel--;
- }
- leaving(node, currentLevel);
- }
- catch (RepositoryException re)
- {
- currentLevel = 0;
- throw re;
- }
-
- }
-}