diff --git a/src/mhtree/LeafNode.java b/src/mhtree/LeafNode.java index 66d41e1bcba9644313bb4b570133df958617e2d1..1415df492d950ff47f7de0e371cbbd7ac50ed2bc 100644 --- a/src/mhtree/LeafNode.java +++ b/src/mhtree/LeafNode.java @@ -12,7 +12,8 @@ import java.util.List; /** * Represents a leaf node in MH-Tree. */ -class LeafNode extends Node implements Serializable { + +public class LeafNode extends Node implements Serializable { /** * Serialization ID @@ -52,7 +53,7 @@ class LeafNode extends Node implements Serializable { * * @return a list of objects in node's bucket */ - protected List<LocalAbstractObject> getObjects() { + public List<LocalAbstractObject> getObjects() { List<LocalAbstractObject> objects = new ArrayList<>(bucket.getObjectCount()); bucket diff --git a/src/mhtree/MHTree.java b/src/mhtree/MHTree.java index 9ec88c077f9aa85b1a097c7c122707c3d9008092..1ab345e42ffd1736b06683d3c19e9780a3426751 100644 --- a/src/mhtree/MHTree.java +++ b/src/mhtree/MHTree.java @@ -105,13 +105,9 @@ public class MHTree extends Algorithm implements Serializable { operation.endOperation(); } - private boolean isPrunable(Node child, LocalAbstractObject queryObject, ApproxKNNQueryOperation operation) { - return operation.getAnswerDistance() < child.getDistanceToNearest(queryObject); - } - - public void kNN(KNNQueryOperation knnQueryOperation) { - root.getObjects().forEach(knnQueryOperation::addToAnswer); - knnQueryOperation.endOperation(); + public void kNN(KNNQueryOperation operation) { + root.getObjects().forEach(operation::addToAnswer); + operation.endOperation(); } public int getObjectCount() { @@ -151,7 +147,7 @@ public class MHTree extends Algorithm implements Serializable { * * @return a list of leaf nodes */ - private List<LeafNode> getLeafNodes() { + public List<LeafNode> getLeafNodes() { List<LeafNode> leafNodes = new ArrayList<>(); root.gatherLeafNodes(leafNodes); return leafNodes; @@ -206,6 +202,10 @@ public class MHTree extends Algorithm implements Serializable { '}'; } + private boolean isPrunable(Node child, LocalAbstractObject queryObject, ApproxKNNQueryOperation operation) { + return operation.getAnswerDistance() < child.getDistanceToNearest(queryObject); + } + public static class Builder { /**