protected Resource execute()

in src/main/java/org/apache/sling/servlets/post/impl/operations/MoveOperation.java [42:74]


    protected Resource execute(
            final List<Modification> changes,
            final Resource source,
            final String destParent,
            String destName,
            final VersioningConfiguration versioningConfiguration)
            throws PersistenceException {
        if (destName == null) {
            destName = source.getName();
        }

        final Resource destParentRsrc = source.getResourceResolver().getResource(destParent);
        final Resource dest = destParentRsrc.getChild(destName);
        if (dest != null) {
            source.getResourceResolver().delete(dest);
        }

        // ensure we have an item underlying the request's resource
        final Object item = this.jcrSupport.getItem(source);
        final Object target = this.jcrSupport.getNode(destParentRsrc);

        if (item == null || target == null) {
            move(source, destParentRsrc);
        } else {
            this.jcrSupport.checkoutIfNecessary(source.getParent(), changes, versioningConfiguration);
            this.jcrSupport.move(item, target, destName);
        }
        final Resource result = destParentRsrc.getChild(destName);
        if (result != null) {
            changes.add(Modification.onMoved(source.getPath(), result.getPath()));
        }
        return result;
    }