All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.imunity.furms.ui.components.administrators.UserGridItem Maven / Gradle / Ivy

There is a newer version: 4.3.1
Show newest version
/*
 * Copyright (c) 2020 Bixbit s.c. All rights reserved.
 *  See LICENSE file for licensing information.
 */

package io.imunity.furms.ui.components.administrators;

import com.vaadin.flow.component.icon.Icon;
import io.imunity.furms.domain.invitations.InvitationId;
import io.imunity.furms.domain.users.FURMSUser;
import io.imunity.furms.domain.users.FenixUserId;
import io.imunity.furms.domain.users.PersistentId;
import io.imunity.furms.domain.users.UserStatus;

import java.util.Objects;
import java.util.Optional;

import static com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT;

public class UserGridItem implements AbstractUserGridItem {
	private final Optional id;
	private final Optional fenixUserId;
	private final Optional firstName;
	private final Optional lastName;
	private final Optional invitationId;
	private final UserUIStatus status;
	private final String email;
	private Icon icon = ANGLE_RIGHT.create();

	public UserGridItem(FURMSUser user){
		this.id = user.id;
		this.fenixUserId = user.fenixUserId;
		this.firstName = user.firstName;
		this.lastName = user.lastName;
		this.status = UserStatus.ENABLED.equals(user.status) ? UserUIStatus.ENABLED : UserUIStatus.DISABLED;
		this.email = user.email;
		this.invitationId = Optional.empty();
	}

	public UserGridItem(FURMSUser user, UserUIStatus userUIStatus){
		this.id = user.id;
		this.fenixUserId = user.fenixUserId;
		this.firstName = user.firstName;
		this.lastName = user.lastName;
		this.status = userUIStatus;
		this.email = user.email;
		this.invitationId = Optional.empty();
	}

	public UserGridItem(String email, InvitationId invitationId) {
		this.id = Optional.empty();
		this.fenixUserId = Optional.empty();
		this.firstName = Optional.empty();
		this.lastName = Optional.empty();
		this.status = UserUIStatus.AWAITS_APPROVAL;
		this.email = email;
		this.invitationId = Optional.of(invitationId);
	}

	public Optional getId() {
		return id;
	}

	public Optional getFirstName() {
		return firstName;
	}

	public Optional getLastName() {
		return lastName;
	}

	public UserUIStatus getStatus() {
		return status;
	}

	public String getEmail() {
		return email;
	}

	public Optional getInvitationId() {
		return invitationId;
	}

	public Icon getIcon() {
		return icon;
	}

	public void setIcon(Icon icon) {
		this.icon = icon;
	}

	public Optional getFenixUserId() {
		return fenixUserId;
	}

	@Override
	public boolean equals(Object o) {
		if (this == o) return true;
		if (o == null || getClass() != o.getClass()) return false;
		UserGridItem that = (UserGridItem) o;
		return id.equals(that.id) && Objects.equals(email, that.email);
	}

	@Override
	public int hashCode() {
		return Objects.hash(id);
	}

	@Override
	public String toString() {
		return "AdministratorsGridItem{" +
			"id='" + id + '\'' +
			", firstName='" + firstName + '\'' +
			", lastName='" + lastName + '\'' +
			", status='" + status + '\'' +
			", email='" + email + '\'' +
			'}';
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy