- final List<MultipartType> statListForCollecting = new ArrayList<>();
- if (devState.isTableStatisticsAvailable()) {
- statListForCollecting.add(MultipartType.OFPMPTABLE);
- }
- if (devState.isFlowStatisticsAvailable()) {
- statListForCollecting.add(MultipartType.OFPMPFLOW);
- }
- if (devState.isGroupAvailable()) {
- statListForCollecting.add(MultipartType.OFPMPGROUPDESC);
- statListForCollecting.add(MultipartType.OFPMPGROUP);
- }
- if (devState.isMetersAvailable()) {
- statListForCollecting.add(MultipartType.OFPMPMETERCONFIG);
- statListForCollecting.add(MultipartType.OFPMPMETER);
- }
- if (devState.isPortStatisticsAvailable()) {
- statListForCollecting.add(MultipartType.OFPMPPORTSTATS);
- }
- if (devState.isQueueStatisticsAvailable()) {
- statListForCollecting.add(MultipartType.OFPMPQUEUE);
+ @Override
+ public void statListForCollectingInitialization() {
+ synchronized (COLLECTION_STAT_TYPE_LOCK) {
+ final List<MultipartType> statListForCollecting = new ArrayList<>();
+ if (devState.isTableStatisticsAvailable()) {
+ statListForCollecting.add(MultipartType.OFPMPTABLE);
+ }
+ if (devState.isFlowStatisticsAvailable()) {
+ statListForCollecting.add(MultipartType.OFPMPFLOW);
+ }
+ if (devState.isGroupAvailable()) {
+ statListForCollecting.add(MultipartType.OFPMPGROUPDESC);
+ statListForCollecting.add(MultipartType.OFPMPGROUP);
+ }
+ if (devState.isMetersAvailable()) {
+ statListForCollecting.add(MultipartType.OFPMPMETERCONFIG);
+ statListForCollecting.add(MultipartType.OFPMPMETER);
+ }
+ if (devState.isPortStatisticsAvailable()) {
+ statListForCollecting.add(MultipartType.OFPMPPORTSTATS);
+ }
+ if (devState.isQueueStatisticsAvailable()) {
+ statListForCollecting.add(MultipartType.OFPMPQUEUE);
+ }
+ collectingStatType = ImmutableList.<MultipartType>copyOf(statListForCollecting);