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

base.jee.api.model.AuditEvent 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.jee.api.model;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;

import base.QueryResult;
import base.json.Json;
import base.security.ResourceUid;

public class AuditEvent implements QueryResult {

	private UUID uuid;
	private UUID personUuid;
	private Date date;
	private String level;
	private String message;
	private String ip;
	private Set resource;

	public UUID getUUid() {
		return uuid;
	}

	public void setUuid(UUID uuid) {
		this.uuid = uuid;
	}

	public UUID getPersonUuid() {
		return personUuid;
	}

	public void setPersonUuid(UUID personUuid) {
		this.personUuid = personUuid;
	}

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		if(ip != null && ip.length() == 0) {
			this.ip = null;
			return;
		}
		this.ip = ip;
	}

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

	public void addResource(String resource, String uid) {
		if(this.resource == null) {
			this.resource = new HashSet();
		}
		this.resource.add(new ResourceUid(resource, uid));
	}

	@Override
	public String toJson() {
		return "{" +
				"\"uuid\":\"" + uuid + "\"," +
				(personUuid != null?"\"person_uuid\":\"" + personUuid + "\",":"") +
				"\"date\":\"" + Json.toDateTime(date) + "\"," +
				"\"level\":\"" + Json.escape(level) + "\"," +
				"\"message\":\"" + Json.escape(message) + "\"," +
				"\"ip\":\"" + Json.escape(ip) + "\"" +
				"}";
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy