Package net.shibboleth.shared.service

# Interface ServiceableComponent<T>

Type Parameters:
  `T` - The underlying type of the component.

All Superinterfaces:
  `AutoCloseable`

All Known Implementing Classes:
  `AbstractServiceableComponent`, `ApplicationContextServiceableComponent`, `ReloadingAccessControlService`, `ServiceableAccessControlService`, `SpringServiceableComponent`

public interface ServiceableComponent<T> extends AutoCloseable
Any component that wants to be reloaded via the Service interface and Spring implements this interface. The idea is that the attribute resolver will be `public class AttributeResolver extends AbstractServiceableComponent<AttributeResolver> implements AttributeResolver, ServiceableComponent<ServiceableComponent>.` AbstractServiceableComponent will do all the work around reload and synchronization.

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Note that this is explicitly declared to not throw an `IOException`
`T`
`getComponent()`
Extract the component that does the actual work.

## Method Details

### getComponent

@Nonnull T getComponent()
Extract the component that does the actual work. Callers MUST have the ServiceableComponent pinned at this stage.

Returns:
  the component.

### close

void close()
Note that this is explicitly declared to not throw an `IOException`

Specified by:
  `close` in interface `AutoCloseable`