/** * All rights reserved. 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 org.jivesoftware.smackx.pubsub; import java.net.URL; import org.jivesoftware.smackx.Form; /** * This enumeration represents all the fields of a node configuration form. This enumeration * is not required when using the {@link ConfigureForm} to configure nodes, but may be helpful * for generic UI's using only a {@link Form} for configuration. * * @author Robin Collier */ public enum ConfigureNodeFields { /** * Determines who may subscribe and retrieve items * * <p><b>Value: {@link AccessModel}</b></p> */ access_model, /** * The URL of an XSL transformation which can be applied to * payloads in order to generate an appropriate message * body element * * <p><b>Value: {@link URL}</b></p> */ body_xslt, /** * The collection with which a node is affiliated * * <p><b>Value: String</b></p> */ collection, /** * The URL of an XSL transformation which can be applied to * payload format in order to generate a valid Data Forms result * that the client could display using a generic Data Forms * rendering engine body element. * * <p><b>Value: {@link URL}</b></p> */ dataform_xslt, /** * Whether to deliver payloads with event notifications * * <p><b>Value: boolean</b></p> */ deliver_payloads, /** * Whether owners or publisher should receive replies to items * * <p><b>Value: {@link ItemReply}</b></p> */ itemreply, /** * Who may associate leaf nodes with a collection * * <p><b>Value: {@link ChildrenAssociationPolicy}</b></p> */ children_association_policy, /** * The list of JIDs that may associate leaf nodes with a * collection * * <p><b>Value: List of JIDs as Strings</b></p> */ children_association_whitelist, /** * The child nodes (leaf or collection) associated with a collection * * <p><b>Value: List of Strings</b></p> */ children, /** * The maximum number of child nodes that can be associated with a * collection * * <p><b>Value: int</b></p> */ children_max, /** * The maximum number of items to persist * * <p><b>Value: int</b></p> */ max_items, /** * The maximum payload size in bytes * * <p><b>Value: int</b></p> */ max_payload_size, /** * Whether the node is a leaf (default) or collection * * <p><b>Value: {@link NodeType}</b></p> */ node_type, /** * Whether to notify subscribers when the node configuration changes * * <p><b>Value: boolean</b></p> */ notify_config, /** * Whether to notify subscribers when the node is deleted * * <p><b>Value: boolean</b></p> */ notify_delete, /** * Whether to notify subscribers when items are removed from the node * * <p><b>Value: boolean</b></p> */ notify_retract, /** * Whether to persist items to storage. This is required to have multiple * items in the node. * * <p><b>Value: boolean</b></p> */ persist_items, /** * Whether to deliver notifications to available users only * * <p><b>Value: boolean</b></p> */ presence_based_delivery, /** * Defines who can publish to the node * * <p><b>Value: {@link PublishModel}</b></p> */ publish_model, /** * The specific multi-user chat rooms to specify for replyroom * * <p><b>Value: List of JIDs as Strings</b></p> */ replyroom, /** * The specific JID(s) to specify for replyto * * <p><b>Value: List of JIDs as Strings</b></p> */ replyto, /** * The roster group(s) allowed to subscribe and retrieve items * * <p><b>Value: List of strings</b></p> */ roster_groups_allowed, /** * Whether to allow subscriptions * * <p><b>Value: boolean</b></p> */ subscribe, /** * A friendly name for the node * * <p><b>Value: String</b></p> */ title, /** * The type of node data, ussually specified by the namespace * of the payload(if any);MAY be a list-single rather than a * text single * * <p><b>Value: String</b></p> */ type; public String getFieldName() { return "pubsub#" + toString(); } }