aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/topo/ServicesBundle.java
blob: bcc4ad8b5e7693d6b1ca2772b2e562a5e90bf22d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 * Copyright 2015 Open Networking Laboratory
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package org.onosproject.ui.impl.topo;

import org.onosproject.incubator.net.PortStatisticsService;
import org.onosproject.net.device.DeviceService;
import org.onosproject.net.flow.FlowRuleService;
import org.onosproject.net.host.HostService;
import org.onosproject.net.intent.IntentService;
import org.onosproject.net.link.LinkService;
import org.onosproject.net.statistic.StatisticService;

import static com.google.common.base.Preconditions.checkNotNull;

/**
 * A bundle of services that the topology view requires to get its job done.
 */
public class ServicesBundle {

    private final IntentService intentService;
    private final DeviceService deviceService;
    private final HostService hostService;
    private final LinkService linkService;
    private final FlowRuleService flowService;
    private final StatisticService flowStatsService;
    private final PortStatisticsService portStatsService;

    /**
     * Creates the services bundle.
     *
     * @param intentService     intent service reference
     * @param deviceService     device service reference
     * @param hostService       host service reference
     * @param linkService       link service reference
     * @param flowService       flow service reference
     * @param flowStatsService  flow statistics service reference
     * @param portStatsService  port statistics service reference
     */
    public ServicesBundle(IntentService intentService,
                          DeviceService deviceService,
                          HostService hostService,
                          LinkService linkService,
                          FlowRuleService flowService,
                          StatisticService flowStatsService,
                          PortStatisticsService portStatsService) {
        this.intentService = checkNotNull(intentService);
        this.deviceService = checkNotNull(deviceService);
        this.hostService = checkNotNull(hostService);
        this.linkService = checkNotNull(linkService);
        this.flowService = checkNotNull(flowService);
        this.flowStatsService = checkNotNull(flowStatsService);
        this.portStatsService = checkNotNull(portStatsService);
    }

    /**
     * Returns a reference to the intent service.
     *
     * @return intent service reference
     */
    public IntentService intentService() {
        return intentService;
    }

    /**
     * Returns a reference to the device service.
     *
     * @return device service reference
     */
    public DeviceService deviceService() {
        return deviceService;
    }

    /**
     * Returns a reference to the host service.
     *
     * @return host service reference
     */
    public HostService hostService() {
        return hostService;
    }

    /**
     * Returns a reference to the link service.
     *
     * @return link service reference
     */
    public LinkService linkService() {
        return linkService;
    }

    /**
     * Returns a reference to the flow rule service.
     *
     * @return flow service reference
     */
    public FlowRuleService flowService() {
        return flowService;
    }

    /**
     * Returns a reference to the flow statistics service.
     *
     * @return flow statistics service reference
     */
    public StatisticService flowStatsService() {
        return flowStatsService;
    }

    /**
     * Returns a reference to the port statistics service.
     *
     * @return port statistics service reference
     */
    public PortStatisticsService portStatsService() {
        return portStatsService;
    }
}