import java.io.ObjectOutput;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.concepts.WritableIdentifier;
+import org.opendaylight.yangtools.concepts.WritableObjects;
/**
* Abstract Externalizable proxy for use with {@link Message} subclasses.
abstract class AbstractMessageProxy<T extends WritableIdentifier, C extends Message<T, C>> implements Externalizable {
private static final long serialVersionUID = 1L;
private T target;
+ private long sequence;
protected AbstractMessageProxy() {
// For Externalizable
AbstractMessageProxy(final @Nonnull C message) {
this.target = message.getTarget();
+ this.sequence = message.getSequence();
}
@Override
public void writeExternal(final ObjectOutput out) throws IOException {
target.writeTo(out);
+ WritableObjects.writeLong(out, sequence);
}
@Override
public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
target = Verify.verifyNotNull(readTarget(in));
+ sequence = WritableObjects.readLong(in);
}
protected final Object readResolve() {
- return Verify.verifyNotNull(createMessage(target));
+ return Verify.verifyNotNull(createMessage(target, sequence));
}
protected abstract @Nonnull T readTarget(@Nonnull DataInput in) throws IOException;
- abstract @Nonnull C createMessage(@Nonnull T target);
+ abstract @Nonnull C createMessage(@Nonnull T target, long sequence);
}
\ No newline at end of file