| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.usergrid.java.client.entities; |
| |
| |
| import static org.apache.usergrid.java.client.utils.JsonUtils.getStringProperty; |
| |
| import java.util.Arrays; |
| import java.util.Date; |
| import java.util.Map; |
| import java.util.Set; |
| import java.util.TreeMap; |
| import java.util.UUID; |
| |
| import javax.xml.bind.annotation.XmlRootElement; |
| |
| import com.fasterxml.jackson.annotation.JsonAnyGetter; |
| import com.fasterxml.jackson.annotation.JsonAnySetter; |
| import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
| import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion; |
| |
| /** |
| * An entity type for representing activity stream actions. These are similar to |
| * the more generic message entity type except provide the necessary properties |
| * for supporting activity stream implementations. |
| * |
| * @see http://activitystrea.ms/specs/json/1.0/ |
| */ |
| public class Activity extends Entity { |
| |
| public static final String ENTITY_TYPE = "activity"; |
| |
| public static final String PROP_ACTOR = "actor"; |
| |
| public static final String VERB_ADD = "add"; |
| public static final String VERB_CANCEL = "cancel"; |
| public static final String VERB_CHECKIN = "checkin"; |
| public static final String VERB_DELETE = "delete"; |
| public static final String VERB_FAVORITE = "favorite"; |
| public static final String VERB_FOLLOW = "follow"; |
| public static final String VERB_GIVE = "give"; |
| public static final String VERB_IGNORE = "ignore"; |
| public static final String VERB_INVITE = "invite"; |
| public static final String VERB_JOIN = "join"; |
| public static final String VERB_LEAVE = "leave"; |
| public static final String VERB_LIKE = "like"; |
| public static final String VERB_MAKE_FRIEND = "make-friend"; |
| public static final String VERB_PLAY = "play"; |
| public static final String VERB_POST = "post"; |
| public static final String VERB_RECEIVE = "receive"; |
| public static final String VERB_REMOVE = "remove"; |
| public static final String VERB_REMOVE_FRIEND = "remove-friend"; |
| public static final String VERB_REQUEST_FRIEND = "request-friend"; |
| public static final String VERB_RSVP_MAYBE = "rsvp-maybe"; |
| public static final String VERB_RSVP_NO = "rsvp-no"; |
| public static final String VERB_RSVP_YES = "rsvp-yes"; |
| public static final String VERB_SAVE = "save"; |
| public static final String VERB_SHARE = "share"; |
| public static final String VERB_STOP_FOLLOWING = "stop-following"; |
| public static final String VERB_TAG = "tag"; |
| public static final String VERB_UNFAVORITE = "unfavorite"; |
| public static final String VERB_UNLIKE = "unlike"; |
| public static final String VERB_UNSAVE = "unsave"; |
| public static final String VERB_UPDATE = "update"; |
| |
| public static final String OBJECT_TYPE_ARTICLE = "article"; |
| public static final String OBJECT_TYPE_AUDIO = "audio"; |
| public static final String OBJECT_TYPE_BADGE = "badge"; |
| public static final String OBJECT_TYPE_BOOKMARK = "bookmark"; |
| public static final String OBJECT_TYPE_COLLECTION = "collection"; |
| public static final String OBJECT_TYPE_COMMENT = "comment"; |
| public static final String OBJECT_TYPE_EVENT = "event"; |
| public static final String OBJECT_TYPE_FILE = "file"; |
| public static final String OBJECT_TYPE_GROUP = "group"; |
| public static final String OBJECT_TYPE_IMAGE = "image"; |
| public static final String OBJECT_TYPE_NOTE = "note"; |
| public static final String OBJECT_TYPE_PERSON = "person"; |
| public static final String OBJECT_TYPE_PLACE = "place"; |
| public static final String OBJECT_TYPE_PRODUCT = "product"; |
| public static final String OBJECT_TYPE_QUESTION = "question"; |
| public static final String OBJECT_TYPE_REVIEW = "review"; |
| public static final String OBJECT_TYPE_SERVICE = "service"; |
| public static final String OBJECT_TYPE_VIDEO = "video"; |
| |
| protected ActivityObject actor; |
| |
| protected String content; |
| |
| protected ActivityObject generator; |
| |
| protected MediaLink icon; |
| |
| protected String category; |
| |
| protected String verb; |
| |
| protected Long published; |
| |
| protected ActivityObject object; |
| |
| // protected |
| // String objectType; |
| |
| // protected |
| // String objectEntityType; |
| |
| // protected |
| // String objectName; |
| |
| protected String title; |
| |
| protected Set<String> connections; |
| |
| public Activity() { |
| setType("activity"); |
| } |
| |
| public Activity(UUID id) { |
| this(); |
| setUuid(id); |
| } |
| |
| public static Activity newActivity(String verb, String title, |
| String content, String category, Entity user, Entity object, |
| String objectType, String objectName, String objectContent){ |
| |
| Activity activity = new Activity(); |
| activity.setVerb(verb); |
| activity.setCategory(category); |
| activity.setContent(content); |
| activity.setTitle(title); |
| |
| ActivityObject actor = new ActivityObject(); |
| actor.setObjectType("person"); |
| |
| if (user != null) { |
| actor.setDisplayName(getStringProperty(user.properties, "name")); |
| actor.setEntityType(user.getType()); |
| actor.setUuid(user.getUuid()); |
| } |
| |
| activity.setActor(actor); |
| |
| ActivityObject obj = new ActivityObject(); |
| obj.setDisplayName(objectName); |
| obj.setObjectType(objectType); |
| if (object != null) { |
| obj.setEntityType(object.getType()); |
| obj.setUuid(object.getUuid()); |
| } |
| if (objectContent != null) { |
| obj.setContent(objectContent); |
| } else { |
| obj.setContent(content); |
| } |
| activity.setObject(obj); |
| |
| return activity; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public ActivityObject getActor() { |
| return actor; |
| } |
| |
| public void setActor(ActivityObject actor) { |
| this.actor = actor; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public ActivityObject getGenerator() { |
| return generator; |
| } |
| |
| public void setGenerator(ActivityObject generator) { |
| this.generator = generator; |
| } |
| |
| /* |
| * @JsonSerialize(include = Inclusion.NON_NULL) public String getActorName() |
| * { return actorName; } |
| * |
| * public void setActorName(String actorName) { this.actorName = actorName; |
| * } |
| */ |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getCategory() { |
| return category; |
| } |
| |
| public void setCategory(String category) { |
| this.category = category; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getVerb() { |
| return verb; |
| } |
| |
| public void setVerb(String verb) { |
| this.verb = verb; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public Long getPublished() { |
| return published; |
| } |
| |
| public void setPublished(Long published) { |
| this.published = published; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public ActivityObject getObject() { |
| return object; |
| } |
| |
| public void setObject(ActivityObject object) { |
| this.object = object; |
| } |
| |
| /* |
| * @JsonSerialize(include = Inclusion.NON_NULL) public String |
| * getObjectType() { return objectType; } |
| * |
| * public void setObjectType(String objectType) { this.objectType = |
| * objectType; } |
| * |
| * @JsonSerialize(include = Inclusion.NON_NULL) public String |
| * getObjectEntityType() { return objectEntityType; } |
| * |
| * public void setObjectEntityType(String objectEntityType) { |
| * this.objectEntityType = objectEntityType; } |
| * |
| * @JsonSerialize(include = Inclusion.NON_NULL) public String |
| * getObjectName() { return objectName; } |
| * |
| * public void setObjectName(String objectName) { this.objectName = |
| * objectName; } |
| */ |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getTitle() { |
| return title; |
| } |
| |
| public void setTitle(String title) { |
| this.title = title; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public MediaLink getIcon() { |
| return icon; |
| } |
| |
| public void setIcon(MediaLink icon) { |
| this.icon = icon; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getContent() { |
| return content; |
| } |
| |
| public void setContent(String content) { |
| this.content = content; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public Set<String> getConnections() { |
| return connections; |
| } |
| |
| public void setConnections(Set<String> connections) { |
| this.connections = connections; |
| } |
| |
| @XmlRootElement |
| static public class MediaLink { |
| |
| int duration; |
| |
| int height; |
| |
| String url; |
| |
| int width; |
| |
| protected Map<String, Object> dynamic_properties = new TreeMap<String, Object>( |
| String.CASE_INSENSITIVE_ORDER); |
| |
| public MediaLink() { |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public int getDuration() { |
| return duration; |
| } |
| |
| public void setDuration(int duration) { |
| this.duration = duration; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public int getHeight() { |
| return height; |
| } |
| |
| public void setHeight(int height) { |
| this.height = height; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getUrl() { |
| return url; |
| } |
| |
| public void setUrl(String url) { |
| this.url = url; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public int getWidth() { |
| return width; |
| } |
| |
| public void setWidth(int width) { |
| this.width = width; |
| } |
| |
| @JsonAnySetter |
| public void setDynamicProperty(String key, Object value) { |
| dynamic_properties.put(key, value); |
| } |
| |
| @JsonAnyGetter |
| public Map<String, Object> getDynamicProperties() { |
| return dynamic_properties; |
| } |
| |
| @Override |
| public String toString() { |
| return "MediaLink [duration=" + duration + ", height=" + height |
| + ", url=" + url + ", width=" + width |
| + ", dynamic_properties=" + dynamic_properties + "]"; |
| } |
| |
| } |
| |
| @XmlRootElement |
| static public class ActivityObject { |
| |
| ActivityObject[] attachments; |
| |
| ActivityObject author; |
| |
| String content; |
| |
| String displayName; |
| |
| String[] downstreamDuplicates; |
| |
| String id; |
| |
| MediaLink image; |
| |
| String objectType; |
| |
| Date published; |
| |
| String summary; |
| |
| String updated; |
| |
| String upstreamDuplicates; |
| |
| String url; |
| |
| UUID uuid; |
| |
| String entityType; |
| |
| protected Map<String, Object> dynamic_properties = new TreeMap<String, Object>( |
| String.CASE_INSENSITIVE_ORDER); |
| |
| public ActivityObject() { |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public ActivityObject[] getAttachments() { |
| return attachments; |
| } |
| |
| public void setAttachments(ActivityObject[] attachments) { |
| this.attachments = attachments; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public ActivityObject getAuthor() { |
| return author; |
| } |
| |
| public void setAuthor(ActivityObject author) { |
| this.author = author; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getContent() { |
| return content; |
| } |
| |
| public void setContent(String content) { |
| this.content = content; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getDisplayName() { |
| return displayName; |
| } |
| |
| public void setDisplayName(String displayName) { |
| this.displayName = displayName; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String[] getDownstreamDuplicates() { |
| return downstreamDuplicates; |
| } |
| |
| public void setDownstreamDuplicates(String[] downstreamDuplicates) { |
| this.downstreamDuplicates = downstreamDuplicates; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getId() { |
| return id; |
| } |
| |
| public void setId(String id) { |
| this.id = id; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public MediaLink getImage() { |
| return image; |
| } |
| |
| public void setImage(MediaLink image) { |
| this.image = image; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getObjectType() { |
| return objectType; |
| } |
| |
| public void setObjectType(String objectType) { |
| this.objectType = objectType; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public Date getPublished() { |
| return published; |
| } |
| |
| public void setPublished(Date published) { |
| this.published = published; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getSummary() { |
| return summary; |
| } |
| |
| public void setSummary(String summary) { |
| this.summary = summary; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getUpdated() { |
| return updated; |
| } |
| |
| public void setUpdated(String updated) { |
| this.updated = updated; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getUpstreamDuplicates() { |
| return upstreamDuplicates; |
| } |
| |
| public void setUpstreamDuplicates(String upstreamDuplicates) { |
| this.upstreamDuplicates = upstreamDuplicates; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getUrl() { |
| return url; |
| } |
| |
| public void setUrl(String url) { |
| this.url = url; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public UUID getUuid() { |
| return uuid; |
| } |
| |
| public void setUuid(UUID uuid) { |
| this.uuid = uuid; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getEntityType() { |
| return entityType; |
| } |
| |
| public void setEntityType(String entityType) { |
| this.entityType = entityType; |
| } |
| |
| @JsonAnySetter |
| public void setDynamicProperty(String key, Object value) { |
| dynamic_properties.put(key, value); |
| } |
| |
| @JsonAnyGetter |
| public Map<String, Object> getDynamicProperties() { |
| return dynamic_properties; |
| } |
| |
| @Override |
| public String toString() { |
| return "ActivityObject [attachments=" |
| + Arrays.toString(attachments) + ", author=" + author |
| + ", content=" + content + ", displayName=" + displayName |
| + ", downstreamDuplicates=" |
| + Arrays.toString(downstreamDuplicates) + ", id=" + id |
| + ", image=" + image + ", objectType=" + objectType |
| + ", published=" + published + ", summary=" + summary |
| + ", updated=" + updated + ", upstreamDuplicates=" |
| + upstreamDuplicates + ", url=" + url + ", uuid=" + uuid |
| + ", entityType=" + entityType + ", dynamic_properties=" |
| + dynamic_properties + "]"; |
| } |
| |
| } |
| |
| @XmlRootElement |
| static public class ActivityCollection { |
| |
| int totalItems; |
| |
| ActivityObject[] items; |
| |
| String url; |
| |
| protected Map<String, Object> dynamic_properties = new TreeMap<String, Object>( |
| String.CASE_INSENSITIVE_ORDER); |
| |
| public ActivityCollection() { |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public int getTotalItems() { |
| return totalItems; |
| } |
| |
| public void setTotalItems(int totalItems) { |
| this.totalItems = totalItems; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public ActivityObject[] getItems() { |
| return items; |
| } |
| |
| public void setItems(ActivityObject[] items) { |
| this.items = items; |
| } |
| |
| @JsonSerialize(include = Inclusion.NON_NULL) |
| public String getUrl() { |
| return url; |
| } |
| |
| public void setUrl(String url) { |
| this.url = url; |
| } |
| |
| @JsonAnySetter |
| public void setDynamicProperty(String key, Object value) { |
| dynamic_properties.put(key, value); |
| } |
| |
| @JsonAnyGetter |
| public Map<String, Object> getDynamicProperties() { |
| return dynamic_properties; |
| } |
| |
| @Override |
| public String toString() { |
| return "ActivityCollection [totalItems=" + totalItems + ", items=" |
| + Arrays.toString(items) + ", url=" + url |
| + ", dynamic_properties=" + dynamic_properties + "]"; |
| } |
| |
| } |
| |
| } |