/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * 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 net.java.sip.communicator.service.protocol; import java.util.*; import net.java.sip.communicator.service.protocol.event.*; /** * Allows creating, configuring, joining and administering of individual * text-based ad-hoc conference rooms. * * @author Valentin Martinet */ public interface OperationSetAdHocMultiUserChat extends OperationSet { /** * Creates an ad-hoc room with the named <tt>adHocRoomName</tt> and * according to the specified <tt>adHocRoomProperties</tt>. When the method * returns the ad-hoc room the local user will have joined it. * <p> * * @param adHocRoomName * the name of the <tt>AdHocChatRoom</tt> to create. * @param adHocRoomProperties * properties specifying how the ad-hoc room should be created; * <tt>null</tt> for no properties just like an empty * <code>Map</code> * @throws OperationFailedException * if the ad-hoc room couldn't be created for some reason. * @throws OperationNotSupportedException * if chat room creation is not supported by this server * * @return the newly created <tt>AdHocChatRoom</tt> named <tt>roomName</tt>. */ public AdHocChatRoom createAdHocChatRoom(String adHocRoomName, Map<String, Object> adHocRoomProperties) throws OperationFailedException, OperationNotSupportedException; /** * Creates an ad-hoc room with the named <tt>adHocRoomName</tt> and in * including to the specified <tt>contacts</tt> for the given <tt>reason * </tt>. When the method returns the ad-hoc room the local user will have * joined it. * <p> * * @param adHocRoomName * the name of the <tt>AdHocChatRoom</tt> to create. * @param contacts * the contacts (ID) who are added to the room when it's created; * <tt>null</tt> for no contacts * @param reason the reason for this invitation * @throws OperationFailedException * if the ad-hoc room couldn't be created for some reason. * @throws OperationNotSupportedException * if chat room creation is not supported by this server * * @return the newly created <tt>AdHocChatRoom</tt> named <tt>roomName</tt>. */ public AdHocChatRoom createAdHocChatRoom(String adHocRoomName, List<String> contacts, String reason) throws OperationFailedException, OperationNotSupportedException; /** * Returns a list of all currently joined <tt>AdHocChatRoom</tt>-s. * * @return a list of all currently joined <tt>AdHocChatRoom</tt>-s */ public List<AdHocChatRoom> getAdHocChatRooms(); /** * Adds a listener that will be notified of changes in our participation in * an ad-hoc chat room such as us being joined, left. * * @param listener a local user participation listener. */ public void addPresenceListener( LocalUserAdHocChatRoomPresenceListener listener); /** * Removes a listener that was being notified of changes in our * participation in an ad-hoc room such as us being joined, left. * * @param listener a local user participation listener. */ public void removePresenceListener( LocalUserAdHocChatRoomPresenceListener listener); /** * Adds the given <tt>listener</tt> to the list of * <tt>AdHocChatRoomInvitationListener</tt>-s that would be notified when * an add-hoc chat room invitation has been received. * * @param listener the <tt>AdHocChatRoomInvitationListener</tt> to add */ public void addInvitationListener(AdHocChatRoomInvitationListener listener); /** * Removes <tt>listener</tt> from the list of invitation listeners * registered to receive invitation events. * * @param listener the invitation listener to remove. */ public void removeInvitationListener( AdHocChatRoomInvitationListener listener); /** * Adds the given <tt>listener</tt> to the list of * <tt>AdHocChatRoomInvitationRejectionListener</tt>-s that would be * notified when an add-hoc chat room invitation has been rejected. * * @param listener the <tt>AdHocChatRoomInvitationListener</tt> to add */ public void addInvitationRejectionListener( AdHocChatRoomInvitationRejectionListener listener); /** * Removes the given listener from the list of invitation listeners * registered to receive events every time an invitation has been rejected. * * @param listener the invitation listener to remove. */ public void removeInvitationRejectionListener( AdHocChatRoomInvitationRejectionListener listener); /** * Informs the sender of an invitation that we decline their invitation. * * @param invitation the invitation we are rejecting. * @param rejectReason the reason to reject the invitation (optional) */ public void rejectInvitation( AdHocChatRoomInvitation invitation, String rejectReason); }