SentDirectMessagesRequest.java :  » Twitter » java-twitter » net » unto » twitter » methods » Java Open Source

Java Open Source » Twitter » java twitter 
java twitter » net » unto » twitter » methods » SentDirectMessagesRequest.java
package net.unto.twitter.methods;

import java.util.List;

import net.unto.twitter.JsonUtil;
import net.unto.twitter.TwitterUtil;
import net.unto.twitter.TwitterProtos.DirectMessage;

import org.joda.time.DateTime;

/**
 * Returns a list of the 20 most recent direct messages sent by the
 * authenticating user.
 */
public final class SentDirectMessagesRequest extends AbstractRequest {

  public static Builder builder() {
    return new Builder();
  }

  SentDirectMessagesRequest(Builder builder) {
    super(builder);
  }

  public static final class Builder extends AbstractRequest.Builder<Builder> {

    Builder() {
      path("/direct_messages/sent.json");
      authorizationRequired(true);
    }

    public SentDirectMessagesRequest build() {
      return new SentDirectMessagesRequest(this);
    }

    /**
     * Narrows the resulting list of direct messages to just those sent after
     * the specified HTTP-formatted date, up to 24 hours old.
     * 
     * @param since Narrows the resulting list of direct messages to just those
     *        sent after the specified HTTP-formatted date, up to 24 hours old.
     * @return {@link Builder}
     */
    public Builder since(DateTime since) {
      assert (since != null);
      return parameter("since", TwitterUtil.toString(since));
    }

    /**
     * Returns only sent direct messages with an ID greater than (that is, more
     * recent than) the specified ID.
     * 
     * @param sinceId Returns only sent direct messages with an ID greater than
     *        (that is, more recent than) the specified ID.
     * @return {@link Builder}
     */
    public Builder sinceId(long sinceId) {
      return parameter("since_id", Long.toString(sinceId));
    }

    /**
     * Retrieves the 20 next most recent direct messages sent
     * 
     * @param page Retrieves the 20 next most recent direct messages sent
     * @return {@link Builder}
     */
    public Builder page(int page) {
      return parameter("page", Integer.toString(page));
    }

  }

  public List<DirectMessage> get() {
    return JsonUtil.newDirectMessageList(getJson());
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.