public interface ConnectionRepository
UsersConnectionRepository
.UsersConnectionRepository
Modifier and Type | Method and Description |
---|---|
void |
addConnection(Connection<?> connection)
Add a new connection to this repository for the current user.
|
MultiValueMap<String,Connection<?>> |
findAllConnections()
Find all connections the current user has across all providers.
|
<A> List<Connection<A>> |
findConnections(Class<A> apiType)
Find the connections the current user has to the provider of the given API e.g.
|
List<Connection<?>> |
findConnections(String providerId)
Find the connections the current user has to the provider registered by the given id e.g.
|
MultiValueMap<String,Connection<?>> |
findConnectionsToUsers(MultiValueMap<String,String> providerUserIds)
Find the connections the current user has to the given provider users.
|
<A> Connection<A> |
findPrimaryConnection(Class<A> apiType)
Find the "primary" connection the current user has to the provider of the given API e.g.
|
<A> Connection<A> |
getConnection(Class<A> apiType,
String providerUserId)
Get a connection between the current user and the given provider user.
|
Connection<?> |
getConnection(ConnectionKey connectionKey)
Get a connection for the current user by its key, which consists of the providerId + providerUserId.
|
<A> Connection<A> |
getPrimaryConnection(Class<A> apiType)
Get the "primary" connection the current user has to the provider of the given API e.g.
|
void |
removeConnection(ConnectionKey connectionKey)
Remove a single Connection for the current user from this repository.
|
void |
removeConnections(String providerId)
Remove all Connections between the current user and the provider from this repository.
|
void |
updateConnection(Connection<?> connection)
Update a Connection already added to this repository.
|
MultiValueMap<String,Connection<?>> findAllConnections()
Connection
s that exist between the user and that provider.
For example, if the user is connected once to Facebook and twice to Twitter, the returned map would contain two entries with the following structure:
{ "facebook" -> Connection("Keith Donald") , "twitter" -> Connection("kdonald"), Connection("springsource") }The returned map is sorted by providerId and entry values are ordered by rank. Returns an empty map if the user has no connections.
List<Connection<?>> findConnections(String providerId)
providerId
- the provider id e.g. "facebook"<A> List<Connection<A>> findConnections(Class<A> apiType)
findConnections(String)
, but uses the apiType as the provider key instead of the providerId.
Useful for direct use by application code to obtain parameterized Connection instances e.g. List<Connection<Facebook>>
.A
- the API parameterized typeapiType
- the API type e.g. Facebook.class or Twitter.classMultiValueMap<String,Connection<?>> findConnectionsToUsers(MultiValueMap<String,String> providerUserIds)
providerUserIds
- the provider users mapConnection<?> getConnection(ConnectionKey connectionKey)
connectionKey
- the service provider connection keyNoSuchConnectionException
- if no such connection exists for the current user<A> Connection<A> getConnection(Class<A> apiType, String providerUserId)
getConnection(ConnectionKey)
, but uses the apiType as the provider key instead of the providerId.
Useful for direct use by application code to obtain a parameterized Connection instance.A
- the API parameterized typeapiType
- the API type e.g. Facebook.class or Twitter.classproviderUserId
- the provider user e.g. "126500".NoSuchConnectionException
- if no such connection exists for the current user<A> Connection<A> getPrimaryConnection(Class<A> apiType)
A
- the API parameterized typeapiType
- the API type e.g. Facebook.class or Twitter.classNotConnectedException
- if the user is not connected to the provider of the API<A> Connection<A> findPrimaryConnection(Class<A> apiType)
getPrimaryConnection(Class)
but returns null if no connection is found instead of throwing an exception.A
- the API parameterized typeapiType
- the API type e.g. Facebook.class or Twitter.classnull
if not foundvoid addConnection(Connection<?> connection)
connection
- the new connection to add to this repositoryDuplicateConnectionException
- if the user already has this connectionvoid updateConnection(Connection<?> connection)
connection
- the existing connection to update in this repositoryvoid removeConnections(String providerId)
providerId
- the provider id e.g. 'facebook'void removeConnection(ConnectionKey connectionKey)
connectionKey
- the connection key