All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.osgi.service.resolver.VersionConstraint Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * 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