View Javadoc
1   package org.argeo.people;
2   
3   import java.awt.Image;
4   
5   import javax.jcr.Node;
6   
7   /**
8    * Provides method interfaces to manage contact concept in a people repository.
9    * Implementing applications should extend and/or override the canonical
10   * implementation in order to provide business specific behaviours.
11   * 
12   * The correct instance of this interface is usually acquired through the
13   * peopleService.
14   * */
15  public interface ContactService {
16  
17  	/** Retrieves the valid possible contact types */
18  	public String[] getKnownContactTypes();
19  
20  	/** Retrieves the valid possible contact type labels */
21  	public String[] getKnownContactLabels();
22  
23  	/** Returns the list of possible contacts given an entity */
24  	public String[] getContactTypeLabels(Node entity);
25  
26  	/**
27  	 * Returns the list of possible values given the other information we already
28  	 * have for this contact instance
29  	 */
30  	public String[] getContactPossibleCategories(Node contact);
31  
32  	/**
33  	 * Returns the list of valid categories, depending on the contact type and contact
34  	 * nature before the creation of the contact
35  	 */
36  	public String[] getContactCategories(String contactableType,
37  			String contactType, boolean isPro);
38  
39  	/** Return corresponding icon given a contact instance */
40  	public Image getContactIcon(Node contact);
41  
42  }