Skip to content

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 serviceType, ServiceMetadata metadata)
public static T loadDefault(Class serviceType)
public static T getInstance(Class providerClass, ServiceMetadata metadata) 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 serviceType, ServiceMetadata metadata)


loadDefault

public static T loadDefault(Class serviceType)


getInstance

public static T getInstance(Class providerClass, ServiceMetadata metadata)

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:

TreeNode


getChildren

public abstract List<ServiceProviderLayer> getChildren()

Specified By:

TreeNode


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)