/* * Copyright 2005 the original author or authors. * * 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.wamblee.usermgt; import java.util.Set; /** * Represents a set of users. * Typical implementations would be an implementation based on a static configuration file or * an implementation backed by a database. * * @author Erik Brakkee */ public interface UserSet { /** * Creates a user. * * @param aUsername User name. * @param aPassword Password. * @param aGroup Group. * * @return New user. * * @throws UserMgtException In case the user cannot be created. */ User createUser(String aUsername, String aPassword, Group aGroup) throws UserMgtException; /** * Must be called whenever a user object has been modified to * notify the user set. * * @param aUser Modified user. */ void userModified(User aUser); /** * Finds user. * * @param aName Username. * * @return User or null if not found. */ User find(String aName); /** * Checks if a user exists. * * @param aUser User. * * @return True iff the user exists. */ boolean contains(User aUser); /** * Adds a user. If the user already exists, the user details are * updated with that of the specified user object. * * @param aUser User to add. * * @return DOCUMENT ME! */ boolean add(User aUser); /** * Removes a user. If the user does not exist, nothing happens. * * @param aUser * * @return DOCUMENT ME! */ boolean remove(User aUser); /** * DOCUMENT ME! * * @return DOCUMENT ME! */ /** * DOCUMENT ME! * * @return DOCUMENT ME! */ /** * Lists the current users. * @return Users. */ Set list(); /** * DOCUMENT ME! * * @param aGroup DOCUMENT ME! * * @return DOCUMENT ME! */ /** * DOCUMENT ME! * * @param aGroup DOCUMENT ME! * * @return DOCUMENT ME! */ /** * Lists the users belonging to a particular group. * @param aGroup Group. * @return Groups. */ Set list(Group aGroup); /** * DOCUMENT ME! * * @return The number of users. */ int size(); }