
impl.childtrees.DefaultMutableChildTree Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of flexible-tree Show documentation
Show all versions of flexible-tree Show documentation
Library for generating permutation of given value domains
The newest version!
package impl.childtrees;
import api.Node;
import api.Tree;
import api.utils.MutableChildTree;
import exception.NodeNotFoundException;
import exception.TreeInsertionException;
import exception.TreeRemovalException;
import java.util.ArrayList;
import java.util.List;
/**
* Default implementation of a MutableTree
*/
public class DefaultMutableChildTree implements MutableChildTree {
private Tree mainTree;
private Node parent;
private final ArrayList> nodes = new ArrayList<>();
public DefaultMutableChildTree() {}
public DefaultMutableChildTree(Tree mainTree) {
assert mainTree != null;
this.mainTree = mainTree;
}
public void setMainTree(Tree mainTree) {
assert mainTree != null;
this.mainTree = mainTree;
}
@Override
public Node getParent() {
if (parent == null){
throw new IllegalStateException("No parent set.");
}
return parent;
}
@Override
public void setParent(Node parent) {
assert parent != null;
this.parent = parent;
}
@Override
public List> getNodes() {
return new ArrayList<>(nodes);
}
@SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
@Override
public boolean equals(Object o) {
return isEqual(o);
}
@Override
public int hashCode() {
return getHashCode();
}
@Override
public void addNodeToTree(Node node) throws TreeInsertionException {
nodes.add(node);
}
@Override
public void removeNodesFromTree(Node node) throws TreeRemovalException {
nodes.remove(node);
}
@Override
public void fireTreeModelListenersForInsertion(Node node) throws NodeNotFoundException {
if (mainTree == null){
throw new IllegalStateException("MainTree not set. Please call setMainTree() first.");
}
mainTree.fireTreeModelListenersForInsertion(node);
}
@Override
public void fireTreeModelListenersForRemoval(Node node) throws NodeNotFoundException {
if (mainTree == null){
throw new IllegalStateException("MainTree not set. Please call setMainTree() first.");
}
mainTree.fireTreeModelListenersForRemoval(node);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy