package com.constellio.app.ui.entities; import java.io.Serializable; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class RoleVO implements Serializable { private String code; private String title; private final Set<String> permissions; private final Set<String> originalPermissions; public RoleVO() { this(null, null, new ArrayList<String>()); } public RoleVO(String code, String title, List<String> permissions) { this.code = code; this.title = title; this.permissions = new HashSet<>(permissions); this.originalPermissions = new HashSet<>(permissions); } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public List<String> getPermissions() { return new ArrayList<>(permissions); } public boolean hasPermission(String permission) { return permissions.contains(permission); } public void addPermission(String permission) { permissions.add(permission); } public void removePermission(String permission) { permissions.remove(permission); } public boolean isDirty() { return !permissions.equals(originalPermissions); } public boolean isPermissionDirty(String permission) { return permissions.contains(permission) != originalPermissions.contains(permission); } public void markClean() { originalPermissions.clear(); originalPermissions.addAll(permissions); } }