// Path: net.locosoft.fold.neo4j/src/net/locosoft/fold/neo4j/ICypher.java
// public interface ICypher {
// 
// 	boolean allowParallelInvocation();
// 
// 	void allowParallelInvocation(boolean parallelInvocation);
// 
// 	String getStatementText();
// 
// 	void setStatementText(String statementText);
// 
// 	JsonObject getRequest();
// 
// 	void addStatement(String statementText);
// 
// 	void addParameter(String name, JsonValue value);
// 
// 	void addParameter(String name, int value);
// 
// 	void addParameter(String name, long value);
// 
// 	void addParameter(String name, float value);
// 
// 	void addParameter(String name, double value);
// 
// 	void addParameter(String name, boolean value);
// 
// 	void addParameter(String name, String value);
// 
// 	JsonObject getResponse();
// 
// 	JsonArray getResultData();
// 
// 	JsonArray getResultData(int resultSet);
// 
// 	int getResultDataRowCount();
// 
// 	int getResultDataRowCount(int resultSet);
// 
// 	JsonValue getResultDataRow(int index);
// 
// 	JsonValue getResultDataRow(int resultSet, int index);
// 
// 	JsonArray getErrors();
// 
// 	int getErrorCount();
// }
// 
// Path: net.locosoft.fold.neo4j/src/net/locosoft/fold/neo4j/INeo4jService.java
// public interface INeo4jService {
// 
// 	boolean isNeo4jReady();
// 
// 	int getNeo4jPID();
// 
// 	ICypher constructCypher();
// 
// 	ICypher constructCypher(String statement);
// 
// 	void invokeCypher(ICypher cypher);
// 
// 	void invokeCypher(ICypher cypher, boolean logErrors);
// 
// }
// 
// Path: net.locosoft.fold.sketch/src/net/locosoft/fold/sketch/AbstractNodeSketch.java
// public abstract class AbstractNodeSketch implements INodeSketch {
// 
// 	protected long _nodeId = -1;
// 
// 	public long getNodeId() {
// 		return _nodeId;
// 	}
// 
// 	private INeo4jService _neo4jService;
// 
// 	public INeo4jService getNeo4jService() {
// 		if (_neo4jService == null) {
// 			_neo4jService = Neo4jUtil.getNeo4jService();
// 		}
// 		return _neo4jService;
// 	}
// 
// }


import java.util.Calendar;
import net.locosoft.fold.neo4j.ICypher;
import net.locosoft.fold.neo4j.INeo4jService;
import net.locosoft.fold.sketch.AbstractNodeSketch;
import org.eclipse.core.runtime.IPath;
		}
	}

	private static final String CYPHER_FIND_YEAR = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })" //
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(yearNode)";

	private static final String CYPHER_FIND_MONTH = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })-[:fold_Hierarchy]->"
			+ "(monthNode { fold_Hierarchy_segment:{month} })"
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(monthNode)";

	private static final String CYPHER_FIND_DAY = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })-[:fold_Hierarchy]->"
			+ "(monthNode { fold_Hierarchy_segment:{month} })-[:fold_Hierarchy]->"
			+ "(dayNode { fold_Hierarchy_segment:{day} })"
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(dayNode)";

	private static final String CYPHER_FIND_HOUR = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })-[:fold_Hierarchy]->"
			+ "(monthNode { fold_Hierarchy_segment:{month} })-[:fold_Hierarchy]->"
			+ "(dayNode { fold_Hierarchy_segment:{day} })-[:fold_Hierarchy]->"
			+ "(hourNode { fold_Hierarchy_segment:{hour} })" //
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(hourNode)";

	public long getTimeNodeId(IPath path) {
// Path: net.locosoft.fold.neo4j/src/net/locosoft/fold/neo4j/ICypher.java
// public interface ICypher {
// 
// 	boolean allowParallelInvocation();
// 
// 	void allowParallelInvocation(boolean parallelInvocation);
// 
// 	String getStatementText();
// 
// 	void setStatementText(String statementText);
// 
// 	JsonObject getRequest();
// 
// 	void addStatement(String statementText);
// 
// 	void addParameter(String name, JsonValue value);
// 
// 	void addParameter(String name, int value);
// 
// 	void addParameter(String name, long value);
// 
// 	void addParameter(String name, float value);
// 
// 	void addParameter(String name, double value);
// 
// 	void addParameter(String name, boolean value);
// 
// 	void addParameter(String name, String value);
// 
// 	JsonObject getResponse();
// 
// 	JsonArray getResultData();
// 
// 	JsonArray getResultData(int resultSet);
// 
// 	int getResultDataRowCount();
// 
// 	int getResultDataRowCount(int resultSet);
// 
// 	JsonValue getResultDataRow(int index);
// 
// 	JsonValue getResultDataRow(int resultSet, int index);
// 
// 	JsonArray getErrors();
// 
// 	int getErrorCount();
// }
// 
// Path: net.locosoft.fold.neo4j/src/net/locosoft/fold/neo4j/INeo4jService.java
// public interface INeo4jService {
// 
// 	boolean isNeo4jReady();
// 
// 	int getNeo4jPID();
// 
// 	ICypher constructCypher();
// 
// 	ICypher constructCypher(String statement);
// 
// 	void invokeCypher(ICypher cypher);
// 
// 	void invokeCypher(ICypher cypher, boolean logErrors);
// 
// }
// 
// Path: net.locosoft.fold.sketch/src/net/locosoft/fold/sketch/AbstractNodeSketch.java
// public abstract class AbstractNodeSketch implements INodeSketch {
// 
// 	protected long _nodeId = -1;
// 
// 	public long getNodeId() {
// 		return _nodeId;
// 	}
// 
// 	private INeo4jService _neo4jService;
// 
// 	public INeo4jService getNeo4jService() {
// 		if (_neo4jService == null) {
// 			_neo4jService = Neo4jUtil.getNeo4jService();
// 		}
// 		return _neo4jService;
// 	}
// 
// }


// Path: net.locosoft.fold.channel.times/src/net/locosoft/fold/channel/times/internal/GetTimesNode.java
import java.util.Calendar;
import net.locosoft.fold.neo4j.ICypher;
import net.locosoft.fold.neo4j.INeo4jService;
import net.locosoft.fold.sketch.AbstractNodeSketch;
import org.eclipse.core.runtime.IPath;

		}
	}

	private static final String CYPHER_FIND_YEAR = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })" //
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(yearNode)";

	private static final String CYPHER_FIND_MONTH = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })-[:fold_Hierarchy]->"
			+ "(monthNode { fold_Hierarchy_segment:{month} })"
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(monthNode)";

	private static final String CYPHER_FIND_DAY = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })-[:fold_Hierarchy]->"
			+ "(monthNode { fold_Hierarchy_segment:{month} })-[:fold_Hierarchy]->"
			+ "(dayNode { fold_Hierarchy_segment:{day} })"
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(dayNode)";

	private static final String CYPHER_FIND_HOUR = "MATCH (epochNode)-[:fold_Hierarchy]->" //
			+ "(yearNode { fold_Hierarchy_segment:{year} })-[:fold_Hierarchy]->"
			+ "(monthNode { fold_Hierarchy_segment:{month} })-[:fold_Hierarchy]->"
			+ "(dayNode { fold_Hierarchy_segment:{day} })-[:fold_Hierarchy]->"
			+ "(hourNode { fold_Hierarchy_segment:{hour} })" //
			+ " WHERE id(epochNode)={epochNodeId}" //
			+ " RETURN ID(hourNode)";

	public long getTimeNodeId(IPath path) {
		INeo4jService neo4jService = getNeo4jService();