org.osgi.service.remoteserviceadmin

## Interface ExportRegistration

All Known Implementing Classes:
  RemoteServiceAdmin.ExportRegistration

    @ProviderType
    public interface ExportRegistration

An Export Registration associates a service to a local endpoint. The Export Registration can be used to delete the endpoint associated with an this registration. It is created with the `RemoteServiceAdmin.exportService(ServiceReference,Map)` method. When this Export Registration has been closed, all methods must return `null`.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `close()` Delete the local endpoint and disconnect any remote distribution providers.
`Throwable` `getException()` Return the exception for any error during the export process.
`ExportReference` `getExportReference()` Return the Export Reference for the exported service.
`EndpointDescription` `update(Map<String,?> properties)` Update the endpoint represented by this `ExportRegistration` and return an updated `EndpointDescription`.

### Method Detail

#### getExportReference

    ExportReference getExportReference()

Return the Export Reference for the exported service.

Returns:
  The Export Reference for this registration, or `null` if this Import Registration is closed.
Throws:
  `IllegalStateException` - When this registration was not properly initialized. See `getException()`.

#### update

    EndpointDescription update(Map<String,?> properties)

Update the endpoint represented by this `ExportRegistration` and return an updated `EndpointDescription`. If this method returns an updated `EndpointDescription`, then the object returned via `getExportReference()` must also have been updated to return this new object. If this method does not return an updated `EndpointDescription` then the object returned via `getExportReference()` should remain unchanged. When creating the updated `EndpointDescription` the `ServiceReference` originally passed to `RemoteServiceAdmin.exportService(ServiceReference, Map)` must be queried to pick up any changes to its service properties. If this argument is null then the original properties passed when creating this ExportRegistration should be used when constructing the updated `EndpointDescription`. Otherwise the new properties should be used, and replace the original properties for subsequent calls to the update method.

Parameters:
  `properties` - properties to be merged with the current service properties for the `ServiceReference` represented by this `ExportRegistration`. If null is passed then the original properties passed to `RemoteServiceAdmin.exportService(ServiceReference, Map)` will be used.
Returns:
  The updated `EndpointDescription` for this registration or null if there was a failure updating the endpoint. If a failure occurs then it can be accessed using `getException()`.
Throws:
  `IllegalStateException` - If this registration is closed, or when this registration was not properly initialized. See `getException()`.
Since:
  1.1

#### close

    void close()

Delete the local endpoint and disconnect any remote distribution providers. After this method returns, all methods must return `null`. This method has no effect when this registration has already been closed or is being closed.

#### getException

    Throwable getException()

Return the exception for any error during the export process. If the Remote Service Admin for some reasons is unable to properly initialize this registration, then it must return an exception from this method. If no error occurred, this method must return `null`. The error must be set before this Export Registration is returned. Asynchronously occurring errors must be reported to the log.

Returns:
  The exception that occurred during the initialization of this registration or `null` if no exception occurred.