GrouperLog.debug(LOG, s, "newEffectiveMembership: " + eff);
  protected static Membership newEffectiveMembership(    GrouperSession s, Membership ms, Membership hasMS, int offset  )    throws  GroupNotFoundException,            MemberNotFoundException  {     Membership eff = new Membership();    eff.s = s;    eff.setUuid(      GrouperUuid.getUuid()         );  // assign uuid    eff.setOwner_id(  ms.getOwner_id()              );  // original owner    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.getOwner_id()           );  // hasMember m was immediate    }    else {      eff.setVia_id(  hasMS.getVia_id()             );  // 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)