1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/**
* $RCSfile$
* $Revision: 1651 $
* $Date: 2005-07-20 00:20:39 -0300 (Wed, 20 Jul 2005) $
*
* Copyright (C) 2004 Jive Software. All rights reserved.
*
* This software is published under the terms of the GNU Public License (GPL),
* a copy of which is included in this distribution.
*/
package org.jivesoftware.wildfire.vcard;
import org.dom4j.Element;
import org.jivesoftware.util.AlreadyExistsException;
import org.jivesoftware.util.NotFoundException;
/**
* Provider interface for users vcards.
*
* @author Gaston Dombiak
*/
public interface VCardProvider {
/**
* Loads the specified user vcard by username. Returns <tt>null</tt> if no
* vCard was found for the specified username.
*
* @param username the username
* @return the vCard as an DOM element or <tt>null</tt> if none was found.
*/
Element loadVCard(String username);
/**
* Creates and saves the new user vcard. This method should throw an
* UnsupportedOperationException if this operation is not supported by
* the backend vcard store.
*
* @param username the username.
* @param vCardElement the vCard to save.
* @throws AlreadyExistsException if the user already has a vCard.
* @throws UnsupportedOperationException if the provider does not support the
* operation.
*/
void createVCard(String username, Element vCardElement) throws AlreadyExistsException;
/**
* Updates the user vcard in the backend store. This method should throw an
* UnsupportedOperationException if this operation is not supported by
* the backend vcard store.
*
* @param username the username.
* @param vCardElement the vCard to save.
* @throws NotFoundException if the vCard to update does not exist.
* @throws UnsupportedOperationException if the provider does not support the
* operation.
*/
void updateVCard(String username, Element vCardElement) throws NotFoundException;
/**
* Delets a user vcard. This method should throw an UnsupportedOperationException
* if this operation is not supported by the backend vcard store.
*
* @param username the username to delete.
* @throws UnsupportedOperationException if the provider does not support the
* operation.
*/
void deleteVCard(String username);
/**
* Returns true if this VCardProvider is read-only. When read-only,
* vcards can not be created, deleted, or modified.
*
* @return true if the vcard provider is read-only.
*/
boolean isReadOnly();
}