Skip to content
Snippets Groups Projects
Verified Commit 3bfe1fea authored by David Procházka's avatar David Procházka
Browse files

ADD: objects are retrieved from LocalBucket

parent 9a087b2e
No related branches found
No related tags found
No related merge requests found
package mhtree;
import messif.buckets.BucketStorageException;
import messif.objects.LocalAbstractObject;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
......@@ -38,6 +40,15 @@ public class InternalNode extends Node implements Serializable {
}
public void addObject(LocalAbstractObject object) {
if (isCovered(object)) return;
rebuildHull(object);
}
public List<LocalAbstractObject> getObjects() {
return children.stream()
.map(Node::getObjects)
.flatMap(Collection::stream)
.collect(Collectors.toList());
}
}
......@@ -4,8 +4,10 @@ import cz.muni.fi.disa.similarityoperators.cover.AbstractRepresentation;
import messif.buckets.BucketStorageException;
import messif.buckets.LocalBucket;
import messif.objects.LocalAbstractObject;
import messif.objects.util.AbstractObjectIterator;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class LeafNode extends Node implements Serializable {
......@@ -34,4 +36,13 @@ public class LeafNode extends Node implements Serializable {
rebuildHull(object);
}
public List<LocalAbstractObject> getObjects() {
List<LocalAbstractObject> objects = new ArrayList<>();
for (AbstractObjectIterator<LocalAbstractObject> it = bucket.getAllObjects(); it.hasNext(); )
objects.add(it.next());
return objects;
}
}
......@@ -75,8 +75,7 @@ public class MHTree extends Algorithm implements Serializable {
Node currentNode = root;
while (!currentNode.isLeaf()) {
if (!currentNode.isCovered(object))
currentNode.addObject(object);
currentNode.addObject(object);
currentNode = ((InternalNode) currentNode).getNearestChild(object);
}
......
......@@ -63,16 +63,13 @@ public abstract class Node implements Serializable {
return hull.getHull();
}
public List<LocalAbstractObject> getObjects() {
return hull.getObjects();
}
@Override
public String toString() {
return "Node{hull=" + hull + '}';
}
public abstract void addObject(LocalAbstractObject object) throws BucketStorageException;
public abstract List<LocalAbstractObject> getObjects();
protected void rebuildHull(LocalAbstractObject object) {
List<LocalAbstractObject> objects = new ArrayList<>(getObjects());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment