X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fcommands%2FLocalHistoryRequest.java;h=33d04850fb91d01a524a7f17ffc12820445e392a;hb=HEAD;hp=badb763629a75494af4a56091fb9d42f674eb967;hpb=98d1c5606bad9633ce5549bcd691a98c75abdf6a;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java index badb763629..c304384fd8 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryRequest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2016, 2017 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -8,7 +8,9 @@ package org.opendaylight.controller.cluster.access.commands; import akka.actor.ActorRef; -import com.google.common.annotations.Beta; +import com.google.common.base.Preconditions; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.Request; @@ -18,16 +20,22 @@ import org.opendaylight.controller.cluster.access.concepts.RequestException; * Abstract base class for {@link Request}s involving specific local history. This class is visible outside of this * package solely for the ability to perform a unified instanceof check. * - * @author Robert Varga - * * @param Message type */ -@Beta public abstract class LocalHistoryRequest> extends Request { + interface SerialForm> extends Request.SerialForm { + @Override + default LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { + return LocalHistoryIdentifier.readFrom(in); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; - LocalHistoryRequest(final LocalHistoryIdentifier target, final ActorRef replyTo) { - super(target, replyTo); + LocalHistoryRequest(final LocalHistoryIdentifier target, final long sequence, final ActorRef replyTo) { + super(target, sequence, replyTo); + Preconditions.checkArgument(target.getHistoryId() != 0, "History identifier must be non-zero"); } LocalHistoryRequest(final T request, final ABIVersion version) { @@ -36,9 +44,9 @@ public abstract class LocalHistoryRequest> exte @Override public final LocalHistoryFailure toRequestFailure(final RequestException cause) { - return new LocalHistoryFailure(getTarget(), cause); + return new LocalHistoryFailure(getTarget(), getSequence(), cause); } @Override - protected abstract AbstractLocalHistoryRequestProxy externalizableProxy(final ABIVersion version); + protected abstract SerialForm externalizableProxy(ABIVersion version); }