/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.vysper.xmpp.modules.extension.xep0060_pubsub.feature;
import org.apache.vysper.compliance.SpecCompliant;
/**
* Static collection of known pubsub features.
*
* @author The Apache MINA Project (http://mina.apache.org)
*/
@SpecCompliant(spec = "xep-0060", section = "10", status = SpecCompliant.ComplianceStatus.FINISHED, coverage = SpecCompliant.ComplianceCoverage.COMPLETE)
public class PubsubFeatures {
public static final PubsubFeature ACCESS_AUTHORIZE = new PubsubFeature("access-authorize",
"The default access model is \"authorize\".", PubsubFeatureLevel.OPTIONAL, "Nodes Access Models");
public static final PubsubFeature ACCESS_OPEN = new PubsubFeature("access-open",
"The default access model is \"open\".", PubsubFeatureLevel.OPTIONAL, "Nodes Access Models");
public static final PubsubFeature ACCESS_PRESENCE = new PubsubFeature("access-presence",
"The default access model is \"presence\".", PubsubFeatureLevel.OPTIONAL, "Nodes Access Models");
public static final PubsubFeature ACCESS_ROSTER = new PubsubFeature("access-roster",
"The default access model is \"roster\".", PubsubFeatureLevel.OPTIONAL, "Nodes Access Models");
public static final PubsubFeature ACCESS_WHITELIST = new PubsubFeature("access-whitelist",
"The default access model is \"whitelist\".", PubsubFeatureLevel.OPTIONAL, "Nodes Access Models");
public static final PubsubFeature AUTO_CREATE = new PubsubFeature("auto-create",
"The service supports auto-creation of nodes on publish to a non-existent node.",
PubsubFeatureLevel.OPTIONAL, "Automatic Node Creation");
public static final PubsubFeature AUTO_SUBSCRIBE = new PubsubFeature("auto-subscribe",
"The service supports auto-subscription to a nodes based on presence subscription.",
PubsubFeatureLevel.RECOMMENDED, "Auto_Subscribe");
public static final PubsubFeature COLLECTIONS = new PubsubFeature("collections", "Collection nodes are supported.",
PubsubFeatureLevel.OPTIONAL, "Refer to XEP-0248");
public static final PubsubFeature CONFIG_NODE = new PubsubFeature("config-node",
"Configuration of node options is supported.", PubsubFeatureLevel.RECOMMENDED, "Configure a Node");
public static final PubsubFeature CREATE_AND_CONFIGURE = new PubsubFeature("create-and-configure",
"Simultaneous creation and configuration of nodes is supported.", PubsubFeatureLevel.RECOMMENDED,
"Create and Configure a Node");
public static final PubsubFeature CREATE_NODES = new PubsubFeature("create-nodes",
"Creation of nodes is supported.", PubsubFeatureLevel.RECOMMENDED, "Create a Node");
public static final PubsubFeature DELETE_ITEMS = new PubsubFeature("delete-items",
"Deletion of items is supported.", PubsubFeatureLevel.RECOMMENDED, "Delete an Item from a Node");
public static final PubsubFeature DELETE_NODES = new PubsubFeature("delete-nodes",
"Deletion of nodes is supported.", PubsubFeatureLevel.RECOMMENDED, "Delete a Node");
public static final PubsubFeature FILTERED_NOTIFICATIONS = new PubsubFeature("filtered-notifications",
"Notifications are filtered based on Entity Capabilities data.", PubsubFeatureLevel.RECOMMENDED,
"Filtered Notifications");
public static final PubsubFeature GET_PENDING = new PubsubFeature("get-pending",
"Retrieval of pending subscription approvals is supported.", PubsubFeatureLevel.OPTIONAL,
"Manage Subscription Requests");
public static final PubsubFeature INSTANT_NODES = new PubsubFeature("instant-nodes",
"Creation of instant nodes is supported.", PubsubFeatureLevel.RECOMMENDED, "Create a Node");
public static final PubsubFeature ITEM_IDS = new PubsubFeature("item-ids",
"Publishers may specify item identifiers.", PubsubFeatureLevel.RECOMMENDED, "");
public static final PubsubFeature LAST_PUBLISHED = new PubsubFeature(
"last-published",
"By default the last published item is sent to new subscribers and on receipt of available presence from existing subscribers.",
PubsubFeatureLevel.RECOMMENDED, "Event Types");
public static final PubsubFeature LEASED_SUBSCRIPTION = new PubsubFeature("leased-subscription",
"Time-based subscriptions are supported.", PubsubFeatureLevel.OPTIONAL, "Time-Based Subscriptions (Leases)");
public static final PubsubFeature MANAGE_SUBSCRIPTIONS = new PubsubFeature("manage-subscriptions",
"Node owners may manage subscriptions.", PubsubFeatureLevel.OPTIONAL, "Manage Subscriptions");
public static final PubsubFeature MEMBER_AFFILIATION = new PubsubFeature("member-affiliation",
"The member affiliation is supported.", PubsubFeatureLevel.RECOMMENDED, "Affiliations");
public static final PubsubFeature META_DATA = new PubsubFeature("meta-data", "Node meta-data is supported.",
PubsubFeatureLevel.RECOMMENDED, "");
public static final PubsubFeature MODIFY_AFFILIATIONS = new PubsubFeature("modify-affiliations",
"Node owners may modify affiliations.", PubsubFeatureLevel.OPTIONAL, "Manage Affiliations");
public static final PubsubFeature MULTI_COLLECTION = new PubsubFeature("multi-collection",
"A single leaf node can be associated with multiple collections.", PubsubFeatureLevel.OPTIONAL,
"Refer to XEP-0248");
public static final PubsubFeature MULTI_SUBSCRIBE = new PubsubFeature("multi-subscribe",
"A single entity may subscribe to a node multiple times.", PubsubFeatureLevel.OPTIONAL,
"Multiple Subscriptions");
public static final PubsubFeature OUTCAST_AFFILIATION = new PubsubFeature("outcast-affiliation",
"The outcast affiliation is supported.", PubsubFeatureLevel.RECOMMENDED, "Affiliations");
public static final PubsubFeature PERSISTENT_ITEMS = new PubsubFeature("persistent-items",
"Persistent items are supported.", PubsubFeatureLevel.RECOMMENDED, "");
public static final PubsubFeature PRESENCE_NOTIFICATIONS = new PubsubFeature("presence-notifications",
"Presence-based delivery of event notifications is supported.", PubsubFeatureLevel.OPTIONAL, "");
public static final PubsubFeature PRESENCE_SUBSCRIBE = new PubsubFeature("presence-subscribe",
"Authorized contacts are automatically subscribed to a user's virtual pubsub service.",
PubsubFeatureLevel.RECOMMENDED, "Auto-Subscribe");
public static final PubsubFeature PUBLISH = new PubsubFeature("publish", "Publishing items is supported.",
PubsubFeatureLevel.REQUIRED, "Publish an Item to a Node");
public static final PubsubFeature PUBLISH_OPTIONS = new PubsubFeature("publish-options",
"Publishing an item with options is supported.", PubsubFeatureLevel.OPTIONAL, "Publishing Options");
public static final PubsubFeature PUBLISHER_AFFILIATION = new PubsubFeature("publisher-affiliation",
"The publisher affiliation is supported.", PubsubFeatureLevel.RECOMMENDED, "Affiliations");
public static final PubsubFeature PURGE_NODES = new PubsubFeature("purge-nodes", "Purging of nodes is supported.",
PubsubFeatureLevel.OPTIONAL, "Purge All Node Items");
public static final PubsubFeature RETRACT_ITEMS = new PubsubFeature("retract-items",
"Item retraction is supported.", PubsubFeatureLevel.OPTIONAL, "Delete an Item from a Node");
public static final PubsubFeature RETRIEVE_AFFILIATIONS = new PubsubFeature("retrieve-affiliations",
"Retrieval of current affiliations is supported.", PubsubFeatureLevel.RECOMMENDED, "Retrieve Affiliations");
public static final PubsubFeature RETRIEVE_DEFAULT = new PubsubFeature("retrieve-default",
"Retrieval of default node configuration is supported.", PubsubFeatureLevel.RECOMMENDED,
"Request Default Configuration Options");
public static final PubsubFeature RETRIEVE_ITEMS = new PubsubFeature("retrieve-items",
"Item retrieval is supported.", PubsubFeatureLevel.RECOMMENDED, "Retrieve Items from a Node");
public static final PubsubFeature RETRIEVE_SUBSCRIPTIONS = new PubsubFeature("retrieve-subscriptions",
"Retrieval of current subscriptions is supported.", PubsubFeatureLevel.RECOMMENDED,
"Retrieve Subscriptions");
public static final PubsubFeature SUBSCRIBE = new PubsubFeature("subscribe",
"Subscribing and unsubscribing are supported.", PubsubFeatureLevel.REQUIRED,
"Subscribe to a Node and Unsubscribe from a Node");
public static final PubsubFeature SUBSCRIPTION_OPTIONS = new PubsubFeature("subscription-options",
"Configuration of subscription options is supported.", PubsubFeatureLevel.OPTIONAL,
"Configure Subscription Options");
public static final PubsubFeature SUBSCRIPTION_NOTIFICATIONS = new PubsubFeature("subscription-notifications",
"Notification of subscription state changes is supported.", PubsubFeatureLevel.OPTIONAL,
"Notification of Subscription State Changes");
}