28f0cdf23cdee6924da69bb80c7035b7b589e5a5
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / restconf / impl / StatisticsRestconfServiceWrapper.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 package org.opendaylight.controller.sal.restconf.impl;
9
10 import java.math.BigInteger;
11 import java.util.concurrent.atomic.AtomicLong;
12 import javax.ws.rs.core.Response;
13 import javax.ws.rs.core.UriInfo;
14 import org.opendaylight.controller.sal.rest.api.RestconfService;
15
16 public class StatisticsRestconfServiceWrapper implements RestconfService {
17
18     AtomicLong operationalGet = new AtomicLong();
19     AtomicLong configGet = new AtomicLong();
20     AtomicLong rpc = new AtomicLong();
21     AtomicLong configPost = new AtomicLong();
22     AtomicLong configPut = new AtomicLong();
23     AtomicLong configDelete = new AtomicLong();
24
25     private static final StatisticsRestconfServiceWrapper INSTANCE = new StatisticsRestconfServiceWrapper(RestconfImpl.getInstance());
26
27     final RestconfService delegate;
28
29     private StatisticsRestconfServiceWrapper(final RestconfService delegate) {
30         this.delegate = delegate;
31     }
32
33     public static StatisticsRestconfServiceWrapper getInstance() {
34         return INSTANCE;
35     }
36
37     @Override
38     public Object getRoot() {
39         return delegate.getRoot();
40     }
41
42     @Override
43     public NormalizedNodeContext getModules(final UriInfo uriInfo) {
44         return delegate.getModules(uriInfo);
45     }
46
47     @Override
48     public NormalizedNodeContext getModules(final String identifier, final UriInfo uriInfo) {
49         return delegate.getModules(identifier, uriInfo);
50     }
51
52     @Override
53     public NormalizedNodeContext getModule(final String identifier, final UriInfo uriInfo) {
54         return delegate.getModule(identifier, uriInfo);
55     }
56
57     @Override
58     public NormalizedNodeContext getOperations(final UriInfo uriInfo) {
59         return delegate.getOperations(uriInfo);
60     }
61
62     @Override
63     public NormalizedNodeContext getOperations(final String identifier, final UriInfo uriInfo) {
64         return delegate.getOperations(identifier, uriInfo);
65     }
66
67     @Override
68     public NormalizedNodeContext invokeRpc(final String identifier, final NormalizedNodeContext payload, final UriInfo uriInfo) {
69         rpc.incrementAndGet();
70         return delegate.invokeRpc(identifier, payload, uriInfo);
71     }
72
73     @Override
74     public StructuredData invokeRpc(final String identifier, final String noPayload, final UriInfo uriInfo) {
75         rpc.incrementAndGet();
76         return delegate.invokeRpc(identifier, noPayload, uriInfo);
77     }
78
79     @Override
80     public NormalizedNodeContext readConfigurationData(final String identifier, final UriInfo uriInfo) {
81         configGet.incrementAndGet();
82         return delegate.readConfigurationData(identifier, uriInfo);
83     }
84
85     @Override
86     public NormalizedNodeContext readOperationalData(final String identifier, final UriInfo uriInfo) {
87         operationalGet.incrementAndGet();
88         return delegate.readOperationalData(identifier, uriInfo);
89     }
90
91     @Override
92     public Response updateConfigurationData(final String identifier, final NormalizedNodeContext payload) {
93         configPut.incrementAndGet();
94         return delegate.updateConfigurationData(identifier, payload);
95     }
96
97     @Override
98     public Response createConfigurationData(final String identifier, final NormalizedNodeContext payload, final UriInfo uriInfo) {
99         configPost.incrementAndGet();
100         return delegate.createConfigurationData(identifier, payload, uriInfo);
101     }
102
103     @Override
104     public Response createConfigurationData(final NormalizedNodeContext payload, final UriInfo uriInfo) {
105         configPost.incrementAndGet();
106         return delegate.createConfigurationData(payload, uriInfo);
107     }
108
109     @Override
110     public Response deleteConfigurationData(final String identifier) {
111         return delegate.deleteConfigurationData(identifier);
112     }
113
114     @Override
115     public Response subscribeToStream(final String identifier, final UriInfo uriInfo) {
116         return delegate.subscribeToStream(identifier, uriInfo);
117     }
118
119     @Override
120     public NormalizedNodeContext getAvailableStreams(final UriInfo uriInfo) {
121         return delegate.getAvailableStreams(uriInfo);
122     }
123
124     public BigInteger getConfigDelete() {
125         return BigInteger.valueOf(configDelete.get());
126     }
127
128     public BigInteger getConfigGet() {
129         return BigInteger.valueOf(configGet.get());
130     }
131
132     public BigInteger getConfigPost() {
133         return BigInteger.valueOf(configPost.get());
134     }
135
136     public BigInteger getConfigPut() {
137         return BigInteger.valueOf(configPut.get());
138     }
139
140     public BigInteger getOperationalGet() {
141         return BigInteger.valueOf(operationalGet.get());
142     }
143
144     public BigInteger getRpc() {
145         return BigInteger.valueOf(rpc.get());
146     }
147 }