/* +---------------------------------------------------------------------------+ | Facebook Development Platform Java Client | +---------------------------------------------------------------------------+ | Copyright (c) 2007-2008 Facebook, Inc. | | All rights reserved. | | | | Redistribution and use in source and binary forms, with or without | | modification, are permitted provided that the following conditions | | are met: | | | | 1. Redistributions of source code must retain the above copyright | | notice, this list of conditions and the following disclaimer. | | 2. Redistributions in binary form must reproduce the above copyright | | notice, this list of conditions and the following disclaimer in the | | documentation and/or other materials provided with the distribution. | | | | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | +---------------------------------------------------------------------------+ | For help with this library, contact developers-help@facebook.com | +---------------------------------------------------------------------------+ */ package com.facebook.api; import java.util.HashMap; /** * Enumerates application properties that can be set and retrieved via the * <code>admin.setAppProperties</code> and <code>admin.getAppProperties</code> calls, * respectively. * * @see <a href="http://wiki.developers.facebook.com/index.php/ApplicationProperties"> * Developer Wiki: Application Properties</a> */ public enum ApplicationProperty { /** * The name of your application. */ APPLICATION_NAME("application_name", false), /** Your application's callback URL. The callback URL cannot be longer than 100 characters. */ CALLBACK_URL("callback_url", false), /** The URL where a user gets redirected after installing your application. The post-install URL cannot be longer than 100 characters. */ POST_INSTALL_URL("post_install_url", false), /** */ EDIT_URL("edit_url", false), /** */ DASHBOARD_URL("dashboard_url", false), /** The URL where a user gets redirected after removing your application. */ UNINSTALL_URL("uninstall_url", false), /** For Web-based applications, these are the IP addresses of your servers that can access Facebook's servers and serve information to your application. */ IP_LIST("ip_list", false), /** The email address associated with the application; the email address Facebook uses to contact you about your application. (default value is your Facebook email address.) */ EMAIL("email", false), /** The description of your application. */ DESCRIPTION("description", false), /** Indicates whether you render your application with FBML (0) or in an iframe (1). (default value is 1) */ USE_IFRAME("use_iframe", true), /** Indicates whether your application is Web-based (0) or gets installed on a user's desktop (1). (default value is 1) */ DESKTOP("desktop", true), /** Indicates whether your application can run on a mobile device (1) or not (0). (default value is 1) */ IS_MOBILE("is_mobile", true), /** The default FBML code that appears in the user's profile box when he or she adds your application. */ DEFAULT_FBML("default_fbml", false), /** The default FBML code that defines what, if anything, appears in the user's profile actions when he or she adds your application. */ DEFAULT_ACTION_FBML("default_action_fbml", false), /** Indicates whether your application appears in the wide (1) or narrow (0) column of a user's Facebook profile. (default value is 1) */ DEFAULT_COLUMN("default_column", true), /** For applications that can create attachments, this is the URL where you store the attachment's content. */ MESSAGE_URL("message_url", false), /** For applications that can create attachments, this is the label for the action that creates the attachment. It cannot be more than 20 characters. */ MESSAGE_ACTION("message_action", false), /** This is the URL to your application's About page. About pages are now Facebook Pages. */ ABOUT_URL("about_url", false), /** Indicates whether you want to disable (1) or enable (0) News Feed and Mini-Feed stories when a user installs your application. (default value is 1) */ PRIVATE_INSTALL("private_install", true), /** Indicates whether a user can (1) or cannot (0) install your application. (default value is 1) */ INSTALLABLE("installable", true), /** The URL to your application's privacy terms. */ PRIVACY_URL("privacy_url", false), /** The URL to your application's help page. */ HELP_URL("help_url", false), /** The URL to your application's Terms of Service. */ TOS_URL("tos_url", false), /** */ SEE_ALL_URL("see_all_url", false), /** Indicates whether developer mode is enabled (1) or disabled (0). Only developers can install applications in developer mode. (default value is 1) */ DEV_MODE("dev_mode", true), /** A preloaded FQL query. */ PRELOAD_FQL("preload_fql", false), ; private String propertyName; private boolean isBooleanProperty; private ApplicationProperty(String name, boolean isBooleanProperty) { this.propertyName = name; this.isBooleanProperty = isBooleanProperty; } private static HashMap<String, ApplicationProperty> nameToProperty = new HashMap<String, ApplicationProperty>(); static { for (ApplicationProperty prop: ApplicationProperty.values()) { nameToProperty.put(prop.propertyName(), prop); } } public static ApplicationProperty getProperty(String name) { return nameToProperty.get(name); } public String propertyName() { return this.propertyName; } public String toString() { return propertyName(); } public boolean isBooleanProperty() { return this.isBooleanProperty; } public boolean isStringProperty() { return !this.isBooleanProperty; } /** * Returns true if this field has a particular name. */ public boolean isName(String name) { return toString().equals(name); } }