Blame | Last modification | View Log | RSS feed
/*** Copyright 2010-present Facebook.** 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.facebook.model;import org.json.JSONObject;import java.util.Date;import java.util.List;/*** Provides a strongly-typed representation of an Open Graph Action.* For more documentation of OG Actions, see: https://developers.facebook.com/docs/opengraph/actions/** Note that this interface is intended to be used with GraphObject.Factory or OpenGraphAction.Factory* and not implemented directly.*/public interface OpenGraphAction extends GraphObject {/*** Gets the ID of the action.* @return the ID*/String getId();/*** Sets the ID of the action.* @param id the ID*/void setId(String id);/*** Gets the type of the action, which is a string in the form "mynamespace:mytype".* @return the type*/String getType();/*** Sets the type of the action, which is a string in the form "mynamespace:mytype".* @param type the type*/void setType(String type);/*** Gets the start time of the action.* @return the start time*/Date getStartTime();/*** Sets the start time of the action.* @param startTime the start time*/void setStartTime(Date startTime);/*** Gets the end time of the action.* @return the end time*/Date getEndTime();/*** Sets the end time of the action.* @param endTime the end time*/void setEndTime(Date endTime);/*** Gets the time the action was published, if any.* @return the publish time*/Date getPublishTime();/*** Sets the time the action was published.* @param publishTime the publish time*/void setPublishTime(Date publishTime);/*** Gets the time the action was created.* @return the creation time*/public Date getCreatedTime();/*** Sets the time the action was created.* @param createdTime the creation time*/public void setCreatedTime(Date createdTime);/*** Gets the time the action expires at.* @return the expiration time*/public Date getExpiresTime();/*** Sets the time the action expires at.* @param expiresTime the expiration time*/public void setExpiresTime(Date expiresTime);/*** Gets the unique string which will be passed to the OG Action owner's website* when a user clicks through this action on Facebook.* @return the ref string*/String getRef();/*** Sets the unique string which will be passed to the OG Action owner's website* when a user clicks through this action on Facebook.* @param ref the ref string*/void setRef(String ref);/*** Gets the message assoicated with the action.* @return the message*/String getMessage();/*** Sets the message associated with the action.* @param message the message*/void setMessage(String message);/*** Gets the place where the action took place.* @return the place*/GraphPlace getPlace();/*** Sets the place where the action took place.* @param place the place*/void setPlace(GraphPlace place);/*** Gets the list of profiles that were tagged in the action.* @return the profiles that were tagged in the action*/GraphObjectList<GraphObject> getTags();/*** Sets the list of profiles that were tagged in the action.* @param tags the profiles that were tagged in the action*/void setTags(List<? extends GraphObject> tags);/*** Gets the images that were associated with the action.* @return the images*/List<JSONObject> getImage();/*** Sets the images that were associated with the action.* @param image the images*/void setImage(List<JSONObject> image);/*** Sets the images associated with the Open Graph action by specifying their URLs. This is a helper* that will create GraphObjects with the correct URLs and populate the property with those objects.* @param urls the URLs*/@CreateGraphObject("url")@PropertyName("image")void setImageUrls(List<String> urls);/*** Gets the from-user associated with the action.* @return the user*/GraphUser getFrom();/*** Sets the from-user associated with the action.* @param from the from-user*/void setFrom(GraphUser from);/*** Gets the 'likes' that have been performed on this action.* @return the likes*/public JSONObject getLikes();/*** Sets the 'likes' that have been performed on this action.* @param likes the likes*/public void setLikes(JSONObject likes);/*** Gets the application that created this action.* @return the application*/GraphObject getApplication();/*** Sets the application that created this action.* @param application the application*/void setApplication(GraphObject application);/*** Gets the comments that have been made on this action.* @return the comments*/public JSONObject getComments();/*** Sets the comments that have been made on this action.* @param comments the comments*/void setComments(JSONObject comments);/*** Gets the type-specific data for this action; for instance, any properties* referencing Open Graph objects will appear under here.* @return a GraphObject representing the type-specific data*/GraphObject getData();/*** Sets the type-specific data for this action.* @param data a GraphObject representing the type-specific data*/void setData(GraphObject data);/*** Gets whether the action has been explicitly shared by the user. See* <a href="https://developers.facebook.com/docs/opengraph/guides/explicit-sharing/">Explicit Sharing</a> for* more information.* @return true if this action was explicitly shared*/@PropertyName("fb:explicitly_shared")boolean getExplicitlyShared();/*** Sets whether the action has been explicitly shared by the user. See* <a href="https://developers.facebook.com/docs/opengraph/guides/explicit-sharing/">Explicit Sharing</a> for* more information. You should only specify this property if explicit sharing has been enabled for an* Open Graph action type.* @param explicitlyShared true if this action was explicitly shared*/@PropertyName("fb:explicitly_shared")void setExplicitlyShared(boolean explicitlyShared);/*** Exposes helpers for creating instances of OpenGraphAction.*/final class Factory {/*** Creates an OpenGraphAction suitable for posting via, e.g., a native Share dialog.* @return an OpenGraphAction*/@Deprecatedpublic static OpenGraphAction createForPost() {return createForPost(OpenGraphAction.class, null);}/*** Creates an OpenGraphAction suitable for posting via, e.g., a native Share dialog.* @param type the Open Graph action type for the action, or null if it will be specified later* @return an OpenGraphAction*/public static OpenGraphAction createForPost(String type) {return createForPost(OpenGraphAction.class, type);}/*** Creates an OpenGraphAction suitable for posting via, e.g., a native Share dialog.* @param type the Open Graph action type for the action, or null if it will be specified later* @param graphObjectClass the OpenGraphAction-derived type to return* @return an OpenGraphAction*/public static <T extends OpenGraphAction> T createForPost(Class<T> graphObjectClass, String type) {T object = GraphObject.Factory.create(graphObjectClass);if (type != null) {object.setType(type);}return object;}}}