blob: ea7ae4bf978c44db481d002f9e9175fd32ab2f0b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 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.osgi.service.resolver;
/**
* ResolverErrors represent a single error that prevents a bundle from resolving
* in a <code>State</code> object.
* * <p>
* This interface is not intended to be implemented by clients.
* </p>
* @since 3.2
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface ResolverError {
/**
* Error type constant (bit mask) indicating that an Import-Package could
* not be resolved.
* @see ResolverError#getType()
*/
public static final int MISSING_IMPORT_PACKAGE = 0x0001;
/**
* Error type constant (bit mask) indicating that a Require-Bundle could
* not be resolved.
* @see ResolverError#getType()
*/
public static final int MISSING_REQUIRE_BUNDLE = 0x0002;
/**
* Error type constant (bit mask) indicating that a Fragment-Host could
* not be resolved.
* @see ResolverError#getType()
*/
public static final int MISSING_FRAGMENT_HOST = 0x0004;
/**
* Error type constant (bit mask) indicating that the bundle could not
* be resolved because another singleton bundle was selected.
* @see ResolverError#getType()
*/
public static final int SINGLETON_SELECTION = 0x0008;
/**
* Error type constant (bit mask) indicating that the bundle fragment
* could not be resolved because a constraint conflict with a host.
* @see ResolverError#getType()
*/
public static final int FRAGMENT_CONFLICT = 0x0010;
/**
* Error type constant (bit mask) indicating that an Import-Package could
* not be resolved because of a uses directive conflict.
* @see ResolverError#getType()
*/
public static final int IMPORT_PACKAGE_USES_CONFLICT = 0x0020;
/**
* Error type constant (bit mask) indicating that a Require-Bundle could
* not be resolved because of a uses directive conflict.
* @see ResolverError#getType()
*/
public static final int REQUIRE_BUNDLE_USES_CONFLICT = 0x0040;
/**
* Error type constant (bit mask) indicating that an Import-Package could
* not be resolved because the importing bundle does not have the correct
* permissions to import the package.
* @see ResolverError#getType()
*/
public static final int IMPORT_PACKAGE_PERMISSION = 0x0080;
/**
* Error type constant (bit mask) indicating that an Import-Package could
* not be resolved because no exporting bundle has the correct
* permissions to export the package.
* @see ResolverError#getType()
*/
public static final int EXPORT_PACKAGE_PERMISSION = 0x0100;
/**
* Error type constant (bit mask) indicating that a Require-Bundle could
* not be resolved because the requiring bundle does not have the correct
* permissions to require the bundle.
* @see ResolverError#getType()
*/
public static final int REQUIRE_BUNDLE_PERMISSION = 0x0200;
/**
* Error type constant (bit mask) indicating that a Require-Bundle could
* not be resolved because no bundle with the required symbolic name has
* the correct permissions to provied the required symbolic name.
* @see ResolverError#getType()
*/
public static final int PROVIDE_BUNDLE_PERMISSION = 0x0400;
/**
* Error type constant (bit mask) indicating that a Fragment-Host could
* not be resolved because no bundle with the required symbolic name has
* the correct permissions to host a fragment.
* @see ResolverError#getType()
*/
public static final int HOST_BUNDLE_PERMISSION = 0x0800;
/**
* Error type constant (bit mask) indicating that a Fragment-Host could
* not be resolved because the fragment bundle does not have the correct
* permissions to be a fragment.
* @see ResolverError#getType()
*/
public static final int FRAGMENT_BUNDLE_PERMISSION = 0x1000;
/**
* Error type constant (bit mask) indicating that a bundle could not be
* resolved because a platform filter did not match the runtime environment.
* @see ResolverError#getType()
*/
public static final int PLATFORM_FILTER = 0x2000;
/**
* Error type constant (bit mask) indicating that a bundle could not be
* resolved because the required execution enviroment did not match the runtime
* environment.
* @see ResolverError#getType()
*/
public static final int MISSING_EXECUTION_ENVIRONMENT = 0x4000;
/**
* Error type constant (bit mask) indicating that a bundle could not be
* resolved because the required generic capability could not be resolved.
*/
public static final int MISSING_GENERIC_CAPABILITY = 0x8000;
/**
* Error type constant (bit mask) indicating that a bundle could not be
* resolved because no match was found for the native code specification.
* @since 3.4
*/
public static final int NO_NATIVECODE_MATCH = 0x10000;
/**
* Error type constant (bit mask) indicating that a bundle could not be
* resolved because the matching native code paths are invalid.
* @since 3.4
*/
public static final int INVALID_NATIVECODE_PATHS = 0x20000;
/**
* Error type constant (bit mask) indicating that a bundle could not be
* resolved because the bundle was disabled
* @since 3.4
*/
public static final int DISABLED_BUNDLE = 0x40000;
/**
* Returns the bundle which this ResolverError is for
* @return the bundle which this ResolverError is for
*/
public BundleDescription getBundle();
/**
* Returns the type of ResolverError this is
* @return the type of ResolverError this is
*/
public int getType();
/**
* Returns non-translatable data associated with this ResolverError.
* For example, the data for a ResolverError of type MISSING_IMPORT_PACKAGE
* could be the Import-Package manifest statement which did not resolve.
* @return non-translatable data associated with this ResolverError
*/
public String getData();
/**
* Returns the unsatisfied constraint if this ResolverError occurred
* because of an unsatisfied constraint; otherwise <code>null</code>
* is returned.
* @return the unsatisfied constraint or <code>null</code>.
*/
public VersionConstraint getUnsatisfiedConstraint();
}