]> git.argeo.org Git - lgpl/argeo-commons.git/blob - BundleNode.java
962ad386e649d19fe3fe5d4404ea019c1c03534f
[lgpl/argeo-commons.git] / BundleNode.java
1 package org.argeo.cms.e4.monitoring;
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 }