docs: def get_grade_entry_form_for_create(self, gradebook_column_id, resource_id, grade_entry_record_types):
          """Gets the grade entry form for creating new grade entries.
  
          A new form should be requested for each create transaction.
  
          arg:    gradebook_column_id (osid.id.Id): the gradebook column
          arg:    resource_id (osid.id.Id): the key resource
          arg:    grade_entry_record_types (osid.type.Type[]): array of
                  grade entry record types
          return: (osid.grading.GradeEntryForm) - the grade entry form
          raise:  NotFound - ``gradebook_column_id or resource_id`` not
                  found
          raise:  NullArgument - ``gradebook_column_id, resource_id,`` or
                  ``grade_entry_record_types`` is ``null``
          raise:  OperationFailed - unable to complete request
          raise:  PermissionDenied - authorization failure
          raise:  Unsupported - unable to get form for requested record
                  types
          *compliance: mandatory -- This method must be implemented.*
  
          """
          if not isinstance(gradebook_column_id, ABCId):
              raise errors.InvalidArgument('argument is not a valid OSID Id')
          if not isinstance(resource_id, ABCId):
              raise errors.InvalidArgument('argument is not a valid OSID Id')
          # Add code for checking Id and getting gradebook_column enclosure
          for arg in grade_entry_record_types:
              if not isinstance(arg, ABCType):
                  raise errors.InvalidArgument('one or more argument array elements is not a valid OSID Type')
          if grade_entry_record_types == []:
              # WHY are we passing gradebook_id = self._catalog_id below, seems redundant:
              # Probably don't need effective agent id since form can now get that from proxy.
              obj_form = objects.GradeEntryForm(
                  gradebook_id=self._catalog_id,
                  gradebook_column_id=gradebook_column_id,
                  resource_id=resource_id,
                  effective_agent_id=str(self.get_effective_agent_id()),
                  catalog_id=self._catalog_id,
                  runtime=self._runtime,
                  proxy=self._proxy)
          else:
              obj_form = objects.GradeEntryForm(
                  gradebook_id=self._catalog_id,
                  record_types=grade_entry_record_types,
                  gradebook_column_id=gradebook_column_id,
                  resource_id=resource_id,
                  effective_agent_id=str(self.get_effective_agent_id()),
                  catalog_id=self._catalog_id,
                  runtime=self._runtime,
                  proxy=self._proxy)
          obj_form._for_update = False
          self._forms[obj_form.get_id().get_identifier()] = not CREATED
          return obj_form