2 * Copyright (c) 2014 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
9 package org.opendaylight.controller.cluster.datastore.messages;
11 import java.io.IOException;
12 import java.io.ObjectInput;
13 import java.io.ObjectOutput;
14 import org.opendaylight.controller.cluster.datastore.DataStoreVersions;
15 import org.opendaylight.controller.protobuff.messages.transaction.ShardTransactionChainMessages;
17 public class CloseTransactionChain extends VersionedExternalizableMessage {
18 private static final long serialVersionUID = 1L;
20 private String transactionChainId;
22 public CloseTransactionChain() {
25 public CloseTransactionChain(final String transactionChainId, final short version) {
27 this.transactionChainId = transactionChainId;
30 public String getTransactionChainId() {
31 return transactionChainId;
35 public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
36 super.readExternal(in);
37 transactionChainId = in.readUTF();
41 public void writeExternal(ObjectOutput out) throws IOException {
42 super.writeExternal(out);
43 out.writeUTF(transactionChainId);
48 protected Object newLegacySerializedInstance() {
49 return ShardTransactionChainMessages.CloseTransactionChain.newBuilder().setTransactionChainId(transactionChainId)
53 public static CloseTransactionChain fromSerializable(final Object serializable){
54 if(serializable instanceof CloseTransactionChain) {
55 return (CloseTransactionChain)serializable;
57 ShardTransactionChainMessages.CloseTransactionChain closeTransactionChain =
58 (ShardTransactionChainMessages.CloseTransactionChain) serializable;
59 return new CloseTransactionChain(closeTransactionChain.getTransactionChainId(),
60 DataStoreVersions.LITHIUM_VERSION);
64 public static boolean isSerializedType(Object message) {
65 return message instanceof CloseTransactionChain ||
66 message instanceof ShardTransactionChainMessages.CloseTransactionChain;