public interface OperationSetServerStoredAccountInfo extends OperationSet
Examples of account details are your picture, postal or e-mail addresses, work, hobbies, interests, and many many others.
Various types of details have been defined in the ServerStoredDetails class and can be used with the get methods of this interface. Implementors may also define their own details by extending or instantiating the ServerStoredDetails.GenericDetail class. Yet, they are encouraged to use existing detail types as fully as possible. Defining your own detail type may lead to limited visualization of its value.
As mentioned earlier the operation set supports adding, removing or replaing various details. The exact set of details that can be manipulated through this operation set depends on the implementation and can be retrieved through the getSupportedDetailTypes() method. The maximum number of detail instances supported for a given type of details can be retrieved through the getMaxDetailInstances() method.
The OperationSetServerStoredAccountInfo only concerns us (the user currently logged through this provider) and our own details. In order to query details concerning Contacts in our contact list we'd need to use the OperationSetServerStoredContactInfo
Modifier and Type | Method and Description |
---|---|
void |
addDetail(ServerStoredDetails.GenericDetail detail)
Adds the specified detail to the list of details ready to be saved online
for this account.
|
void |
addServerStoredDetailsChangeListener(ServerStoredDetailsChangeListener listener)
Registers a ServerStoredDetailsChangeListener with this operation set so
that it gets notifications of details change.
|
java.util.Iterator<ServerStoredDetails.GenericDetail> |
getAllAvailableDetails()
Returns all details currently available and set for our account.
|
java.util.Iterator<ServerStoredDetails.GenericDetail> |
getDetails(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
Returns an iterator over all details that are instances of exactly the
same class as the one specified.
|
<T extends ServerStoredDetails.GenericDetail> |
getDetailsAndDescendants(java.lang.Class<T> detailClass)
Returns an iterator over all details that are instances or descendants of
the specified class.
|
int |
getMaxDetailInstances(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
The method returns the number of instances supported for a particular
detail type.
|
java.util.Iterator<java.lang.Class<? extends ServerStoredDetails.GenericDetail>> |
getSupportedDetailTypes()
Returns all detail Class-es that the underlying implementation supports
setting.
|
boolean |
isDetailClassEditable(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
Determines whether the underlying implementation supports edition
of this detail class.
|
boolean |
isDetailClassSupported(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
Determines whether a detail class represents a detail supported by the
underlying implementation or not.
|
boolean |
removeDetail(ServerStoredDetails.GenericDetail detail)
Removes the specified detail from the list of details ready to be saved
online this account.
|
void |
removeServerStoredDetailsChangeListener(ServerStoredDetailsChangeListener listener)
Unregisters listener so that it won't receive any further
notifications upon details change.
|
boolean |
replaceDetail(ServerStoredDetails.GenericDetail currentDetailValue,
ServerStoredDetails.GenericDetail newDetailValue)
Replaces the currentDetailValue detail with newDetailValue and returns
true if the operation was a success or false if currentDetailValue did
not previously exist (in this case an additional call to addDetail is
required).
|
void |
save()
Saves the list of details for this account that were ready to be stored
online on the server.
|
<T extends ServerStoredDetails.GenericDetail> java.util.Iterator<T> getDetailsAndDescendants(java.lang.Class<T> detailClass)
detailClass
- one of the detail classes defined in the
ServerStoredDetails class, indicating the kind of details we're
interested in.
java.util.Iterator<ServerStoredDetails.GenericDetail> getDetails(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
detailClass
- one of the detail classes defined in the
ServerStoredDetails class, indicating the kind of details we're
interested in.
java.util.Iterator<ServerStoredDetails.GenericDetail> getAllAvailableDetails()
java.util.Iterator<java.lang.Class<? extends ServerStoredDetails.GenericDetail>> getSupportedDetailTypes()
boolean isDetailClassSupported(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
detailClass
- the class the support for which we'd like to
determine.
boolean isDetailClassEditable(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
detailClass
- the class whose edition we'd like to determine if it's
possibleint getMaxDetailInstances(java.lang.Class<? extends ServerStoredDetails.GenericDetail> detailClass)
detailClass
- the class whose max instance number we'd like to find
out.
void addDetail(ServerStoredDetails.GenericDetail detail) throws java.lang.IllegalArgumentException, OperationFailedException, java.lang.ArrayIndexOutOfBoundsException
detail
- the detail that we'd like registered on the server.
java.lang.IllegalArgumentException
- if such a detail already exists and its
max instances number has been attained or if the underlying
implementation does not support setting details of the corresponding
class.java.lang.ArrayIndexOutOfBoundsException
- if the number of
instances currently registered by the application is already equal to the
maximum number of supported instances (@see getMaxDetailInstances())OperationFailedException
boolean removeDetail(ServerStoredDetails.GenericDetail detail) throws OperationFailedException
detail
- the detail to removeOperationFailedException
boolean replaceDetail(ServerStoredDetails.GenericDetail currentDetailValue, ServerStoredDetails.GenericDetail newDetailValue) throws java.lang.ClassCastException, OperationFailedException
currentDetailValue
- the detail value we'd like to replace.newDetailValue
- the value of the detail that we'd like to replace
currentDetailValue with.java.lang.ClassCastException
- if newDetailValue is not an instance of the
same class as currentDetailValue.OperationFailedException
- with code Network Failure if putting the
new value back online has failedvoid save() throws OperationFailedException
OperationFailedException
- with code Network Failure if putting the
new values back online has failed.void addServerStoredDetailsChangeListener(ServerStoredDetailsChangeListener listener)
listener
- the ServerStoredDetailsChangeListener
to register.void removeServerStoredDetailsChangeListener(ServerStoredDetailsChangeListener listener)
listener
- the ServerStoredDetailsChangeListener
to unregister.
Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under Apache license.