package eu.dnetlib.goldoa.domain;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.google.gwt.user.client.rpc.IsSerializable;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;


@Entity
//@Cache(usage= CacheConcurrencyStrategy.READ_WRITE,region = "role")
public class Role implements IsSerializable{
	private static final long serialVersionUID = 1L;
	@Id
	@Column(columnDefinition = "text",unique = true, nullable = false)
	private String id;
	@Column(columnDefinition = "text")
	private String role;
	

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.role")
	@JsonBackReference
	private List<UserRole> userRoles = new ArrayList<>();

	public Role(){}

	public Role(String id, String role){
		this.setId(id);
		this.setRole(role);
	}

	/*public Role(String id) {
		this.id = id;
	}*/


	public List<UserRole> getUserRoles() {
		return userRoles;
	}

	public void setUserRoles(List<UserRole> userRoles) {
		this.userRoles = userRoles;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getRole() {
		return role;
	}

	public void setRole(String role) {
		this.role = role;
	}

	public void addUserRole(UserRole ur) {
		this.userRoles.add(ur);
	}
	
	public void removeUserRole(UserRole ur) {
		this.userRoles.remove(ur);
	}


	

}
