Author: pnedonosko
Date: 2009-12-10 06:10:42 -0500 (Thu, 10 Dec 2009)
New Revision: 982
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedItemData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedPropertyData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableItemData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableNodeData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/NodeData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientPropertyData.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
Log:
EXOJCR-274 item copy (clone) methods; NodeData.setACL moved to MutableNodeData; ACL
manager full recreate of items.
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedItemData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedItemData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedItemData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -20,14 +20,17 @@
import org.exoplatform.services.jcr.datamodel.ItemData;
import org.exoplatform.services.jcr.datamodel.QPath;
+import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
+import javax.jcr.RepositoryException;
+
/**
* Created by The eXo Platform SAS. </br>
*
* Immutable ItemData from persistent storage
*
* @author Gennady Azarenkov
- * @version $Id: PersistedItemData.java 11907 2008-03-13 15:36:21Z ksm $
+ * @version $Id$
*/
public abstract class PersistedItemData implements ItemData
@@ -80,6 +83,13 @@
{
return parentId;
}
+
+ /**
+ * Creates transient copy of this persistent ItemData.
+ *
+ * @throws RepositoryException if ValueData IOException occurs.
+ */
+ public abstract TransientItemData createTransientCopy() throws RepositoryException;
/**
* @see java.lang.Object#equals(java.lang.Object)
Property changes on:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedItemData.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -23,6 +23,8 @@
import org.exoplatform.services.jcr.datamodel.InternalQName;
import org.exoplatform.services.jcr.datamodel.NodeData;
import org.exoplatform.services.jcr.datamodel.QPath;
+import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
+import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
import javax.jcr.RepositoryException;
@@ -32,7 +34,7 @@
* Immutable NodeData from persistense storage
*
* @author <a href="mailto:gennady.azarenkov@exoplatform.com">Gennady
Azarenkov</a>
- * @version $Id: PersistedNodeData.java 11907 2008-03-13 15:36:21Z ksm $
+ * @version $Id$
*/
public class PersistedNodeData extends PersistedItemData implements NodeData
@@ -89,15 +91,6 @@
}
/**
- * @see
org.exoplatform.services.jcr.datamodel.NodeData#setACL(org.exoplatform.services.jcr.access.AccessControlList)
- */
- public void setACL(AccessControlList acl)
- {
- this.acl = acl;
- //TODO throw new IllegalStateException("setACL not supported on
PersistedNodeData");
- }
-
- /**
* @see
org.exoplatform.services.jcr.datamodel.ItemData#accept(org.exoplatform.services.jcr.dataflow.ItemDataVisitor)
*/
public void accept(ItemDataVisitor visitor) throws RepositoryException
@@ -113,4 +106,14 @@
return true;
}
+ @Override
+ public TransientItemData createTransientCopy()
+ {
+ TransientNodeData dataCopy =
+ new TransientNodeData(getQPath(), getIdentifier(), getPersistedVersion(),
getPrimaryTypeName(),
+ getMixinTypeNames(), getOrderNumber(), getParentIdentifier() != null ?
getParentIdentifier() : null,
+ getACL());
+
+ return dataCopy;
+ }
}
Property changes on:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedNodeData.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedPropertyData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedPropertyData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedPropertyData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -22,7 +22,11 @@
import org.exoplatform.services.jcr.datamodel.PropertyData;
import org.exoplatform.services.jcr.datamodel.QPath;
import org.exoplatform.services.jcr.datamodel.ValueData;
+import org.exoplatform.services.jcr.impl.dataflow.PersistedValueData;
+import org.exoplatform.services.jcr.impl.dataflow.TransientItemData;
+import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
+import java.util.ArrayList;
import java.util.List;
import javax.jcr.RepositoryException;
@@ -33,7 +37,7 @@
* Persisted PropertyData
*
* @author Gennady Azarenkov
- * @version $Id: PersistedPropertyData.java 11907 2008-03-13 15:36:21Z ksm $
+ * @version $Id$
*/
public class PersistedPropertyData extends PersistedItemData implements PropertyData
@@ -54,50 +58,59 @@
this.multiValued = multiValued;
}
- /*
- * (non-Javadoc)
- * @see org.exoplatform.services.jcr.datamodel.PropertyData#getType()
+ /**
+ * {@inheritDoc}
*/
public int getType()
{
return type;
}
- /*
- * (non-Javadoc)
- * @see org.exoplatform.services.jcr.datamodel.PropertyData#getValues()
+ /**
+ * {@inheritDoc}
*/
public List<ValueData> getValues()
{
return values;
}
- /*
- * (non-Javadoc)
- * @see org.exoplatform.services.jcr.datamodel.PropertyData#isMultiValued()
+ /**
+ * {@inheritDoc}
*/
public boolean isMultiValued()
{
return multiValued;
}
- /*
- * (non-Javadoc)
- * @see org.exoplatform.services.jcr.datamodel.ItemData#isNode()
+ /**
+ * {@inheritDoc}
*/
public boolean isNode()
{
return false;
}
- /*
- * (non-Javadoc)
- * @see
- *
org.exoplatform.services.jcr.datamodel.ItemData#accept(org.exoplatform.services.jcr.dataflow
- * .ItemDataVisitor)
+ /**
+ * {@inheritDoc}
*/
public void accept(ItemDataVisitor visitor) throws RepositoryException
{
visitor.visit(this);
}
+
+ @Override
+ public TransientItemData createTransientCopy() throws RepositoryException
+ {
+ List<ValueData> copyValues = new ArrayList<ValueData>();
+ for (ValueData vdata : getValues())
+ {
+ copyValues.add(((PersistedValueData)vdata).createTransientCopy());
+ }
+
+ TransientPropertyData dataCopy =
+ new TransientPropertyData(getQPath(), getIdentifier(), getPersistedVersion(),
getType(),
+ getParentIdentifier(), isMultiValued(), copyValues);
+
+ return dataCopy;
+ }
}
Property changes on:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/persistent/PersistedPropertyData.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableItemData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableItemData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableItemData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -29,7 +29,8 @@
{
/**
- * Adds 1 to current persistedVersion value
+ * Adds 1 to current persistedVersion value. NOT USED.
*/
+ @Deprecated
void increasePersistedVersion();
}
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableNodeData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableNodeData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableNodeData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -24,7 +24,7 @@
* Created by The eXo Platform SAS.
*
* @author <a href="mailto:gennady.azarenkov@exoplatform.com">Gennady
Azarenkov</a>
- * @version $Id: MutableNodeData.java 11907 2008-03-13 15:36:21Z ksm $
+ * @version $Id$
*/
public interface MutableNodeData extends NodeData, MutableItemData
@@ -37,5 +37,4 @@
void setIdentifier(String identifier);
void setACL(AccessControlList acl);
-
}
Property changes on:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/MutableNodeData.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/NodeData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/NodeData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/NodeData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -24,7 +24,7 @@
* Created by The eXo Platform SAS.
*
* @author <a href="mailto:gennady.azarenkov@exoplatform.com">Gennady
Azarenkov</a>
- * @version $Id: NodeData.java 11907 2008-03-13 15:36:21Z ksm $
+ * @version $Id$
*/
public interface NodeData extends ItemData
@@ -51,10 +51,4 @@
* @return access control list either this node's data or nearest ancestor's
data
*/
AccessControlList getACL();
-
- /**
- * @param acl
- */
- void setACL(AccessControlList acl);
-
}
Property changes on:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/datamodel/NodeData.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientNodeData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -399,6 +399,7 @@
// ------------ Cloneable ------------------
@Override
+ @Deprecated
public TransientNodeData clone()
{
TransientNodeData dataCopy =
@@ -409,6 +410,7 @@
return dataCopy;
}
+ @Deprecated
public TransientNodeData cloneAsSibling(int index) throws PathNotFoundException,
IllegalPathException
{
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientPropertyData.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientPropertyData.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/TransientPropertyData.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -218,6 +218,7 @@
/**
* Clone node data without value data!!!
*/
+ @Deprecated
public TransientPropertyData createTransientCopy()
{
List<ValueData> copyValues = new ArrayList<ValueData>();
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java 2009-12-10
10:30:50 UTC (rev 981)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java 2009-12-10
11:10:42 UTC (rev 982)
@@ -100,12 +100,18 @@
if (parent != null)
{
// use parent ACL
- node.setACL(parent.getACL());
+ node =
+ new TransientNodeData(node.getQPath(), node.getIdentifier(),
node.getPersistedVersion(), node
+ .getPrimaryTypeName(), node.getMixinTypeNames(),
node.getOrderNumber(),
+ node.getParentIdentifier(), parent.getACL());
}
else
{
// use nearest ancestor ACL... case of get by id
- node.setACL(getNearestACAncestorAcl(node));
+ node =
+ new TransientNodeData(node.getQPath(), node.getIdentifier(),
node.getPersistedVersion(), node
+ .getPrimaryTypeName(), node.getMixinTypeNames(),
node.getOrderNumber(),
+ node.getParentIdentifier(), getNearestACAncestorAcl(node));
}
}
else if (!acl.hasPermissions())