if (isVerbose) mLogger.verbose("type is "+annType.getName());
if (isVerbose) mContext.getLogger().verbose("type is "+annType.getName());
  private void populateAnnotation(MAnnotation dest, Annotation src) {    boolean isVerbose = mLogger.isVerbose(this);    if (src == null) throw new IllegalArgumentException();    Class annType = src.annotationType();    if (isVerbose) mLogger.verbose("type is "+annType.getName());    //FIXME this is a bit clumsy right now - I think we need to be a little    // more surgical in identifying the annotation member methods    Method[] methods = annType.getMethods();    for(int i=0; i<methods.length; i++) {      if (isVerbose) mLogger.verbose("examining "+methods[i].toString());      int mods = methods[i].getModifiers();      if (Modifier.isStatic(mods)) continue;      if (!Modifier.isPublic(mods)) continue;      if (methods[i].getParameterTypes().length > 0) continue;      {        // try to limit it to real annotation methods.        // FIXME seems like this could be better        Class c = methods[i].getDeclaringClass();        if (Object.class.equals(c) || Annotation.class.equals(c)) {          continue;        }      }      try {        if (isVerbose) mLogger.verbose("invoking "+methods[i].getName()+"()");        Object value = methods[i].invoke(src,(Object[])null);        if (isVerbose) mLogger.verbose("value is "+value);        if (value instanceof Annotation) {          if (isVerbose) mLogger.verbose("it's nested!!  creating for "+                                         methods[i].getName()+" and "+                                         annType.getName());          MAnnotation nested = dest.createNestedValue(methods[i].getName(),                                                      annType.getName());          nested.setAnnotationInstance(value);          populateAnnotation(nested,(Annotation)value);        } else if (value instanceof Annotation[]) {          Annotation[] anns = (Annotation[])value;          MAnnotation[] nested = dest.createNestedValueArray            (methods[i].getName(),             methods[i].getReturnType().getComponentType().getName(),             anns.length);          for(int j=0; j<anns.length; j++) populateAnnotation(nested[j],anns[j]);        } else {          JClass type = mClassLoader.            loadClass(methods[i].getReturnType().getName());          dest.setSimpleValue(methods[i].getName(),value,type);        }      } catch (IllegalAccessException e) {        mLogger.warning(e);      } catch (InvocationTargetException e) {        mLogger.warning(e);      }    }  }