UrlBasedReport.java

package com.tradecloud.domain.report;

import com.tradecloud.authentication.Role;
import com.tradecloud.common.base.PersistenceBase;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Objects;

@Entity
@Table(name = "UrlBasedReport")
@Access(AccessType.FIELD)
public class UrlBasedReport extends PersistenceBase {
    @NotNull(message = "url is required")
    private String url;

    @NotNull(message = "name is required")
    private String name;

    @NotNull(message = "name is required")
    private String code;

    @ManyToOne
    private Role role;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Role getRole() {
        return role;
    }

    public void setRole(Role role) {
        this.role = role;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof UrlBasedReport that)) return false;
        if (!super.equals(o)) return false;
        return Objects.equals(getCode(), that.getCode());
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), getCode());
    }
}