public interface Resolver
Clients may implement this interface.
Modifier and Type | Method and Description |
---|---|
void |
bundleAdded(BundleDescription bundle)
Notifies the resolver a bundle has been added to the state.
|
void |
bundleRemoved(BundleDescription bundle,
boolean pending)
Notifies the resolver a bundle has been removed from the state.
|
void |
bundleUpdated(BundleDescription newDescription,
BundleDescription existingDescription,
boolean pending)
Notifies the resolver a bundle has been updated in the state.
|
void |
flush()
Flushes this resolver of any stored/cached data it may be keeping to
facilitate incremental processing on its associated state.
|
Comparator<BaseDescription> |
getSelectionPolicy()
Returns the selection policy for this resolver or null if it is not set
|
State |
getState()
Returns the state associated with this resolver.
|
void |
resolve(BundleDescription[] discard,
Dictionary<Object,Object>[] platformProperties)
Resolves the state associated with this resolver and returns an array of
bundle deltas describing the changes..
|
ExportPackageDescription |
resolveDynamicImport(BundleDescription importingBundle,
String requestedPackage)
Attempts to find an ExportPackageDescription that will satisfy a dynamic import
for the specified requestedPackage for the specified importingBundle.
|
void |
setSelectionPolicy(Comparator<BaseDescription> selectionPolicy)
Sets the selection policy for this resolver.
|
void |
setState(State value)
Sets the state associated with this resolver.
|
void resolve(BundleDescription[] discard, Dictionary<Object,Object>[] platformProperties)
This method is intended to be called only by State objects in response to a user invocation of State.resolve(). States will typically refuse to update their constituents (see State.resolveBundle() and State.resolveConstraint()) if their resolve method is not currently being invoked.
Note the given state is destructively modified to reflect the results of resolution.
discard
- the list of bundles to discard the resolve status and
reresolve. A null value indicates that all currently unresolved
bundles in the state should be resolved.platformProperties
- the platform properties used to match platform filters
against. A null value indicates that the system properties should
be used to match againstvoid flush()
State getState()
void setState(State value)
To ensure that this resolver and the given state are properly linked, the following expression must be included in this method if the given state (value) is not identical to the result of this.getState().
if (this.getState() != value) value.setResolver(this);
void bundleAdded(BundleDescription bundle)
bundle
- void bundleRemoved(BundleDescription bundle, boolean pending)
bundle
- the bundle description to removepending
- indicates if the bundle to be remove has current dependents and
will pend complete removal until the bundle has been re-resolved.void bundleUpdated(BundleDescription newDescription, BundleDescription existingDescription, boolean pending)
newDescription
- the new descriptionexistingDescription
- the existing descriptionpending
- indicates if the bundle to be updated has current dependents and
will pend complete removal until the bundle has been re-resolved.ExportPackageDescription resolveDynamicImport(BundleDescription importingBundle, String requestedPackage)
null
is returned.importingBundle
- the BundleDescription that is requesting a dynamic packagerequestedPackage
- the name of the package that is being requestednull
is returned if none is available.void setSelectionPolicy(Comparator<BaseDescription> selectionPolicy)
Comparator.compare(Object, Object)
method
will be of type BaseDescription
. The selection policy should return a
negative number, zero, or a positive number depending on if the first object is
more desired, equal amount of desire, or less desired than the second object respectively.
If no selection policy is set then a default policy will be used which sorts according to the following rules:
selectionPolicy
- the selection policy for this resolverComparator<BaseDescription> getSelectionPolicy()
Copyright © 2007–2018 The Apache Software Foundation. All rights reserved.