42162c8ab85e528d039cd3c0f07925d784793561
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / device / DeviceStateImpl.java
1 /**
2  * Copyright (c) 2015 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.openflowplugin.impl.device;
10
11 import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
12 import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
15
16 /**
17  * openflowplugin-impl
18  * org.opendaylight.openflowplugin.impl.device
19  * <p/>
20  * DeviceState is builded from {@link FeaturesReply} and {@link NodeId}. Both values are inside
21  * {@link org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext}
22  *
23  */
24 class DeviceStateImpl implements DeviceState {
25
26     private final DeviceInfo deviceInfo;
27     private boolean valid;
28     private boolean meterIsAvailable;
29     private boolean groupIsAvailable;
30     private boolean deviceSynchronized;
31     private boolean flowStatisticsAvailable;
32     private boolean tableStatisticsAvailable;
33     private boolean portStatisticsAvailable;
34     private boolean statPollEnabled;
35     private boolean queueStatisticsAvailable;
36
37     public DeviceStateImpl(final DeviceInfo deviceInfo) {
38         this.deviceInfo = deviceInfo;
39         statPollEnabled = false;
40         deviceSynchronized = false;
41     }
42
43     @Override
44     public boolean isValid() {
45         return valid;
46     }
47
48     @Override
49     public boolean isMetersAvailable() {
50         return meterIsAvailable;
51     }
52
53     @Override
54     public void setMeterAvailable(final boolean available) {
55         meterIsAvailable = available;
56     }
57
58     @Override
59     public boolean isGroupAvailable() {
60         return groupIsAvailable;
61     }
62
63     @Override
64     public void setGroupAvailable(final boolean available) {
65         groupIsAvailable = available;
66     }
67
68     @Override
69     public boolean deviceSynchronized() {
70         return deviceSynchronized;
71     }
72
73     @Override
74     public boolean isFlowStatisticsAvailable() {
75         return flowStatisticsAvailable;
76     }
77
78     @Override
79     public void setFlowStatisticsAvailable(final boolean available) {
80         flowStatisticsAvailable = available;
81     }
82
83     @Override
84     public boolean isTableStatisticsAvailable() {
85         return tableStatisticsAvailable;
86     }
87
88     @Override
89     public void setTableStatisticsAvailable(final boolean available) {
90         tableStatisticsAvailable = available;
91     }
92
93     @Override
94     public boolean isPortStatisticsAvailable() {
95         return portStatisticsAvailable;
96     }
97
98     @Override
99     public void setPortStatisticsAvailable(final boolean available) {
100         portStatisticsAvailable = available;
101     }
102
103     @Override
104     public boolean isQueueStatisticsAvailable() {
105         return queueStatisticsAvailable;
106     }
107
108     @Override
109     public void setQueueStatisticsAvailable(final boolean available) {
110         queueStatisticsAvailable = available;
111
112     }
113
114     @Override
115     public boolean isStatisticsPollingEnabled() {
116         return statPollEnabled;
117     }
118
119     @Override
120     public void setStatisticsPollingEnabledProp(final boolean statPollEnabled) {
121         this.statPollEnabled = statPollEnabled;
122     }
123
124     @Override
125     public void deviceIsSynchronized(final DeviceInfo deviceInfo, final boolean isSynchronized) {
126         if (this.deviceInfo.equals(deviceInfo)) {
127             this.deviceSynchronized = isSynchronized;
128         }
129     }
130
131     @Override
132     public void deviceIsValid(final DeviceInfo deviceInfo, final boolean isValid) {
133         if (this.deviceInfo.equals(deviceInfo)) {
134             this.valid = isValid;
135         }
136     }
137 }