From c434ba14b5243d8eccb6d40bdc1b5e3771fd427d Mon Sep 17 00:00:00 2001
From: Alan Young <consult.awy@gmail.com>
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<String, MUCOccupant> 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<MUCOwnerPayload> request = new GenericRequest<MUCOwnerPayload>(
@@ -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<String, MUCOccupant> 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