code: def get_gap(self):
          p = self._gef_gap_base()
          s = _bpp('Searcher')
          res = s.searchPlain(self.model, p)
          res_array = [_match_to_array(m) for m in res.toArray()]
          for r in res_array:
              controller_pe = r[p.indexOf('controller PE')]
              input_pe = r[p.indexOf('input PE')]
              input_spe = r[p.indexOf('input simple PE')]
              output_pe = r[p.indexOf('output PE')]
              output_spe = r[p.indexOf('output simple PE')]
              reaction = r[p.indexOf('Conversion')]
              control = r[p.indexOf('Control')]
              if _is_complex(controller_pe):
                  continue
              members_in = self._get_complex_members(input_pe)
              members_out = self._get_complex_members(output_pe)
              if not (members_in and members_out):
                  continue
              if len(members_out) != 2:
                  continue
              gtp_in = False
              for member in members_in:
                  if isinstance(member, Agent) and member.name == 'GTP':
                      gtp_in = True
              gdp_out = False
              for member in members_out:
                  if isinstance(member, Agent) and member.name == 'GDP':
                      gdp_out = True
              if not (gtp_in and gdp_out):
                  continue
              ras_list = self._get_agents_from_entity(input_spe)
              gap_list = self._get_agents_from_entity(controller_pe)
              ev = self._get_evidence(control)
              for gap, ras in itertools.product(_listify(gap_list),
                                                 _listify(ras_list)):
                  st = Gap(gap, ras, evidence=ev)
                  st_dec = decode_obj(st, encoding='utf-8')
                  self.statements.append(st_dec)