eff.setUuid( GrouperUuid.getUuid() );
  protected static Membership newEffectiveMembership(    GrouperSession s, Membership ms, Membership hasMS, int offset  )    throws  GroupNotFoundException,            MemberNotFoundException  {     Membership eff = new Membership();    eff.s = s;    try {      eff.setOwner_id(  ms.getGroup().getUuid()       );  // original g    }    catch (GroupNotFoundException eGNF) {      try {        eff.setOwner_id( ms.getStem().getUuid()       );      }      catch (StemNotFoundException eNSNF) {        String err = ERR_NO + ms;        LOG.fatal(err);        throw new RuntimeException(err);      }    }    eff.setMember_id( hasMS.getMember()             );  // hasMember m    eff.setField(     ms.getList()                  );  // original f    eff.setDepth(                                       // increment the depth      ms.getDepth() + hasMS.getDepth() + offset             );    if (hasMS.getDepth() == 0) {      eff.setVia_id(  hasMS.getGroup().getUuid()    );  // hasMember m was immediate    }    else {      eff.setVia_id(  hasMS.getViaGroup().getUuid() );  // hasMember m was effective    }     eff.setParent_membership(ms);                       // ms is parent membership    GrouperLog.debug(LOG, s, "newEffectiveMembership: " + eff);    return eff;         } // protected static Membership newEffectiveMembership(s, ms, hasMS)