/* * Copyright 2015-2025 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 sockslib.server.manager; import java.util.List; /** * The class <code>UserManager</code> represents a manager that can manage users. * * @author Youchao Feng * @version 1.0 * @date Apr 16, 2015 11:30:18 AM */ public interface UserManager { void create(User user); /** * Adds a user to the {@link UserManager}. * * @param username Username. * @param password Password. * @return Current UserManager instance */ UserManager addUser(String username, String password); /** * Finds a user by username and password. If there is no user matches the username and password, * return <code>null</code> * * @param username Username. * @param password Password. * @return Instance of {@link User}. If the user doesn't exist, it will return <code>null</code>. */ User check(String username, String password); /** * Deletes a user by username. * * @param username Username. */ void delete(String username); /** * Finds all users. * * @return All users. */ List<User> findAll(); /** * Updates an user information. * * @param user Updated user */ void update(User user); /** * Finds an user by username. Return <code>null</code> if the user doesn't exist. * * @param username Username of an user * @return User which username is equal the parameter. */ User find(String username); }