001// Generated by delombok at Sun Apr 14 14:59:49 CEST 2024
002/*
003 * Copyright (c) 2010-2024 Mark Allen, Norbert Bartels.
004 *
005 * Permission is hereby granted, free of charge, to any person obtaining a copy
006 * of this software and associated documentation files (the "Software"), to deal
007 * in the Software without restriction, including without limitation the rights
008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
009 * copies of the Software, and to permit persons to whom the Software is
010 * furnished to do so, subject to the following conditions:
011 *
012 * The above copyright notice and this permission notice shall be included in
013 * all copies or substantial portions of the Software.
014 *
015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
021 * THE SOFTWARE.
022 */
023package com.restfb.types;
024
025import static java.util.Collections.unmodifiableList;
026import java.util.ArrayList;
027import java.util.Date;
028import java.util.List;
029import com.restfb.Facebook;
030import com.restfb.types.features.HasCreatedTime;
031import com.restfb.types.features.HasFrom;
032import com.restfb.types.features.HasMessage;
033
034/**
035 * Represents the <a href="http://developers.facebook.com/docs/reference/api/checkin">Checkin Graph API type</a>.
036 * 
037 * @author <a href="http://restfb.com">Mark Allen</a>
038 * @since 1.6
039 */
040public class Checkin extends FacebookType implements HasCreatedTime, HasFrom, HasMessage {
041  /**
042   * The message the user added to the check-in.
043   * 
044   */
045  @Facebook
046  private String message;
047  /**
048   * The ID and name of the user who made the check-in.
049   * 
050   */
051  @Facebook
052  private NamedFacebookType from;
053  /**
054   * The ID and name of the application that made the check-in.
055   * 
056   */
057  @Facebook
058  private NamedFacebookType application;
059  /**
060   * The ID, name, and location of the Facebook Page that represents the location of the check-in.
061   * 
062   */
063  @Facebook
064  private Place place;
065  /**
066   * The time the check-in was created.
067   * 
068   */
069  @Facebook("created_time")
070  private Date createdTime;
071  @Facebook
072  private List<Comment> comments = new ArrayList<>();
073  @Facebook
074  private List<NamedFacebookType> tags = new ArrayList<>();
075  private static final long serialVersionUID = 2L;
076
077  /**
078   * The comments for the check-in.
079   * 
080   * @return The comments for the check-in.
081   */
082  public List<Comment> getComments() {
083    return unmodifiableList(comments);
084  }
085
086  public boolean addComment(Comment comment) {
087    return comments.add(comment);
088  }
089
090  public boolean removeComment(Comment comment) {
091    return comments.remove(comment);
092  }
093
094  /**
095   * Tags for the check-in. I.e. Users tagged in the check-in
096   * 
097   * @return Tags for the check-in.
098   */
099  public List<NamedFacebookType> getTags() {
100    return unmodifiableList(tags);
101  }
102
103  public boolean addTag(NamedFacebookType tag) {
104    return tags.add(tag);
105  }
106
107  public boolean removeTag(NamedFacebookType tag) {
108    return tags.remove(tag);
109  }
110
111  /**
112   * The message the user added to the check-in.
113   * 
114   * @return The message the user added to the check-in.
115   */
116  @Override
117  @java.lang.SuppressWarnings("all")
118  public String getMessage() {
119    return this.message;
120  }
121
122  /**
123   * The message the user added to the check-in.
124   * 
125   */
126  @java.lang.SuppressWarnings("all")
127  public void setMessage(final String message) {
128    this.message = message;
129  }
130
131  /**
132   * The ID and name of the user who made the check-in.
133   * 
134   * @return The ID and name of the user who made the check-in.
135   */
136  @Override
137  @java.lang.SuppressWarnings("all")
138  public NamedFacebookType getFrom() {
139    return this.from;
140  }
141
142  /**
143   * The ID and name of the user who made the check-in.
144   * 
145   */
146  @java.lang.SuppressWarnings("all")
147  public void setFrom(final NamedFacebookType from) {
148    this.from = from;
149  }
150
151  /**
152   * The ID and name of the application that made the check-in.
153   * 
154   * @return The ID and name of the application that made the check-in.
155   */
156  @java.lang.SuppressWarnings("all")
157  public NamedFacebookType getApplication() {
158    return this.application;
159  }
160
161  /**
162   * The ID and name of the application that made the check-in.
163   * 
164   */
165  @java.lang.SuppressWarnings("all")
166  public void setApplication(final NamedFacebookType application) {
167    this.application = application;
168  }
169
170  /**
171   * The ID, name, and location of the Facebook Page that represents the location of the check-in.
172   * 
173   * @return The ID, name, and location of the Facebook Page that represents the location of the check-in.
174   */
175  @java.lang.SuppressWarnings("all")
176  public Place getPlace() {
177    return this.place;
178  }
179
180  /**
181   * The ID, name, and location of the Facebook Page that represents the location of the check-in.
182   * 
183   */
184  @java.lang.SuppressWarnings("all")
185  public void setPlace(final Place place) {
186    this.place = place;
187  }
188
189  /**
190   * The time the check-in was created.
191   * 
192   * @return The time the check-in was created.
193   */
194  @Override
195  @java.lang.SuppressWarnings("all")
196  public Date getCreatedTime() {
197    return this.createdTime;
198  }
199
200  /**
201   * The time the check-in was created.
202   * 
203   */
204  @java.lang.SuppressWarnings("all")
205  public void setCreatedTime(final Date createdTime) {
206    this.createdTime = createdTime;
207  }
208}