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
33 public class ContainerServiceDependency implements ServiceDependency,
34 DependencyActivation {
35 private ServiceDependency m_dep;
36 private String containerName;
38 public ContainerServiceDependency(DependencyManager manager,
39 String containerName) {
40 this.m_dep = manager.createServiceDependency();
41 this.containerName = containerName;
44 private ContainerServiceDependency(ServiceDependency explicitDependency,
45 String containerName) {
46 this.m_dep = explicitDependency;
47 this.containerName = containerName;
50 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
52 public ServiceDependency setService(Class serviceName) {
53 this.m_dep.setService(serviceName, "(containerName="
54 + this.containerName + ")");
58 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
60 public ServiceDependency setService(Class serviceName, String serviceFilter) {
61 this.m_dep.setService(serviceName, "(&(containerName="
62 + this.containerName + ")" + serviceFilter + ")");
67 public ServiceDependency setService(String serviceFilter) {
68 this.m_dep.setService("(&(containerName=" + this.containerName + ")"
69 + serviceFilter + ")");
73 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
75 public ServiceDependency setService(Class serviceName,
76 ServiceReference serviceReference) {
77 this.m_dep.setService(serviceName, serviceReference);
82 public ServiceDependency setDefaultImplementation(Object implementation) {
83 this.m_dep.setDefaultImplementation(implementation);
88 public ServiceDependency setRequired(boolean required) {
89 this.m_dep.setRequired(required);
94 public ServiceDependency setAutoConfig(boolean autoConfig) {
95 this.m_dep.setAutoConfig(autoConfig);
100 public ServiceDependency setAutoConfig(String instanceName) {
101 this.m_dep.setAutoConfig(instanceName);
106 public ServiceDependency setCallbacks(String added, String removed) {
107 this.m_dep.setCallbacks(added, removed);
112 public ServiceDependency setCallbacks(String added, String changed,
114 this.m_dep.setCallbacks(added, changed, removed);
119 public ServiceDependency setCallbacks(String added, String changed,
120 String removed, String swapped) {
121 this.m_dep.setCallbacks(added, changed, removed, swapped);
126 public ServiceDependency setCallbacks(Object instance, String added,
128 this.m_dep.setCallbacks(instance, added, removed);
133 public ServiceDependency setCallbacks(Object instance, String added,
134 String changed, String removed) {
135 this.m_dep.setCallbacks(instance, added, changed, removed);
140 public ServiceDependency setCallbacks(Object instance, String added,
141 String changed, String removed, String swapped) {
142 this.m_dep.setCallbacks(instance, added, changed, removed, swapped);
147 public ServiceDependency setPropagate(boolean propagate) {
148 this.m_dep.setPropagate(propagate);
153 public ServiceDependency setPropagate(Object instance, String method) {
154 this.m_dep.setPropagate(instance, method);
159 public ServiceDependency setInstanceBound(boolean isInstanceBound) {
160 this.m_dep.setInstanceBound(isInstanceBound);
165 public Dependency createCopy() {
166 return new ContainerServiceDependency((ServiceDependency) this.m_dep
167 .createCopy(), this.containerName);
170 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
172 public Dictionary getProperties() {
173 return this.m_dep.getProperties();
177 public boolean isPropagated() {
178 return this.m_dep.isPropagated();
182 public boolean isRequired() {
183 return this.m_dep.isRequired();
187 public boolean isAvailable() {
188 return this.m_dep.isAvailable();
192 public boolean isInstanceBound() {
193 return this.m_dep.isInstanceBound();
197 public boolean isAutoConfig() {
198 return this.m_dep.isAutoConfig();
201 @SuppressWarnings("rawtypes") // can't change org.apache.felix.dm.ServiceDependency
203 public Class getAutoConfigType() {
204 return this.m_dep.getAutoConfigType();
208 public Object getAutoConfigInstance() {
209 return this.m_dep.getAutoConfigInstance();
213 public String getAutoConfigName() {
214 return this.m_dep.getAutoConfigName();
218 public void invokeAdded(DependencyService service) {
219 this.m_dep.invokeAdded(service);
223 public void invokeRemoved(DependencyService service) {
224 this.m_dep.invokeRemoved(service);
228 public String getName() {
229 return this.m_dep.getName();
233 public String getType() {
234 return this.m_dep.getType();
238 public int getState() {
239 return this.m_dep.getState();
243 public void start(DependencyService service) {
244 DependencyActivation a = (DependencyActivation) this.m_dep;
249 public void stop(DependencyService service) {
250 DependencyActivation a = (DependencyActivation) this.m_dep;