/* * © Copyright IBM Corp. 2013 * * Licensed 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 com.ibm.sbt.services.client.connections.activitystreams; /** * Model class : Creates Business objects from Activity Stream Service * @author Manish Kataria */ import java.util.List; import com.ibm.commons.util.StringUtil; import com.ibm.commons.util.io.json.JsonJavaObject; import com.ibm.sbt.services.client.base.BaseEntity; import com.ibm.sbt.services.client.base.BaseService; import com.ibm.sbt.services.client.base.datahandlers.DataHandler; import com.ibm.sbt.services.client.base.datahandlers.JsonDataHandler; import com.ibm.sbt.services.client.connections.activitystreams.model.ASJsonPath; import com.ibm.sbt.services.client.connections.activitystreams.model.Actor; import com.ibm.sbt.services.client.connections.activitystreams.model.Attachment; import com.ibm.sbt.services.client.connections.activitystreams.model.Community; import com.ibm.sbt.services.client.connections.activitystreams.model.Reply; public class ActivityStreamEntity extends BaseEntity{ // ToDo add target ( right now being used with community ) private Community community; private Attachment attachment; private Actor actor; private List<Reply> replies; public ActivityStreamEntity(){} public ActivityStreamEntity(BaseService svc, DataHandler<?> handler) { super(svc,handler); } @Override public JsonDataHandler getDataHandler(){ return (JsonDataHandler)dataHandler; } public String getAsString(ASJsonPath fieldType){ return dataHandler.getAsString(fieldType); } public String getTitle() { return getAsString(ASJsonPath.Title); } public String getVerb() { return getAsString(ASJsonPath.Verb); } public String getShortTitle() { return getAsString(ASJsonPath.ShortTitle); } public Actor getActor() { if (actor == null) { actor = new Actor(dataHandler); } return actor; } /* public String getObjectType() { return getAsString(ASJsonHelper.ObjectType); } */ public String getPublished() { return getAsString(ASJsonPath.Published); } public String getUrl() { return getAsString(ASJsonPath.Url); } public String getUpdated() { return getAsString(ASJsonPath.Updated); } public String getId() { return getAsString(ASJsonPath.Id); } public Community getCommunity() { if(community==null){ if(StringUtil.equalsIgnoreCase(getAsString(ASJsonPath.TargetObjectType),"community")){ community = new Community(dataHandler); } } return community; } public Attachment getAttachment() { return attachment==null?new Attachment(dataHandler):attachment; } public boolean isContainAttachment() { boolean containAttachment; List attachmentList = dataHandler.getEntries(ASJsonPath.Attachments.getPath()); if(attachmentList == null){ return false; } JsonJavaObject attachmentObject = (JsonJavaObject) attachmentList.get(0); if(attachmentObject == null){ return false; } String attachmentId = attachmentObject.getString(ASJsonPath.AttachmentId.getPath()); if(StringUtil.isEmpty(attachmentId)){ containAttachment = false; }else{ containAttachment = true; } return containAttachment; } public boolean isBroadcast() { return getAsBoolean(ASJsonPath.Broadcast); } public boolean isPublic() { return getAsBoolean(ASJsonPath.IsPublic); } public boolean isSaved() { return getAsBoolean(ASJsonPath.Saved); } public String getAtomUrl() { return getAsString(ASJsonPath.AtomUrl); } public String getContainerId() { return getAsString(ASJsonPath.ContainerId); } public String getContainerName() { return getAsString(ASJsonPath.ContainerName); } public String getPlainTitle() { return getAsString(ASJsonPath.PlainTitle); } public boolean isFollowedResource() { return getAsBoolean(ASJsonPath.FollowedResource); } public String getRollUpId() { return getAsString(ASJsonPath.RollUpId); } public String getRollUpUrl() { return getAsString(ASJsonPath.RollUpUrl); } public String getConnectionsContentUrl() { return getAsString(ASJsonPath.ConnectionsContentUrl); } public String getEventType() { return getAsString(ASJsonPath.EventType); } public String getEventId() { return getAsString(ASJsonPath.EventId); } public String getIconUrl() { return getAsString(ASJsonPath.IconUrl); } public int getNumLikes() { return dataHandler.getAsInt(ASJsonPath.NumLikes); } public int getNumComments() { try { return getAsInt(ASJsonPath.NumComments); } catch (Exception e) { return 0; } } public String getContextId() { return getAsString(ASJsonPath.ContextId); } public String getEventTitle() { return getAsString(ASJsonPath.EventTitle); } public String getTags() { return getAsString(ASJsonPath.Tags); } public String getItemUrl() { return getAsString(ASJsonPath.ItemUrl); } public String getSummary() { return getAsString(ASJsonPath.Summary); } public List<Reply> getReplies() { if(getNumComments()>0){ if(replies == null){ replies = Reply.getReplies(getDataHandler()); } return replies; } return null; } }