コード例 #1
0
        // 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);
        }