Merge "Add missing copyright text"
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / DataExistsReply.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.controller.cluster.datastore.messages;
10
11 import org.opendaylight.controller.protobuff.messages.transaction.ShardTransactionMessages;
12
13 public class DataExistsReply implements SerializableMessage {
14     public static final Class<ShardTransactionMessages.DataExistsReply> SERIALIZABLE_CLASS =
15             ShardTransactionMessages.DataExistsReply.class;
16
17     private static final DataExistsReply TRUE = new DataExistsReply(true, null);
18     private static final DataExistsReply FALSE = new DataExistsReply(false, null);
19     private static final ShardTransactionMessages.DataExistsReply SERIALIZABLE_TRUE =
20             ShardTransactionMessages.DataExistsReply.newBuilder().setExists(true).build();
21     private static final ShardTransactionMessages.DataExistsReply SERIALIZABLE_FALSE =
22             ShardTransactionMessages.DataExistsReply.newBuilder().setExists(false).build();
23
24     private final boolean exists;
25
26     private DataExistsReply(final boolean exists, final Void dummy) {
27         this.exists = exists;
28     }
29
30     /**
31      * @deprecated Use {@link #create(boolean)} instead.
32      * @param exists
33      */
34     @Deprecated
35     public DataExistsReply(final boolean exists) {
36         this(exists, null);
37     }
38
39     public static DataExistsReply create(final boolean exists) {
40         return exists ? TRUE : FALSE;
41     }
42
43     public boolean exists() {
44         return exists;
45     }
46
47     @Override
48     public Object toSerializable() {
49         return exists ? SERIALIZABLE_TRUE : SERIALIZABLE_FALSE;
50     }
51
52     public static DataExistsReply fromSerializable(final Object serializable) {
53         ShardTransactionMessages.DataExistsReply o = (ShardTransactionMessages.DataExistsReply) serializable;
54         return create(o.getExists());
55     }
56 }