Skip to content
Snippets Groups Projects
User.java 3.55 KiB
Newer Older
package project;

import java.util.ArrayList;

import exceptions.CategoryInvalidException;
import exceptions.LoginInvalidException;
import exceptions.MailInvalidException;
import exceptions.PasswordInvalidException;
import exceptions.TitleInvalidException;
import exceptions.UsernameEmailEmptyException;

public class User {

	static int idCounter;
	public static ArrayList<User> users = new ArrayList<User>();
	private ArrayList<Item> myItem = new ArrayList<Item>();
	private int id;
	private String username, email, password;
	public User() {

		this.id = idCounter++;
		users.add(this);

	public User(String usernameInput, String mailInput, String passwordInput) {

		username = usernameInput;
		email = mailInput;
		password = passwordInput;
		this.id = idCounter++;
		users.add(this);

	}

	public static User getInstance() {

		User u = new User();
		return u;

	public static boolean login(String username, String email, String password)
			throws UsernameEmailEmptyException, PasswordInvalidException, MailInvalidException, LoginInvalidException {
		if (username.equals("") && email.equals("")) {
			throw new UsernameEmailEmptyException();
		} else {

			if (password.equals("")) {

				throw new PasswordInvalidException();

			} else if (!username.equals("")) {

				User toCheck = null;

				for (User u : users) {
					if (u.username.equals(username)) {
						toCheck = u;

					}

				}

				if (toCheck == null) {

					throw new LoginInvalidException();
					if (password.equals(toCheck.password)) {

						return true;

					} else {

						throw new LoginInvalidException();

					}
			} else if (!email.equals("usr@mail.com")) {

				throw new MailInvalidException();

				User toCheck = null;

				for (User u : users) {

					if (u.email.equals(email)) {

						toCheck = u;

					}

				}

				if (toCheck == null) {

					throw new LoginInvalidException();

				} else {

					if (password.equals(toCheck.password)) {

						return true;

					} else {

						throw new LoginInvalidException();

					}

				}

	public ArrayList<Auction> retrieveSubscribedAuction() {
		// TODO Auto-generated method stub
		return null;
	}

	public boolean becomeSeller(String ssn) {
		// TODO Auto-generated method stub
		return false;
	}

	public ArrayList<Item> searchItem(String title, String category)
			throws CategoryInvalidException, TitleInvalidException {

		if (!title.matches("^[a-zA-Z]+$") || title.length() > 30) {

			throw new TitleInvalidException();

		} else {

			Category c = Category.getCategory(category);

			if (c == null) {

				throw new CategoryInvalidException();

			} else {

				ArrayList<Item> toReturn = new ArrayList<Item>();

				for (Item i : Item.items) {

					if (i.getTitle().equals(title) || i.getCategory().equals(c)) {

						toReturn.add(i);

					}

				}

				return toReturn;
			}

		}
	}

	public boolean searchAuction(String startTime, String endTime, double price, double bidIncrement, String title,
			Category category) {
		// TODO Auto-generated method stub
		return false;
	}

	public boolean addItem(int itemId) {
		if (myItem.contains(Item.getItem(itemId))) {

			return myItem.add(Item.getItem(itemId));

		}

		return false;

	}

	public void setId(int i) {

		this.id = i;

	}

	public int getId() {
		// TODO Auto-generated method stub
		return id;
	}

	public void setUsername(String usernameInput) {

		this.username = usernameInput;
	}

	public void setEmail(String emailInput) {

		this.email = emailInput;

	}

	public void setPassword(String passwordInput) {

		this.password = passwordInput;
	}