String className = ((XField) o).getClassName(); if (className.startsWith("java")) {  return null; }
className = ((XField) o).getClassName();
	public Annotation getResolvedAnnotation(final Object o, boolean getMinimal) {		Annotation n = directAnnotations.get(o);		if (n != null)			return n;		try {			JavaClass c;			String kind;			if (o instanceof XMethod || o instanceof XMethodParameter) {								XMethod m;				if (o instanceof XMethod) {					m = (XMethod) o;					kind = METHOD;				} else if (o instanceof XMethodParameter) {					m = ((XMethodParameter) o).getMethod();					kind = PARAMETER;				} else					throw new IllegalStateException("impossible");				if (m.getClassName().startsWith("java")) {					// TODO: none of these are annotated					return null;				}				c = Repository.lookupClass(m.getClassName());				if (!m.isStatic() && !m.isPrivate() && !m.getName().equals("<init>")) {					// get inherited annotation					TreeSet<Annotation> inheritedAnnotations = new TreeSet<Annotation>();					if (c.getSuperclassNameIndex() > 0) {												n = lookInOverriddenMethod(o, c.getSuperclassName(), m, getMinimal);						if (n != null)							inheritedAnnotations.add(n);					}					for(String implementedInterface : c.getInterfaceNames()) {						n = lookInOverriddenMethod(o, implementedInterface, m, getMinimal);						if (n != null)							inheritedAnnotations.add(n);					}					if (DEBUG) System.out.println("# of inherited annotations : " + inheritedAnnotations.size());					if (!inheritedAnnotations.isEmpty()) {						if (inheritedAnnotations.size() == 1) 							return inheritedAnnotations.first();						if (!getMinimal) 							return inheritedAnnotations.last();												Annotation min = inheritedAnnotations.first();						if (min.getIndex() == 0) {							inheritedAnnotations.remove(min);							min = inheritedAnnotations.first();						}						return min;					}									} // if not static				} // associated with method			 else if (o instanceof XField) {								String className = ((XField) o).getClassName();				if (className.startsWith("java")) {					// TODO: None of these are annotated					return null;				}				c = Repository.lookupClass(className);				kind = FIELD;			} else				throw new IllegalArgumentException(						"Can't lookup annotation for " + o.getClass().getName());			// look for default annotation			n = defaultAnnotation.get(kind).get(c);			if (DEBUG) 				System.out.println("Default annotation for " + kind + " is " + n);			if (n != null)				return n;			n = defaultAnnotation.get(ANY).get(c);			if (DEBUG) 				System.out.println("Default annotation for any is " + n);			if (n != null)				return n;			String cName = c.getClassName();			int p = cName.lastIndexOf('.');			cName = cName.substring(0,p+1) + "package-info";			c = Repository.lookupClass(cName);			n = defaultAnnotation.get(kind).get(c);			if (DEBUG) 				System.out.println("Default annotation for " + kind + " is " + n);			if (n != null)				return n;			n = defaultAnnotation.get(ANY).get(c);			if (DEBUG) 				System.out.println("Default annotation for any is " + n);			if (n != null)				return n;												return n;		} catch (ClassNotFoundException e) {			// ignore it			return null;		}	}