1 7 package org.mmbase.applications.packaging.packagehandlers; 8 9 import java.io.BufferedInputStream ; 10 import java.util.ArrayList ; 11 import java.util.HashMap ; 12 import java.util.Iterator ; 13 import java.util.List ; 14 import java.util.jar.JarFile ; 15 16 import org.mmbase.applications.packaging.bundlehandlers.BundleInterface; 17 import org.mmbase.applications.packaging.installhandlers.installStep; 18 import org.mmbase.applications.packaging.providerhandlers.ProviderInterface; 19 import org.mmbase.applications.packaging.sharehandlers.ShareInfo; 20 21 32 public class PackageContainer implements PackageInterface { 33 34 private ShareInfo shareinfo; 35 36 private PackageInterface activePackage; 37 38 private HashMap versions = new HashMap (); 39 40 41 46 public PackageContainer(PackageInterface p) { 47 this.activePackage = p; 49 50 PackageVersionContainer pvc = new PackageVersionContainer(p); 52 versions.put(p.getVersion(), pvc); 53 } 54 55 56 63 public boolean contains(String version, ProviderInterface provider) { 64 PackageVersionContainer vc = (PackageVersionContainer) versions.get(version); 65 if (vc != null) { 66 return (vc.contains(provider)); 67 } 68 return (false); 69 } 70 71 72 78 public boolean removePackage(PackageInterface p) { 79 versions.remove(p.getVersion()); 80 return true; 81 } 82 83 84 89 public int getPackageCount() { 90 return versions.size(); 91 } 92 93 94 100 public boolean addPackage(PackageInterface p) { 101 PackageVersionContainer vc = (PackageVersionContainer) versions.get(p.getVersion()); 102 if (vc != null) { 104 vc.addPackage(p); 105 } else { 106 PackageVersionContainer pvc = new PackageVersionContainer(p); 107 versions.put(p.getVersion(), pvc); 108 } 109 110 try { 112 int oldversion = Integer.parseInt(activePackage.getVersion()); 113 int newversion = Integer.parseInt(p.getVersion()); 114 if (newversion > oldversion) { 115 activePackage = p; 117 } else if (newversion == oldversion) { 118 int oldbaseScore = activePackage.getProvider().getBaseScore(); 119 int newbaseScore = p.getProvider().getBaseScore(); 120 if (newbaseScore > oldbaseScore) { 121 activePackage = p; 122 } 123 } 124 } catch (Exception e) {} 125 ; 126 127 return true; 128 } 129 130 131 137 public List getRelatedPeople(String type) { 138 return activePackage.getRelatedPeople(type); 139 } 140 141 142 147 public String getName() { 148 return activePackage.getName(); 149 } 150 151 152 157 public String getDescription() { 158 return activePackage.getDescription(); 159 } 160 161 162 167 public String getReleaseNotes() { 168 return activePackage.getReleaseNotes(); 169 } 170 171 172 177 public String getInstallationNotes() { 178 return activePackage.getInstallationNotes(); 179 } 180 181 182 187 public String getLicenseType() { 188 return activePackage.getLicenseType(); 189 } 190 191 192 197 public String getLicenseName() { 198 return activePackage.getLicenseName(); 199 } 200 201 202 207 public String getLicenseVersion() { 208 return activePackage.getLicenseVersion(); 209 } 210 211 212 217 public String getLicenseBody() { 218 return activePackage.getLicenseBody(); 219 } 220 221 222 227 public String getVersion() { 228 return activePackage.getVersion(); 229 } 230 231 232 237 public String getState() { 238 return activePackage.getState(); 239 } 240 241 242 248 public boolean setState(String state) { 249 return activePackage.setState(state); 250 } 251 252 253 258 public boolean install() { 259 return activePackage.install(); 260 } 261 262 263 268 public boolean uninstall() { 269 return activePackage.uninstall(); 270 } 271 272 273 279 public boolean install(installStep step) { 280 return activePackage.install(step); 281 } 282 283 284 290 public boolean uninstall(installStep step) { 291 return activePackage.uninstall(step); 292 } 293 294 295 300 public String getCreationDate() { 301 return activePackage.getCreationDate(); 302 } 303 304 305 310 public String getMaintainer() { 311 return activePackage.getMaintainer(); 312 } 313 314 315 320 public String getType() { 321 return activePackage.getType(); 322 } 323 324 325 330 public String getId() { 331 return activePackage.getId(); 332 } 333 334 335 340 public String getPath() { 341 return activePackage.getPath(); 342 } 343 344 345 350 public ProviderInterface getProvider() { 351 return activePackage.getProvider(); 352 } 353 354 355 360 public Iterator getVersions() { 361 return ((HashMap )versions.clone()).values().iterator(); 362 } 363 364 365 370 public Iterator getVersionNumbers() { 371 ArrayList list = new ArrayList (); 372 Iterator e = getVersions(); 374 while (e.hasNext()) { 375 PackageVersionContainer pvc = (PackageVersionContainer) e.next(); 376 String ver = pvc.getVersion(); 377 list.add(ver); 378 } 379 return list.iterator(); 380 } 381 382 383 390 public PackageInterface getVersion(String version, ProviderInterface provider) { 391 PackageVersionContainer pvc = (PackageVersionContainer) versions.get(version); 392 if (pvc != null) { 393 PackageInterface p = (PackageInterface) pvc.get(provider); 394 if (p != null) { 395 return p; 396 } else { 397 return null; 398 } 399 } else { 400 return null; 401 } 402 } 403 404 405 411 public PackageInterface getPackageByScore(String version) { 412 PackageVersionContainer pvc = (PackageVersionContainer) versions.get(version); 413 if (pvc != null) { 414 return pvc.getPackageByScore(); 415 } 416 return null; 417 } 418 419 420 425 public Iterator getInstallSteps() { 426 return activePackage.getInstallSteps(); 427 } 428 429 430 436 public Iterator getInstallSteps(int logid) { 437 return activePackage.getInstallSteps(logid); 438 } 439 440 441 444 public void clearInstallSteps() { 445 activePackage.clearInstallSteps(); 446 } 447 448 449 454 public JarFile getJarFile() { 455 return activePackage.getJarFile(); 456 } 457 458 459 464 public BufferedInputStream getJarStream() { 465 return activePackage.getJarStream(); 466 } 467 468 469 474 public BundleInterface getParentBundle() { 475 return activePackage.getParentBundle(); 476 } 477 478 479 484 public void setParentBundle(BundleInterface parentbundle) { 485 activePackage.setParentBundle(parentbundle); 486 } 487 488 489 494 public boolean isShared() { 495 if (shareinfo != null) { 496 return (true); 497 } 498 return false; 499 } 500 501 502 507 public ShareInfo getShareInfo() { 508 return shareinfo; 509 } 510 511 512 517 public void setShareInfo(ShareInfo shareinfo) { 518 this.shareinfo = shareinfo; 519 } 520 521 522 525 public void removeShare() { 526 this.shareinfo = null; 527 } 528 529 530 535 public boolean getDependsFailed() { 536 return activePackage.getDependsFailed(); 537 } 538 539 540 552 public void init(org.w3c.dom.Node n, ProviderInterface provider, String name, String type, String maintainer, String version, String date, String path) { 553 activePackage.init(n, provider, name, type, maintainer, version, date, path); 554 } 555 556 557 562 public void setProgressBar(int stepcount) { 563 activePackage.setProgressBar(stepcount); 564 } 565 566 567 570 public void increaseProgressBar() { 571 activePackage.increaseProgressBar(); 572 } 573 574 575 580 public void increaseProgressBar(int stepcount) { 581 activePackage.increaseProgressBar(stepcount); 582 } 583 584 585 590 public int getProgressBarValue() { 591 return activePackage.getProgressBarValue(); 592 } 593 594 } 595 596 | Popular Tags |