Interface IProvider

All Known Subinterfaces:
IClassificationProvider, ICloneFactoryProvider, ICPCRepositoryProvider, IDebuggableStoreProvider, IDiffProvider, IFuzzyPositionToCloneMatchingProvider, IManagableProvider, IMappingProvider, IMappingRegistry, IMergeProvider, INotificationDelayProvider, INotificationEvaluationProvider, IPoolableProvider, IPositionUpdateStrategyProvider, IReconcilerProvider, IRemotableStoreProvider, ISimilarityProvider, IStoreProvider

public interface IProvider

General provider interface implemented by all service providers, used to allow loose coupling of CPC subsystems.

The different CPC subsystems can provide or require specific providers. The IProviderRegistry of the CPCCorePlugin is used as a central registry to register and obtain providers.

All IProvider implementations need to provide a zero argument constructor.

If the provider interface specification does not explicitly state otherwise, all providers need to be thread safe.

NOTE: All implementations of this interface also have to implement IManagableProvider. However, the API interfaces should only extend IProvider. The methods of IManagableProvider are only meant for internal use by the IProviderRegistry.

See Also:
IManagableProvider, IProviderRegistry, DefaultProviderRegistry

Method Summary
 java.lang.String getProviderName()
          Retrieves the name of this provider.
 java.lang.String toString()
          For debugging purposes all provider authors are encouraged to provide a meaningful toString method.

Method Detail


java.lang.String getProviderName()
Retrieves the name of this provider.

Used in configuration dialogs to identify the provider (if it is already loaded, otherwise the name from the plugin.xml will be used, it is probably a good idea to keep the two names equal at all times). Also used for debug output.

a short string describing this provider, never null.


java.lang.String toString()
For debugging purposes all provider authors are encouraged to provide a meaningful toString method.

toString in class java.lang.Object