From 711d7d92bdf2ca97d5aa0c8310da94984495abfa Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 1 Aug 2022 21:54:37 +0200 Subject: [PATCH] [muc] Use EntityBareJid instead of String in GroupChatInvitation Also factor provider in extra file. --- .../muc/packet/GroupChatInvitation.java | 27 +++--------- .../provider/GroupChatInvitationProvider.java | 43 +++++++++++++++++++ .../extensions.providers | 2 +- 3 files changed, 49 insertions(+), 23 deletions(-) create mode 100644 smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/GroupChatInvitationProvider.java diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java index 135651b9a..ef359e5c1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java @@ -14,20 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.jivesoftware.smackx.muc.packet; -import java.io.IOException; - import javax.xml.namespace.QName; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Stanza; -import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; -import org.jivesoftware.smack.xml.XmlPullParser; -import org.jivesoftware.smack.xml.XmlPullParserException; + +import org.jxmpp.jid.EntityBareJid; /** * A group chat invitation stanza extension, which is used to invite other @@ -72,7 +67,7 @@ public class GroupChatInvitation implements ExtensionElement { public static final QName QNAME = new QName(NAMESPACE, ELEMENT); - private final String roomAddress; + private final EntityBareJid roomAddress; /** * Creates a new group chat invitation to the specified room address. @@ -82,7 +77,7 @@ public class GroupChatInvitation implements ExtensionElement { * * @param roomAddress the address of the group chat room. */ - public GroupChatInvitation(String roomAddress) { + public GroupChatInvitation(EntityBareJid roomAddress) { this.roomAddress = roomAddress; } @@ -93,7 +88,7 @@ public class GroupChatInvitation implements ExtensionElement { * * @return the address of the group chat room. */ - public String getRoomAddress() { + public EntityBareJid getRoomAddress() { return roomAddress; } @@ -124,16 +119,4 @@ public class GroupChatInvitation implements ExtensionElement { return packet.getExtension(GroupChatInvitation.class); } - public static class Provider extends ExtensionElementProvider { - - @Override - public GroupChatInvitation parse(XmlPullParser parser, - int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, - IOException { - String roomAddress = parser.getAttributeValue("", "jid"); - // Advance to end of extension. - parser.next(); - return new GroupChatInvitation(roomAddress); - } - } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/GroupChatInvitationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/GroupChatInvitationProvider.java new file mode 100644 index 000000000..31f6472c8 --- /dev/null +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/GroupChatInvitationProvider.java @@ -0,0 +1,43 @@ +/** + * + * Copyright 2003-2007 Jive Software, 2022 Florian Schmaus. + * + * 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.muc.provider; + +import java.io.IOException; +import java.text.ParseException; + +import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smackx.muc.packet.GroupChatInvitation; + +import org.jxmpp.jid.EntityBareJid; + +public class GroupChatInvitationProvider extends ExtensionElementProvider { + + @Override + public GroupChatInvitation parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + throws XmlPullParserException, IOException, SmackParsingException, ParseException { + EntityBareJid roomAddress = ParserUtils.getBareJidAttribute(parser); + // Advance to end of extension. + parser.next(); + return new GroupChatInvitation(roomAddress); + } + +} diff --git a/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers b/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers index 19c19a305..c2ac6921e 100644 --- a/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers +++ b/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers @@ -516,7 +516,7 @@ x jabber:x:conference - org.jivesoftware.smackx.muc.packet.GroupChatInvitation$Provider + org.jivesoftware.smackx.muc.provider.GroupChatInvitationProvider