docs: private void addMembers(Collection memberNames, HashMap members, XClass type, String tagName, String paramName, String paramValue) throws XDocletException
      {
          if (!type.isInterface() && (type.getFields() != null)) {
              XField field;
  
              for (Iterator it = type.getFields().iterator(); it.hasNext(); ) {
                  field = (XField)it.next();
                  if (!field.isFinal() && !field.isStatic() && !field.isTransient()) {
                      if (checkTagAndParam(field.getDoc(), tagName, paramName, paramValue)) {
                          // already processed ?
                          if (!members.containsKey(field.getName())) {
                              memberNames.add(field.getName());
                              members.put(field.getName(), field);
                          }
                      }
                  }
              }
          }
  
          if (type.getMethods() != null) {
              XMethod method;
              String propertyName;
  
              for (Iterator it = type.getMethods().iterator(); it.hasNext(); ) {
                  method = (XMethod)it.next();
                  if (!method.isConstructor() && !method.isNative() && !method.isStatic()) {
                      if (checkTagAndParam(method.getDoc(), tagName, paramName, paramValue)) {
                          if (MethodTagsHandler.isGetterMethod(method) || MethodTagsHandler.isSetterMethod(method)) {
                              propertyName = MethodTagsHandler.getPropertyNameFor(method);
                              if (!members.containsKey(propertyName)) {
                                  memberNames.add(propertyName);
                                  members.put(propertyName, method);
                              }
                          }
                      }
                  }
              }
          }
      }