View Javadoc
1   package org.argeo.activities;
2   
3   import java.util.Collections;
4   import java.util.HashMap;
5   import java.util.Map;
6   import java.util.Map.Entry;
7   
8   /**
9    * Workaround class to define maps for activities before we implement a more
10   * clean management of such an issue
11   */
12  public class ActivityValueCatalogs {
13  
14  	/* ACTIVITY TYPES */
15  	public final static String ACT_LBL_TASK = "Task";
16  	public final static String ACT_LBL_NOTE = "Note";
17  	public final static String ACT_LBL_SENT_MAIL = "Sent mail";
18  	public final static String ACT_LBL_CALL = "Call";
19  	public final static String ACT_LBL_SENT_FAX = "Sent fax";
20  	public final static String ACT_LBL_MEETING = "Meeting";
21  	public final static String ACT_LBL_POST_MAIL = "Post mail";
22  	public final static String ACT_LBL_PAYMENT = "Payment";
23  	public final static String ACT_LBL_REVIEW = "Review";
24  	public final static String ACT_LBL_CHAT = "Chat";
25  	public final static String ACT_LBL_TWEET = "Tweet";
26  	public final static String ACT_LBL_BLOG = "Blog post";
27  	public final static String ACT_LBL_RATE = "Rate";
28  
29  	// maps corresponding node types with a label
30  	public static final Map<String, String> MAPS_ACTIVITY_TYPES;
31  	static {
32  		Map<String, String> tmpMap = new HashMap<String, String>();
33  		tmpMap.put(ActivitiesTypes.ACTIVITIES_TASK, ACT_LBL_TASK);
34  		tmpMap.put(ActivitiesTypes.ACTIVITIES_NOTE, ACT_LBL_NOTE);
35  		tmpMap.put(ActivitiesTypes.ACTIVITIES_SENT_EMAIL, ACT_LBL_SENT_MAIL);
36  		tmpMap.put(ActivitiesTypes.ACTIVITIES_CALL, ACT_LBL_CALL);
37  		tmpMap.put(ActivitiesTypes.ACTIVITIES_SENT_FAX, ACT_LBL_SENT_FAX);
38  		tmpMap.put(ActivitiesTypes.ACTIVITIES_MEETING, ACT_LBL_MEETING);
39  		tmpMap.put(ActivitiesTypes.ACTIVITIES_SENT_LETTER, ACT_LBL_POST_MAIL);
40  		tmpMap.put(ActivitiesTypes.ACTIVITIES_PAYMENT, ACT_LBL_PAYMENT);
41  		tmpMap.put(ActivitiesTypes.ACTIVITIES_REVIEW, ACT_LBL_REVIEW);
42  		tmpMap.put(ActivitiesTypes.ACTIVITIES_CHAT, ACT_LBL_CHAT);
43  		tmpMap.put(ActivitiesTypes.ACTIVITIES_TWEET, ACT_LBL_TWEET);
44  		tmpMap.put(ActivitiesTypes.ACTIVITIES_BLOG_POST, ACT_LBL_BLOG);
45  		tmpMap.put(ActivitiesTypes.ACTIVITIES_RATE, ACT_LBL_RATE);
46  		MAPS_ACTIVITY_TYPES = Collections.unmodifiableMap(tmpMap);
47  	}
48  
49  	public static String[] getActivityTypeLabels() {
50  		return new String[] { ACT_LBL_NOTE, ACT_LBL_SENT_MAIL, ACT_LBL_CALL, ACT_LBL_MEETING, ACT_LBL_SENT_FAX,
51  				ACT_LBL_POST_MAIL, ACT_LBL_PAYMENT, ACT_LBL_REVIEW, ACT_LBL_CHAT, ACT_LBL_TWEET, ACT_LBL_BLOG };
52  	}
53  
54  	/**
55  	 * Provides the key for a given value. we assume it is a bijection each
56  	 * value is only linked to one key
57  	 */
58  	public static <T, E> T getKeyByValue(Map<T, E> map, E value) {
59  		for (Entry<T, E> entry : map.entrySet()) {
60  			if (value.equals(entry.getValue())) {
61  				return entry.getKey();
62  			}
63  		}
64  		return null;
65  	}
66  }