vals.add( new GrouperList( this.s, gl.group(), glM.member(), gl.groupField(), chain ) );
GrouperList lv = new GrouperList( this.s, gl.group(), glM.member(), gl.groupField(), chain ); vals.add(lv); log.debug("mship/hasMember: " + lv);
  private List _addHasMembers(GrouperList gl, List isMem) {    GrouperList.validate(gl);    List vals = new ArrayList();    Group g = gl.member().toGroup();    // We only want "members", not other list types    Iterator hasIter = g.listVals().iterator();    while (hasIter.hasNext()) {      GrouperList glM = (GrouperList) hasIter.next();      glM.load(this.s);      List chain = new ArrayList();      // TODO Is this correct?  More tests needed.      chain.addAll( glM.chain() );        // Add the chain leading to m      chain.add( MemberVia.create(gl) );  // Add gl      // Add m's members to g      vals.add(        new GrouperList(              this.s, gl.group(), glM.member(), gl.groupField(), chain            )        );      // And now add to where g is a member      vals.addAll( this._addWhereIsMem(glM, gl, isMem) );    }    return vals;  }