001package org.nuxeo.box.api.marshalling.dao; 002 003import com.fasterxml.jackson.annotation.JsonProperty; 004 005import java.util.Map; 006 007public class BoxEvent extends BoxItem { 008 009 // Json fields. 010 public final static String FIELD_EVENT_TYPE = "event_type"; 011 012 public final static String FIELD_SOURCE = "source"; 013 014 public final static String FIELD_EVENT_ID = "event_id"; 015 016 // Event types. 017 public static final String EVENT_TYPE_ITEM_CREATE = "ITEM_CREATE"; 018 019 public static final String EVENT_TYPE_ITEM_UPLOAD = "ITEM_UPLOAD"; 020 021 public static final String EVENT_TYPE_COMMENT_CREATE = "COMMENT_CREATE"; 022 023 public static final String EVENT_TYPE_ITEM_DOWNLOAD = "ITEM_DOWNLOAD"; 024 025 public static final String EVENT_TYPE_ITEM_PREVIEW = "ITEM_PREVIEW"; 026 027 public static final String EVENT_TYPE_ITEM_MOVE = "ITEM_MOVE"; 028 029 public static final String EVENT_TYPE_ITEM_COPY = "ITEM_COPY"; 030 031 public static final String EVENT_TYPE_TASK_ASSIGNMENT_CREATE = "TASK_ASSIGNMENT_CREATE"; 032 033 public static final String EVENT_TYPE_LOCK_CREATE = "LOCK_CREATE"; 034 035 public static final String EVENT_TYPE_LOCK_DESTROY = "LOCK_DESTROY"; 036 037 public static final String EVENT_TYPE_ITEM_TRASH = "ITEM_TRASH"; 038 039 public static final String EVENT_TYPE_ITEM_UNDELETE_VIA_TRASH = "ITEM_UNDELETE_VIA_TRASH"; 040 041 public static final String EVENT_TYPE_COLLAB_ADD_COLLABORATOR = "COLLAB_ADD_COLLABORATOR"; 042 043 public static final String EVENT_TYPE_COLLAB_INVITE_COLLABORATOR = "COLLAB_INVITE_COLLABORATOR"; 044 045 public static final String EVENT_TYPE_ITEM_SYNC = "ITEM_SYNC"; 046 047 public static final String EVENT_TYPE_ITEM_UNSYNC = "ITEM_UNSYNC"; 048 049 public static final String EVENT_TYPE_ITEM_RENAME = "ITEM_RENAME"; 050 051 public static final String EVENT_TYPE_ITEM_SHARED_CREATE = "ITEM_SHARED_CREATE"; 052 053 public static final String EVENT_TYPE_ITEM_SHARED_UNSHARE = "ITEM_SHARED_UNSHARE"; 054 055 public static final String EVENT_TYPE_ITEM_SHARED = "ITEM_SHARED"; 056 057 public static final String EVENT_TYPE_TAG_ITEM_CREATE = "TAG_ITEM_CREATE"; 058 059 public static final String EVENT_TYPE_ADD_LOGIN_ACTIVITY_DEVICE = "ADD_LOGIN_ACTIVITY_DEVICE"; 060 061 /** 062 * Constructor. 063 */ 064 public BoxEvent() { 065 setType(BoxResourceType.EVENT.toString()); 066 } 067 068 /** 069 * Copy constructor, this does deep copy for all the fields. 070 * 071 * @param obj 072 */ 073 public BoxEvent(BoxEvent obj) { 074 super(obj); 075 } 076 077 /** 078 * Instantiate the object from a map. Each entry in the map reflects to a field. 079 * 080 * @param map 081 */ 082 public BoxEvent(Map<String, Object> map) { 083 super(map); 084 } 085 086 /** 087 * Get event id. 088 * 089 * @return event id. 090 */ 091 @Override 092 @JsonProperty(FIELD_EVENT_ID) 093 public String getId() { 094 return (String) getValue(FIELD_EVENT_ID); 095 } 096 097 /** 098 * Setter. This is only used by {@see <a href="http://jackson.codehaus .org">Jackson JSON processer</a>} 099 * 100 * @param eventId Event id. 101 */ 102 @JsonProperty(FIELD_EVENT_ID) 103 private void setId(String eventId) { 104 put(FIELD_EVENT_ID, eventId); 105 } 106 107 /** 108 * Get event type. 109 * 110 * @return event type. 111 */ 112 @JsonProperty(FIELD_EVENT_TYPE) 113 public String getEventType() { 114 return (String) getValue(FIELD_EVENT_TYPE); 115 } 116 117 /** 118 * Setter. This is only used by {@see <a href="http://jackson.codehaus .org">Jackson JSON processer</a>} 119 * 120 * @param eventType Event type. See http://developers.box.com/docs/#events 121 */ 122 @JsonProperty(FIELD_EVENT_TYPE) 123 private void setEventType(String eventType) { 124 put(FIELD_EVENT_TYPE, eventType); 125 } 126 127 /** 128 * Get the source item for this event. 129 * 130 * @return source item of this event. 131 */ 132 @JsonProperty(FIELD_SOURCE) 133 public BoxTypedObject getSource() { 134 return (BoxTypedObject) getValue(FIELD_SOURCE); 135 } 136 137 /** 138 * Set the source item for this event. 139 * 140 * @param sourceItem source item for this event. 141 */ 142 @JsonProperty(FIELD_SOURCE) 143 private void setSource(BoxTypedObject sourceItem) { 144 put(FIELD_SOURCE, sourceItem); 145 } 146 147}