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;
12 import org.opendaylight.controller.cluster.datastore.DataStoreVersions;
13 import org.opendaylight.controller.protobuff.messages.transaction.ShardTransactionMessages;
16 public class CreateTransaction implements SerializableMessage {
17 public static final Class<ShardTransactionMessages.CreateTransaction> SERIALIZABLE_CLASS =
18 ShardTransactionMessages.CreateTransaction.class;
20 private final String transactionId;
21 private final int transactionType;
22 private final String transactionChainId;
23 private final short version;
25 public CreateTransaction(String transactionId, int transactionType) {
26 this(transactionId, transactionType, "");
29 public CreateTransaction(String transactionId, int transactionType, String transactionChainId) {
30 this(transactionId, transactionType, transactionChainId, DataStoreVersions.CURRENT_VERSION);
33 private CreateTransaction(String transactionId, int transactionType, String transactionChainId,
35 this.transactionId = transactionId;
36 this.transactionType = transactionType;
37 this.transactionChainId = transactionChainId;
38 this.version = version;
41 public String getTransactionId() {
45 public int getTransactionType() {
46 return transactionType;
49 public short getVersion() {
54 public Object toSerializable() {
55 return ShardTransactionMessages.CreateTransaction.newBuilder()
56 .setTransactionId(transactionId)
57 .setTransactionType(transactionType)
58 .setTransactionChainId(transactionChainId)
59 .setMessageVersion(version).build();
62 public static CreateTransaction fromSerializable(Object message) {
63 ShardTransactionMessages.CreateTransaction createTransaction =
64 (ShardTransactionMessages.CreateTransaction) message;
65 return new CreateTransaction(createTransaction.getTransactionId(),
66 createTransaction.getTransactionType(), createTransaction.getTransactionChainId(),
67 (short)createTransaction.getMessageVersion());
70 public String getTransactionChainId() {
71 return transactionChainId;