package com.ldbc.driver; import com.ldbc.driver.temporal.TemporalUtil; public abstract class Operation<RESULT_TYPE> { private static final TemporalUtil temporalutil = new TemporalUtil(); private long scheduledStartTimeAsMilli = -1; private long timeStamp = -1; private long dependencyTimeStamp = -1; public final void setScheduledStartTimeAsMilli( long scheduledStartTimeAsMilli ) { this.scheduledStartTimeAsMilli = scheduledStartTimeAsMilli; } public final void setDependencyTimeStamp( long dependencyTimeStamp ) { this.dependencyTimeStamp = dependencyTimeStamp; } public final long scheduledStartTimeAsMilli() { return scheduledStartTimeAsMilli; } public final long dependencyTimeStamp() { return dependencyTimeStamp; } public long timeStamp() { return timeStamp; } public void setTimeStamp( long timeStamp ) { this.timeStamp = timeStamp; } public abstract int type(); @Override public String toString() { return "Operation{" + "scheduledStartTime=" + temporalutil.milliTimeToDateTimeString( scheduledStartTimeAsMilli ) + ", timeStamp=" + temporalutil.milliTimeToDateTimeString( timeStamp ) + ", dependencyTimeStamp=" + temporalutil.milliTimeToDateTimeString( dependencyTimeStamp ) + '}'; } public abstract RESULT_TYPE marshalResult( String serializedOperationResult ) throws SerializingMarshallingException; public abstract String serializeResult( Object operationResultInstance ) throws SerializingMarshallingException; }