package outputModules.neo4j.importers;
import java.util.Map;
import neo4j.batchInserter.GraphNodeStore;
import ast.ASTNode;
import databaseNodes.DatabaseNode;
import databaseNodes.FileDatabaseNode;
public abstract class ASTNodeImporter
{
protected Long mainNodeId;
protected GraphNodeStore nodeStore = new GraphNodeStore();
protected FileDatabaseNode curFile;
public void setCurrentFile(FileDatabaseNode fileNode)
{
curFile = fileNode;
}
public long getMainNodeId()
{
return mainNodeId;
}
public abstract void addToDatabaseSafe(ASTNode node);
protected void addMainNode(DatabaseNode dbNode)
{
Map<String, Object> properties = dbNode.createProperties();
nodeStore.addNeo4jNode(dbNode, properties);
mainNodeId = nodeStore.getIdForObject(dbNode);
// We are currently not adding 'functionId' to the function node
// as that requires us to perform a lookup on the node just created
// and thus requires us to flush.
// nodeStore.setNodeProperty(dbNode, "functionId", String.format("%d",
// mainNodeId));
// index, but do not index location
properties.remove("location");
nodeStore.indexNode(dbNode, properties);
}
}