1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-06-18 09:24:49 +02:00
Smack/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSubNamespace.java
Florian Schmaus fc39ac88bd Add support for retrieving PubSub Node affiliations
This also marks the starting point for extending the PubSub API to allow
additional packet extensions to be added to the request. This is for
example useful if one wants to limit the result with "Result Set
Management (XEP-59)".

Fixes SMACK-580.
2014-07-09 13:28:16 +02:00

69 lines
1.5 KiB
Java

/**
*
* Copyright the original author or authors
*
* 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.packet;
import java.util.Locale;
/**
* Defines all the valid namespaces that are used with the {@link PubSub} packet
* as defined by the specification.
*
* @author Robin Collier
*/
public enum PubSubNamespace
{
BASIC(null),
ERROR("errors"),
EVENT("event"),
OWNER("owner");
private String fragment;
private PubSubNamespace(String fragment)
{
this.fragment = fragment;
}
public String getXmlns()
{
String ns = PubSub.NAMESPACE;
if (fragment != null)
ns += '#' + fragment;
return ns;
}
public String getFragment()
{
return fragment;
}
public static PubSubNamespace valueOfFromXmlns(String ns)
{
int index = ns.lastIndexOf('#');
if (index != -1)
{
String suffix = ns.substring(ns.lastIndexOf('#')+1);
return valueOf(suffix.toUpperCase(Locale.US));
}
else
return BASIC;
}
}