Project: ant4eclipse
package org.ant4eclipse.lib.pde.internal.tools;
 
import org.ant4eclipse.lib.core.Assure; 
import org.eclipse.osgi.service.resolver.BundleDescription; 
 
/**
 * <p> 
 * An {@link UnresolvedBundleException} will be thrown if ant4eclipse tries to resolve a bundle that is not in the 
 * RESOLVED state. 
 * </p> 
 *  
 * @author Gerd Wütherich ([email protected]
 */
 
public class UnresolvedBundleException extends Exception { 
 
  /** serialVersionUID */ 
  private static final long serialVersionUID = -808588529247400291L
 
  /** the bundle description of the unresolved bundle */ 
  private BundleDescription _bundleDescription; 
 
  /**
   * <p> 
   * Creates a new instance of type {@link UnresolvedBundleException}. 
   * </p> 
   *  
   * @param bundleDescription 
   *          the bundle description 
   */
 
  public UnresolvedBundleException(BundleDescription bundleDescription) { 
    Assure.notNull("bundleDescription", bundleDescription); 
 
    // the bundle description 
    this._bundleDescription = bundleDescription; 
  } 
 
  /**
   * <p> 
   * Returns the bundle description. 
   * </p> 
   *  
   * @return the bundleDescription 
   */
 
  public BundleDescription getBundleDescription() { 
    return this._bundleDescription; 
  } 
 
  /**
   * {@inheritDoc} 
   */
 
  @Override 
  public String getMessage() { 
    return String.format("Bundle '%s' is not resolved. Reason:\n%s", TargetPlatformImpl 
        .getBundleInfo(this._bundleDescription), TargetPlatformImpl.dumpResolverErrors(this._bundleDescription, false)); 
  } 
}