org.jruby.RubyClass.smartLoadOldUser()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.3k)|赞(0)|评价(0)|浏览(76)

本文整理了Java中org.jruby.RubyClass.smartLoadOldUser方法的一些代码示例,展示了RubyClass.smartLoadOldUser的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyClass.smartLoadOldUser方法的具体详情如下:
包路径:org.jruby.RubyClass
类名称:RubyClass
方法名:smartLoadOldUser

RubyClass.smartLoadOldUser介绍

[英]Load marshaled data into a blank target object using _load, being "smart" and caching the mechanism for invoking _load. If the metaclass implements custom respond_to?, cache nothing and go slow path invocation of respond_to? and _load every time. Raise error if respond_to? :_load returns true and no :_load is defined. If the metaclass implements _load, cache and use that. Otherwise, error, since _load is not present.
[中]使用_Load将封送的数据加载到一个空白的目标对象中,“智能”并缓存调用_Load的机制。如果元类实现了自定义的respond_to?,不缓存任何内容,并缓慢调用respond_to?而且每次都要加载。如果响应?则引发错误:_load返回true且未定义任何load。如果元类实现了_load,缓存并使用它。否则会出现错误,因为_load不存在。

代码示例

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

private IRubyObject userUnmarshal(MarshalState state) throws IOException {
  String className = unmarshalObject(false).asJavaString();
  ByteList marshaled = unmarshalString();
  RubyClass classInstance = findClass(className);
  RubyString data = RubyString.newString(getRuntime(), marshaled);
  if (state.isIvarWaiting()) {
    defaultVariablesUnmarshal(data);
    state.setIvarWaiting(false);
  }
  IRubyObject unmarshaled = classInstance.smartLoadOldUser(data);
  registerLinkTarget(unmarshaled);
  return unmarshaled;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

private IRubyObject userUnmarshal(MarshalState state) throws IOException {
  String className = unmarshalObject(false).asJavaString();
  ByteList marshaled = unmarshalString();
  RubyClass classInstance = findClass(className);
  RubyString data = RubyString.newString(getRuntime(), marshaled);
  if (state.isIvarWaiting()) {
    defaultVariablesUnmarshal(data);
    state.setIvarWaiting(false);
  }
  IRubyObject unmarshaled = classInstance.smartLoadOldUser(data);
  registerLinkTarget(unmarshaled);
  return unmarshaled;
}

代码示例来源:origin: org.jruby/jruby-complete

private IRubyObject userUnmarshal(MarshalState state) throws IOException {
  String className = unmarshalObject(false).asJavaString();
  ByteList marshaled = unmarshalString();
  RubyClass classInstance = findClass(className);
  RubyString data = RubyString.newString(runtime, marshaled);
  IRubyObject unmarshaled;
  // Special case Encoding so they are singletons
  // See https://bugs.ruby-lang.org/issues/11760
  if (classInstance == runtime.getEncoding()) {
    unmarshaled = RubyEncoding.find(runtime.getCurrentContext(), classInstance, data);
  } else {
    if (state.isIvarWaiting()) {
      defaultVariablesUnmarshal(data);
      state.setIvarWaiting(false);
    }
    unmarshaled = classInstance.smartLoadOldUser(data);
  }
  registerLinkTarget(unmarshaled);
  return unmarshaled;
}

代码示例来源:origin: org.jruby/jruby-core

private IRubyObject userUnmarshal(MarshalState state) throws IOException {
  String className = unmarshalObject(false).asJavaString();
  ByteList marshaled = unmarshalString();
  RubyClass classInstance = findClass(className);
  RubyString data = RubyString.newString(runtime, marshaled);
  IRubyObject unmarshaled;
  // Special case Encoding so they are singletons
  // See https://bugs.ruby-lang.org/issues/11760
  if (classInstance == runtime.getEncoding()) {
    unmarshaled = RubyEncoding.find(runtime.getCurrentContext(), classInstance, data);
  } else {
    if (state.isIvarWaiting()) {
      defaultVariablesUnmarshal(data);
      state.setIvarWaiting(false);
    }
    unmarshaled = classInstance.smartLoadOldUser(data);
  }
  registerLinkTarget(unmarshaled);
  return unmarshaled;
}

相关文章

微信公众号

最新文章

更多

RubyClass类方法