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.protobuff.messages.transaction.ShardTransactionMessages;
15 public class CreateTransaction implements SerializableMessage {
16 public static final Class<ShardTransactionMessages.CreateTransaction> SERIALIZABLE_CLASS =
17 ShardTransactionMessages.CreateTransaction.class;
19 public static final int HELIUM_1_VERSION = 1;
20 public static final int CURRENT_VERSION = HELIUM_1_VERSION;
22 private final String transactionId;
23 private final int transactionType;
24 private final String transactionChainId;
25 private final int version;
27 public CreateTransaction(String transactionId, int transactionType) {
28 this(transactionId, transactionType, "");
31 public CreateTransaction(String transactionId, int transactionType, String transactionChainId) {
32 this(transactionId, transactionType, transactionChainId, CURRENT_VERSION);
35 private CreateTransaction(String transactionId, int transactionType, String transactionChainId,
37 this.transactionId = transactionId;
38 this.transactionType = transactionType;
39 this.transactionChainId = transactionChainId;
40 this.version = version;
43 public String getTransactionId() {
47 public int getTransactionType() {
48 return transactionType;
51 public int getVersion() {
56 public Object toSerializable() {
57 return ShardTransactionMessages.CreateTransaction.newBuilder()
58 .setTransactionId(transactionId)
59 .setTransactionType(transactionType)
60 .setTransactionChainId(transactionChainId)
61 .setMessageVersion(version).build();
64 public static CreateTransaction fromSerializable(Object message) {
65 ShardTransactionMessages.CreateTransaction createTransaction =
66 (ShardTransactionMessages.CreateTransaction) message;
67 return new CreateTransaction(createTransaction.getTransactionId(),
68 createTransaction.getTransactionType(), createTransaction.getTransactionChainId(),
69 createTransaction.getMessageVersion());
72 public String getTransactionChainId() {
73 return transactionChainId;