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;
50 public ServiceDependency setService(Class serviceName) {
51 this.m_dep.setService(serviceName, "(containerName="
52 + this.containerName + ")");
57 public ServiceDependency setService(Class serviceName, String serviceFilter) {
58 this.m_dep.setService(serviceName, "(&(containerName="
59 + this.containerName + ")" + serviceFilter + ")");
64 public ServiceDependency setService(String serviceFilter) {
65 this.m_dep.setService("(&(containerName=" + this.containerName + ")"
66 + serviceFilter + ")");
71 public ServiceDependency setService(Class serviceName,
72 ServiceReference serviceReference) {
73 this.m_dep.setService(serviceName, serviceReference);
78 public ServiceDependency setDefaultImplementation(Object implementation) {
79 this.m_dep.setDefaultImplementation(implementation);
84 public ServiceDependency setRequired(boolean required) {
85 this.m_dep.setRequired(required);
90 public ServiceDependency setAutoConfig(boolean autoConfig) {
91 this.m_dep.setAutoConfig(autoConfig);
96 public ServiceDependency setAutoConfig(String instanceName) {
97 this.m_dep.setAutoConfig(instanceName);
102 public ServiceDependency setCallbacks(String added, String removed) {
103 this.m_dep.setCallbacks(added, removed);
108 public ServiceDependency setCallbacks(String added, String changed,
110 this.m_dep.setCallbacks(added, changed, removed);
115 public ServiceDependency setCallbacks(String added, String changed,
116 String removed, String swapped) {
117 this.m_dep.setCallbacks(added, changed, removed, swapped);
122 public ServiceDependency setCallbacks(Object instance, String added,
124 this.m_dep.setCallbacks(instance, added, removed);
129 public ServiceDependency setCallbacks(Object instance, String added,
130 String changed, String removed) {
131 this.m_dep.setCallbacks(instance, added, changed, removed);
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);
143 public ServiceDependency setPropagate(boolean propagate) {
144 this.m_dep.setPropagate(propagate);
149 public ServiceDependency setPropagate(Object instance, String method) {
150 this.m_dep.setPropagate(instance, method);
155 public ServiceDependency setInstanceBound(boolean isInstanceBound) {
156 this.m_dep.setInstanceBound(isInstanceBound);
161 public Dependency createCopy() {
162 return new ContainerServiceDependency((ServiceDependency) this.m_dep
163 .createCopy(), this.containerName);
167 public Dictionary getProperties() {
168 return this.m_dep.getProperties();
172 public boolean isPropagated() {
173 return this.m_dep.isPropagated();
177 public boolean isRequired() {
178 return this.m_dep.isRequired();
182 public boolean isAvailable() {
183 return this.m_dep.isAvailable();
187 public boolean isInstanceBound() {
188 return this.m_dep.isInstanceBound();
192 public boolean isAutoConfig() {
193 return this.m_dep.isAutoConfig();
197 public Class getAutoConfigType() {
198 return this.m_dep.getAutoConfigType();
202 public Object getAutoConfigInstance() {
203 return this.m_dep.getAutoConfigInstance();
207 public String getAutoConfigName() {
208 return this.m_dep.getAutoConfigName();
212 public void invokeAdded(DependencyService service) {
213 this.m_dep.invokeAdded(service);
217 public void invokeRemoved(DependencyService service) {
218 this.m_dep.invokeRemoved(service);
222 public String getName() {
223 return this.m_dep.getName();
227 public String getType() {
228 return this.m_dep.getType();
232 public int getState() {
233 return this.m_dep.getState();
237 public void start(DependencyService service) {
238 DependencyActivation a = (DependencyActivation) this.m_dep;
243 public void stop(DependencyService service) {
244 DependencyActivation a = (DependencyActivation) this.m_dep;