Bump versions by 0.1.0 for next dev cycle
[vpnservice.git] / bgpmanager / bgpmanager-impl / src / main / java / org / opendaylight / bgpmanager / BgpUtil.java
1 /*
2  * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. 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.bgpmanager;
10
11 import com.google.common.base.Optional;
12 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
13 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
14 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
15 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
16 import org.opendaylight.yangtools.yang.binding.DataObject;
17 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
20
21 /**
22  * Created by emhamla on 8/31/2015.
23  */
24 public class BgpUtil {
25
26     private static final Logger LOG = LoggerFactory.getLogger(BgpUtil.class);
27     private static DataBroker  dataBroker;
28
29     static <T extends DataObject> void update(DataBroker broker, LogicalDatastoreType datastoreType,
30                                               InstanceIdentifier<T> path, T data) {
31         WriteTransaction tx = broker.newWriteOnlyTransaction();
32         tx.merge(datastoreType, path, data, true);
33         tx.submit();
34     }
35
36     public static <T extends DataObject> void write(DataBroker broker, LogicalDatastoreType datastoreType,
37                                               InstanceIdentifier<T> path, T data) {
38         WriteTransaction tx = broker.newWriteOnlyTransaction();
39         tx.put(datastoreType, path, data, true);
40         tx.submit();
41     }
42
43     static <T extends DataObject> void delete(DataBroker broker, LogicalDatastoreType datastoreType, InstanceIdentifier<T> path) {
44         WriteTransaction tx = broker.newWriteOnlyTransaction();
45         tx.delete(datastoreType, path);
46         tx.submit();
47     }
48
49     public static <T extends DataObject> Optional<T> read(DataBroker broker, LogicalDatastoreType datastoreType,
50                                                    InstanceIdentifier<T> path) {
51
52         ReadOnlyTransaction tx = broker.newReadOnlyTransaction();
53
54         Optional<T> result = Optional.absent();
55         try {
56             result = tx.read(datastoreType, path).get();
57         } catch (Exception e) {
58             throw new RuntimeException(e);
59         }
60
61         return result;
62     }
63
64     public static void setBroker(DataBroker broker) {
65         BgpUtil.dataBroker = broker;
66     }
67
68     public static DataBroker getBroker() {
69         return dataBroker;
70     }
71
72 }