/* * Copyright 2005-2010 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.security.authentication; 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. * * @return New user. * * @throws UserMgtException * In case the user cannot be created. */ User createUser(String aUsername, String aPassword) 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. * */ boolean add(User aUser); /** * Removes a user. * * @param aUser * User to remove * @return True iff user was removed. * */ boolean remove(User aUser); /** * Lists the current users. * * @return Users. */ Set list(); /** * Lists the users belonging to a particular group. * * @param aGroup * Group. * @return Groups. */ Set list(Group aGroup); /** * * @return The number of users. */ int size(); /** * Clears the user cache. */ void clearCache(); }