Search in sources :

Example 31 with Operation

use of org.apache.jackrabbit.jcr2spi.operation.Operation in project jackrabbit by apache.

the class AccessControlManagerImpl method addProperty.

private void addProperty(SetTree treeOperation, NodeState parent, Name propName, int propType, QValue[] values) throws RepositoryException {
    QPropertyDefinition definition = definitionProvider.getQPropertyDefinition(parent.getAllNodeTypeNames(), propName, propType);
    Operation ap = treeOperation.addChildProperty(parent, propName, propType, values, definition);
    itemStateMgr.execute(ap);
}
Also used : QPropertyDefinition(org.apache.jackrabbit.spi.QPropertyDefinition) Operation(org.apache.jackrabbit.jcr2spi.operation.Operation)

Example 32 with Operation

use of org.apache.jackrabbit.jcr2spi.operation.Operation in project jackrabbit by apache.

the class WorkspaceImpl method copy.

/**
     * @see javax.jcr.Workspace#copy(String, String, String)
     */
public void copy(String srcWorkspace, String srcAbsPath, String destAbsPath) throws NoSuchWorkspaceException, ConstraintViolationException, VersionException, AccessDeniedException, PathNotFoundException, ItemExistsException, LockException, RepositoryException {
    session.checkSupportedOption(Repository.LEVEL_2_SUPPORTED);
    session.checkIsAlive();
    // check workspace name
    if (getName().equals(srcWorkspace)) {
        // same as current workspace, delegate to within workspace copy method
        copy(srcAbsPath, destAbsPath);
        return;
    }
    // make sure the specified workspace is visible for the current session.
    session.checkAccessibleWorkspace(srcWorkspace);
    Path srcPath = session.getQPath(srcAbsPath);
    Path destPath = session.getQPath(destAbsPath);
    // copy (i.e. pull) subtree at srcAbsPath from srcWorkspace
    // to 'this' workspace at destAbsPath
    SessionImpl srcSession = null;
    try {
        // create session on other workspace for current subject
        // (may throw NoSuchWorkspaceException and AccessDeniedException)
        srcSession = session.switchWorkspace(srcWorkspace);
        WorkspaceImpl srcWsp = (WorkspaceImpl) srcSession.getWorkspace();
        // do cross-workspace copy
        Operation op = Copy.create(srcPath, destPath, srcWsp.getName(), srcWsp, this);
        getUpdatableItemStateManager().execute(op);
    } finally {
        if (srcSession != null) {
            // we don't need the other session anymore, logout
            srcSession.logout();
        }
    }
}
Also used : Path(org.apache.jackrabbit.spi.Path) Operation(org.apache.jackrabbit.jcr2spi.operation.Operation)

Aggregations

Operation (org.apache.jackrabbit.jcr2spi.operation.Operation)32 ConstraintViolationException (javax.jcr.nodetype.ConstraintViolationException)6 Path (org.apache.jackrabbit.spi.Path)6 Name (org.apache.jackrabbit.spi.Name)5 ItemNotFoundException (javax.jcr.ItemNotFoundException)4 RepositoryException (javax.jcr.RepositoryException)4 AddNode (org.apache.jackrabbit.jcr2spi.operation.AddNode)3 NodeState (org.apache.jackrabbit.jcr2spi.state.NodeState)3 PropertyState (org.apache.jackrabbit.jcr2spi.state.PropertyState)3 QPropertyDefinition (org.apache.jackrabbit.spi.QPropertyDefinition)3 ItemExistsException (javax.jcr.ItemExistsException)2 HierarchyEntry (org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyEntry)2 EffectiveNodeType (org.apache.jackrabbit.jcr2spi.nodetype.EffectiveNodeType)2 QNodeDefinition (org.apache.jackrabbit.spi.QNodeDefinition)2 QValue (org.apache.jackrabbit.spi.QValue)2 ArrayList (java.util.ArrayList)1 Iterator (java.util.Iterator)1 LinkedHashSet (java.util.LinkedHashSet)1 InvalidItemStateException (javax.jcr.InvalidItemStateException)1 Node (javax.jcr.Node)1