org.eclipse.osgi.service.resolver.VersionConstraint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjtools Show documentation
Show all versions of aspectjtools Show documentation
Tools from the AspectJ project
/*******************************************************************************
* Copyright (c) 2003, 2012 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.osgi.service.resolver;
import org.osgi.framework.wiring.BundleRequirement;
/**
* VersionConstraints represent the relationship between two bundles (in the
* case of bundle requires) or a bundle and a package (in the case of import/export).
*
* This interface is not intended to be implemented by clients. The
* {@link StateObjectFactory} should be used to construct instances.
*
* @since 3.1
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface VersionConstraint extends Cloneable {
/**
* Returns this constraint's name.
*
* @return this constraint's name
*/
public String getName();
/**
* Returns the version range for this constraint.
* @return the version range for this constraint, or null
*/
public VersionRange getVersionRange();
/**
* Returns the bundle that declares this constraint.
*
* @return a bundle description
*/
public BundleDescription getBundle();
/**
* Returns whether this constraint is resolved. A resolved constraint
* is guaranteed to have its supplier defined.
*
* @return true
if this bundle is resolved, false
* otherwise
*/
public boolean isResolved();
/**
* Returns whether this constraint could be satisfied by the given supplier.
* This will depend on the suppliers different attributes including its name,
* versions and other arbitrary attributes
*
* @param supplier a supplier to be tested against this constraint (may be
* null
)
* @return true
if this constraint could be resolved using the supplier,
* false
otherwise
*/
public boolean isSatisfiedBy(BaseDescription supplier);
/**
* Returns the supplier that satisfies this constraint, if it is resolved.
*
* @return a supplier, or null
* @see #isResolved()
*/
public BaseDescription getSupplier();
/**
* Returns the requirement represented by this constraint.
* Some constraint types may not be able to represent
* a requirement. In such cases null
is
* returned.
* @return the requirement represented by this constraint
* @since 3.7
*/
public BundleRequirement getRequirement();
/**
* Returns the user object associated to this constraint, or
* null
if none exists.
*
* @return the user object associated to this constraint,
* or null
* @since 3.8
*/
public Object getUserObject();
/**
* Associates a user-provided object to this constraint, or
* removes an existing association, if null
is provided. The
* provided object is not interpreted in any ways by this
* constrain.
*
* @param userObject an arbitrary object provided by the user, or
* null
* @since 3.8
*/
public void setUserObject(Object userObject);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy