package org.eclipse.buckminster.core.resolver; import org.eclipse.buckminster.core.IBuckminsterExtension; import org.eclipse.buckminster.core.prefedit.IPreferenceDescriptor; import org.eclipse.core.runtime.CoreException; /** * Interface for factories that can create {@link IResolver} instances. * * @author Thomas Hallgren */ public interface IResolverFactory extends IBuckminsterExtension { /** * Create an IResolver implementation and associate it with the context * * @param context * The context to associate with the new resolver * @return The resolver */ IResolver createResolver(ResolutionContext context) throws CoreException; /** * Returns descriptors for the preferences managed by this resolver factory. * * @return descriptors used when setting up a preference page. */ IPreferenceDescriptor[] getPreferenceDescriptors(); /** * Returns the priority for the resolver. The priority determines the order * in which the resolver will be placed into the active resolver list. A * negative value indicates that the resolver is optional and must be added * manually. The resolver with the value zero will be placed first in the * list. * * @return The resolver priority */ int getResolutionPriority(); /** * Initialize default preferences (if any) */ void initDefaultPreferences(); }