dbSess, subj.getId(), subj.getSubjectType().getId()
subj.getId(), subj.getSubjectType().getId()
  public static GrouperMember load(Subject subj) {    DbSess dbSess = new DbSess();    // Attempt to load an already existing member    GrouperMember m = loadByIdAndType(dbSess, subj);    if (m == null) {      /*       * If the subject is valid but a matching member object does not       * exist, create a new one, assign a key, etc.       */       // TODO Is there a reason why I am not just passing in the      //      `subjectID' and `subjectTypeID' passed as params to      //      this method?      m = new GrouperMember(                dbSess, subj.getId(), subj.getSubjectType().getId()              );      // Give it a private UUID      m.setMemberKey( new GrouperUUID().toString() );      // Give it a public UUID      m.setMemberID(  new GrouperUUID().toString() );      // Save the new member object      m.save(dbSess);      Grouper.log().memberAdd(m, subj);    }     dbSess.stop();    return m;  }