code: public void init(ModeledAuthenticatedUser currentUser,
              ModeledPermissions<? extends EntityModel> entity,
              Set<String> effectiveGroups) {
          super.init(currentUser);
          this.entity = entity;
          this.effectiveGroups = effectiveGroups;
      }
docs: Initializes this permission set with the current user and the entity
  to whom the permissions in this set are granted.
  
  @param currentUser
  The user who queried this permission set, and whose permissions
  dictate the access level of all operations performed on this set.
  
  @param entity
  The entity to whom the permissions in this set are granted.
  
  @param effectiveGroups
  The identifiers of all groups that should be taken into account
  when determining the permissions effectively granted to the entity.
  If no groups are given, only permissions directly granted to the
  entity will be used.