Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / core / ContainerServiceDependency.java
1
2 /*
3  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
4  *
5  * This program and the accompanying materials are made available under the
6  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7  * and is available at http://www.eclipse.org/legal/epl-v10.html
8  */
9
10 package org.opendaylight.controller.sal.core;
11
12 /**
13  * @file   ContainerServiceDependency.java
14  *
15  * @brief  Class representing a ServiceDependency on a container
16  *
17  * Class representing a ServiceDependency on a container
18  */
19
20 import java.util.Dictionary;
21 import org.osgi.framework.ServiceReference;
22 import org.apache.felix.dm.ServiceDependency;
23 import org.apache.felix.dm.DependencyManager;
24 import org.apache.felix.dm.Dependency;
25 import org.apache.felix.dm.DependencyActivation;
26 import org.apache.felix.dm.DependencyService;
27
28 /**
29  * Class representing a ServiceDependency on a container
30  *
31  */
32 public class ContainerServiceDependency implements ServiceDependency,
33         DependencyActivation {
34     private ServiceDependency m_dep;
35     private String containerName;
36
37     public ContainerServiceDependency(DependencyManager manager,
38             String containerName) {
39         this.m_dep = manager.createServiceDependency();
40         this.containerName = containerName;
41     }
42
43     private ContainerServiceDependency(ServiceDependency explicitDependency,
44             String containerName) {
45         this.m_dep = explicitDependency;
46         this.containerName = containerName;
47     }
48
49     @Override
50     public ServiceDependency setService(Class serviceName) {
51         this.m_dep.setService(serviceName, "(containerName="
52                 + this.containerName + ")");
53         return this;
54     }
55
56     @Override
57     public ServiceDependency setService(Class serviceName, String serviceFilter) {
58         this.m_dep.setService(serviceName, "(&(containerName="
59                 + this.containerName + ")" + serviceFilter + ")");
60         return this;
61     }
62
63     @Override
64     public ServiceDependency setService(String serviceFilter) {
65         this.m_dep.setService("(&(containerName=" + this.containerName + ")"
66                 + serviceFilter + ")");
67         return this;
68     }
69
70     @Override
71     public ServiceDependency setService(Class serviceName,
72             ServiceReference serviceReference) {
73         this.m_dep.setService(serviceName, serviceReference);
74         return this;
75     }
76
77     @Override
78     public ServiceDependency setDefaultImplementation(Object implementation) {
79         this.m_dep.setDefaultImplementation(implementation);
80         return this;
81     }
82
83     @Override
84     public ServiceDependency setRequired(boolean required) {
85         this.m_dep.setRequired(required);
86         return this;
87     }
88
89     @Override
90     public ServiceDependency setAutoConfig(boolean autoConfig) {
91         this.m_dep.setAutoConfig(autoConfig);
92         return this;
93     }
94
95     @Override
96     public ServiceDependency setAutoConfig(String instanceName) {
97         this.m_dep.setAutoConfig(instanceName);
98         return this;
99     }
100
101     @Override
102     public ServiceDependency setCallbacks(String added, String removed) {
103         this.m_dep.setCallbacks(added, removed);
104         return this;
105     }
106
107     @Override
108     public ServiceDependency setCallbacks(String added, String changed,
109             String removed) {
110         this.m_dep.setCallbacks(added, changed, removed);
111         return this;
112     }
113
114     @Override
115     public ServiceDependency setCallbacks(String added, String changed,
116             String removed, String swapped) {
117         this.m_dep.setCallbacks(added, changed, removed, swapped);
118         return this;
119     }
120
121     @Override
122     public ServiceDependency setCallbacks(Object instance, String added,
123             String removed) {
124         this.m_dep.setCallbacks(instance, added, removed);
125         return this;
126     }
127
128     @Override
129     public ServiceDependency setCallbacks(Object instance, String added,
130             String changed, String removed) {
131         this.m_dep.setCallbacks(instance, added, changed, removed);
132         return this;
133     }
134
135     @Override
136     public ServiceDependency setCallbacks(Object instance, String added,
137             String changed, String removed, String swapped) {
138         this.m_dep.setCallbacks(instance, added, changed, removed, swapped);
139         return this;
140     }
141
142     @Override
143     public ServiceDependency setPropagate(boolean propagate) {
144         this.m_dep.setPropagate(propagate);
145         return this;
146     }
147
148     @Override
149     public ServiceDependency setPropagate(Object instance, String method) {
150         this.m_dep.setPropagate(instance, method);
151         return this;
152     }
153
154     @Override
155     public ServiceDependency setInstanceBound(boolean isInstanceBound) {
156         this.m_dep.setInstanceBound(isInstanceBound);
157         return this;
158     }
159
160     @Override
161     public Dependency createCopy() {
162         return new ContainerServiceDependency((ServiceDependency) this.m_dep
163                 .createCopy(), this.containerName);
164     }
165
166     @Override
167     public Dictionary getProperties() {
168         return this.m_dep.getProperties();
169     }
170
171     @Override
172     public boolean isPropagated() {
173         return this.m_dep.isPropagated();
174     }
175
176     @Override
177     public boolean isRequired() {
178         return this.m_dep.isRequired();
179     }
180
181     @Override
182     public boolean isAvailable() {
183         return this.m_dep.isAvailable();
184     }
185
186     @Override
187     public boolean isInstanceBound() {
188         return this.m_dep.isInstanceBound();
189     }
190
191     @Override
192     public boolean isAutoConfig() {
193         return this.m_dep.isAutoConfig();
194     }
195
196     @Override
197     public Class getAutoConfigType() {
198         return this.m_dep.getAutoConfigType();
199     }
200
201     @Override
202     public Object getAutoConfigInstance() {
203         return this.m_dep.getAutoConfigInstance();
204     }
205
206     @Override
207     public String getAutoConfigName() {
208         return this.m_dep.getAutoConfigName();
209     }
210
211     @Override
212     public void invokeAdded(DependencyService service) {
213         this.m_dep.invokeAdded(service);
214     }
215
216     @Override
217     public void invokeRemoved(DependencyService service) {
218         this.m_dep.invokeRemoved(service);
219     }
220
221     @Override
222     public String getName() {
223         return this.m_dep.getName();
224     }
225
226     @Override
227     public String getType() {
228         return this.m_dep.getType();
229     }
230
231     @Override
232     public int getState() {
233         return this.m_dep.getState();
234     }
235
236     @Override
237     public void start(DependencyService service) {
238         DependencyActivation a = (DependencyActivation) this.m_dep;
239         a.start(service);
240     }
241
242     @Override
243     public void stop(DependencyService service) {
244         DependencyActivation a = (DependencyActivation) this.m_dep;
245         a.stop(service);
246     }
247 }