From c434ba14b5243d8eccb6d40bdc1b5e3771fd427d Mon Sep 17 00:00:00 2001 From: Alan Young Date: Wed, 5 Aug 2015 16:01:23 +0200 Subject: Add default-parameter versions of invitePerson() to MUC. Clean up imports. Add @Override annotations as appropraiate to MUCImpl and MockMUC. Change-Id: Id34849364fe1e4cdd7709b2cc7b397d007c2868c diff --git a/src/com/isode/stroke/muc/MUC.java b/src/com/isode/stroke/muc/MUC.java index 19dbdd3..4f10910 100644 --- a/src/com/isode/stroke/muc/MUC.java +++ b/src/com/isode/stroke/muc/MUC.java @@ -11,38 +11,19 @@ package com.isode.stroke.muc; -import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.Map; import java.util.Vector; -import com.isode.stroke.client.StanzaChannel; import com.isode.stroke.elements.ErrorPayload; import com.isode.stroke.elements.Form; -import com.isode.stroke.elements.IQ; -import com.isode.stroke.elements.MUCAdminPayload; -import com.isode.stroke.elements.MUCDestroyPayload; -import com.isode.stroke.elements.MUCInvitationPayload; -import com.isode.stroke.elements.MUCItem; import com.isode.stroke.elements.MUCOccupant; -import com.isode.stroke.elements.MUCOwnerPayload; -import com.isode.stroke.elements.MUCPayload; -import com.isode.stroke.elements.MUCUserPayload; -import com.isode.stroke.elements.Message; import com.isode.stroke.elements.Presence; import com.isode.stroke.jid.JID; -import com.isode.stroke.jid.JID.CompareType; -import com.isode.stroke.presence.DirectedPresenceSender; -import com.isode.stroke.queries.GenericRequest; -import com.isode.stroke.queries.IQRouter; import com.isode.stroke.signals.Signal; import com.isode.stroke.signals.Signal1; import com.isode.stroke.signals.Signal2; import com.isode.stroke.signals.Signal3; -import com.isode.stroke.signals.SignalConnection; -import com.isode.stroke.signals.Slot1; -import com.isode.stroke.signals.Slot2; public abstract class MUC { @@ -91,7 +72,41 @@ public abstract class MUC { public abstract void configureRoom(Form f); public abstract void cancelConfigureRoom(); public abstract void destroyRoom(); - /** Send an invite for the person to join the MUC */ + + /** + * Invite the person with given JID to the chat room + * @param person Jabber ID to the person to invite, not null + */ + public void invitePerson(JID person) { + invitePerson(person, "", false, false); + } + + /** + * Invite the person with given JID to the chat room + * @param person Jabber ID to the person to invite, not null + * @param reason join reason, not null + */ + public void invitePerson(JID person, String reason) { + invitePerson(person, reason, false, false); + } + + /** + * Send an invite for the person to join the MUC + * @param person Jabber ID of the person to invite, not null + * @param reason join reason, not null + * @param isImpromptu + */ + public void invitePerson(JID person, String reason, boolean isImpromptu) { + invitePerson(person, reason, isImpromptu, false); + } + + /** + * Send an invite for the person to join the MUC + * @param person Jabber ID of the person to invite, not null + * @param reason join reason, not null + * @param isImpromptu + * @param isReuseChat + */ public abstract void invitePerson(final JID person, final String reason, boolean isImpromptu, boolean isReuseChat); public abstract void setCreateAsReservedIfNew(); public abstract void setPassword(final String password); diff --git a/src/com/isode/stroke/muc/MUCImpl.java b/src/com/isode/stroke/muc/MUCImpl.java index 88d98a1..444b331 100644 --- a/src/com/isode/stroke/muc/MUCImpl.java +++ b/src/com/isode/stroke/muc/MUCImpl.java @@ -10,15 +10,14 @@ package com.isode.stroke.muc; -import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Vector; import com.isode.stroke.client.StanzaChannel; -import com.isode.stroke.elements.ErrorPayload; import com.isode.stroke.elements.CapsInfo; +import com.isode.stroke.elements.ErrorPayload; import com.isode.stroke.elements.Form; import com.isode.stroke.elements.IQ; import com.isode.stroke.elements.MUCAdminPayload; @@ -36,10 +35,6 @@ import com.isode.stroke.jid.JID.CompareType; import com.isode.stroke.presence.DirectedPresenceSender; import com.isode.stroke.queries.GenericRequest; import com.isode.stroke.queries.IQRouter; -import com.isode.stroke.signals.Signal; -import com.isode.stroke.signals.Signal1; -import com.isode.stroke.signals.Signal2; -import com.isode.stroke.signals.Signal3; import com.isode.stroke.signals.SignalConnection; import com.isode.stroke.signals.Slot1; import com.isode.stroke.signals.Slot2; @@ -99,6 +94,7 @@ public class MUCImpl extends MUC { /** * Cancel the command for configuring room */ + @Override public void cancelConfigureRoom() { MUCOwnerPayload mucPayload = new MUCOwnerPayload(); mucPayload.setPayload(new Form(Form.Type.CANCEL_TYPE)); @@ -113,6 +109,7 @@ public class MUCImpl extends MUC { * @param jid real jabber ID, not null * @param affiliation new affiliation, not null */ + @Override public void changeAffiliation(final JID jid, final MUCOccupant.Affiliation affiliation) { final MUCAdminPayload mucPayload = new MUCAdminPayload(); MUCItem item = new MUCItem(); @@ -136,6 +133,7 @@ public class MUCImpl extends MUC { * @param jid Jabber ID of the occupant in the chat room, not null * @param role new role, not null */ + @Override public void changeOccupantRole(final JID jid, final MUCOccupant.Role role) { final MUCAdminPayload mucPayload = new MUCAdminPayload(); MUCItem item = new MUCItem(); @@ -157,6 +155,7 @@ public class MUCImpl extends MUC { * Change the subject of the chat room * @param subject new subject, not null */ + @Override public void changeSubject(String subject) { Message message = new Message(); message.setSubject(subject); @@ -169,6 +168,7 @@ public class MUCImpl extends MUC { * Configure a chat room room * @param form form to be used for configuration, not null */ + @Override public void configureRoom(Form form) { MUCOwnerPayload mucPayload = new MUCOwnerPayload(); mucPayload.setPayload(form); @@ -195,6 +195,7 @@ public class MUCImpl extends MUC { /** * Destroy the chat room */ + @Override public void destroyRoom() { MUCOwnerPayload mucPayload = new MUCOwnerPayload(); MUCDestroyPayload mucDestroyPayload = new MUCDestroyPayload(); @@ -214,6 +215,7 @@ public class MUCImpl extends MUC { * Returns the (bare) JID of the MUC. * @return bare JID(i.e. without resource) */ + @Override public JID getJID() { return ownMUCJID.toBare(); } @@ -222,6 +224,7 @@ public class MUCImpl extends MUC { * Returns if the room is unlocked and other people can join the room. * @return True if joinable by others; false otherwise. */ + @Override public boolean isUnlocked() { return isUnlocked_; } @@ -231,6 +234,7 @@ public class MUCImpl extends MUC { * @param nick nick name, not null * @return MUC occupant if it exists or null if not */ + @Override public MUCOccupant getOccupant(String nick) { return occupants.get(nick); } @@ -240,10 +244,12 @@ public class MUCImpl extends MUC { * @param nick given nick * @return true if the occupant exists, false otherwise */ + @Override public boolean hasOccupant(String nick) { return occupants.containsKey(nick); } + @Override public Map getOccupants() { return occupants; } @@ -252,6 +258,7 @@ public class MUCImpl extends MUC { * Invite the person with give JID to the chat room * @param person jabber ID o the person to invite,not nul */ + @Override public void invitePerson(JID person) { invitePerson(person, "", false, false); } @@ -262,6 +269,7 @@ public class MUCImpl extends MUC { * @param reason join reason, not null * @param isImpromptu */ + @Override public void invitePerson(JID person, String reason, boolean isImpromptu) { invitePerson(person, reason, isImpromptu, false); } @@ -274,6 +282,7 @@ public class MUCImpl extends MUC { * @param isImpromptu * @param isReuseChat */ + @Override public void invitePerson(JID person, String reason, boolean isImpromptu, boolean isReuseChat) { Message message = new Message(); message.setTo(person); @@ -291,6 +300,7 @@ public class MUCImpl extends MUC { * Join the MUC with default context. * @param nick nick name of the user, not null */ + @Override public void joinAs(String nick) { joinSince_ = null; internalJoin(nick); @@ -301,6 +311,7 @@ public class MUCImpl extends MUC { * @param nick nick name, not null * @param since date since the nick joined, not null */ + @Override public void joinWithContextSince(String nick, Date since) { joinSince_ = since; internalJoin(nick); @@ -310,10 +321,12 @@ public class MUCImpl extends MUC { * Kick the given occupant out of the chat room * @param jid jabber ID of the user to kick, not null */ + @Override public void kickOccupant(JID jid) { changeOccupantRole(jid, MUCOccupant.Role.NoRole); } + @Override public void changeNickname(final String newNickname) { Presence changeNicknamePresence = new Presence(); changeNicknamePresence.setTo(new JID(ownMUCJID.toBare().toString() + "/" + newNickname)); @@ -323,6 +336,7 @@ public class MUCImpl extends MUC { /** * Leave the chat room */ + @Override public void part() { presenceSender.removeDirectedPresenceReceiver(ownMUCJID, DirectedPresenceSender.SendPresence.AndSendPresence); @@ -333,6 +347,7 @@ public class MUCImpl extends MUC { * Send a request to get a list of users for the given affiliation * @param affiliation affiliation, not null */ + @Override public void requestAffiliationList(final MUCOccupant.Affiliation affiliation) { MUCAdminPayload mucPayload = new MUCAdminPayload(); MUCItem item = new MUCItem(); @@ -352,6 +367,7 @@ public class MUCImpl extends MUC { /** * Send a request for getting form for configuring a room */ + @Override public void requestConfigurationForm() { MUCOwnerPayload mucPayload = new MUCOwnerPayload(); GenericRequest request = new GenericRequest( @@ -371,6 +387,7 @@ public class MUCImpl extends MUC { * The effect of calling this function is to leave the room in reserved state * but not configured so that it can be configured later. */ + @Override public void setCreateAsReservedIfNew() { createAsReservedIfNew = true; } @@ -379,6 +396,7 @@ public class MUCImpl extends MUC { * Set the password used for entering the room. * @param newPassword password, can be null */ + @Override public void setPassword(String newPassword) { password = newPassword; } @@ -465,7 +483,6 @@ public class MUCImpl extends MUC { // (i.e. we start getting non-error presence from the MUC) or not if (!joinSucceeded_) { if(presence.getType().equals(Presence.Type.Error)) { - String reason = ""; onJoinFailed.emit(presence.getPayload(new ErrorPayload())); return; } @@ -683,6 +700,7 @@ public class MUCImpl extends MUC { return ownMUCJID.compare(j, CompareType.WithoutResource) == 0; } + @Override public void handleUserLeft(LeavingType type) { String resource = ownMUCJID.getResource(); if (occupants.containsKey(resource)) { @@ -703,6 +721,7 @@ public class MUCImpl extends MUC { * This method should be called when the MUC object is no longer in use * so as to enable the garbage collector to remove this object from used space. */ + @Override public void disconnect() { if (scopedConnection_ != null) { scopedConnection_.onDestroyed.emit(); diff --git a/test/com/isode/stroke/muc/MockMUC.java b/test/com/isode/stroke/muc/MockMUC.java index 20c078b..4a72343 100644 --- a/test/com/isode/stroke/muc/MockMUC.java +++ b/test/com/isode/stroke/muc/MockMUC.java @@ -11,39 +11,13 @@ package com.isode.stroke.muc; -import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Map; -import java.util.Vector; -import com.isode.stroke.client.StanzaChannel; -import com.isode.stroke.elements.ErrorPayload; -import com.isode.stroke.elements.CapsInfo; import com.isode.stroke.elements.Form; -import com.isode.stroke.elements.IQ; -import com.isode.stroke.elements.MUCAdminPayload; -import com.isode.stroke.elements.MUCDestroyPayload; -import com.isode.stroke.elements.MUCInvitationPayload; -import com.isode.stroke.elements.MUCItem; import com.isode.stroke.elements.MUCOccupant; -import com.isode.stroke.elements.MUCOwnerPayload; -import com.isode.stroke.elements.MUCPayload; -import com.isode.stroke.elements.MUCUserPayload; -import com.isode.stroke.elements.Message; -import com.isode.stroke.elements.Presence; import com.isode.stroke.jid.JID; -import com.isode.stroke.jid.JID.CompareType; -import com.isode.stroke.presence.DirectedPresenceSender; -import com.isode.stroke.queries.GenericRequest; -import com.isode.stroke.queries.IQRouter; -import com.isode.stroke.signals.Signal; -import com.isode.stroke.signals.Signal1; -import com.isode.stroke.signals.Signal2; -import com.isode.stroke.signals.Signal3; -import com.isode.stroke.signals.SignalConnection; -import com.isode.stroke.signals.Slot1; -import com.isode.stroke.signals.Slot2; public class MockMUC extends MUC { @@ -65,6 +39,7 @@ public class MockMUC extends MUC { /** * Returns the (bare) JID of the MUC. */ + @Override public JID getJID() { return ownMUCJID.toBare(); } @@ -73,38 +48,49 @@ public class MockMUC extends MUC { * Returns if the room is unlocked and other people can join the room. * @return True if joinable by others; false otherwise. */ + @Override public boolean isUnlocked() { return true; } + @Override public void joinAs(final String nick) {} + @Override public void joinWithContextSince(final String nick, final Date since) {} /*public void queryRoomInfo(); */ /*public void queryRoomItems(); */ /*public String getCurrentNick(); */ + @Override public Map getOccupants() { return occupants_; } + @Override public void changeNickname(final String newNickname) {} + @Override public void part() {} public void disconnect() {} /*public void handleIncomingMessage(Message::ref message); */ /** Expose public so it can be called when e.g. user goes offline */ + @Override public void handleUserLeft(LeavingType l) {} /** * Get occupant information. */ + @Override public MUCOccupant getOccupant(final String nick) { return occupants_.get(nick); } + @Override public boolean hasOccupant(final String nick){ return occupants_.containsKey(nick); } + @Override public void kickOccupant(final JID jid) {} + @Override public void changeOccupantRole(final JID jid, MUCOccupant.Role newRole) { String resource = jid.getResource(); if(occupants_.containsKey(resource)) { @@ -115,8 +101,10 @@ public class MockMUC extends MUC { } } + @Override public void requestAffiliationList(MUCOccupant.Affiliation aff) {} + @Override public void changeAffiliation(final JID jid, MUCOccupant.Affiliation newAffilation) { String resource = jid.getResource(); if(occupants_.containsKey(resource)) { @@ -127,14 +115,22 @@ public class MockMUC extends MUC { } } + @Override public void changeSubject(final String subject) {} + @Override public void requestConfigurationForm() {} + @Override public void configureRoom(Form f) {} + @Override public void cancelConfigureRoom() {} + @Override public void destroyRoom() {} /** Send an invite for the person to join the MUC */ + @Override public void invitePerson(final JID person, final String reason, boolean isImpromptu, boolean isReuseChat) {} + @Override public void setCreateAsReservedIfNew() {} + @Override public void setPassword(final String password) {} protected boolean isFromMUC(final JID j) { -- cgit v0.10.2-6-g49f6