Package io.github.qishr.cascara.common.service
Interface ServiceProviderLayer
java.lang.Object
io.github.qishr.cascara.common.service.ServiceProviderLayer
All Implemented Interfaces:
TreeNode<ServiceProviderLayer>
All Known Implementing Classes:
ServiceProviderRoot
public interface ServiceProviderLayer
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
| public static ServiceProviderRoot | getRoot(Reporter reporter) | Retrieves the root Service Provider Layer. |
| public static ServiceProviderRoot | getRoot() | |
| public static T | loadProvider(Class |
|
| public static T | loadDefault(Class |
|
| public static T | getInstance(Class |
Instantiates a service provider |
| public abstract ServiceProviderLayer | setReporter(Reporter reporter) | |
| public abstract String | getName() | |
| public abstract Path | getModulePath(String name) | |
| public abstract TrackableArray<String> | getModules() | |
| public abstract TrackableArray<ServiceMetadata> | getDeclaredProviders() | |
| public abstract TrackableArray<ServiceMetadata> | getVisibleProviders() | |
| public abstract boolean | isPublic() | |
| public abstract ServiceProviderLayer | getParent() | |
| public abstract List<ServiceProviderLayer> | getChildren() | |
| public abstract ServiceProviderLayer | getChild(String name) | |
| public abstract boolean | hasChild(String name) | |
| public abstract ServiceProviderLayer | create() | |
| public abstract ServiceProviderLayer | create(String name) | |
| public abstract ServiceProviderLayer | createPrivate(String name) | |
| public abstract void | remove(String name) | |
| public abstract java.util.Set<java.lang.Class<ServiceProvider> | findServiceTypes() | |
| public abstract Set<ServiceMetadata> | findServices() | |
| public abstract ServiceMetadata | findProvider(Class<? extends ServiceProvider> serviceType) | |
| public abstract ServiceMetadata | findProvider(Class<? extends ServiceProvider> serviceType, Predicate<ServiceMetadata> capabilityPredicate) | |
| public abstract List<ServiceMetadata> | findAllProviders(Class<? extends ServiceProvider> serviceType) | |
| public abstract List<ServiceMetadata> | findAllProviders(Class<? extends ServiceProvider> serviceType, Predicate<ServiceMetadata> capabilityPredicate) | |
| public abstract ServiceMetadata | getProvider(String providerName) | |
| public abstract Collection<ServiceMetadata> | getProviders() | |
| public abstract Collection<ServiceMetadata> | getProvidersByFqcn() | |
| public abstract List<ServiceMetadata> | getProviders(Class<? extends ServiceProvider> serviceType) | |
| public abstract List<ServiceMetadata> | getProviders(Class<? extends ServiceProvider> serviceType, Predicate<ServiceMetadata> capabilityPredicate) | |
| public abstract boolean | hasProvider(String name) | |
| public abstract void | registerModule(Module module) | |
| public abstract void | registerClass(Class<?> clazz) | |
| public abstract void | registerJar(Path jarPath) |
Method Details
getRoot
public static ServiceProviderRoot getRoot(Reporter reporter)
Retrieves the root Service Provider Layer.On the initial call, the root layer will be configured with a specified Reporter. This reporter is used for non-fatal error and warning reporting.
getRoot
public static ServiceProviderRoot getRoot()
loadProvider
public static T loadProvider(Class
loadDefault
public static T loadDefault(Class
getInstance
public static T getInstance(Class
Instantiates a service provider
Parameters:
providerClass - The class of the provider to instantiate.
setReporter
public abstract ServiceProviderLayer setReporter(Reporter reporter)
getName
public abstract String getName()
getModulePath
public abstract Path getModulePath(String name)
getModules
public abstract TrackableArray<String> getModules()
getDeclaredProviders
public abstract TrackableArray<ServiceMetadata> getDeclaredProviders()
getVisibleProviders
public abstract TrackableArray<ServiceMetadata> getVisibleProviders()
isPublic
public abstract boolean isPublic()
getParent
public abstract ServiceProviderLayer getParent()
Specified By:
getChildren
public abstract List<ServiceProviderLayer> getChildren()
Specified By:
getChild
public abstract ServiceProviderLayer getChild(String name)
hasChild
public abstract boolean hasChild(String name)
create
public abstract ServiceProviderLayer create()
create
public abstract ServiceProviderLayer create(String name)
createPrivate
public abstract ServiceProviderLayer createPrivate(String name)
remove
public abstract void remove(String name)
findServiceTypes
public abstract java.util.Set<java.lang.Class<ServiceProvider> findServiceTypes()
findServices
public abstract Set<ServiceMetadata> findServices()
findProvider
public abstract ServiceMetadata findProvider(Class<? extends ServiceProvider> serviceType)
findProvider
public abstract ServiceMetadata findProvider(Class<? extends ServiceProvider> serviceType, Predicate<ServiceMetadata> capabilityPredicate)
findAllProviders
public abstract List<ServiceMetadata> findAllProviders(Class<? extends ServiceProvider> serviceType)
findAllProviders
public abstract List<ServiceMetadata> findAllProviders(Class<? extends ServiceProvider> serviceType, Predicate<ServiceMetadata> capabilityPredicate)
getProvider
public abstract ServiceMetadata getProvider(String providerName)
getProviders
public abstract Collection<ServiceMetadata> getProviders()
getProvidersByFqcn
public abstract Collection<ServiceMetadata> getProvidersByFqcn()
getProviders
public abstract List<ServiceMetadata> getProviders(Class<? extends ServiceProvider> serviceType)
getProviders
public abstract List<ServiceMetadata> getProviders(Class<? extends ServiceProvider> serviceType, Predicate<ServiceMetadata> capabilityPredicate)
hasProvider
public abstract boolean hasProvider(String name)
registerModule
public abstract void registerModule(Module module)
registerClass
public abstract void registerClass(Class<?> clazz)
registerJar
public abstract void registerJar(Path jarPath)