/*******************************************************************************
* Copyright (c) 2008, 2012 VMware Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* VMware Inc. - initial contribution
*******************************************************************************/
package org.eclipse.virgo.kernel.userregion.internal.management;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.virgo.kernel.osgi.quasi.QuasiBundle;
import org.eclipse.virgo.kernel.osgi.quasi.QuasiExportPackage;
import org.eclipse.virgo.kernel.osgi.quasi.QuasiImportPackage;
import org.eclipse.virgo.kernel.osgi.quasi.QuasiRequiredBundle;
/**
*
*
*/
public final class JMXQuasiBundle extends JMXQuasiMinimalBundle{
private final QuasiBundle quasiBundle;
protected JMXQuasiBundle(QuasiBundle quasiBundle) {
super(quasiBundle);
this.quasiBundle = quasiBundle;
}
public final JMXQuasiWire[] getProvidedWires() {
List<QuasiExportPackage> exportPackages = this.quasiBundle.getExportPackages();
List<JMXQuasiWire> wires = new ArrayList<JMXQuasiWire>();
for (QuasiExportPackage quasiExportPackage : exportPackages) {
List<QuasiImportPackage> consumers = quasiExportPackage.getConsumers();
for (QuasiImportPackage quasiImportPackage : consumers) {
if(quasiImportPackage != null){
wires.add(new JMXQuasiWire(quasiImportPackage));
}
}
}
List<QuasiBundle> fragments = this.quasiBundle.getFragments();
if(fragments != null && fragments.size() > 0){
for (QuasiBundle fragment : fragments) {
wires.add(new JMXQuasiWire(this.quasiBundle, fragment));
}
}
return wires.toArray(new JMXQuasiWire[wires.size()]);
}
public final JMXQuasiWire[] getRequiredWires() {
List<QuasiImportPackage> importPackages = this.quasiBundle.getImportPackages();
List<JMXQuasiWire> wires = new ArrayList<JMXQuasiWire>();
for (QuasiImportPackage quasiImportPackage : importPackages) {
if(quasiImportPackage != null){
wires.add(new JMXQuasiWire(quasiImportPackage));
}
}
List<QuasiRequiredBundle> requiredBundles = this.quasiBundle.getRequiredBundles();
if(requiredBundles != null && requiredBundles.size() > 0){
for (QuasiRequiredBundle quasiRequiredBundle : requiredBundles) {
wires.add(new JMXQuasiWire(quasiRequiredBundle, this.quasiBundle));
}
}
List<QuasiBundle> hosts = this.quasiBundle.getHosts();
if(hosts != null && hosts.size() > 0){
for (QuasiBundle host : hosts) {
wires.add(new JMXQuasiWire(host, this.quasiBundle));
}
}
return wires.toArray(new JMXQuasiWire[wires.size()]);
}
}