Package com.ibm.sbt.services.client.connections.blogs

Source Code of com.ibm.sbt.services.client.connections.blogs.BlogService

/*
* © Copyright IBM Corp. 2014
*
* 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.blogs;

import static com.ibm.sbt.services.client.base.ConnectionsConstants.nameSpaceCtx;

import java.util.Map;

import org.w3c.dom.Node;

import com.ibm.commons.util.StringUtil;
import com.ibm.commons.xml.xpath.XPathExpression;
import com.ibm.sbt.services.client.ClientServicesException;
import com.ibm.sbt.services.client.Response;
import com.ibm.sbt.services.client.base.AtomFeedHandler;
import com.ibm.sbt.services.client.base.AtomXPath;
import com.ibm.sbt.services.client.base.BaseService;
import com.ibm.sbt.services.client.base.CommonConstants.HTTPCode;
import com.ibm.sbt.services.client.base.ConnectionsService;
import com.ibm.sbt.services.client.base.IFeedHandler;
import com.ibm.sbt.services.client.base.datahandlers.EntityList;
import com.ibm.sbt.services.client.connections.blogs.model.BlogXPath;
import com.ibm.sbt.services.client.connections.blogs.serializers.BlogCommentSerializer;
import com.ibm.sbt.services.client.connections.blogs.serializers.BlogPostSerializer;
import com.ibm.sbt.services.client.connections.blogs.serializers.BlogSerializer;
import com.ibm.sbt.services.client.connections.common.Tag;
import com.ibm.sbt.services.endpoints.Endpoint;

/**
* BlogService
*
* @author Swati Singh
* @author Carlos Manias
*/
public class BlogService extends ConnectionsService {
 
  private static final long serialVersionUID = 2838345461937687654L;
 
  private String defaultHomepageHandle = "homepage";
  private static String BLOG_HOMEPAGE_KEY = "blogHomepageHandle";
 
  /**
   * Constructor Creates BlogService Object with default endpoint
   */
  public BlogService() {
    this(DEFAULT_ENDPOINT_NAME);
  }

  /**
   * Constructor
   *
   * @param endpoint
   *            Creates BlogService Object with the specified endpoint
   */
  public BlogService(String endpoint) {
    super(endpoint);
    setHomepageFromEndpoint(getEndpoint());
  }
 
  /**
   * Constructor
   *
   * @param endpoint
   *            Creates BlogService Object with the specified endpoint
   */
  public BlogService(Endpoint endpoint) {
    super(endpoint);
    setHomepageFromEndpoint(getEndpoint());
  }

  @Override
  protected void initServiceMappingKeys(){
    serviceMappingKeys = new String[]{"blogs"};
  }

  //------------------------------------------------------------------------------------------------------------------
  // TODO: Getting Blog feeds
  //------------------------------------------------------------------------------------------------------------------

  /**
   * Get a feed that includes all of the blogs hosted by the Blogs application. You can narrow down
   * the blogs that are returned by passing parameters to the request that you use to retrieve the feed.
   * If you do not specify any input parameters, the server returns all of the blogs that are displayed
   * in the Public Blogs>Blogs Listing view from the product user interface.
   *
   * @return EntityList<Blog>
   * @throws ClientServicesException
   */
  public EntityList<Blog> getAllBlogs() throws ClientServicesException{
    return getAllBlogs(null);
  }
 
  /**
   * Get a feed that includes all of the blogs hosted by the Blogs application. You can narrow down
   * the blogs that are returned by passing parameters to the request that you use to retrieve the feed.
   * If you do not specify any input parameters, the server returns all of the blogs that are displayed
   * in the Public Blogs>Blogs Listing view from the product user interface.
   *
   * @param parameters
   * @return EntityList<Blog>
   * @throws ClientServicesException
   */
  public EntityList<Blog> getAllBlogs(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.ALL_BLOGS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getBlogEntityList(url, parameters);
  }
 
  /**
   * Get a feed that includes my blogs hosted by the Blogs application. You can narrow down
   * the blogs that are returned by passing parameters to the request that you use to retrieve the feed.
   * If you do not specify any input parameters, the server returns all of the blogs that are displayed
   * in the Public Blogs>Blogs Listing view from the product user interface.
   *
   * @return EntityList<Blog>
   * @throws ClientServicesException
   */
  public EntityList<Blog> getMyBlogs() throws ClientServicesException{
    return getMyBlogs(null);
  }
 
  /**
   *  Get a feed that includes my blogs hosted by the Blogs application. You can narrow down
   * the blogs that are returned by passing parameters to the request that you use to retrieve the feed.
   * If you do not specify any input parameters, the server returns all of the blogs that are displayed
   * in the Public Blogs>Blogs Listing view from the product user interface.
   *
   * @param parameters
   * @return EntityList<Blog>
   * @throws ClientServicesException
   */
  public EntityList<Blog> getMyBlogs(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.MY_BLOGS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getBlogEntityList(url, parameters);
  }

  /**
   * Get the featured blogs feed to find the blogs that have had the most activity across all of the blogs
   * hosted by the Blogs application in the past two weeks.
   *
   * @return EntityList<Blog>
   * @throws ClientServicesException
   */
  public EntityList<Blog> getFeaturedBlogs() throws ClientServicesException {
    return getFeaturedBlogs(null);
  }
 
  /**
   * Get the featured blogs feed to find the blogs that have had the most activity across all of the blogs
   * hosted by the Blogs application in the past two weeks.
   *
   * @param parameters
   * @return EntityList<Blog>
   * @throws ClientServicesException
   */
  public EntityList<Blog> getFeaturedBlogs(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.FEATURED_BLOGS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getBlogEntityList(url, parameters);
  }
 
  /**
   * Get a feed that lists all of the posts in a specific blog from most recent to oldest.
   *
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getAllPosts() throws ClientServicesException {
    return getAllPosts(null);
  }
 
  /**
   * Get a feed that lists all of the posts in a specific blog from most recent to oldest.
   *
   * @param parameters
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getAllPosts(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.ALL_BLOG_POSTS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getBlogPostEntityList(url, parameters);
  }
 
  /**
   * Get the featured posts feed to find the blog posts that have had the most activity
   * across all of the blogs hosted by the Blogs application within the past two weeks.
   *
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getFeaturedPosts() throws ClientServicesException {
    return getFeaturedPosts(null);
  }
 
  /**
   * Get the featured posts feed to find the blog posts that have had the most activity
   * across all of the blogs hosted by the Blogs application within the past two weeks.
   *
   * @param parameters
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getFeaturedPosts(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.ALL_FEATURED_BLOG_POSTS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getBlogPostEntityList(url, parameters);
  }
 
  /**
   * Get a feed that includes all of the recommended blog posts in all of the blogs hosted by the Blogs application.
   *
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getRecommendedPosts() throws ClientServicesException {
    return getRecommendedPosts(null);
  }
 
  /**
   * Get a feed that includes all of the recommended blog posts in all of the blogs hosted by the Blogs application.
   *
   * @param parameters
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getRecommendedPosts(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.ALL_RECOMMENDED_BLOG_POSTS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getBlogPostEntityList(url, parameters);
  }
 
  /**
   * Get a feed that includes all of the comments added to the postings in all of the blogs hosted by the
   * Blogs application from most recent to oldest.
   *
   * @return EntityList<Comment>
   * @throws ClientServicesException
   */
  public EntityList<Comment> getAllComments() throws ClientServicesException{
    return getAllComments(null);
  }
 
  /**
   * Get a feed that includes all of the comments added to the postings in all of the blogs hosted by the
   * Blogs application from most recent to oldest.
   *
   * @param parameters
   * @return EntityList<Comment>
   * @throws ClientServicesException
   */
  public EntityList<Comment> getAllComments(Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.ALL_BLOG_COMMENTS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getCommentEntityList(url, parameters);
  }
 
  /**
   * Get a category document that lists the tags that have been assigned to all of
   * the blogs hosted by the Blogs application.
   *
   * @return EntityList<Tag>
   * @throws ClientServicesException
   */
  public EntityList<Tag> getAllTags() throws ClientServicesException {
    String url = BlogUrls.ALL_BLOG_TAGS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getTagEntityList(url, null);
  }
 
  /**
   * Get a category document that lists the tags that have been assigned to all of
   * the blogs hosted by the Blogs application.
   *
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getBlogPosts(String blogHandle) throws ClientServicesException {
    return getBlogPosts(blogHandle, null);
  }
 
  /**
   * Get a feed that lists all of the posts in a specific blog from most recent to oldest.
   *
   * @param blogHandle
   * @param parameters
   * @return EntityList<BlogPost>
   * @throws ClientServicesException
   */
  public EntityList<BlogPost> getBlogPosts(String blogHandle, Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.BLOG_POSTS.format(this, BlogUrlParts.blogHandle.get(blogHandle));
    return getBlogPostEntityList(url, parameters);
  }
 
  /**
   * Get a feed that lists the comments added to the posts in a single blog.
   *
   * @param blogHandle
   * @return EntityList<Comment>
   * @throws ClientServicesException
   */
  public EntityList<Comment> getBlogComments(String blogHandle) throws ClientServicesException {
    return getBlogComments(blogHandle, null);
  }
 
  /**
   * Get a feed that lists the comments added to the posts in a single blog.
   *
   * @param blogHandle
   * @param parameters
   * @return EntityList<Comment>
   * @throws ClientServicesException
   */
  public EntityList<Comment> getBlogComments(String blogHandle, Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.BLOG_COMMENTS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getCommentEntityList(url, parameters);
  }
 
  /**
   * Get a feed that lists the comments added to the posts in a single blog.
   *
   * @param blogHandle
   * @param entryAnchor
   * @param parameters
   * @return EntityList<Comment>
   * @throws ClientServicesException
   */
  public EntityList<Comment> getEntryComments(String blogHandle, String entryAnchor, Map<String, String> parameters) throws ClientServicesException {
    String url = BlogUrls.BLOG_ENTRYCOMMENTS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getCommentEntityList(url, parameters);
  }
 
  /**
   * Get a category document that lists the tags that have been assigned to all of the posts
   * in an individual blog.
   *
   * @param blogHandle
   * @return EntityList<Tag>
   * @throws ClientServicesException
   */
  public EntityList<Tag> getBlogTags(String blogHandle) throws ClientServicesException {
    String url = BlogUrls.BLOG_TAGS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    return getTagEntityList(url, null);
  }
 
  /**
   * Create a blog by sending an Atom entry document containing the new blog to the user's blog feed.
   *
   * @param Blog
   * @return Blog
   * @throws ClientServicesException
   */
  public Blog createBlog(Blog blog) throws ClientServicesException {
    return createBlog(blog, null);
  }
 
  /**
   * Create a blog by sending an Atom entry document containing the new blog to the user's blog feed.
   *
   * @param activity
   * @param parameters
   * @return
   * @throws ClientServicesException
   */
  public Blog createBlog(Blog blog, Map<String, String> parameters) throws ClientServicesException {
    String requestUrl = BlogUrls.MY_BLOGS.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle));
    if (null == blog) {
      throw new ClientServicesException(null,"null blog");
    }
    BlogSerializer serializer = new BlogSerializer(blog);
    String payload = serializer.createPayload();
    Response response = createData(requestUrl, parameters, getAtomHeaders(), payload);
    checkResponseCode(response, HTTPCode.CREATED);
    blog = getBlogFeedHandler().createEntity(response);
    return blog;
  }
 
  /**
   * Gets a single blog identified by the blog Uuid
   *
   * @param Blog
   * @throws ClientServicesException
   */
  public Blog getBlog(String blogUuid) throws ClientServicesException {
    String url = BlogUrls.GET_UPDATE_REMOVE_BLOG.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle), BlogUrlParts.entryAnchor.get(blogUuid));
    return getBlogEntity(url, null);
  }
 
  /**
   * Wrapper method to update a Blog
   *
   * @param Blog
   * @throws ClientServicesException
   */
  public void updateBlog(Blog blog) throws ClientServicesException {
    if (null == blog){
      throw new ClientServicesException(null,"null blog");
    }
    if(blog.getFieldsMap().get(AtomXPath.title)== null)
      blog.setTitle(blog.getTitle());
    if(blog.getFieldsMap().get(AtomXPath.summary)== null)
      blog.setSummary(blog.getSummary());
    if(!blog.getFieldsMap().toString().contains(BlogXPath.tags.toString()))
      blog.setTags(blog.getTags());

    BlogSerializer serializer = new BlogSerializer(blog);
    String payload = serializer.updatePayload();
   
    String updateBlogUrl = BlogUrls.GET_UPDATE_REMOVE_BLOG.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle), BlogUrlParts.entryAnchor.get(blog.getUid()));
    Response response = updateData(updateBlogUrl, null, payload, null);
    checkResponseCode(response, HTTPCode.OK);
  }
 
  /**
   * Wrapper method to delete a post
   * User should be logged in as a owner of the Blog to call this method.
   *
   * @param String
   *         blogUuid which is to be deleted
   * @throws ClientServicesException
   */
  public void deleteBlog(String blogUuid) throws ClientServicesException {
    String deleteBlogUrl = BlogUrls.GET_UPDATE_REMOVE_BLOG.format(this, BlogUrlParts.blogHandle.get(defaultHomepageHandle), BlogUrlParts.entryAnchor.get(blogUuid));
    Response response = getClientService().delete(deleteBlogUrl);
    checkResponseCode(response, HTTPCode.NO_CONTENT);
  }
 
  /**
   * Wrapper method to get a particular Blog Post
   *
   * @param blogHandle
   * @param entryid
   * @return BlogPost
   * @throws ClientServicesException
   */
  public BlogPost getBlogPost(String blogHandle, String entryid) throws ClientServicesException {
    String url = BlogUrls.BLOG_POST.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.getEntryId(entryid));
    return getBlogPostEntity(url, null);
  }
 
  /**
   * Wrapper method to recommend/like a Blog Post
   * User should be authenticated to call this method
   *
   * @param blogHandle
   * @param postUuid
   * @return BlogPost
   * @throws ClientServicesException
   */
  public void recommendPost(String blogHandle, String postUuid) throws ClientServicesException {
    String recommendPostUrl = BlogUrls.RECOMMEND_POST.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(postUuid));
    createData(recommendPostUrl, null, null);
  }
 
  /**
   * Wrapper method to unrecommend/unlike a Blog Post
   * User should be authenticated to call this method
   *
   * @param blogHandle
   * @param postUuid
   * @return BlogPost
   * @throws ClientServicesException
   */
  public void unrecommendPost(String blogHandle, String postUuid) throws ClientServicesException {
    String recommendPostUrl = BlogUrls.RECOMMEND_POST.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(postUuid));
    deleteData(recommendPostUrl, null, null);
  }
 
  /**
   * Wrapper method to get a particular Blog Comment
   *
   * @param blogHandle
   * @param commentUuid
   * @return Comment
   * @throws ClientServicesException
   */
  public Comment getBlogComment(String blogHandle, String commentUuid) throws ClientServicesException {
    String url = BlogUrls.GET_REMOVE_COMMENT.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(commentUuid));
    return getCommentEntity(url, null);
  }
 
  /**
   * Wrapper method to create a Blog Post
   * User should be authenticated to call this method
   *
   * @param BlogPost
   * @param blogHandle
   * @return BlogPost
   * @throws ClientServicesException
   */
  public BlogPost createBlogPost(BlogPost post, String blogHandle) throws ClientServicesException {
    if (null == post){
      throw new ClientServicesException(null,"null post");
    }
    BlogPostSerializer serializer = new BlogPostSerializer(post);
    String payload = serializer.createPayload();

    String createPostUrl = BlogUrls.CREATE_BLOG_POST.format(this, BlogUrlParts.blogHandle.get(blogHandle));
    Response response = createData(createPostUrl, null, getAtomHeaders(), payload);
    checkResponseCode(response, HTTPCode.CREATED);
    post = getBlogPostFeedHandler().createEntity(response);
        return post;
  }
 
  /**
   * Wrapper method to update a Blog Post
   *
   * @param BlogPost
   * @param blogHandle
   * @throws ClientServicesException
   */
  public BlogPost updateBlogPost(BlogPost post, String blogHandle) throws ClientServicesException {
    if (null == post){
      throw new ClientServicesException(null,"null post");
    }
    if(post.getFieldsMap().get(AtomXPath.title)== null)
      post.setTitle(post.getTitle());
    if(post.getFieldsMap().get(AtomXPath.content)== null)
      post.setContent(post.getContent());
    if(!post.getFieldsMap().toString().contains(BlogXPath.tags.toString()))
      post.setTags(post.getTags());
     
    BlogPostSerializer serializer = new BlogPostSerializer(post);
    String payload = serializer.updatePayload();
     
    String updatePostUrl = BlogUrls.UPDATE_REMOVE_POST.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(post.getUid()));
    Response response = updateData(updatePostUrl, null, payload, null);
    checkResponseCode(response, HTTPCode.OK);
    post = getBlogPostFeedHandler().createEntity(response);
    return post;
  }
 
  /**
   * Wrapper method to delete a post
   * User should be logged in as a owner of the Blog to call this method.
   *
   * @param String
   *         postUuid which is to be deleted
   * @param blogHandle
   * @throws ClientServicesException
   */
  public void deleteBlogPost(String postUuid, String blogHandle) throws ClientServicesException {
    String deletePostUrl = BlogUrls.UPDATE_REMOVE_POST.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(postUuid));
    Response response = getClientService().delete(deletePostUrl);
    checkResponseCode(response, HTTPCode.NO_CONTENT);
  }
 
  /**
   * Wrapper method to create a Blog Comment
   * User should be authenticated to call this method
   *
   *
   * @param Comment
   * @return Comment
   * @throws ClientServicesException
   */
  public Comment createBlogComment(Comment comment, String blogHandle, String postUuid) throws ClientServicesException {
    if (null == comment){
      throw new ClientServicesException(null,"null comment");
    }
    Response result = null;
    comment.setPostUuid(postUuid);
    BlogCommentSerializer serializer = new BlogCommentSerializer(comment);
    String payload = serializer.createPayload();

    String createCommentUrl = BlogUrls.CREATE_COMMENT.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(""));
   
    result = createData(createCommentUrl, null, getAtomHeaders(), payload);
    checkResponseCode(result, HTTPCode.CREATED);
    comment = getCommentFeedHandler().createEntity(result);

        return comment;
  }
 
  /**
   * Wrapper method to remove a particular Blog Comment
   *
   * @param blogHandle
   * @param commentUuid
   * @return Comment
   * @throws ClientServicesException
   */
  public void deleteBlogComment(String blogHandle, String commentUuid) throws ClientServicesException {
    String getCommentUrl = BlogUrls.GET_REMOVE_COMMENT.format(this, BlogUrlParts.blogHandle.get(blogHandle), BlogUrlParts.entryAnchor.get(commentUuid));
    Response response = getClientService().delete(getCommentUrl);
    checkResponseCode(response, HTTPCode.NO_CONTENT);
  }

  /***************************************************************
   * Utility methods
   ****************************************************************/
 
  /**
   *
   * @return The blog homepage currently being used in requests to the blog service.
   */
  public String getHomepageHandle() {
    return defaultHomepageHandle;
  }
 
    /**
     * Change the blog homepage, to be used in all subsequent requests for this service instance.
     * This follows /blogs in the connections url, and is 'homepage' by default.
     *
     * e.g. CONNECTIONS_URL/blogs/homepage
     *
     * @param defaultHandle
     */
  public void setHomepageHandle(String defaultHandle) {
    defaultHomepageHandle = defaultHandle;
  }
 
  /***************************************************************
   * FeedHandlers for each entity type
   ****************************************************************/
  public IFeedHandler<Blog> getBlogFeedHandler() {
        return new AtomFeedHandler<Blog>(this, false) {
            @Override
            protected Blog entityInstance(BaseService service, Node node, XPathExpression xpath) {
                return new Blog(service, node, nameSpaceCtx, xpath);
            }
        };
    }
 
  public IFeedHandler<BlogPost> getBlogPostFeedHandler() {
        return new AtomFeedHandler<BlogPost>(this, false) {
            @Override
            protected BlogPost entityInstance(BaseService service, Node node, XPathExpression xpath) {
                return new BlogPost(service, node, nameSpaceCtx, xpath);
            }
        };
    }
 
  public IFeedHandler<Comment> getCommentFeedHandler() {
        return new AtomFeedHandler<Comment>(this, false) {
            @Override
            protected Comment entityInstance(BaseService service, Node node, XPathExpression xpath) {
                return new Comment(service, node, nameSpaceCtx, xpath);
            }
        };
    }
 
  /**
   * Factory method to instantiate a FeedHandler for Tags
   * @return IFeedHandler<Tag>
   */
  public IFeedHandler<Tag> getTagFeedHandler() {
    return new AtomFeedHandler<Tag>(this, false) {
      @Override
      protected Tag entityInstance(BaseService service, Node node, XPathExpression xpath) {
        return new Tag(service, node, nameSpaceCtx, xpath);
      }
    };
  }

  /***************************************************************
   * Factory methods
   ****************************************************************/
  protected Blog getBlogEntity(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntity(requestUrl, parameters, getBlogFeedHandler());
  }
 
  protected Comment getCommentEntity(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntity(requestUrl, parameters, getCommentFeedHandler());
  }
 
  protected BlogPost getBlogPostEntity(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntity(requestUrl, parameters, getBlogPostFeedHandler());
  }
 
  protected EntityList<Blog> getBlogEntityList(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntities(requestUrl, parameters, getBlogFeedHandler());
  }
 
  protected EntityList<BlogPost> getBlogPostEntityList(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntities(requestUrl, parameters, getBlogPostFeedHandler());
  }
 
  protected EntityList<Comment> getCommentEntityList(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntities(requestUrl, parameters, getCommentFeedHandler());
  }
 
  protected EntityList<Tag> getTagEntityList(String requestUrl, Map<String, String> parameters) throws ClientServicesException {
    return getEntities(requestUrl, parameters, getTagFeedHandler());
  }
 
  private void setHomepageFromEndpoint(Endpoint endpoint){
    Map<String, String> serviceMap = endpoint.getServiceMappings();
    if(serviceMap != null){
      String homepage = serviceMap.get(BLOG_HOMEPAGE_KEY);
      if(StringUtil.isNotEmpty(homepage)){
        defaultHomepageHandle = homepage;       
      }
    }
  }
}
TOP

Related Classes of com.ibm.sbt.services.client.connections.blogs.BlogService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.