mLogger.error("Value of annotation member "+memberName+" is " +
mContext.getLogger().error("Value of annotation member "+memberName+" is " +
  private void setAnnotationValue(String memberName,                                  Type returnType,                                  AnnotationValue aval,                                  MAnnotation dest,                                  SourcePosition sp) {    String typeName = getFdFor(returnType);    Object valueObj;    try {      valueObj = aval.value();    } catch(NullPointerException npe) {      //FIXME temporary workaround for sun bug      mLogger.warning        ("Encountered a known javadoc bug which usually \n"+         "indicates a syntax error in an annotation value declaration.\n"+         "The value is being ignored.\n"+         "[file="+sp.file()+", line="+sp.line()+"]");      return;    }    if (mLogger.isVerbose(this)) {      mLogger.verbose(memberName+" is a "+typeName+" with valueObj "+                                   valueObj+", class is "+valueObj.getClass());    }    // ok, take a look at how what it really is and translate it into an    // appropriate represenatation    if (valueObj instanceof AnnotationDesc) {      MAnnotation nested = dest.createNestedValue(memberName,typeName);      populateAnnotation(nested,(AnnotationDesc)valueObj,sp);    } else if (valueObj instanceof Number || valueObj instanceof Boolean) {      String tn = JavadocClassBuilder.getFdFor(returnType);      JClass type = mClassLoader.loadClass(tn);      dest.setSimpleValue(memberName,valueObj,type);    } else if (valueObj instanceof FieldDoc) {      String tn = JavadocClassBuilder.getFdFor(((FieldDoc)valueObj).containingClass());      // this means it's an enum constant      JClass type = mClassLoader.loadClass(tn);      String val = ((FieldDoc)valueObj).name(); //REVIEW is this right?      dest.setSimpleValue(memberName,val,type);    } else if (valueObj instanceof ClassDoc) {      String tn = JavadocClassBuilder.getFdFor(((FieldDoc)valueObj).containingClass());       JClass clazz = mClassLoader.loadClass(tn);      dest.setSimpleValue(memberName,clazz,loadClass(JClass.class));    } else if (valueObj instanceof String) {      String v = ((String)valueObj).trim();      if (v.startsWith("\"") && v.endsWith("\"")) {        //javadoc gives us the quotes, which seems kinda dumb.  just deal.        valueObj = v.substring(1,v.length()-1);      }      dest.setSimpleValue(memberName,valueObj,loadClass(String.class));    } else if (valueObj instanceof AnnotationValue[]) {      populateArrayMember(dest,memberName,returnType,(AnnotationValue[])valueObj,sp);    } else {      mLogger.error("Value of annotation member "+memberName+" is " +                                 "of an unexpected type: "+                                 valueObj.getClass()+"   ["+valueObj+"]");    }  }