code: def get_changes(self, getter=None, setter=None, resources=None,
                      task_handle=taskhandle.NullTaskHandle()):
          
          if resources is None:
              resources = self.project.get_python_files()
          changes = ChangeSet('Encapsulate field <%s>' % self.name)
          job_set = task_handle.create_jobset('Collecting Changes',
                                              len(resources))
          if getter is None:
              getter = 'get_' + self.name
          if setter is None:
              setter = 'set_' + self.name
          renamer = GetterSetterRenameInModule(
              self.project, self.name, self.pyname, getter, setter)
          for file in resources:
              job_set.started_job(file.path)
              if file == self.resource:
                  result = self._change_holding_module(changes, renamer,
                                                       getter, setter)
                  changes.add_change(ChangeContents(self.resource, result))
              else:
                  result = renamer.get_changed_module(file)
                  if result is not None:
                      changes.add_change(ChangeContents(file, result))
              job_set.finished_job()
          return changes
docs: Get the changes this refactoring makes
  
          If `getter` is not `None`, that will be the name of the
          getter, otherwise ``get_${field_name}`` will be used.  The
          same is true for `setter` and if it is None set_${field_name} is
          used.
  
          `resources` can be a list of `rope.base.resource.File`\s that
          the refactoring should be applied on; if `None` all python
          files in the project are searched.