package com.atlassian.stash.internal.user;

import com.atlassian.bitbucket.user.ApplicationUser;

import javax.annotation.Nonnull;

/**
 * Factory for {@link PermissionGraph permission graphs}.
 *
 * @since 2.7
 */
public interface PermissionGraphFactory {

    /**
     * Creates a {@link PermissionGraph permission graph} for the provided user.
     *
     * @param user the user
     * @return the permission graph for the provided user
     */
    @Nonnull
    IterablePermissionGraph createGraph(@Nonnull ApplicationUser user);
}
