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

io.imunity.furms.ui.views.fenix.logs.AuditLogGridModel 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.views.fenix.logs;

import io.imunity.furms.domain.audit_log.Action;
import io.imunity.furms.domain.audit_log.Operation;

import java.time.ZonedDateTime;
import java.util.Map;
import java.util.Objects;

class AuditLogGridModel {
	public final String id;
	public final ZonedDateTime timestamp;
	public final String originator;
	public final Operation operation;
	public final Action action;
	public final String name;
	public final Map data;

	AuditLogGridModel(String id, ZonedDateTime timestamp, String originator, Operation operation, Action action, String name, Map data) {
		this.id = id;
		this.timestamp = timestamp;
		this.originator = originator;
		this.operation = operation;
		this.action = action;
		this.name = name;
		this.data = data;
	}

	@Override
	public boolean equals(Object o) {
		if (this == o) return true;
		if (o == null || getClass() != o.getClass()) return false;
		AuditLogGridModel that = (AuditLogGridModel) o;
		return Objects.equals(timestamp, that.timestamp) &&
			Objects.equals(id, that.id) &&
			Objects.equals(originator, that.originator) &&
			operation == that.operation &&
			action == that.action &&
			Objects.equals(name, that.name) &&
			Objects.equals(data, that.data);
	}

	@Override
	public int hashCode() {
		return Objects.hash(id, timestamp, originator, operation, action, name, data);
	}

	@Override
	public String toString() {
		return "AuditLogGridModel{" +
			"timestamp=" + timestamp +
			", id='" + id + '\'' +
			", originator='" + originator + '\'' +
			", operation=" + operation +
			", action=" + action +
			", name='" + name + '\'' +
			", data=" + data +
			'}';
	}

	public static AuditLogGridModelBuilder builder() {
		return new AuditLogGridModelBuilder();
	}

	public static final class AuditLogGridModelBuilder {
		public String id;
		public ZonedDateTime timestamp;
		public String originator;
		public Operation operation;
		public Action action;
		public String name;
		public Map data;

		private AuditLogGridModelBuilder() {
		}

		public AuditLogGridModelBuilder id(String id) {
			this.id = id;
			return this;
		}

		public AuditLogGridModelBuilder timestamp(ZonedDateTime timestamp) {
			this.timestamp = timestamp;
			return this;
		}

		public AuditLogGridModelBuilder originator(String originator) {
			this.originator = originator;
			return this;
		}

		public AuditLogGridModelBuilder operation(Operation operation) {
			this.operation = operation;
			return this;
		}

		public AuditLogGridModelBuilder action(Action action) {
			this.action = action;
			return this;
		}

		public AuditLogGridModelBuilder name(String name) {
			this.name = name;
			return this;
		}

		public AuditLogGridModelBuilder data(Map data) {
			this.data = data;
			return this;
		}

		public AuditLogGridModel build() {
			return new AuditLogGridModel(id, timestamp, originator, operation, action, name, data);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy