BUG-2218: Keep existing link augmentations during discovery process
[controller.git] / opendaylight / adsal / 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     @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
50     @Override
51     public ServiceDependency setService(Class serviceName) {
52         this.m_dep.setService(serviceName, "(containerName="
53                 + this.containerName + ")");
54         return this;
55     }
56
57     @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
58     @Override
59     public ServiceDependency setService(Class serviceName, String serviceFilter) {
60         this.m_dep.setService(serviceName, "(&(containerName="
61                 + this.containerName + ")" + serviceFilter + ")");
62         return this;
63     }
64
65     @Override
66     public ServiceDependency setService(String serviceFilter) {
67         this.m_dep.setService("(&(containerName=" + this.containerName + ")"
68                 + serviceFilter + ")");
69         return this;
70     }
71
72     @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
73     @Override
74     public ServiceDependency setService(Class serviceName,
75             ServiceReference serviceReference) {
76         this.m_dep.setService(serviceName, serviceReference);
77         return this;
78     }
79
80     @Override
81     public ServiceDependency setDefaultImplementation(Object implementation) {
82         this.m_dep.setDefaultImplementation(implementation);
83         return this;
84     }
85
86     @Override
87     public ServiceDependency setRequired(boolean required) {
88         this.m_dep.setRequired(required);
89         return this;
90     }
91
92     @Override
93     public ServiceDependency setAutoConfig(boolean autoConfig) {
94         this.m_dep.setAutoConfig(autoConfig);
95         return this;
96     }
97
98     @Override
99     public ServiceDependency setAutoConfig(String instanceName) {
100         this.m_dep.setAutoConfig(instanceName);
101         return this;
102     }
103
104     @Override
105     public ServiceDependency setCallbacks(String added, String removed) {
106         this.m_dep.setCallbacks(added, removed);
107         return this;
108     }
109
110     @Override
111     public ServiceDependency setCallbacks(String added, String changed,
112             String removed) {
113         this.m_dep.setCallbacks(added, changed, removed);
114         return this;
115     }
116
117     @Override
118     public ServiceDependency setCallbacks(String added, String changed,
119             String removed, String swapped) {
120         this.m_dep.setCallbacks(added, changed, removed, swapped);
121         return this;
122     }
123
124     @Override
125     public ServiceDependency setCallbacks(Object instance, String added,
126             String removed) {
127         this.m_dep.setCallbacks(instance, added, removed);
128         return this;
129     }
130
131     @Override
132     public ServiceDependency setCallbacks(Object instance, String added,
133             String changed, String removed) {
134         this.m_dep.setCallbacks(instance, added, changed, removed);
135         return this;
136     }
137
138     @Override
139     public ServiceDependency setCallbacks(Object instance, String added,
140             String changed, String removed, String swapped) {
141         this.m_dep.setCallbacks(instance, added, changed, removed, swapped);
142         return this;
143     }
144
145     @Override
146     public ServiceDependency setPropagate(boolean propagate) {
147         this.m_dep.setPropagate(propagate);
148         return this;
149     }
150
151     @Override
152     public ServiceDependency setPropagate(Object instance, String method) {
153         this.m_dep.setPropagate(instance, method);
154         return this;
155     }
156
157     @Override
158     public ServiceDependency setInstanceBound(boolean isInstanceBound) {
159         this.m_dep.setInstanceBound(isInstanceBound);
160         return this;
161     }
162
163     @Override
164     public Dependency createCopy() {
165         return new ContainerServiceDependency((ServiceDependency) this.m_dep
166                 .createCopy(), this.containerName);
167     }
168
169     @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
170     @Override
171     public Dictionary getProperties() {
172         return this.m_dep.getProperties();
173     }
174
175     @Override
176     public boolean isPropagated() {
177         return this.m_dep.isPropagated();
178     }
179
180     @Override
181     public boolean isRequired() {
182         return this.m_dep.isRequired();
183     }
184
185     @Override
186     public boolean isAvailable() {
187         return this.m_dep.isAvailable();
188     }
189
190     @Override
191     public boolean isInstanceBound() {
192         return this.m_dep.isInstanceBound();
193     }
194
195     @Override
196     public boolean isAutoConfig() {
197         return this.m_dep.isAutoConfig();
198     }
199
200     @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
201     @Override
202     public Class getAutoConfigType() {
203         return this.m_dep.getAutoConfigType();
204     }
205
206     @Override
207     public Object getAutoConfigInstance() {
208         return this.m_dep.getAutoConfigInstance();
209     }
210
211     @Override
212     public String getAutoConfigName() {
213         return this.m_dep.getAutoConfigName();
214     }
215
216     @Override
217     public void invokeAdded(DependencyService service) {
218         this.m_dep.invokeAdded(service);
219     }
220
221     @Override
222     public void invokeRemoved(DependencyService service) {
223         this.m_dep.invokeRemoved(service);
224     }
225
226     @Override
227     public String getName() {
228         return this.m_dep.getName();
229     }
230
231     @Override
232     public String getType() {
233         return this.m_dep.getType();
234     }
235
236     @Override
237     public int getState() {
238         return this.m_dep.getState();
239     }
240
241     @Override
242     public void start(DependencyService service) {
243         DependencyActivation a = (DependencyActivation) this.m_dep;
244         a.start(service);
245     }
246
247     @Override
248     public void stop(DependencyService service) {
249         DependencyActivation a = (DependencyActivation) this.m_dep;
250         a.stop(service);
251     }
252 }