this.attrs.put( "name"              , g.getName() );
Map       attrs = g.getAttributes(); Iterator  iter  = attrs.keySet().iterator(); while (iter.hasNext()) { String key = (String) iter.next(); this._addAttr(key, (String) attrs.get(key));  } GrouperLog.debug(LOG, this.name, "attached attributes: " + this.attrs.size());
  private void _addAttrs(Group g) {    // TODO Ideally I wouldn't just iterate through the appropriate items in    //      the fields list but I think I need more logic than that    try {      // Don't bother with any of the create* attrs unless we can find      // the creating subject      Subject creator = g.getCreateSubject();      this._addAttr("createSubjectId"   , creator.getId()               );      this._addAttr("createSubjectType" , creator.getType().getName()   );      this._addAttr("createTime"        , g.getCreateTime().toString()  );     }    catch (SubjectNotFoundException eSNF0) {      // No creator?    }    this._addAttr("description"         , g.getDescription()            );    this._addAttr("displayExtension"    , g.getDisplayExtension()       );    this._addAttr("displayName"         , g.getDisplayName()            );    this._addAttr("extension"           , g.getExtension()              );    try {      // Don't bother with any of the modify* attrs unless we can find      // the modifying subject      Subject modifier = g.getModifySubject();      this._addAttr("modifySubjectId"   , modifier.getId()              );      this._addAttr("modifySubjectType" , modifier.getType().getName()  );      this._addAttr("modifyTime"        , g.getModifyTime().toString()  );     }    catch (SubjectNotFoundException eSNF1) {      // No modifier?    }    this.attrs.put(      "name"              , g.getName()    );    // TODO Attach custom attributes    // TODO Attach lists.  "list name" => [ subjectids? ]  } // private void _addAttrs(g)