class UserCredentials extends BaseIdentifiableObject implements UserDetails {

    public boolean isSuper()
    {
        final Boolean superUser = cachedSuper;

        if ( superUser != null )
        {
            return superUser;
        }

        final boolean resultingSuper = userAuthorityGroups.stream().anyMatch( UserAuthorityGroup::isSuper );

        cachedSuper = resultingSuper;

        return resultingSuper;
    }

    public  UserCredentials();

}