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

base.security.ResourceRole Maven / Gradle / Ivy

/**
 * Creative commons Attribution-NonCommercial license.
 *
 * http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB
 *
 * NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
 */
package base.security;

import java.util.LinkedList;
import java.util.List;
import java.util.UUID;

import base.QueryResult;
import base.json.Json;

/**
 * All roles a specific person has against a specific resource.
 */
public class ResourceRole implements QueryResult {

	private Person person;
	private UUID personUuid;
	private ResourceUid resource;
	private List roles;

	public ResourceRole(Person person, ResourceUid resource) {
		this.personUuid = person.getUuid();
		this.person = person;
		this.resource = resource;
		this.roles = new LinkedList();
	}

	public Person getPerson() {
		return person;
	}

	public UUID getPersonUuid() {
		return personUuid;
	}

	public ResourceUid getResource() {
		return resource;
	}

	public List getRoles() {
		return roles;
	}

	public void addRole(String role) {
		roles.add(role);
	}

	public String toString() {
		return toJson();
	}

	@SuppressWarnings("unchecked")
	@Override
	public String toJson() {
		return "{" +
				"\"person\":\"" + personUuid + "\"," +
				"\"resource\":" + resource.toJson() + "," +
				"\"roles\":" + Json.toJson((List)(List)roles) + "" +
				"}";
	}

}