public class Main {
public static void main(String[] args) {
Librarian librarian = new Librarian("John");
librarian.overdueNotification(librarian);
Supplier supplier = new Supplier();
supplier.returnBook();
Administrator administrator = new Administrator("Amir");
administrator.overdueNotification(administrator);
Reader reader = new Reader("Steve");
reader.findBook();
}
}
public abstract class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Administrator extends User implements iAdministrator{
public Administrator(String name) {
super(name);
}
@Override
public void findBook() {
System.out.println("Администратор нашел книгу");
}
@Override
public void overdueNotification(User administrator) {
System.out.println("Администратор уведомил пользователя - " + getName());
}
}
public class Supplier implements iSupplier, iReader{
@Override
public void bringBook() {
System.out.println("Поставщик попросил книги в библиотеку");
}
@Override
public void takeBook() {
System.out.println("Поставщик взял книгу");
}
@Override
public void returnBook() {
System.out.println("Поставщик сделал возврат книги");
}
}
public class Librarian extends User implements iLibrarian, iAdministrator{
public Librarian(String name) {
super(name);
}
@Override
public void orderBook() {
System.out.println("Библиотекарь заказал книгу");
}
@Override
public void findBook() {
System.out.println("Библиотекарь нашел книгу");
}
@Override
public void overdueNotification(User librarian) {
System.out.println("Библиотекарь уведомил пользователя - " + getName());
}
}
public class Reader extends User implements iReader, iAdministrator{
public Reader(String name) {
super(name);
}
@Override
public void takeBook() {
System.out.println("Читатель взял книгу ");
}
@Override
public void returnBook() {
System.out.println("Читатель сделал возврат книги");
}
@Override
public void findBook() {
System.out.println("Читатель нашел книгу");
}
@Override
public void overdueNotification(User user) {
}
}
public interface iAdministrator {
void findBook();
void overdueNotification(User user);
}
public interface iLibrarian {
void orderBook();
}
public interface iReader {
void takeBook();
void returnBook();
}
public interface iSupplier {
void bringBook();
}
//TODO Проверить логин и пароль
User user = getUserByLoginAndPassword(login, password);
System.out.println("User: " + user.getLogin() + " - " + user.getEmail());
//TODO Вызвать методы валидации пользователя
validateUser(user);
System.out.println("Access granted");
System.out.println("Access granted");
public static void main(String[] args) throws UserNotFoundException, AccessDeniedException{
Scanner scanner = new Scanner(System.in);
System.out.println("Введите логин: ");
String login = scanner.nextLine();
System.out.println("Введите пароль: ");
String password = scanner.nextLine();
//TODO Проверить логин и пароль
User user = getUserByLoginAndPassword(login, password);
System.out.println("User: " + user.getLogin() + " - " + user.getEmail());
System.out.println("Access granted");
//TODO Вызвать методы валидации пользователя
validateUser(user);
}
public static User[] getUsers(){
User user1 = new User("john", "john@gmail.com", "pass", 17);
User user2 = new User("mike", "mike@gmail.com", "qwerty", 18);
User user3 = new User("steve", "steve@gmail.com", "asdfg", 23);
return new User[]{user1, user2, user3};
}
public static User getUserByLoginAndPassword(String login, String password) throws UserNotFoundException{
User[] users = getUsersList();
for (User user : users) {
if(login.equals(user.getLogin()) && password.equals(user.getPassword())){
return user;
}
}
throw new UserNotFoundException("User not found: " + login);
}
private static User[] getUsersList() {
return getUsers();
}
public static void validateUser(User user) throws AccessDeniedException{
if(user.getAge()<18){
throw new AccessDeniedException("Access Denied");
}else{
getUsers();
}
}