Package org.jruby
Class RubyClass.MethodReificator
java.lang.Object
org.jruby.RubyClass.BaseReificator
org.jruby.RubyClass.MethodReificator
- All Implemented Interfaces:
RubyClass.Reificator
- Direct Known Subclasses:
RubyClass.ConcreteJavaReifier
- Enclosing class:
- RubyClass
-
Field Summary
Fields inherited from class org.jruby.RubyClass.BaseReificator
cw, javaName, javaPath, jcc, reifiedParent, RUBY_CLASS_FIELD, RUBY_FIELD, rubyName, rubyPath -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidvoidprivate voiddefineClassMethods(Set<String> instanceMethods) private voidprotected StringdefineInstanceMethod(String id, String callid, Signature sig, PositionAware position, Class<?>[] methodSignature) protected voiddefineInstanceMethods(Set<String> instanceMethods) protected voidOverride to save more values from the array inreifyClinit(SkinnyMethodAdapter)protected voidprotected voidgenerateSuperBridges(String javaMethodName, Class<?>[] methodSignature) protected Object[]voidThis method generates <clinit> by marshaling the Ruby, RubyClass, etc variables through a static map identified by integer in JavaProxyClass.protected Collection<Class<?>[]>protected Collection<Class<?>[]>searchInheritedSignatures(String id, Signature arity) Methods inherited from class org.jruby.RubyClass.BaseReificator
allocAndInitialize, isRubyObject, join, loadRubyObject, reify, reifyConstructors, rubycall
-
Constructor Details
-
MethodReificator
-
-
Method Details
-
customReify
public void customReify()- Specified by:
customReifyin classRubyClass.BaseReificator
-
addClassAnnotations
private void addClassAnnotations() -
defineFields
private void defineFields() -
defineClassMethods
-
defineInstanceMethods
-
defineInstanceMethod
-
generateSuperBridges
-
reifyClinit
This method generates <clinit> by marshaling the Ruby, RubyClass, etc variables through a static map identified by integer in JavaProxyClass. Integers are serializable through bytecode generation so we can share arbitrary objects with the generated class by saving them ingetExtraClinitInfo()viaJavaProxyClass.addStaticInitLookup(Object...)andJavaProxyClass.getStaticInitLookup(int)- Specified by:
reifyClinitin classRubyClass.BaseReificator
-
getExtraClinitInfo
-
extraClinitLookup
Override to save more values from the array inreifyClinit(SkinnyMethodAdapter) -
searchInheritedSignatures
-
searchClassMethods
-
generateObjectBarrier
-