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
/*******************************************************************************
* 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 StateObjectFactory
should be used to construct instances.
Since: 3.1 @noimplement This interface is not intended to be implemented by clients.
/**
* 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).
* <p>
* This interface is not intended to be implemented by clients. The
* {@link StateObjectFactory} should be used to construct instances.
* </p>
* @since 3.1
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface VersionConstraint extends Cloneable {
Returns this constraint's name.
Returns: this constraint's name
/**
* Returns this constraint's name.
*
* @return this constraint's name
*/
public String getName();
Returns the version range for this constraint.
Returns: the version range for this constraint, or null
/**
* Returns the version range for this constraint.
* @return the version range for this constraint, or <code>null</code>
*/
public VersionRange getVersionRange();
Returns the bundle that declares this constraint.
Returns: a bundle description
/**
* 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.
Returns: true
if this bundle is resolved, false
otherwise
/**
* Returns whether this constraint is resolved. A resolved constraint
* is guaranteed to have its supplier defined.
*
* @return <code>true</code> if this bundle is resolved, <code>false</code>
* 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
Params: - supplier – a supplier to be tested against this constraint (may be
null
)
Returns: true
if this constraint could be resolved using the supplier,
false
otherwise
/**
* 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
* <code>null</code>)
* @return <code>true</code> if this constraint could be resolved using the supplier,
* <code>false</code> otherwise
*/
public boolean isSatisfiedBy(BaseDescription supplier);
Returns the supplier that satisfies this constraint, if it is resolved.
See Also: Returns: a supplier, or null
/**
* Returns the supplier that satisfies this constraint, if it is resolved.
*
* @return a supplier, or <code>null</code>
* @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.
Returns: the requirement represented by this constraint Since: 3.7
/**
* Returns the requirement represented by this constraint.
* Some constraint types may not be able to represent
* a requirement. In such cases <code>null</code> 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.
Returns: the user object associated to this constraint,
or null
Since: 3.8
/**
* Returns the user object associated to this constraint, or
* <code>null</code> if none exists.
*
* @return the user object associated to this constraint,
* or <code>null</code>
* @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.
Params: - userObject – an arbitrary object provided by the user, or
null
Since: 3.8
/**
* Associates a user-provided object to this constraint, or
* removes an existing association, if <code>null</code> is provided. The
* provided object is not interpreted in any ways by this
* constrain.
*
* @param userObject an arbitrary object provided by the user, or
* <code>null</code>
* @since 3.8
*/
public void setUserObject(Object userObject);
}