@ -64,7 +64,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
protected static final String DEFAULT_LANGUAGE =
java . util . Locale . getDefault ( ) . getLanguage ( ) . toLowerCase ( Locale . US ) ;
private final MultiMap < QName , Extension Element> extensionElements ;
private final MultiMap < QName , Xml Element> extensionElements ;
// Assume that all stanzas Smack handles are in the client namespace, since Smack is an XMPP client library. We can
// change this behavior later if it is required.
@ -284,18 +284,18 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
}
@Override
public final List < Extension Element> getExtensions ( ) {
public final List < Xml Element> getExtensions ( ) {
synchronized ( extensionElements ) {
// No need to create a new list, values() will already create a new one for us
return extensionElements . values ( ) ;
}
}
public final MultiMap < QName , Extension Element> getExtensionsMap ( ) {
public final MultiMap < QName , Xml Element> getExtensionsMap ( ) {
return cloneExtensionsMap ( ) ;
}
final MultiMap < QName , Extension Element> cloneExtensionsMap ( ) {
final MultiMap < QName , Xml Element> cloneExtensionsMap ( ) {
synchronized ( extensionElements ) {
return extensionElements . clone ( ) ;
}
@ -312,7 +312,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* @return a set of all matching extensions .
* @since 4.1
* /
public final List < Extension Element> getExtensions ( String elementName , String namespace ) {
public final List < Xml Element> getExtensions ( String elementName , String namespace ) {
requireNotNullNorEmpty ( elementName , "elementName must not be null nor empty" ) ;
requireNotNullNorEmpty ( namespace , "namespace must not be null nor empty" ) ;
QName key = new QName ( namespace , elementName ) ;
@ -320,8 +320,8 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
}
@Override
public final List < Extension Element> getExtensions ( QName qname ) {
List < Extension Element> res ;
public final List < Xml Element> getExtensions ( QName qname ) {
List < Xml Element> res ;
synchronized ( extensionElements ) {
res = extensionElements . getAll ( qname ) ;
}
@ -344,7 +344,8 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* @param namespace the namespace of the extension that is desired .
* @return the stanza extension with the given namespace .
* /
public final ExtensionElement getExtension ( String namespace ) {
// TODO: Mark this method as deprecated in favor of getExtension(QName).
public final XmlElement getExtension ( String namespace ) {
return PacketUtil . extensionElementFrom ( getExtensions ( ) , null , namespace ) ;
}
@ -361,12 +362,12 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* @param namespace the XML element namespace of the extension .
* @return the extension , or < code > null < / code > if it doesn ' t exist .
* /
public final Extension Element getExtensionElement ( String elementName , String namespace ) {
public final Xml Element getExtensionElement ( String elementName , String namespace ) {
if ( namespace = = null ) {
return null ;
}
QName key = new QName ( namespace , elementName ) ;
Extension Element packetExtension = getExtension ( key ) ;
Xml Element packetExtension = getExtension ( key ) ;
if ( packetExtension = = null ) {
return null ;
}
@ -390,7 +391,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
}
@Override
public final Extension Element getExtension ( QName qname ) {
public final Xml Element getExtension ( QName qname ) {
synchronized ( extensionElements ) {
return extensionElements . getFirst ( qname ) ;
}
@ -400,13 +401,13 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* Adds a stanza extension to the packet . Does nothing if extension is null .
* < p >
* Please note that although this method is not yet marked as deprecated , it is recommended to use
* { @link StanzaBuilder # addExtension ( Extension Element) } instead .
* { @link StanzaBuilder # addExtension ( Xml Element) } instead .
* < / p >
*
* @param extension a stanza extension .
* /
// TODO: Mark this as deprecated once StanzaBuilder is ready and all call sites are gone.
public final void addExtension ( Extension Element extension ) {
public final void addExtension ( Xml Element extension ) {
if ( extension = = null ) return ;
QName key = extension . getQName ( ) ;
synchronized ( extensionElements ) {
@ -419,7 +420,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* namespace .
* < p >
* Please note that although this method is not yet marked as deprecated , it is recommended to use
* { @link StanzaBuilder # overrideExtension ( Extension Element) } instead .
* { @link StanzaBuilder # overrideExtension ( Xml Element) } instead .
* < / p >
*
* @param extension the extension element to add .
@ -427,13 +428,13 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* @since 4.1 .2
* /
// TODO: Mark this as deprecated once StanzaBuilder is ready and all call sites are gone.
public final ExtensionElement overrideExtension ( Extension Element extension ) {
public final XmlElement overrideExtension ( Xml Element extension ) {
if ( extension = = null ) return null ;
synchronized ( extensionElements ) {
// Note that we need to use removeExtension(String, String) here. If would use
// removeExtension(ExtensionElement) then we would remove based on the equality of ExtensionElement, which
// is not what we want in this case.
Extension Element removedExtension = removeExtension ( extension . getElementName ( ) , extension . getNamespace ( ) ) ;
Xml Element removedExtension = removeExtension ( extension . getElementName ( ) , extension . getNamespace ( ) ) ;
addExtension ( extension ) ;
return removedExtension ;
}
@ -445,9 +446,9 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* @param extensions a collection of stanza extensions
* /
// TODO: Mark this as deprecated once StanzaBuilder is ready and all call sites are gone.
public final void addExtensions ( Collection < ? extends Extension Element> extensions ) {
public final void addExtensions ( Collection < ? extends Xml Element> extensions ) {
if ( extensions = = null ) return ;
for ( Extension Element packetExtension : extensions ) {
for ( Xml Element packetExtension : extensions ) {
addExtension ( packetExtension ) ;
}
}
@ -476,7 +477,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
@Override
public final boolean hasExtension ( String namespace ) {
synchronized ( extensionElements ) {
for ( Extension Element packetExtension : extensionElements . values ( ) ) {
for ( Xml Element packetExtension : extensionElements . values ( ) ) {
if ( packetExtension . getNamespace ( ) . equals ( namespace ) ) {
return true ;
}
@ -493,7 +494,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* @return the removed stanza extension or null .
* /
// TODO: Mark this as deprecated once StanzaBuilder is ready and all call sites are gone.
public final Extension Element removeExtension ( String elementName , String namespace ) {
public final Xml Element removeExtension ( String elementName , String namespace ) {
QName key = new QName ( namespace , elementName ) ;
synchronized ( extensionElements ) {
return extensionElements . remove ( key ) ;
@ -509,10 +510,10 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement {
* /
@Deprecated
// TODO: Remove in Smack 4.5.
public final ExtensionElement removeExtension ( Extension Element extension ) {
public final XmlElement removeExtension ( Xml Element extension ) {
QName key = extension . getQName ( ) ;
synchronized ( extensionElements ) {
List < Extension Element> list = extensionElements . getAll ( key ) ;
List < Xml Element> list = extensionElements . getAll ( key ) ;
boolean removed = list . remove ( extension ) ;
if ( removed ) {
return extension ;