001/* 002 * GWTEventService 003 * Copyright (c) 2011 and beyond, strawbill UG (haftungsbeschr?nkt) 004 * 005 * This is free software; you can redistribute it and/or modify it 006 * under the terms of the GNU Lesser General Public License as 007 * published by the Free Software Foundation; either version 3 of 008 * the License, or (at your option) any later version. 009 * Other licensing for GWTEventService may also be possible on request. 010 * Please view the license.txt of the project for more information. 011 * 012 * This software is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this software; if not, write to the Free 019 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 020 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 021 */ 022package de.novanic.eventservice.service.registry.user; 023 024import java.util.Collection; 025 026/** 027 * The UserManager is a container for {@link de.novanic.eventservice.service.registry.user.UserInfo} and provides various 028 * methods to manage users. To activate the user timeout recognition, the method {@link UserManager#activateUserActivityScheduler()}) 029 * must be called. The UserManager can be created with {@link de.novanic.eventservice.service.registry.user.UserManagerFactory#getUserManager(long)}) 030 * as a singleton. 031 * 032 * @author sstrohschein 033 * <br>Date: 03.02.2009 034 * <br>Time: 00:20:09 035 */ 036public interface UserManager 037{ 038 /** 039 * Creates and adds the {@link de.novanic.eventservice.service.registry.user.UserInfo} for the user id. 040 * @param aUserId id of the user to add 041 * @return created {@link de.novanic.eventservice.service.registry.user.UserInfo} 042 */ 043 UserInfo addUser(String aUserId); 044 045 /** 046 * Adds the {@link de.novanic.eventservice.service.registry.user.UserInfo} to the UserManager. 047 * @param aUserInfo {@link de.novanic.eventservice.service.registry.user.UserInfo} to add 048 */ 049 void addUser(UserInfo aUserInfo); 050 051 /** 052 * Removes the {@link de.novanic.eventservice.service.registry.user.UserInfo} for the user id. 053 * @param aUserId user id of the {@link de.novanic.eventservice.service.registry.user.UserInfo} to remove 054 * @return removed {@link de.novanic.eventservice.service.registry.user.UserInfo} 055 */ 056 UserInfo removeUser(String aUserId); 057 058 /** 059 * Removes the {@link de.novanic.eventservice.service.registry.user.UserInfo}. 060 * @param aUserInfo {@link de.novanic.eventservice.service.registry.user.UserInfo} to remove 061 * @return true if it had an effect, otherwise false 062 */ 063 boolean removeUser(UserInfo aUserInfo); 064 065 /** 066 * Removes all added {@link UserInfo} objects. 067 */ 068 void removeUsers(); 069 070 /** 071 * Checks if a user is added to a domain. 072 * @param aUserInfo user 073 * @return true when the user is added to a domain, otherwise false 074 */ 075 boolean isUserContained(UserInfo aUserInfo); 076 077 /** 078 * Returns the {@link de.novanic.eventservice.service.registry.user.UserInfo} for the user id. It returns NULL when no 079 * {@link de.novanic.eventservice.service.registry.user.UserInfo} for the user id is added. 080 * @param aUserId user id of the requested {@link de.novanic.eventservice.service.registry.user.UserInfo} 081 * @return {@link de.novanic.eventservice.service.registry.user.UserInfo} for the user id. NULL when no 082 * {@link de.novanic.eventservice.service.registry.user.UserInfo} for the user id is added. 083 */ 084 UserInfo getUser(String aUserId); 085 086 /** 087 * Returns the count of the added {@link de.novanic.eventservice.service.registry.user.UserInfo} objects. 088 * @return count of the added {@link de.novanic.eventservice.service.registry.user.UserInfo} objects 089 */ 090 int getUserCount(); 091 092 /** 093 * Returns all added {@link de.novanic.eventservice.service.registry.user.UserInfo} objects. It returns an empty 094 * {@link java.util.Collection} when no 095 * {@link de.novanic.eventservice.service.registry.user.UserInfo} objects are added. 096 * @return all added {@link de.novanic.eventservice.service.registry.user.UserInfo} objects 097 */ 098 Collection<UserInfo> getUsers(); 099 100 /** 101 * Activates the {@link UserActivityScheduler} to observe the user activities. When the users/clients should be 102 * removed automatically, please use {@link de.novanic.eventservice.service.registry.user.UserManager#activateUserActivityScheduler(boolean)}. 103 */ 104 void activateUserActivityScheduler(); 105 106 /** 107 * Activates the {@link UserActivityScheduler} to observe the user activities. 108 * @param isAutoClean when set to true, the users/clients are removed automatically on timeout 109 */ 110 void activateUserActivityScheduler(boolean isAutoClean); 111 112 /** 113 * Deactivates the {@link UserActivityScheduler}. See {@link UserActivityScheduler} for more information. 114 */ 115 void deactivateUserActivityScheduler(); 116 117 /** 118 * Returns the {@link UserActivityScheduler} which is instantiated with the UserManager. The method 119 * {@link UserManager#activateUserActivityScheduler()} must be called to start the {@link UserActivityScheduler}. 120 * @return the {@link UserActivityScheduler} which is instantiated with the UserManager 121 */ 122 UserActivityScheduler getUserActivityScheduler(); 123 124 /** 125 * Resets the UserManager (removes all users, stops the user activity scheduler, etc.) 126 */ 127 void reset(); 128}