org.jruby.RubyModule.dataGetStruct()方法的使用及代码示例

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

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

RubyModule.dataGetStruct介绍

暂无

代码示例

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

public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    return new Node(runtime, klass, null, (YAMLExtra)runtime.getModule("YAML").dataGetStruct());
  }
};

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

public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    //                     System.err.println("ALLOCATING SCALAR");
    org.yecht.Node node = org.yecht.Node.allocStr();
    IRubyObject obj = new Node(runtime, klass, node, (YAMLExtra)runtime.getModule("YAML").dataGetStruct());
    node.id = obj;
    //                     System.err.println("syck_scalar_alloc() -> setting id: " + node.id);
    return obj;
  }
};

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

public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    //                     System.err.println("ALLOCATING MAP");
    org.yecht.Node node = org.yecht.Node.allocMap();
    IRubyObject obj = new Node(runtime, klass, node, (YAMLExtra)runtime.getModule("YAML").dataGetStruct());
    node.id = obj;
    //                     System.err.println("syck_map_alloc() -> setting id");
    return obj;
  }
};

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

public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    //                     System.err.println("ALLOCATING SEQ");
    org.yecht.Node node = org.yecht.Node.allocSeq();
    IRubyObject obj = new Node(runtime, klass, node, (YAMLExtra)runtime.getModule("YAML").dataGetStruct());
    node.id = obj;
    //                     System.err.println("syck_seq_alloc() -> setting id");
    return obj;
  }
};

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

private static void addToJavaPackageModule(RubyModule proxyClass) {
  final Ruby runtime = proxyClass.getRuntime();
  final Class<?> clazz = (Class<?>)proxyClass.dataGetStruct();
  final String fullName;
  if ( ( fullName = clazz.getName() ) == null ) return;
  final RubyModule parentModule; final String className;
  if ( fullName.indexOf('$') != -1 ) { // inner classes must be nested
    Class<?> declaringClass = clazz.getDeclaringClass();
    if ( declaringClass == null ) {
      // no containing class for a $ class; treat it as internal and don't define a constant
      return;
    }
    parentModule = getProxyClass(runtime, JavaClass.get(runtime, clazz));
    className = clazz.getSimpleName();
  }
  else {
    final int endPackage = fullName.lastIndexOf('.');
    String packageString = endPackage < 0 ? "" : fullName.substring(0, endPackage);
    parentModule = getJavaPackageModule(runtime, packageString);
    className = parentModule == null ? fullName : fullName.substring(endPackage + 1);
  }
  if ( parentModule != null && // TODO a Java Ruby class should not validate (as well)
    ( IdUtil.isConstant(className) || parentModule instanceof JavaPackage ) ) {
    if (parentModule.getConstantAt(className) == null) {
      parentModule.setConstant(className, proxyClass);
    }
  }
}

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

private static void addToJavaPackageModule(RubyModule proxyClass) {
  final Ruby runtime = proxyClass.getRuntime();
  final Class<?> clazz = (Class<?>)proxyClass.dataGetStruct();
  final String fullName;
  if ( ( fullName = clazz.getName() ) == null ) return;
  final RubyModule parentModule; final String className;
  if ( fullName.indexOf('$') != -1 ) { // inner classes must be nested
    Class<?> declaringClass = clazz.getDeclaringClass();
    if ( declaringClass == null ) {
      // no containing class for a $ class; treat it as internal and don't define a constant
      return;
    }
    parentModule = getProxyClass(runtime, JavaClass.get(runtime, clazz));
    className = clazz.getSimpleName();
  }
  else {
    final int endPackage = fullName.lastIndexOf('.');
    String packageString = endPackage < 0 ? "" : fullName.substring(0, endPackage);
    parentModule = getJavaPackageModule(runtime, packageString);
    className = parentModule == null ? fullName : fullName.substring(endPackage + 1);
  }
  if ( parentModule != null && // TODO a Java Ruby class should not validate (as well)
    ( IdUtil.isConstant(className) || parentModule instanceof JavaPackage ) ) {
    if (parentModule.getConstantAt(className) == null) {
      parentModule.setConstant(className, proxyClass);
    }
  }
}

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

public static void setModel(IRubyObject p, IRubyObject input, IRubyObject model) {
  Ruby runtime = p.getRuntime();
  Parser parser = (Parser)p.dataGetStructChecked();
  parser.handler(new RubyLoadHandler(runtime, ((YAMLExtra)runtime.getModule("YAML").dataGetStruct())));
  if(model == runtime.newSymbol("Generic")) {
    p.callMethod(runtime.getCurrentContext(), "set_resolver", ((RubyModule)((RubyModule)runtime.getModule("YAML")).getConstant("Yecht")).getConstant("GenericResolver"));
  }
  parser.implicitTyping(true);
  parser.taguriExpansion(true);
  if(input.isNil()) {
    input = (IRubyObject)((RubyObject)p).fastGetInstanceVariable("@input");
  }
  if(input == runtime.newSymbol("bytecode")) {
    parser.setInputType(ParserInput.Bytecode_UTF8);
  } else {
    parser.setInputType(ParserInput.YAML_UTF8);
  }
  parser.errorHandler(new RubyErrHandler(runtime));
  parser.badAnchorHandler(new RubyBadAnchorHandler(runtime));
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法