/******************************************************************************* * Copyright (c) 2001, 2008 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.soda.sat.eclipse.dependency.observer.internal; import org.eclipse.soda.sat.core.framework.interfaces.BundleDependencyListener; import org.eclipse.soda.sat.core.service.BundleDependencyService; import org.eclipse.soda.sat.core.util.BundleManifestUtility; import org.osgi.framework.Bundle; public class Observer extends Object implements BundleDependencyListener { private BundleDependencyService bundleDependencyService; public void bind(BundleDependencyService bundleDependencyService) { setBundleDependencyService(bundleDependencyService); } private String getBundleName(Bundle bundle) { BundleManifestUtility utility = BundleManifestUtility.getInstance(); String name = utility.getBundleName(bundle); return name; } public void registered(Bundle importer, Bundle exporter) { String importerName = getBundleName(importer); String exporterName = getBundleName(exporter); System.out.println(importerName + " depends upon " + exporterName); } private void setBundleDependencyService(BundleDependencyService bundleDependencyService) { if (this.bundleDependencyService != null) { this.bundleDependencyService.removeBundleDependencyListener(this); } this.bundleDependencyService = bundleDependencyService; if (this.bundleDependencyService != null) { this.bundleDependencyService.addBundleDependencyListener(this); } } public void unbind() { setBundleDependencyService(null); } public void unregistered(Bundle importer, Bundle exporter) { String importerName = getBundleName(importer); String exporterName = getBundleName(exporter); System.out.println(importerName + " no longer depends upon " + exporterName); } }