2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.cluster.access.client;
10 import com.google.common.base.Preconditions;
11 import java.util.Optional;
14 * Implementation-internal intermediate subclass between {@link AbstractClientConnection} and two-out of three of its
15 * sublcasses. It allows us to share some code.
17 * @author Robert Varga
19 * @param <T> Concrete {@link BackendInfo} type
21 abstract class AbstractReceivingClientConnection<T extends BackendInfo> extends AbstractClientConnection<T> {
22 private final T backend;
24 AbstractReceivingClientConnection(final ClientActorContext context, final Long cookie, final T backend) {
25 super(context, cookie, new TransmitQueue.Transmitting(backend));
26 this.backend = Preconditions.checkNotNull(backend);
29 AbstractReceivingClientConnection(final AbstractReceivingClientConnection<T> oldConnection) {
31 this.backend = oldConnection.backend;
35 public final Optional<T> getBackendInfo() {
36 return Optional.of(backend);