blob: 6d99c0cfaf8e44846585b66207690a620854dfe7 [file] [log] [blame]
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +09001/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.incubator.net.dpi;
18
19import java.util.List;
20import static com.google.common.base.MoreObjects.toStringHelper;
21
22/**
23 * DPI statistic information.
24 */
25public class DpiStatInfo {
26 TrafficStatInfo trafficStatistics;
27 List<ProtocolStatInfo> detectedProtos;
28 List<FlowStatInfo> knownFlows;
29 List<FlowStatInfo> unknownFlows;
30
31 /**
32 * Constructor for default DpiStatInfo class.
33 */
34 public DpiStatInfo() {
35 this.trafficStatistics = null;
36 this.detectedProtos = null;
37 this.knownFlows = null;
38 this.unknownFlows = null;
39 }
40
41 /**
42 * Constructor for DpiStatistics class specified with trafficStatInfo.
43 *
44 * @param trafficStatistics traffic statistic information
45 */
46 public DpiStatInfo(TrafficStatInfo trafficStatistics) {
47 this.trafficStatistics = trafficStatistics;
48 this.detectedProtos = null;
49 this.knownFlows = null;
50 this.unknownFlows = null;
51 }
52
53 /**
54 * Constructor for DpiStatistics class specified with trafficStatInfo and detectedProtos.
55 *
56 * @param trafficStatistics traffic statistic information
57 * @param detectedProtos detected protocols statistic information
58 */
59 public DpiStatInfo(TrafficStatInfo trafficStatistics,
60 List<ProtocolStatInfo> detectedProtos) {
61 this.trafficStatistics = trafficStatistics;
62 this.detectedProtos = detectedProtos;
63 this.knownFlows = null;
64 this.unknownFlows = null;
65 }
66
67 /**
68 * Constructor for DpiStatistics class specified with trafficStatInfo, detectedProtos and knownFlows.
69 *
70 * @param trafficStatistics traffic statistic information
71 * @param detectedProtos detected protocols statistic information
72 * @param knownFlows known flows
73 */
74 public DpiStatInfo(TrafficStatInfo trafficStatistics,
75 List<ProtocolStatInfo> detectedProtos,
76 List<FlowStatInfo> knownFlows) {
77 this.trafficStatistics = trafficStatistics;
78 this.detectedProtos = detectedProtos;
79 this.knownFlows = knownFlows;
80 this.unknownFlows = null;
81 }
82
83 /**
84 * Constructor for DpiStatistics class specified with trafficStatInfo, detectedProtos, knownFlows and unknownFlows.
85 *
86 * @param trafficStatistics traffic statistic information
87 * @param detectedProtos detected protocols statistic information
88 * @param knownFlows known flows
89 * @param unknownFlows unknown flows
90 */
91 public DpiStatInfo(TrafficStatInfo trafficStatistics,
92 List<ProtocolStatInfo> detectedProtos,
93 List<FlowStatInfo> knownFlows,
94 List<FlowStatInfo> unknownFlows) {
95 this.trafficStatistics = trafficStatistics;
96 this.detectedProtos = detectedProtos;
97 this.knownFlows = knownFlows;
98 this.unknownFlows = unknownFlows;
99 }
100
101 /**
102 * Returns DPI traffic statistic information.
103 *
104 * @return trafficStatistics
105 */
106 public TrafficStatInfo trafficStatistics() {
107 return trafficStatistics;
108 }
109
110 /**
111 * Returns DPI detected protocols statistic information.
112 *
113 * @return detectedProtos
114 */
115 public List<ProtocolStatInfo> detectedProtos() {
116 return detectedProtos;
117 }
118
119 /**
120 * Returns DPI known flows.
121 *
122 * @return knownFlows
123 */
124 public List<FlowStatInfo> knownFlows() {
125 return knownFlows;
126 }
127
128 /**
129 * Returns DPI unknown flows.
130 *
131 * @return unknownFlows
132 */
133 public List<FlowStatInfo> unknownFlows() {
134 return unknownFlows;
135 }
136
137 /**
138 * Sets the traffic statistic information.
139 */
140 public void setTrafficStatistics(TrafficStatInfo trafficStatistics) {
141 this.trafficStatistics = trafficStatistics;
142 }
143
144 /**
145 * Sets the detected protocols statistic information.
146 */
147 public void setDetectedProtos(List<ProtocolStatInfo> detectedProtos) {
148 this.detectedProtos = detectedProtos;
149 }
150
151 /**
152 * Sets the known flows information.
153 */
154 public void setKnownFlows(List<FlowStatInfo> knownFlows) {
155 this.knownFlows = knownFlows;
156 }
157
158 /**
159 * Sets the unknown flows information.
160 */
161 public void setUnknownFlows(List<FlowStatInfo> unknownFlows) {
162 this.unknownFlows = unknownFlows;
163 }
164
165 @Override
166 public String toString() {
167 return toStringHelper(this)
168 .add("trafficStatistics", trafficStatistics)
169 .add("detectedProtos", detectedProtos)
170 .add("knownFlows", knownFlows)
171 .add("unknownFlows", unknownFlows)
172 .toString();
173 }
174}