this.s, group, glM.member(), glM.groupField()
this.s, group, glM.member(), gl.groupField()
  private List _addWhereIsMem(GrouperList gl, List isMem) {    List vals = new ArrayList();    Iterator iter = isMem.iterator();    while (iter.hasNext()) {      GrouperList glM = (GrouperList) iter.next();      glM.load(this.s);      List chain = new ArrayList();      // TODO Is this correct?  More tests needed.      chain.addAll( gl.chain() );   // Add the chain leading to gl      // Add g's mship.  If immediate, the values in glM are fine.  If      // eff, we want the immediate mship that causes the eff mship.      Group group = glM.group();      if (glM.via() != null) {        group = glM.via();      }      chain.add(         new MemberVia(          new GrouperList(            this.s, group, glM.member(), glM.groupField()          )        )      );      chain.addAll( glM.chain() );  // Add the chain leading to g's mship              // Add m to where g is a member      vals.add(        new GrouperList(              this.s, glM.group(), gl.member(), gl.groupField(), chain            )        );    }    return vals;  }