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 com.google.common.base.Preconditions;
13 import org.opendaylight.controller.cluster.datastore.DataStoreVersions;
14 import org.opendaylight.controller.protobuff.messages.transaction.ShardTransactionMessages;
17 public class CreateTransaction implements SerializableMessage {
18 public static final Class<ShardTransactionMessages.CreateTransaction> SERIALIZABLE_CLASS =
19 ShardTransactionMessages.CreateTransaction.class;
21 private final String transactionId;
22 private final int transactionType;
23 private final String transactionChainId;
24 private final short version;
26 public CreateTransaction(String transactionId, int transactionType) {
27 this(transactionId, transactionType, "");
30 public CreateTransaction(String transactionId, int transactionType, String transactionChainId) {
31 this(transactionId, transactionType, transactionChainId, DataStoreVersions.CURRENT_VERSION);
34 private CreateTransaction(String transactionId, int transactionType, String transactionChainId,
36 this.transactionId = Preconditions.checkNotNull(transactionId);
37 this.transactionType = transactionType;
38 this.transactionChainId = transactionChainId;
39 this.version = version;
42 public String getTransactionId() {
46 public int getTransactionType() {
47 return transactionType;
50 public short getVersion() {
55 public Object toSerializable() {
56 return ShardTransactionMessages.CreateTransaction.newBuilder()
57 .setTransactionId(transactionId)
58 .setTransactionType(transactionType)
59 .setTransactionChainId(transactionChainId)
60 .setMessageVersion(version).build();
63 public static CreateTransaction fromSerializable(Object message) {
64 ShardTransactionMessages.CreateTransaction createTransaction =
65 (ShardTransactionMessages.CreateTransaction) message;
66 return new CreateTransaction(createTransaction.getTransactionId(),
67 createTransaction.getTransactionType(), createTransaction.getTransactionChainId(),
68 (short)createTransaction.getMessageVersion());
71 public String getTransactionChainId() {
72 return transactionChainId;