code: static <T extends Annotation> T pullAnnotation(AnnotatedElement theTarget, Class<T> theAnnotationType) {
  		T retVal = theTarget.getAnnotation(theAnnotationType);
  		return retVal;
  	}
docs: There are two implementations of all of the annotations (e.g. {@link Child} since the HL7.org ones will eventually replace the HAPI
  ones. Annotations can't extend each other or implement interfaces or anything like that, so rather than duplicate all of the annotation processing code this method just creates an interface
  Proxy to simulate the HAPI annotations if the HL7.org ones are found instead.