/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing privileges and * limitations under the License. */ package org.apache.ambari.server.orm.entities; import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinColumns; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.TableGenerator; /** * Represents an admin privilege. */ @Table(name = "adminprivilege") @Entity @TableGenerator(name = "privilege_id_generator", table = "ambari_sequences", pkColumnName = "sequence_name", valueColumnName = "sequence_value" , pkColumnValue = "privilege_id_seq" , initialValue = 1 ) public class PrivilegeEntity { /** * The privilege id. */ @Id @Column(name = "privilege_id") @GeneratedValue(strategy = GenerationType.TABLE, generator = "privilege_id_generator") private Integer id; /** * The permission. */ @ManyToOne @JoinColumns({ @JoinColumn(name = "permission_id", referencedColumnName = "permission_id", nullable = false), }) private PermissionEntity permission; /** * The resource. */ @ManyToOne @JoinColumns({ @JoinColumn(name = "resource_id", referencedColumnName = "resource_id", nullable = false), }) private ResourceEntity resource; /** * The principal. */ @ManyToOne @JoinColumns({ @JoinColumn(name = "principal_id", referencedColumnName = "principal_id", nullable = false), }) private PrincipalEntity principal; // ----- PrivilegeEntity --------------------------------------------------- /** * Get the privilege id. * * @return the privilege id. */ public Integer getId() { return id; } /** * Set the privilege id. * * @param id the type id. */ public void setId(Integer id) { this.id = id; } /** * Get the associated permission entity. * * @return the permission entity */ public PermissionEntity getPermission() { return permission; } /** * Set the permission entity. * * @param permission the permission entity */ public void setPermission(PermissionEntity permission) { this.permission = permission; } /** * Get the associated resource entity. * * @return the resource entity */ public ResourceEntity getResource() { return resource; } /** * Set the resource entity. * * @param resource the resource entity */ public void setResource(ResourceEntity resource) { this.resource = resource; } /** * Get the associated principal entity. * * @return the principal entity */ public PrincipalEntity getPrincipal() { return principal; } /** * Set the principal entity. * * @param principal the principal entity */ public void setPrincipal(PrincipalEntity principal) { this.principal = principal; } // ----- Object overrides -------------------------------------------------- @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PrivilegeEntity that = (PrivilegeEntity) o; return Objects.equals(id, that.id) && Objects.equals(permission, that.permission) && Objects.equals(principal, that.principal) && Objects.equals(resource, that.resource); } @Override public int hashCode() { return Objects.hash(id, permission, resource, principal); } @Override public String toString() { return "PrivilegeEntity{" + "id=" + id + ", permission=" + permission + ", resource=" + resource + ", principal=" + principal + '}'; } }