Package org.jruby
Class PrependedModule
java.lang.Object
org.jruby.RubyBasicObject
org.jruby.RubyObject
org.jruby.RubyModule
org.jruby.RubyClass
org.jruby.PrependedModule
- All Implemented Interfaces:
Serializable,Cloneable,Comparable<IRubyObject>,DelegatedModule,InstanceVariables,InternalVariables,IRubyObject,CoreObjectType
This class is used as an intermediate superclass for Module#prepend. It takes over all
methods on the original module/class which is prepended and sets the originals methodLocation
to this class. The orignial type no longer has methods so it will look down its inheritance
chain to find them. The class which is actually prepended will be included onto the original
type. This original method holding type will be put beneath the prepend module.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jruby.RubyClass
RubyClass.ConcreteJavaReifier, RubyClass.CS_NAMESNested classes/interfaces inherited from class org.jruby.RubyModule
RubyModule.Autoload, RubyModule.AutoloadMethod, RubyModule.CacheEntryFactory, RubyModule.ConstantEntry, RubyModule.InvalidatorList<T>, RubyModule.JavaClassKindOf, RubyModule.KindOf, RubyModule.MethodClumper, RubyModule.ModuleKernelMethods, RubyModule.ProfilingCacheEntryFactory, RubyModule.RefinementMethods, RubyModule.RespondToMissingMethod, RubyModule.SourceLocation, RubyModule.SynchronizedCacheEntryFactory, RubyModule.WrapperCacheEntryFactoryNested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.DataNested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer -
Field Summary
Fields inherited from class org.jruby.RubyClass
CLASS_ALLOCATOR, CS_IDX_INITIALIZE, DEFAULT_OBJECT_MARSHAL, marshal, runtimeFields inherited from class org.jruby.RubyModule
baseName, BUILTIN_CONSTANT, cachedMethods, CACHEPROXY_F, classIndex, generation, generationObject, id, INCLUDED_INTO_REFINEMENT, includingHierarchies, index, IS_OVERLAID_F, kindOf, methodInvalidator, methodLocation, methods, MODULE_ALLOCATOR, NEEDSIMPL_F, NormalCacheEntryFactory, OMOD_SHARED, parent, REFINED_MODULE_F, SCOPE_CAPTURING_METHODS, superClass, TEMPORARY_NAMEFields inherited from class org.jruby.RubyObject
IVAR_INSPECTING_OBJECT_ALLOCATOR, OBJECT_ALLOCATOR, REIFYING_OBJECT_ALLOCATORFields inherited from class org.jruby.RubyBasicObject
ALL_F, BASICOBJECT_ALLOCATOR, COMPARE_BY_IDENTITY_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, metaClass, NEVER, NIL_F, STAMP_OFFSET, TAINTED_F, UNDEF, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, USER8_F, USER9_F, USERA_F, VAR_TABLE_OFFSET, varTable, varTableStampFields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY -
Constructor Summary
ConstructorsConstructorDescriptionPrependedModule(Ruby runtime, RubyClass superClass, RubyModule prependedClass) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMethod(ThreadContext context, String id, DynamicMethod method) protected RubyModule.ConstantEntryconstantEntryFetch(String name) protected IRubyObjectconstantTableRemove(String name) protected IRubyObjectconstantTableStore(String name, IRubyObject value) protected IRubyObjectconstantTableStore(String name, IRubyObject value, boolean hidden) protected IRubyObjectgetAutoloadConstant(ThreadContext context, String name, boolean forceLoad) protected Map<String, RubyModule.Autoload> AutoloadMap must be accessed after checking ConstantMap.protected Map<String, RubyModule.Autoload> protected Map<String, IRubyObject> protected Map<String, IRubyObject> getName(ThreadContext context) Generate a fully-qualified class name or a #-style name for anonymous and singleton classes.Deprecated.In an included or prepended module what is the ACTUAL module it represents?id()We don't want to reveal ourselves to Ruby code, so origin this operation.booleanisClass()Specifically polymorphic method that are meant to be overridden by classes to specify that they are classes in an easy way.booleanIs object immediate (def: Fixnum, Symbol, true, false, nil?).booleanisModule()Specifically polymorphic method that are meant to be overridden by modules to specify that they are modules in an easy way.booleanvoidsetMetaClass(RubyClass newRubyClass) Makes it possible to change the metaclass of an object.Methods inherited from class org.jruby.RubyClass
addClassAnnotation, addFieldAnnotation, addFieldSignature, addMethodAnnotation, addMethodSignature, addParameterAnnotation, addSubclass, allocate, allocate, allocator, attached_object, becomeSynchronized, checkInheritable, checkInheritable, checkMethodBasicDefinition, createBootstrapClass, finishClassClass, finishCreateClassClass, finvoke, finvoke, finvoke, finvoke, finvoke, finvoke, finvoke, finvoke, finvoke, finvoke, finvokeChecked, finvokeChecked, finvokeChecked, finvokeChecked, finvokeWithRefinements, finvokeWithRefinements, finvokeWithRefinements, finvokeWithRefinements, finvokeWithRefinements, getAllMethodSignatures, getAllocator, getBaseCallSite, getBaseCallSites, getClassAnnotations, getClassConfig, getClassRuntime, getExtraCallSites, getFFIHandleAccessorField, getFFIHandleAccessorForRead, getFFIHandleAccessorForWrite, getFieldAnnotations, getFieldSignatures, getIsReifiedExtendedJavaClass, getMarshal, getMethodAnnotations, getMethodSignatures, getNativeClassIndex, getObjectGroupAccessorField, getObjectGroupAccessorForRead, getObjectGroupAccessorForWrite, getObjectIdAccessorField, getParameterAnnotations, getPositionOrDefault, getRealClass, getRealModule, getReifiedClass, getReifiedJavaClass, getReifiedRubyClass, getSubclassesForRead, getVariableAccessorForRead, getVariableAccessorForWrite, getVariableAccessorsForRead, getVariableNames, getVariableTableCopy, getVariableTableManager, getVariableTableSize, getVariableTableSizeWithExtras, hasObjectID, inherit, inherited, initialize, initialize, initialize_copy, invalidateCacheDescendants, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeFrom, invokeInherited, invokePublic, isReifiable, isSingleton, marshal, marshal, marshalTo, marshalTo, marshalWith, nearestReifiedClass, newClass, newClass, newClass, newClass, newClass, newClass, newClass, newClass, newClassBootstrap, newInstance, newInstance, newInstance, newInstance, newInstance, newInstance, reifiedClass, reifiedClass, reify, reify, reify, reify, reifyWithAncestors, reifyWithAncestors, reifyWithAncestors, reifyWithAncestors, removeSubclass, replaceSubclass, setAllocator, setClassAllocator, setClassConfig, setMarshal, setReifiedClass, setRubyClassAllocator, setRubyStaticAllocator, smartDump, smartDump, smartLoadNewUser, smartLoadOldUser, subclasses, subclasses, subclasses, superclass, toJava, unmarshal, unmarshal, unmarshalFrom, unmarshalFromMethods inherited from class org.jruby.RubyModule
_module_function, _private, _protected, _public, addClassProvider, addIncludingHierarchy, addMethod, addMethodInternal, addMethodInternal, addMethodSymbols, addMethodSymbols, addModuleFunction, addReadAttribute, addReadWriteAttribute, addToCache, addToCache, addWriteAttribute, alias_method, aliasMethod, ancestors, ancestors, append_features, append_features, attr, attr_accessor, attr_accessor, attr_reader, attr_reader, attr_writer, autoload, autoload_p, autoload_p, autoloadingValue, autoloadingValue, baseName, checkForCyclicPrepend, checkFrozen, checkValidBindTargetFrom, class_variable_defined_p, class_variable_get, class_variable_get, class_variable_get19, class_variable_set, class_variable_set, class_variable_set19, class_variables, class_variables, classIndex, cloneMethods, cloneMethods, const_added, const_defined_p, const_defined_p, const_get, const_get, const_get, const_get, const_get_1_9, const_get_2_0, const_missing, const_set, const_set, const_source_location, constants, constants, constantsCommon, constantsCommon, constantTableContains, constantTableFetch, constantTableStore, constantTableStore, constDefined, constDefined, constDefinedAt, constDefinedAt, constDefinedFrom, constDefinedFrom, define_method, define_method, define_method, defineAlias, defineAlias, defineAliases, defineAnnotatedConstant, defineAnnotatedConstants, defineAnnotatedMethod, defineAnnotatedMethod, defineAnnotatedMethod, defineAnnotatedMethod, defineAnnotatedMethod, defineAnnotatedMethods, defineAnnotatedMethodsIndividually, defineAutoload, defineAutoload, defineClassUnder, defineClassUnder, defineClassUnder, defineConstant, defineConstant, defineConstant, defineConstantBootstrap, defineConstants, defineConstantsFrom, defineMethodFromBlock, defineMethodFromCallable, defineMethods, defineModuleUnder, defineModuleUnder, defineOrGetClassUnder, defineOrGetClassUnder, defineOrGetClassUnder, defineOrGetClassUnder, defineOrGetModuleUnder, defineOrGetModuleUnder, defineOrGetModuleUnder, deleteClassVariable, deleteConstant, deleteConstant, deprecate_constant, deprecate_constant, deprecateConstant, deprecateConstant, discoverInstanceVariables, ensureClassVariablesSettable, ensureConstantsSettable, equals, exportMethod, extend_object, extend_object, extended, fastFetchClassVariable, fastFetchConstant, fastGetClass, fastGetClassVar, fastGetConstant, fastGetConstant, fastGetConstantAt, fastGetConstantFrom, fastGetConstantFromConstMissing, fastGetConstantFromNoConstMissing, fastHasClassVariable, fastHasConstant, fastIsClassVarDefined, fastIsConstantDefined, fastSetClassVar, fastSetConstant, fastStoreClassVariable, fastStoreConstant, fetchClassVariable, fetchConstant, fetchConstant, fetchConstant, fetchConstant, fetchConstantEntry, fetchConstantEntry, findImplementer, finishAutoload, finishAutoload, finishCreateModuleClass, finishModuleClass, finishRefinementClass, freeze, getAncestorList, getAutoloadConstant, getAutoloadConstant, getAutoloadConstant, getAutoloadFile, getBaseName, getCachedMethods, getCacheProxy, getCacheToken, getClass, getClass, getClassIndex, getClassVar, getClassVar, getClassVar, getClassVar, getClassVariableNameList, getClassVarQuiet, getConstant, getConstant, getConstant, getConstant, getConstant, getConstant, getConstantAt, getConstantAt, getConstantAt, getConstantAt, getConstantAtSpecial, getConstantAtSpecial, getConstantFrom, getConstantFrom, getConstantFromConstMissing, getConstantFromConstMissing, getConstantFromNoConstMissing, getConstantFromNoConstMissing, getConstantFromNoConstMissing, getConstantFromNoConstMissing, getConstantMap, getConstantMapForWrite, getConstantNames, getConstantNames, getConstantNoConstMissing, getConstantNoConstMissing, getConstantNoConstMissing, getConstantNoConstMissing, getConstantNoConstMissing, getConstantNoConstMissing, getConstantNoConstMissingSkipAutoload, getConstantNoConstMissingSkipAutoload, getConstantNoConstMissingSKipAutoload, getConstantSourceLocation, getConstantSourceLocation, getConstantWithAutoload, getConstantWithAutoload, getGeneration, getGenerationObject, getIdTest, getIncludingHierarchiesForWrite, getInvalidator, getJavaProxy, getMethodLocation, getMethods, getMethodsForWrite, getModule, getModule, getName, getParent, getRefinements, getRefinementsForWrite, getSimpleName, getSimpleName, getStoredConstantList, getStoredConstantNameList, getSuperClass, hasAncestor, hasAutoload, hasClassVariable, hasConstant, hash, hashCode, hasInternalModuleVariable, hasModuleInHierarchy, hasModuleInPrepends, hasPrepends, include, include, include, include, include_p, included, included_modules, includeModule, includeModule, initialize, instance_method, instance_method, instance_methods, instance_methods, instance_methods19, instanceMethods, instanceMethods, instanceMethods, invalidateCacheDescendants, invalidateConstantCache, invalidateConstantCache, invalidateConstantCaches, invalidateCoreClasses, isClassVarDefined, isConstantDefined, isConstantDefined, isConstantDefined, isIncluded, isIncludedIntoRefinement, isInstance, isKindOfModule, isMethodBound, isMethodBound, isMethodBuiltin, isRefinement, isSame, isSameOrigin, isSynchronized, isValidConstantName, isValidConstantPath, kindOf, loadPopulatorFor, marshalTo, marshalTo, method_added, method_defined_p, method_defined_p, method_removed, method_undefined, methodAdded, mix, mix, module_eval, module_eval, module_eval, module_eval, module_eval, module_exec, module_exec, module_function, name, name, needsImplementer, nesting, newActivatedRefinementsMap, newIdTest, newIncludeClass, newMethod, newMethod, newMethod, newMethod, newMethod, newMethod, newMethod, newModule, newModule, newModule, newModule, newModuleBootstrap, newRefinementsMap, newRefinementsMap, op_cmp, op_cmp, op_eqq, op_equal, op_ge, op_ge, op_gt, op_gt, op_le, op_le, op_lt, op_lt, prepend, prepend_features, prepend_features, prepended, prependModule, prependModule, prependModule, private_class_method, private_class_method, private_constant, private_constant, private_instance_methods, private_instance_methods, private_method_defined, private_method_defined, protected_instance_methods, protected_instance_methods, protected_method_defined, protected_method_defined, public_class_method, public_class_method, public_constant, public_constant, public_instance_method, public_instance_method, public_instance_methods, public_instance_methods, public_instance_methods19, public_method_defined, public_method_defined, publicConstDefinedFrom, publicConstDefinedFrom, putAlias, putAlias, putAlias, putAlias, putMethod, putMethod, rbPrivate, rbProtected, rbPublic, refine, refined_class, refinements, remove_class_variable, remove_class_variable19, remove_const, remove_method, removeClassProvider, removeClassVariable, removeClassVariable, removeMethod, resolveRefinedMethod, resolveUndefConstant, respondsToMethod, respondsToMethod, retrieveMethod, ruby2_keywords, rubyBaseName, rubyBaseName, rubyName, rubyName, searchAncestor, searchInternalModuleVariable, searchMethod, searchMethodCommon, searchMethodEntryInner, searchMethodInner, searchMethodLateral, searchWithCache, searchWithCache, searchWithRefinements, set_temporary_name, setBaseName, setCacheProxy, setClassVar, setClassVar, setConstant, setConstant, setConstant, setConstant, setConstant, setConstant, setConstantQuiet, setConstantQuiet, setConstantVisibility, setConstantVisibility, setInternalModuleVariable, setJavaProxy, setMethodLocation, setMethodVisibility, setMethodVisibility, setParent, setRefinements, setSuperClass, singleton_class_p, storeClassVariable, storeClassVariable, storeConstant, storeConstant, storeConstant, storeConstant, storeConstant, superClass, superClass, symbolName, symbolName, syncClassVariables, syncConstants, tap, target, testModuleMatch, to_s, to_s, undef, undef_method, undefined_instance_method, undefinedMethodMessage, undefineMethod, undefMethods, updateGeneration, used_modules, used_refinements, using, usingModule, usingTemporaryName, validateClassVariable, validateClassVariable, validateClassVariable, validateClassVariable, validateConstant, validateConstant, validateConstantMethods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, dig, dig1, dig2, eqlInternal, equalInternal, finishObjectClass, inspect, puts, specificEval, toRubyString, toStringMethods inherited from class org.jruby.RubyBasicObject
addFinalizer, addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkCallMethod, checkStringType, cloneSetup, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, dataGetStruct, dataGetStructChecked, dataWrapStruct, decode, display, dup, dupFinalizer, dupSetup, ensureInstanceVariablesSettable, eql, eql_p, eql_p, equal_p, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, finishBasicObjectClass, forEachInstanceVariable, forEachInstanceVariableName, frozen_p, getCurrentContext, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMarshalVariableList, getMetaClass, getMetaClass, getNativeHandle, getNativeTypeIndex, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getSingletonClassCloneAndAttach, getSingletonClassCloneAndAttach, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInstanceVariables, hasInternalVariable, hasVariables, infectBy, initialize, initialize_copy, inspect, inspect, inspectHashCode, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval, instance_exec, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, isBuiltin, isFalse, isFrozen, isNil, isSpecialConst, isSpecialObject, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, makeMetaClass, makeMetaClassBootstrap, method, method, method, method_missing, methods, methods, nil_p, nonFixnumHashCode, nonFixnumHashCode, OBJ_INIT_COPY, objInitCopy, op_match, op_not, op_not_equal, op_not_match, private_methods, protected_methods, public_methods, rbClone, rbClone, rbInspect, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setNativeHandle, setTaint, setUntrusted, setVariable, singleton_method, singleton_method, singleton_method_added, singleton_method_removed, singleton_method_undefined, singleton_methods, singletonClass, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, trust, type, untaint, untrust, untrusted_p, validateInstanceVariable, validateInstanceVariable, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableRemove, variableTableStore, variableTableSync, yieldUnder, yieldUnderMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.jruby.runtime.builtin.IRubyObject
checkStringType19, dup, marshalLiveVariables
-
Constructor Details
-
PrependedModule
-
-
Method Details
-
isPrepended
public boolean isPrepended()- Overrides:
isPrependedin classRubyModule
-
isModule
public boolean isModule()Description copied from class:RubyBasicObjectSpecifically polymorphic method that are meant to be overridden by modules to specify that they are modules in an easy way.- Specified by:
isModulein interfaceIRubyObject- Overrides:
isModulein classRubyClass- Returns:
- true if an object is Ruby Module instance (note that it will return false for Ruby Classes).
-
isClass
public boolean isClass()Description copied from class:RubyBasicObjectSpecifically polymorphic method that are meant to be overridden by classes to specify that they are classes in an easy way.- Specified by:
isClassin interfaceIRubyObject- Overrides:
isClassin classRubyClass- Returns:
- true if an object is Ruby Class instance (note that it will return false for Ruby singleton classes).
-
isImmediate
public boolean isImmediate()Description copied from class:RubyBasicObjectIs object immediate (def: Fixnum, Symbol, true, false, nil?).- Specified by:
isImmediatein interfaceIRubyObject- Overrides:
isImmediatein classRubyBasicObject- Returns:
- boolean
-
setMetaClass
Description copied from class:RubyBasicObjectMakes it possible to change the metaclass of an object. In practice, this is a simple version of Smalltalks Become, except that it doesn't work when we're dealing with subclasses. In practice it's used to change the singleton/meta class used, without changing the "real" inheritance chain.- Overrides:
setMetaClassin classRubyBasicObject- Parameters:
newRubyClass- the meta class to set
-
getName
Description copied from class:RubyModuleGenerate a fully-qualified class name or a #-style name for anonymous and singleton classes. Ruby C equivalent = "classname"- Overrides:
getNamein classRubyModule- Returns:
- The generated class name
-
getOrigin
Description copied from class:RubyModuleIn an included or prepended module what is the ACTUAL module it represents?- Overrides:
getOriginin classRubyModule- Returns:
- the actual module of an included/prepended module.
-
getDelegate
- Specified by:
getDelegatein interfaceDelegatedModule- Overrides:
getDelegatein classRubyModule
-
getNonIncludedClass
Deprecated.- Overrides:
getNonIncludedClassin classRubyModule
-
id
We don't want to reveal ourselves to Ruby code, so origin this operation.- Specified by:
idin interfaceIRubyObject- Overrides:
idin classRubyBasicObject- Returns:
- the object id
-
addMethod
- Overrides:
addMethodin classRubyModule
-
getClassVariables
- Overrides:
getClassVariablesin classRubyModule
-
getClassVariablesForRead
- Overrides:
getClassVariablesForReadin classRubyModule
-
constantTableStore
- Overrides:
constantTableStorein classRubyModule
-
constantTableStore
- Overrides:
constantTableStorein classRubyModule
-
constantEntryFetch
- Overrides:
constantEntryFetchin classRubyModule
-
constantTableRemove
- Overrides:
constantTableRemovein classRubyModule
-
getAutoloadConstant
- Overrides:
getAutoloadConstantin classRubyModule
-
getAutoloadMap
Description copied from class:RubyModuleAutoloadMap must be accessed after checking ConstantMap. Checking UNDEF value in constantMap works as a guard. For looking up constant, check constantMap first then try to get an Autoload object from autoloadMap. For setting constant, update constantMap first and remove an Autoload object from autoloadMap.- Overrides:
getAutoloadMapin classRubyModule
-
getAutoloadMapForWrite
- Overrides:
getAutoloadMapForWritein classRubyModule
-