package com.revolsys.record; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; import com.revolsys.record.schema.RecordDefinition; public abstract class BaseRecord extends AbstractRecord implements Serializable { private static final long serialVersionUID = 1L; private transient RecordDefinition recordDefinition; private RecordState state = RecordState.INITIALIZING; public BaseRecord(final RecordDefinition recordDefinition) { this.recordDefinition = recordDefinition; } @Override public RecordDefinition getRecordDefinition() { return this.recordDefinition; } @Override public RecordState getState() { return this.state; } @Override public boolean isState(final RecordState state) { return this.state == state; } @Override public RecordState setState(final RecordState state) { final RecordState oldState = this.getState(); this.state = state; return oldState; } private void writeObject(final ObjectOutputStream oos) throws IOException { oos.writeInt(this.recordDefinition.getInstanceId()); oos.defaultWriteObject(); } }