![JAR search and dependency download from the Maven repository](/logo.png)
org.unipop.process.reduce.UniGraphCountStep Maven / Gradle / Ivy
//package org.unipop.process.count;
//
//import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
//import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
//import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
//import org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep;
//import org.apache.tinkerpop.gremlin.structure.Direction;
//import org.apache.tinkerpop.gremlin.structure.Element;
//import org.apache.tinkerpop.gremlin.structure.Vertex;
//import org.unipop.query.UniQuery;
//import org.unipop.query.controller.ControllerManager;
//
//import java.util.*;
//import java.util.stream.Collectors;
//
///**
// * Created by Gilad on 02/11/2015.
// */
//public class UniGraphCountStep extends ReducingBarrierStep {
// //region Constructor
// public UniGraphCountStep(Traversal.Admin traversal, Class elementClass, List hasContainers, Object[] ids, String[] edgeLabels, Optional direction, ControllerManager controllerManager) {
// super(traversal);
// this.hasContainers = hasContainers;
// this.controllerManager = controllerManager;
// this.direction = direction.get();
// this.elementClass = elementClass;
// this.bulk = new ArrayList<>();
//
// List countControllers = controllerManager.getControllers(CountController.class);
// List edgeCountControllers = controllerManager.getControllers(EdgeCountController.class);
// UniQuery uniQuery = new UniQuery(null, edgeLabels,ids, hasContainers, 0);
//
// this.setSeedSupplier(() -> {
// if (!this.previousStep.equals(EmptyStep.instance())) {
// return 0L;
// }
// return countControllers.stream().collect(Collectors.summingLong(controller -> controller.count(uniQuery)));
// });
//
//
// this.setBiFunction((seed, traverser) -> {
// E element = traverser.get();
// bulk.add(element);
//
//
// Long bulkElementCount = 0L;
// //TODO: configure bulk size dynamically
// if (bulk.size() > 100 || !this.starts.hasNext()) {
// Vertex[] vertices = bulk.toArray(new Vertex[0]);
// bulkElementCount = edgeCountControllers.stream().collect(Collectors.summingLong(edgeController ->
// edgeController.count(vertices, this.direction, edgeLabels, uniQuery)));
// bulk.clear();
// }
//
// return seed + bulkElementCount;
// });
// }
// //endregion
//
// private final List hasContainers;
// //region Fields
// private ControllerManager controllerManager;
// private Direction direction;
// private Class elementClass;
// private Collection bulk;
// //endregion
//}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy