3 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
10 package org.opendaylight.controller.sal.core;
13 * @file ContainerServiceDependency.java
15 * @brief Class representing a ServiceDependency on a container
17 * Class representing a ServiceDependency on a container
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;
29 * Class representing a ServiceDependency on a container
32 public class ContainerServiceDependency implements ServiceDependency,
33 DependencyActivation {
34 private ServiceDependency m_dep;
35 private String containerName;
37 public ContainerServiceDependency(DependencyManager manager,
38 String containerName) {
39 this.m_dep = manager.createServiceDependency();
40 this.containerName = containerName;
43 private ContainerServiceDependency(ServiceDependency explicitDependency,
44 String containerName) {
45 this.m_dep = explicitDependency;
46 this.containerName = containerName;
49 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
51 public ServiceDependency setService(Class serviceName) {
52 this.m_dep.setService(serviceName, "(containerName="
53 + this.containerName + ")");
57 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
59 public ServiceDependency setService(Class serviceName, String serviceFilter) {
60 this.m_dep.setService(serviceName, "(&(containerName="
61 + this.containerName + ")" + serviceFilter + ")");
66 public ServiceDependency setService(String serviceFilter) {
67 this.m_dep.setService("(&(containerName=" + this.containerName + ")"
68 + serviceFilter + ")");
72 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
74 public ServiceDependency setService(Class serviceName,
75 ServiceReference serviceReference) {
76 this.m_dep.setService(serviceName, serviceReference);
81 public ServiceDependency setDefaultImplementation(Object implementation) {
82 this.m_dep.setDefaultImplementation(implementation);
87 public ServiceDependency setRequired(boolean required) {
88 this.m_dep.setRequired(required);
93 public ServiceDependency setAutoConfig(boolean autoConfig) {
94 this.m_dep.setAutoConfig(autoConfig);
99 public ServiceDependency setAutoConfig(String instanceName) {
100 this.m_dep.setAutoConfig(instanceName);
105 public ServiceDependency setCallbacks(String added, String removed) {
106 this.m_dep.setCallbacks(added, removed);
111 public ServiceDependency setCallbacks(String added, String changed,
113 this.m_dep.setCallbacks(added, changed, removed);
118 public ServiceDependency setCallbacks(String added, String changed,
119 String removed, String swapped) {
120 this.m_dep.setCallbacks(added, changed, removed, swapped);
125 public ServiceDependency setCallbacks(Object instance, String added,
127 this.m_dep.setCallbacks(instance, added, removed);
132 public ServiceDependency setCallbacks(Object instance, String added,
133 String changed, String removed) {
134 this.m_dep.setCallbacks(instance, added, changed, removed);
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);
146 public ServiceDependency setPropagate(boolean propagate) {
147 this.m_dep.setPropagate(propagate);
152 public ServiceDependency setPropagate(Object instance, String method) {
153 this.m_dep.setPropagate(instance, method);
158 public ServiceDependency setInstanceBound(boolean isInstanceBound) {
159 this.m_dep.setInstanceBound(isInstanceBound);
164 public Dependency createCopy() {
165 return new ContainerServiceDependency((ServiceDependency) this.m_dep
166 .createCopy(), this.containerName);
169 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
171 public Dictionary getProperties() {
172 return this.m_dep.getProperties();
176 public boolean isPropagated() {
177 return this.m_dep.isPropagated();
181 public boolean isRequired() {
182 return this.m_dep.isRequired();
186 public boolean isAvailable() {
187 return this.m_dep.isAvailable();
191 public boolean isInstanceBound() {
192 return this.m_dep.isInstanceBound();
196 public boolean isAutoConfig() {
197 return this.m_dep.isAutoConfig();
200 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
202 public Class getAutoConfigType() {
203 return this.m_dep.getAutoConfigType();
207 public Object getAutoConfigInstance() {
208 return this.m_dep.getAutoConfigInstance();
212 public String getAutoConfigName() {
213 return this.m_dep.getAutoConfigName();
217 public void invokeAdded(DependencyService service) {
218 this.m_dep.invokeAdded(service);
222 public void invokeRemoved(DependencyService service) {
223 this.m_dep.invokeRemoved(service);
227 public String getName() {
228 return this.m_dep.getName();
232 public String getType() {
233 return this.m_dep.getType();
237 public int getState() {
238 return this.m_dep.getState();
242 public void start(DependencyService service) {
243 DependencyActivation a = (DependencyActivation) this.m_dep;
248 public void stop(DependencyService service) {
249 DependencyActivation a = (DependencyActivation) this.m_dep;