585 }; 586 587 588 // Interface to java.lang.reflect.Method objects 589 590 class java_lang_reflect_Method : public java_lang_reflect_AccessibleObject { 591 private: 592 // Note that to reduce dependencies on the JDK we compute these 593 // offsets at run-time. 594 static int clazz_offset; 595 static int name_offset; 596 static int returnType_offset; 597 static int parameterTypes_offset; 598 static int exceptionTypes_offset; 599 static int slot_offset; 600 static int modifiers_offset; 601 static int signature_offset; 602 static int annotations_offset; 603 static int parameter_annotations_offset; 604 static int annotation_default_offset; 605 static int type_annotations_offset; 606 607 static void compute_offsets(); 608 609 public: 610 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 611 612 // Allocation 613 static Handle create(TRAPS); 614 615 // Accessors 616 static oop clazz(oop reflect); 617 static void set_clazz(oop reflect, oop value); 618 619 static oop name(oop method); 620 static void set_name(oop method, oop value); 621 622 static oop return_type(oop method); 623 static void set_return_type(oop method, oop value); 624 625 static oop parameter_types(oop method); 626 static void set_parameter_types(oop method, oop value); 627 628 static oop exception_types(oop method); 629 static void set_exception_types(oop method, oop value); 630 631 static int slot(oop reflect); 632 static void set_slot(oop reflect, int value); 633 634 static int modifiers(oop method); 635 static void set_modifiers(oop method, int value); 636 637 static bool has_signature_field(); 638 static oop signature(oop method); 639 static void set_signature(oop method, oop value); 640 641 static bool has_annotations_field(); 642 static oop annotations(oop method); 643 static void set_annotations(oop method, oop value); 644 645 static bool has_parameter_annotations_field(); 646 static oop parameter_annotations(oop method); 647 static void set_parameter_annotations(oop method, oop value); 648 649 static bool has_annotation_default_field(); 650 static oop annotation_default(oop method); 651 static void set_annotation_default(oop method, oop value); 652 653 static bool has_type_annotations_field(); 654 static oop type_annotations(oop method); 655 static void set_type_annotations(oop method, oop value); 656 657 // Debugging 658 friend class JavaClasses; 659 }; 660 661 662 // Interface to java.lang.reflect.Constructor objects 663 664 class java_lang_reflect_Constructor : public java_lang_reflect_AccessibleObject { 665 private: 666 // Note that to reduce dependencies on the JDK we compute these 667 // offsets at run-time. 668 static int clazz_offset; 669 static int parameterTypes_offset; 670 static int exceptionTypes_offset; 671 static int slot_offset; 672 static int modifiers_offset; 673 static int signature_offset; 674 static int annotations_offset; 675 static int parameter_annotations_offset; 676 static int type_annotations_offset; 677 678 static void compute_offsets(); 679 680 public: 681 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 682 683 // Allocation 684 static Handle create(TRAPS); 685 686 // Accessors 687 static oop clazz(oop reflect); 688 static void set_clazz(oop reflect, oop value); 689 690 static oop parameter_types(oop constructor); 691 static void set_parameter_types(oop constructor, oop value); 692 693 static oop exception_types(oop constructor); 694 static void set_exception_types(oop constructor, oop value); 695 696 static int slot(oop reflect); 697 static void set_slot(oop reflect, int value); 698 699 static int modifiers(oop constructor); 700 static void set_modifiers(oop constructor, int value); 701 702 static bool has_signature_field(); 703 static oop signature(oop constructor); 704 static void set_signature(oop constructor, oop value); 705 706 static bool has_annotations_field(); 707 static oop annotations(oop constructor); 708 static void set_annotations(oop constructor, oop value); 709 710 static bool has_parameter_annotations_field(); 711 static oop parameter_annotations(oop method); 712 static void set_parameter_annotations(oop method, oop value); 713 714 static bool has_type_annotations_field(); 715 static oop type_annotations(oop constructor); 716 static void set_type_annotations(oop constructor, oop value); 717 718 // Debugging 719 friend class JavaClasses; 720 }; 721 722 723 // Interface to java.lang.reflect.Field objects 724 725 class java_lang_reflect_Field : public java_lang_reflect_AccessibleObject { 726 private: 727 // Note that to reduce dependencies on the JDK we compute these 728 // offsets at run-time. 729 static int clazz_offset; 730 static int name_offset; 731 static int type_offset; 732 static int slot_offset; 733 static int modifiers_offset; 734 static int signature_offset; 735 static int annotations_offset; 736 static int type_annotations_offset; 737 738 static void compute_offsets(); 739 740 public: 741 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 742 743 // Allocation 744 static Handle create(TRAPS); 745 746 // Accessors 747 static oop clazz(oop reflect); 748 static void set_clazz(oop reflect, oop value); 749 750 static oop name(oop field); 751 static void set_name(oop field, oop value); 752 753 static oop type(oop field); 754 static void set_type(oop field, oop value); 755 756 static int slot(oop reflect); 757 static void set_slot(oop reflect, int value); 758 759 static int modifiers(oop field); 760 static void set_modifiers(oop field, int value); 761 762 static bool has_signature_field(); 763 static oop signature(oop constructor); 764 static void set_signature(oop constructor, oop value); 765 766 static bool has_annotations_field(); 767 static oop annotations(oop constructor); 768 static void set_annotations(oop constructor, oop value); 769 770 static bool has_parameter_annotations_field(); 771 static oop parameter_annotations(oop method); 772 static void set_parameter_annotations(oop method, oop value); 773 774 static bool has_annotation_default_field(); 775 static oop annotation_default(oop method); 776 static void set_annotation_default(oop method, oop value); 777 778 static bool has_type_annotations_field(); 779 static oop type_annotations(oop field); 780 static void set_type_annotations(oop field, oop value); 781 782 // Debugging 783 friend class JavaClasses; 784 }; 785 786 class java_lang_reflect_Parameter { 787 private: 788 // Note that to reduce dependencies on the JDK we compute these 789 // offsets at run-time. 790 static int name_offset; 791 static int modifiers_offset; 792 static int index_offset; 793 static int executable_offset; 794 795 static void compute_offsets(); 796 797 public: 798 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 799 800 // Allocation | 585 }; 586 587 588 // Interface to java.lang.reflect.Method objects 589 590 class java_lang_reflect_Method : public java_lang_reflect_AccessibleObject { 591 private: 592 // Note that to reduce dependencies on the JDK we compute these 593 // offsets at run-time. 594 static int clazz_offset; 595 static int name_offset; 596 static int returnType_offset; 597 static int parameterTypes_offset; 598 static int exceptionTypes_offset; 599 static int slot_offset; 600 static int modifiers_offset; 601 static int signature_offset; 602 static int annotations_offset; 603 static int parameter_annotations_offset; 604 static int annotation_default_offset; 605 606 static void compute_offsets(); 607 public: 608 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 609 610 // Allocation 611 static Handle create(TRAPS); 612 613 // Accessors 614 static oop clazz(oop reflect); 615 static void set_clazz(oop reflect, oop value); 616 617 static void set_name(oop method, oop value); 618 619 static oop return_type(oop method); 620 static void set_return_type(oop method, oop value); 621 622 static oop parameter_types(oop method); 623 static void set_parameter_types(oop method, oop value); 624 625 static int slot(oop reflect); 626 static void set_slot(oop reflect, int value); 627 628 static void set_exception_types(oop method, oop value); 629 static void set_modifiers(oop method, int value); 630 static void set_signature(oop method, oop value); 631 static void set_annotations(oop method, oop value); 632 static void set_parameter_annotations(oop method, oop value); 633 static void set_annotation_default(oop method, oop value); 634 635 // Debugging 636 friend class JavaClasses; 637 }; 638 639 640 // Interface to java.lang.reflect.Constructor objects 641 642 class java_lang_reflect_Constructor : public java_lang_reflect_AccessibleObject { 643 private: 644 // Note that to reduce dependencies on the JDK we compute these 645 // offsets at run-time. 646 static int clazz_offset; 647 static int parameterTypes_offset; 648 static int exceptionTypes_offset; 649 static int slot_offset; 650 static int modifiers_offset; 651 static int signature_offset; 652 static int annotations_offset; 653 static int parameter_annotations_offset; 654 655 static void compute_offsets(); 656 public: 657 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 658 659 // Allocation 660 static Handle create(TRAPS); 661 662 // Accessors 663 static oop clazz(oop reflect); 664 static void set_clazz(oop reflect, oop value); 665 666 static oop parameter_types(oop constructor); 667 static void set_parameter_types(oop constructor, oop value); 668 669 static int slot(oop reflect); 670 static void set_slot(oop reflect, int value); 671 672 static void set_exception_types(oop constructor, oop value); 673 static void set_modifiers(oop constructor, int value); 674 static void set_signature(oop constructor, oop value); 675 static void set_annotations(oop constructor, oop value); 676 static void set_parameter_annotations(oop method, oop value); 677 678 // Debugging 679 friend class JavaClasses; 680 }; 681 682 683 // Interface to java.lang.reflect.Field objects 684 685 class java_lang_reflect_Field : public java_lang_reflect_AccessibleObject { 686 private: 687 // Note that to reduce dependencies on the JDK we compute these 688 // offsets at run-time. 689 static int clazz_offset; 690 static int name_offset; 691 static int type_offset; 692 static int slot_offset; 693 static int modifiers_offset; 694 static int signature_offset; 695 static int annotations_offset; 696 697 static void compute_offsets(); 698 699 public: 700 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 701 702 // Allocation 703 static Handle create(TRAPS); 704 705 // Accessors 706 static oop clazz(oop reflect); 707 static void set_clazz(oop reflect, oop value); 708 709 static oop name(oop field); 710 static void set_name(oop field, oop value); 711 712 static oop type(oop field); 713 static void set_type(oop field, oop value); 714 715 static int slot(oop reflect); 716 static void set_slot(oop reflect, int value); 717 718 static int modifiers(oop field); 719 static void set_modifiers(oop field, int value); 720 721 static void set_signature(oop constructor, oop value); 722 static void set_annotations(oop constructor, oop value); 723 static void set_parameter_annotations(oop method, oop value); 724 static void set_annotation_default(oop method, oop value); 725 726 // Debugging 727 friend class JavaClasses; 728 }; 729 730 class java_lang_reflect_Parameter { 731 private: 732 // Note that to reduce dependencies on the JDK we compute these 733 // offsets at run-time. 734 static int name_offset; 735 static int modifiers_offset; 736 static int index_offset; 737 static int executable_offset; 738 739 static void compute_offsets(); 740 741 public: 742 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; 743 744 // Allocation |