本文整理了Java中org.jruby.RubyModule.testFrozen
方法的一些代码示例,展示了RubyModule.testFrozen
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyModule.testFrozen
方法的具体详情如下:
包路径:org.jruby.RubyModule
类名称:RubyModule
方法名:testFrozen
暂无
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public void addMethod(String name, DynamicMethod method) {
testFrozen("class/module");
addMethodInternal(name, method);
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
public void addMethod(String name, DynamicMethod method) {
testFrozen("class/module");
addMethodInternal(name, method);
}
代码示例来源:origin: org.jruby/jruby-core
public void addMethod(String id, DynamicMethod method) {
testFrozen("class/module");
if (methodLocation != this) {
methodLocation.addMethod(id, method);
return;
}
if (this instanceof MetaClass) {
// FIXME: Gross and not quite right. See MRI's rb_frozen_class_p logic
((MetaClass) this).getAttached().testFrozen();
}
addMethodInternal(id, method);
}
代码示例来源:origin: org.jruby/jruby-complete
public void addMethod(String id, DynamicMethod method) {
testFrozen("class/module");
if (methodLocation != this) {
methodLocation.addMethod(id, method);
return;
}
if (this instanceof MetaClass) {
// FIXME: Gross and not quite right. See MRI's rb_frozen_class_p logic
((MetaClass) this).getAttached().testFrozen();
}
addMethodInternal(id, method);
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public synchronized void defineAliases(List<String> aliases, String oldName) {
testFrozen("module");
DynamicMethod method = searchForAliasMethod(getRuntime(), oldName);
for (String name: aliases) {
if (oldName.equals(name)) continue;
putMethod(name, new AliasMethod(this, method, oldName));
}
invalidateCoreClasses();
invalidateCacheDescendants();
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/** rb_alias
*
*/
public synchronized void defineAlias(String name, String oldName) {
testFrozen("module");
if (oldName.equals(name)) return;
DynamicMethod method = searchForAliasMethod(getRuntime(), oldName);
putMethod(name, new AliasMethod(this, method, oldName));
invalidateCoreClasses();
invalidateCacheDescendants();
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/** rb_alias
*
*/
public synchronized void defineAlias(String name, String oldName) {
testFrozen("module");
if (oldName.equals(name)) return;
DynamicMethod method = searchForAliasMethod(getRuntime(), oldName);
putMethod(name, new AliasMethod(this, method, oldName));
invalidateCoreClasses();
invalidateCacheDescendants();
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
public synchronized void defineAliases(List<String> aliases, String oldName) {
testFrozen("module");
DynamicMethod method = searchForAliasMethod(getRuntime(), oldName);
for (String name: aliases) {
if (oldName.equals(name)) continue;
putMethod(name, new AliasMethod(this, method, oldName));
}
invalidateCoreClasses();
invalidateCacheDescendants();
}
代码示例来源:origin: org.jruby/jruby-complete
/** rb_alias
*
*/
public synchronized void defineAlias(String name, String oldName) {
testFrozen("module");
putAlias(name, searchForAliasMethod(getRuntime(), oldName), oldName);
methodLocation.invalidateCoreClasses();
methodLocation.invalidateCacheDescendants();
}
代码示例来源:origin: org.jruby/jruby-core
/** rb_alias
*
*/
public synchronized void defineAlias(String name, String oldName) {
testFrozen("module");
putAlias(name, searchForAliasMethod(getRuntime(), oldName), oldName);
methodLocation.invalidateCoreClasses();
methodLocation.invalidateCacheDescendants();
}
代码示例来源:origin: org.jruby/jruby-core
public synchronized void defineAliases(List<String> aliases, String oldId) {
testFrozen("module");
Ruby runtime = getRuntime();
DynamicMethod method = searchForAliasMethod(runtime, oldId);
for (String name: aliases) {
putAlias(name, method, oldId);
}
methodLocation.invalidateCoreClasses();
methodLocation.invalidateCacheDescendants();
}
代码示例来源:origin: org.jruby/jruby-complete
public synchronized void defineAliases(List<String> aliases, String oldId) {
testFrozen("module");
Ruby runtime = getRuntime();
DynamicMethod method = searchForAliasMethod(runtime, oldId);
for (String name: aliases) {
putAlias(name, method, oldId);
}
methodLocation.invalidateCoreClasses();
methodLocation.invalidateCacheDescendants();
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public void removeMethod(ThreadContext context, String name) {
Ruby runtime = context.runtime;
testFrozen("class/module");
// We can safely reference methods here instead of doing getMethods() since if we
// are adding we are not using a IncludedModuleWrapper.
synchronized(getMethodsForWrite()) {
DynamicMethod method = (DynamicMethod) getMethodsForWrite().remove(name);
if (method == null) {
throw runtime.newNameError("method '" + name + "' not defined in " + getName(), name);
}
invalidateCoreClasses();
invalidateCacheDescendants();
}
if (isSingleton()) {
IRubyObject singleton = ((MetaClass)this).getAttached();
singleton.callMethod(context, "singleton_method_removed", runtime.newSymbol(name));
} else {
callMethod(context, "method_removed", runtime.newSymbol(name));
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
public void removeMethod(ThreadContext context, String name) {
Ruby runtime = context.runtime;
testFrozen("class/module");
// We can safely reference methods here instead of doing getMethods() since if we
// are adding we are not using a IncludedModuleWrapper.
synchronized(getMethodsForWrite()) {
DynamicMethod method = (DynamicMethod) getMethodsForWrite().remove(name);
if (method == null) {
throw runtime.newNameError("method '" + name + "' not defined in " + getName(), name);
}
invalidateCoreClasses();
invalidateCacheDescendants();
}
if (isSingleton()) {
IRubyObject singleton = ((MetaClass)this).getAttached();
singleton.callMethod(context, "singleton_method_removed", runtime.newSymbol(name));
} else {
callMethod(context, "method_removed", runtime.newSymbol(name));
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(IRubyObject arg) {
assert arg != null;
testFrozen("module");
if (!(arg instanceof RubyModule)) {
throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
" (expected Module).");
}
RubyModule module = (RubyModule) arg;
// Make sure the module we include does not already exist
checkForCyclicInclude(module);
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
代码示例来源:origin: org.jruby/jruby-core
public void removeMethod(ThreadContext context, String id) {
testFrozen("class/module");
switch (id) {
case "object_id" : warnMethodRemoval(context, id); break;
case "__send__" : warnMethodRemoval(context, id); break;
case "initialize" : warnMethodRemoval(context, id); break;
}
RubySymbol name = context.runtime.newSymbol(id);
// We can safely reference methods here instead of doing getMethods() since if we
// are adding we are not using a IncludedModule.
Map<String, DynamicMethod> methodsForWrite = methodLocation.getMethodsForWrite();
synchronized (methodsForWrite) {
DynamicMethod method = methodsForWrite.remove(id);
if (method == null) {
throw context.runtime.newNameError(str(context.runtime, "method '", name, "' not defined in ", rubyName()), id);
}
invalidateCoreClasses();
invalidateCacheDescendants();
}
if (isSingleton()) {
((MetaClass) this).getAttached().callMethod(context, "singleton_method_removed", name);
} else {
callMethod(context, "method_removed", name);
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(IRubyObject arg) {
assert arg != null;
testFrozen("module");
if (!(arg instanceof RubyModule)) {
throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
" (expected Module).");
}
RubyModule module = (RubyModule) arg;
// Make sure the module we include does not already exist
checkForCyclicInclude(module);
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
代码示例来源:origin: org.jruby/jruby-complete
public void removeMethod(ThreadContext context, String id) {
testFrozen("class/module");
switch (id) {
case "object_id" : warnMethodRemoval(context, id); break;
case "__send__" : warnMethodRemoval(context, id); break;
case "initialize" : warnMethodRemoval(context, id); break;
}
RubySymbol name = context.runtime.newSymbol(id);
// We can safely reference methods here instead of doing getMethods() since if we
// are adding we are not using a IncludedModule.
Map<String, DynamicMethod> methodsForWrite = methodLocation.getMethodsForWrite();
synchronized (methodsForWrite) {
DynamicMethod method = methodsForWrite.remove(id);
if (method == null) {
throw context.runtime.newNameError(str(context.runtime, "method '", name, "' not defined in ", rubyName()), id);
}
invalidateCoreClasses();
invalidateCacheDescendants();
}
if (isSingleton()) {
((MetaClass) this).getAttached().callMethod(context, "singleton_method_removed", name);
} else {
callMethod(context, "method_removed", name);
}
}
代码示例来源:origin: org.jruby/jruby-core
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(IRubyObject arg) {
assert arg != null;
testFrozen("module");
if (!(arg instanceof RubyModule)) {
throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
" (expected Module).");
}
if (((RubyModule) arg).refinedClass != null) {
throw getRuntime().newArgumentError("refinement module is not allowed");
}
RubyModule module = (RubyModule) arg;
// Make sure the module we include does not already exist
checkForCyclicInclude(module);
if (hasModuleInPrepends(((RubyModule)arg).getNonIncludedClass())) {
invalidateCacheDescendants();
return;
}
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
代码示例来源:origin: org.jruby/jruby-complete
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(IRubyObject arg) {
assert arg != null;
testFrozen("module");
if (!(arg instanceof RubyModule)) {
throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
" (expected Module).");
}
if (((RubyModule) arg).refinedClass != null) {
throw getRuntime().newArgumentError("refinement module is not allowed");
}
RubyModule module = (RubyModule) arg;
// Make sure the module we include does not already exist
checkForCyclicInclude(module);
if (hasModuleInPrepends(((RubyModule)arg).getNonIncludedClass())) {
invalidateCacheDescendants();
return;
}
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
内容来源于网络,如有侵权,请联系作者删除!