org.jruby
Class IncludedModuleWrapper
java.lang.Object
org.jruby.RubyObject
org.jruby.RubyModule
org.jruby.RubyClass
org.jruby.IncludedModuleWrapper
- All Implemented Interfaces:
- java.lang.Cloneable, IRubyObject
public final class IncludedModuleWrapper
- extends RubyClass
This class is used to provide an intermediate superclass for modules and classes that include
other modules. It inserts itself as the immediate superClass of the includer, but defers all
module methods to the actual superclass. Multiple of these intermediate superclasses can be
added for multiple included modules.
This allows the normal superclass-based searches (searchMethod, getConstant, etc) to traverse
the superclass ancestors as normal while the included modules do not actually show up in
direct inheritance traversal.
- See Also:
RubyModule
Methods inherited from class org.jruby.RubyClass |
allocate, callMethod, cloneClass, createBootstrapMetaClass, createClassClass, doClone, getAllocator, getMarshal, getNativeTypeIndex, getRuntime, inherited, inherited, inheritedBy, initialize_copy, isSingleton, marshal, marshalTo, newClass, newClass, newClass, newClassClass, newInstance, newSubClass, newSubClass, setMarshal, subclass, superclass, unmarshal, unmarshalFrom |
Methods inherited from class org.jruby.RubyModule |
addClassProvider, addMethod, addModuleFunction, alias_method, ancestors, append_features, attr_accessor, attr_reader, attr_writer, attr, class_variable_get, class_variable_set, class_variables, cloneMethods, const_defined, const_get, const_missing, const_set, constants, createModuleClass, define_method, defineAlias, defineClassUnder, defineConstant, defineFastMethod, defineFastMethod, defineFastModuleFunction, defineFastPrivateMethod, defineFastProtectedMethod, defineFastPublicModuleFunction, defineMethod, defineModuleFunction, defineModuleUnder, defineOrGetClassUnder, definePrivateMethod, definePublicModuleFunction, executeUnder, exportMethod, extend_object, extended, findImplementer, getAncestorList, getBaseName, getClass, getClassVar, getConstant, getConstantAt, getConstantFrom, getCRef, getParent, getSuperClass, hash, hashCode, hasModuleInHierarchy, include_p, include, included_modules, included, includeModule, initialize, instance_method, instance_methods, isClassVarDefined, isKindOfModule, isMethodBound, marshalTo, method_added, method_defined, method_removed, method_undefined, module_eval, module_function, name, nesting, newMethod, newModule, newModule, newModule, newModule, op_cmp, op_eqq, op_ge, op_gt, op_le, op_lt, private_class_method, private_instance_methods, private_method_defined, protected_instance_methods, protected_method_defined, public_class_method, public_instance_methods, public_method_defined, putMethod, rbPrivate, rbProtected, rbPublic, remove_class_variable, remove_const, remove_method, removeCachedMethod, removeClassProvider, removeCvar, removeMethod, retrieveMethod, searchMethod, setBaseName, setClassVar, setConstant, setMethodVisibility, setParent, setSuperClass, to_s, undef_method, undef, undefineMethod |
Methods inherited from class org.jruby.RubyObject |
addFinalizer, anyToString, asString, asSymbol, attachToObjectSpace, callInit, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethodMissing, callMethodMissing, callSuper, checkArrayType, checkFrozen, checkStringType, compilerCallMethod, compilerCallMethodWithIndex, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToString, convertToType, convertToType, convertToType, convertToTypeWithCheck, createObjectClass, dataGetStruct, dataWrapStruct, display, dup, eql, eqlInternal, equal, equalInternal, equals, evalSimple, evalUnder, evalWithBinding, extend, freeze, frozen, getInstanceVariable, getInstanceVariablesSnapshot, getJavaClass, getMetaClass, getSingletonClass, getSingletonClassClone, getType, id_deprecated, infectBy, inherited, initCopy, inspect, instance_eval, instance_exec, instance_of, instance_variable_get, instance_variable_set, instance_variables, instanceVariableNames, isFalse, isFrozen, isKindOf, isNil, isTaint, isTrue, kind_of, makeMetaClass, match, method, methods, nil_p, obj_equal, private_methods, protected_methods, public_methods, puts, rbClone, remove_instance_variable, removeFinalizers, removeInstanceVariable, respond_to, respondsTo, safeGetInstanceVariables, safeHasInstanceVariables, send, setFrozen, setInstanceVariable, setInstanceVariable, setTaint, singleton_methods, specificEval, taint, tainted, testFrozen, toString, trueFalseNil, trueFalseNil, type_deprecated, type, untaint |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
IncludedModuleWrapper
public IncludedModuleWrapper(Ruby runtime,
RubyClass superClass,
RubyModule delegate)
newIncludeClass
public IncludedModuleWrapper newIncludeClass(RubyClass superClass)
- Overridden newIncludeClass implementation to allow attaching future includes to the correct module
(i.e. the one to which this is attached)
- Overrides:
newIncludeClass
in class RubyModule
- Returns:
- The module wrapper
- See Also:
RubyModule.newIncludeClass(RubyClass)
isModule
public boolean isModule()
- Overrides:
isModule
in class RubyClass
isClass
public boolean isClass()
- Overrides:
isClass
in class RubyClass
isIncluded
public boolean isIncluded()
- Description copied from class:
RubyModule
- Is this module one that in an included one (e.g. an IncludedModuleWrapper).
- Overrides:
isIncluded
in class RubyModule
isImmediate
public boolean isImmediate()
- Specified by:
isImmediate
in interface IRubyObject
- Overrides:
isImmediate
in class RubyObject
- Returns:
setMetaClass
public void setMetaClass(RubyClass newRubyClass)
- Specified by:
setMetaClass
in interface IRubyObject
- Overrides:
setMetaClass
in class RubyObject
getMethods
public java.util.Map getMethods()
- Overrides:
getMethods
in class RubyModule
setMethods
public void setMethods(java.util.Map newMethods)
getInstanceVariables
public java.util.Map getInstanceVariables()
- Specified by:
getInstanceVariables
in interface IRubyObject
- Overrides:
getInstanceVariables
in class RubyObject
- Returns:
setInstanceVariables
public void setInstanceVariables(java.util.Map newMethods)
- Specified by:
setInstanceVariables
in interface IRubyObject
- Overrides:
setInstanceVariables
in class RubyObject
getName
public java.lang.String getName()
- Description copied from class:
RubyModule
- Generate a fully-qualified class name or a #-style name for anonymous and singleton classes.
Ruby C equivalent = "classname"
- Overrides:
getName
in class RubyModule
- Returns:
- The generated class name
getNonIncludedClass
public RubyModule getNonIncludedClass()
- Overrides:
getNonIncludedClass
in class RubyModule
getRealClass
public RubyClass getRealClass()
- Overrides:
getRealClass
in class RubyClass
isSame
public boolean isSame(RubyModule module)
- Overrides:
isSame
in class RubyModule
id
public RubyFixnum id()
- We don't want to reveal ourselves to Ruby code, so delegate this
operation.
- Specified by:
id
in interface IRubyObject
- Overrides:
id
in class RubyObject
- Returns:
Copyright © 2002-2007 JRuby Team. All Rights Reserved.