org.modeshape.jcr.cache.change.NodeMoved Maven / Gradle / Ivy
/*
* ModeShape (http://www.modeshape.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.modeshape.jcr.cache.change;
import java.util.Set;
import org.modeshape.jcr.cache.NodeKey;
import org.modeshape.jcr.value.Name;
import org.modeshape.jcr.value.Path;
/**
* Change representing the moving of a node.
*/
public class NodeMoved extends AbstractNodeChange {
private static final long serialVersionUID = 1L;
private final NodeKey oldParent;
private final NodeKey newParent;
private final Path oldPath;
public NodeMoved( NodeKey key,
Name primaryType,
Set mixinTypes,
NodeKey oldParent,
NodeKey newParent,
Path newPath,
Path oldPath,
boolean queryable ) {
super(key, newPath, primaryType, mixinTypes, queryable);
this.oldParent = oldParent;
this.newParent = newParent;
this.oldPath = oldPath;
assert this.oldParent != null;
assert this.newParent != null;
// assert this.newParent != this.oldParent; // we sometimes use NodeMoved to signify a change in path when a parent moves
}
/**
* Get the parent under which the node now appears.
*
* @return the new parent; never null
*/
public NodeKey getNewParent() {
return newParent;
}
/**
* Get the parent under which the node formerly appeared.
*
* @return the old parent; never null
*/
public NodeKey getOldParent() {
return oldParent;
}
/**
* Get the new path for the node, if it is known
*
* @return the new path; may be null if it is not known
*/
public Path getNewPath() {
return path;
}
/**
* Get the old path for the node, if it is known
*
* @return the old path; may be null if it is not known
*/
public Path getOldPath() {
return oldPath;
}
@Override
public String toString() {
return "Moved node '" + this.getKey() + "' to \"" + path + "\" (under '" + newParent + "') from \"" + oldPath
+ "\" (under '" + oldParent + "')";
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy