001/* 002 * Copyright (c) 2010-2024 Mark Allen, Norbert Bartels. 003 * 004 * Permission is hereby granted, free of charge, to any person obtaining a copy 005 * of this software and associated documentation files (the "Software"), to deal 006 * in the Software without restriction, including without limitation the rights 007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 008 * copies of the Software, and to permit persons to whom the Software is 009 * furnished to do so, subject to the following conditions: 010 * 011 * The above copyright notice and this permission notice shall be included in 012 * all copies or substantial portions of the Software. 013 * 014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 020 * THE SOFTWARE. 021 */ 022package com.restfb.types; 023 024import static java.util.Collections.unmodifiableList; 025 026import java.util.ArrayList; 027import java.util.List; 028 029import com.restfb.Facebook; 030 031/** 032 * Represents the <a href="http://developers.facebook.com/docs/api#impersonation">Account Graph API type</a>. 033 * 034 * @author <a href="http://restfb.com">Mark Allen</a> 035 */ 036public class Account extends Page { 037 038 private static final long serialVersionUID = 1L; 039 040 @Facebook("tasks") 041 private List<String> tasks = new ArrayList<>(); 042 043 /** 044 * A list of tasks allowed to perform for this page. 045 * <a href="https://developers.facebook.com/docs/pages/access-tokens#page-tasks">See tasks list here</a> 046 * 047 * @return A list of allowed tasks 048 */ 049 public List<String> getTasks() { 050 return unmodifiableList(tasks); 051 } 052 053 /** 054 * Add a task to the task list. 055 * 056 * @param task 057 * the task is added to the task list 058 * @return {@code true} if the task is added {@code false} instead 059 */ 060 public boolean addTask(String task) { 061 return tasks.add(task); 062 } 063 064 /** 065 * Remove the task from the task list. 066 * 067 * @param task 068 * the task is removed from the task list 069 * @return {@code true} if the task is removed {@code false} instead 070 */ 071 public boolean removeTask(String task) { 072 return tasks.remove(task); 073 } 074 075}