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

io.scalecube.services.methods.ServiceRoleDefinition Maven / Gradle / Ivy

package io.scalecube.services.methods;

import java.util.Collection;
import java.util.Objects;
import java.util.Set;
import java.util.StringJoiner;

public class ServiceRoleDefinition {

  private final String role;
  private final Set permissions;

  /**
   * Constructor.
   *
   * @param role service role
   * @param permissions service permissions
   */
  public ServiceRoleDefinition(String role, Collection permissions) {
    this.role = role;
    this.permissions = Set.copyOf(permissions);
  }

  public String role() {
    return role;
  }

  public Collection permissions() {
    return permissions;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    final var that = (ServiceRoleDefinition) o;
    return Objects.equals(role, that.role) && Objects.equals(permissions, that.permissions);
  }

  @Override
  public int hashCode() {
    int result = Objects.hashCode(role);
    result = 31 * result + Objects.hashCode(permissions);
    return result;
  }

  @Override
  public String toString() {
    return new StringJoiner(", ", ServiceRoleDefinition.class.getSimpleName() + "[", "]")
        .add("role='" + role + "'")
        .add("permissions=" + permissions)
        .toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy