package neo4j.dbProviders; import java.util.LinkedList; import java.util.List; import misc.Pair; import neo4j.traversals.batchInserter.AST; import neo4j.traversals.batchInserter.Elementary; import org.neo4j.unsafe.batchinsert.BatchRelationship; import databaseNodes.NodeKeys; public class BatchInserterDBProvider extends DBProvider { @Override public String getNodeType(Long nodeId) { return Elementary.getNodeType(nodeId); } @Override public String getCalleeFromCall(Long nodeId) { return AST.getCalleeFromCall(nodeId); } @Override public List<Pair<Long, Integer>> getASTChildren(Long nodeId) { Iterable<BatchRelationship> rels = Elementary.getEdges(nodeId); List<Pair<Long, Integer>> retval = new LinkedList<Pair<Long, Integer>>(); for (BatchRelationship rel : rels) { if (Elementary.isIncomingEdge(nodeId, rel)) continue; if (!AST.isASTEdge(rel)) continue; long childId = rel.getEndNode(); String childNumStr = Elementary.getNodeProperty(childId, NodeKeys.CHILD_NUMBER); Integer childNumber; if (childNumStr != null) childNumber = Integer.parseInt(childNumStr); else childNumber = 0; retval.add(new Pair<Long, Integer>(childId, childNumber)); } return retval; } @Override public String getNodeCode(long nodeId) { return Elementary.getNodeCode(nodeId); } @Override public String getOperatorCode(long nodeId) { return Elementary.getOperatorCode(nodeId); } @Override public int getChildNumber(long nodeId) { String childNumStr = Elementary.getNodeProperty(nodeId, NodeKeys.CHILD_NUMBER); if (childNumStr == null) return 0; return Integer.parseInt(childNumStr); } }