< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page

561   bool is_subclass_of(const Klass* k) const;
562 
563   // subtype check: true if is_subclass_of, or if k is interface and receiver implements it
564   bool is_subtype_of(Klass* k) const;
565 
566 public:
567   // Find LCA in class hierarchy
568   Klass *LCA( Klass *k );
569 
570   // Check whether reflection/jni/jvm code is allowed to instantiate this class;
571   // if not, throw either an Error or an Exception.
572   virtual void check_valid_for_instantiation(bool throwError, TRAPS);
573 
574   // array copying
575   virtual void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
576 
577   // tells if the class should be initialized
578   virtual bool should_be_initialized() const    { return false; }
579   // initializes the klass
580   virtual void initialize(TRAPS);

581   virtual Klass* find_field(Symbol* name, Symbol* signature, fieldDescriptor* fd) const;
582   virtual Method* uncached_lookup_method(const Symbol* name, const Symbol* signature,
583                                          OverpassLookupMode overpass_mode,
584                                          PrivateLookupMode = PrivateLookupMode::find) const;
585  public:
586   Method* lookup_method(const Symbol* name, const Symbol* signature) const {
587     return uncached_lookup_method(name, signature, OverpassLookupMode::find);
588   }
589 
590   // array class with specific rank
591   virtual ArrayKlass* array_klass(int rank, TRAPS) = 0;
592 
593   // array class with this klass as element type
594   virtual ArrayKlass* array_klass(TRAPS) = 0;
595 
596   // These will return null instead of allocating on the heap:
597   virtual ArrayKlass* array_klass_or_null(int rank) = 0;
598   virtual ArrayKlass* array_klass_or_null() = 0;
599 
600   virtual oop protection_domain() const = 0;

561   bool is_subclass_of(const Klass* k) const;
562 
563   // subtype check: true if is_subclass_of, or if k is interface and receiver implements it
564   bool is_subtype_of(Klass* k) const;
565 
566 public:
567   // Find LCA in class hierarchy
568   Klass *LCA( Klass *k );
569 
570   // Check whether reflection/jni/jvm code is allowed to instantiate this class;
571   // if not, throw either an Error or an Exception.
572   virtual void check_valid_for_instantiation(bool throwError, TRAPS);
573 
574   // array copying
575   virtual void  copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
576 
577   // tells if the class should be initialized
578   virtual bool should_be_initialized() const    { return false; }
579   // initializes the klass
580   virtual void initialize(TRAPS);
581   virtual void initialize_preemptable(TRAPS);
582   virtual Klass* find_field(Symbol* name, Symbol* signature, fieldDescriptor* fd) const;
583   virtual Method* uncached_lookup_method(const Symbol* name, const Symbol* signature,
584                                          OverpassLookupMode overpass_mode,
585                                          PrivateLookupMode = PrivateLookupMode::find) const;
586  public:
587   Method* lookup_method(const Symbol* name, const Symbol* signature) const {
588     return uncached_lookup_method(name, signature, OverpassLookupMode::find);
589   }
590 
591   // array class with specific rank
592   virtual ArrayKlass* array_klass(int rank, TRAPS) = 0;
593 
594   // array class with this klass as element type
595   virtual ArrayKlass* array_klass(TRAPS) = 0;
596 
597   // These will return null instead of allocating on the heap:
598   virtual ArrayKlass* array_klass_or_null(int rank) = 0;
599   virtual ArrayKlass* array_klass_or_null() = 0;
600 
601   virtual oop protection_domain() const = 0;
< prev index next >