00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 package org.knopflerfish.framework;
00036
00037 import java.util.Collection;
00038 import java.util.List;
00039
00040
00041 import org.osgi.framework.*;
00042 import org.osgi.service.packageadmin.ExportedPackage;
00043
00044
00061 public class ExportedPackageImpl implements ExportedPackage {
00062
00063 final private ExportPkg pkg;
00064
00065 ExportedPackageImpl(ExportPkg pkg) {
00066 this.pkg = pkg;
00067 }
00068
00069
00075 public String getName() {
00076 return pkg.name;
00077 }
00078
00079
00086 public Bundle getExportingBundle() {
00087 if (pkg.pkg != null) {
00088 return pkg.bpkgs.bundle;
00089 } else {
00090 return null;
00091 }
00092 }
00093
00094
00107 public Bundle[] getImportingBundles() {
00108 Collection imps = pkg.getPackageImporters();
00109 if (imps != null) {
00110 int size = imps.size();
00111 List rl = pkg.bpkgs.getRequiredBy();
00112 int rsize = rl.size() ;
00113 Bundle[] res = new Bundle[size + rsize];
00114 imps.toArray(res);
00115 for (int i = 0; i < rsize; i++) {
00116 res[size + i] = ((BundlePackages)rl.get(i)).bundle;
00117 }
00118 return res;
00119 } else {
00120 return null;
00121 }
00122 }
00123
00124
00132 public String getSpecificationVersion() {
00133 return pkg.version.toString();
00134 }
00135
00136
00145 public boolean isRemovalPending() {
00146
00147 if (pkg.isProvider()) {
00148 return pkg.zombie;
00149 } else {
00150 return false;
00151 }
00152 }
00153
00154
00155 public Version getVersion() {
00156 return pkg.version;
00157 }
00158
00159 }