001package jmri;
002
003import javax.annotation.Nonnull;
004
005/**
006 * Defines a permission.
007 *
008 * @author Daniel Bergqvist (C) 2024
009 */
010public interface Permission {
011
012    /**
013     * Get the owner
014     * @return the owner
015     */
016    @Nonnull
017    PermissionOwner getOwner();
018
019    /**
020     * Get the name of the permission
021     * @return the name
022     */
023    @Nonnull
024    String getName();
025
026    /**
027     * Get the default permission for a role.
028     * @param role the role
029     * @return the default
030     */
031    boolean getDefaultPermission(Role role);
032
033}