]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/osgi/BundleNode.java
8661331b24859ed6da4e2e48137cc6e6d832f88f
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.workbench / src / org / argeo / eclipse / ui / workbench / osgi / BundleNode.java
1 package org.argeo.eclipse.ui.workbench.osgi;
2
3 import org.argeo.eclipse.ui.TreeParent;
4 import org.osgi.framework.Bundle;
5 import org.osgi.framework.ServiceReference;
6
7 /** A tree element representing a {@link Bundle} */
8 class BundleNode extends TreeParent {
9 private final Bundle bundle;
10
11 public BundleNode(Bundle bundle) {
12 this(bundle, false);
13 }
14
15 @SuppressWarnings("rawtypes")
16 public BundleNode(Bundle bundle, boolean hasChildren) {
17 super(bundle.getSymbolicName());
18 this.bundle = bundle;
19
20 if (hasChildren) {
21 // REFERENCES
22 ServiceReference[] usedServices = bundle.getServicesInUse();
23 if (usedServices != null) {
24 for (ServiceReference sr : usedServices) {
25 if (sr != null)
26 addChild(new ServiceReferenceNode(sr, false));
27 }
28 }
29
30 // SERVICES
31 ServiceReference[] registeredServices = bundle
32 .getRegisteredServices();
33 if (registeredServices != null) {
34 for (ServiceReference sr : registeredServices) {
35 if (sr != null)
36 addChild(new ServiceReferenceNode(sr, true));
37 }
38 }
39 }
40
41 }
42
43 Bundle getBundle() {
44 return bundle;
45 }
46 }