// NOTE that there is no synchronization used here. It is correct // (though not efficient) to generate more than one // ConstructorAccessor for a given Constructor. However, avoiding // synchronization will probably make the implementation more // scalable. private ConstructorAccessor AcquireConstructorAccessor() { // First check to see if one has been created yet, and take it // if so. ConstructorAccessor tmp = AnnotatedElement_Fields.Null; if (Root_Renamed != AnnotatedElement_Fields.Null) { tmp = Root_Renamed.ConstructorAccessor; } if (tmp != AnnotatedElement_Fields.Null) { ConstructorAccessor_Renamed = tmp; } else { // Otherwise fabricate one and propagate it up to the root tmp = ReflectionFactory.newConstructorAccessor(this); ConstructorAccessor = tmp; } return(tmp); }