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