package com.atlassian.bitbucket.permission;

import javax.annotation.Nonnull;

/**
 * Visitor for {@link EffectivePermission effective permissions}. Implementors are encouraged to extend
 * {@link AbstractEffectivePermissionVisitor} instead of directly implementing this interface.
 */
public interface EffectivePermissionVisitor<T> {
    T visit(@Nonnull EffectiveGlobalPermission permission);
    T visit(@Nonnull EffectiveRepositoryPermission permission);
    T visit(@Nonnull EffectiveProjectPermission permission);
}
