本文整理汇总了Java中org.jruby.runtime.ObjectAllocator类的典型用法代码示例。如果您正苦于以下问题:Java ObjectAllocator类的具体用法?Java ObjectAllocator怎么用?Java ObjectAllocator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ObjectAllocator类属于org.jruby.runtime包,在下文中一共展示了ObjectAllocator类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: load
import org.jruby.runtime.ObjectAllocator; //导入依赖的package包/类
public void load(Ruby runtime, boolean wrap) throws IOException {
RubyModule jo = runtime.defineModule("Jo");
final ExecutorService executor = Executors.newCachedThreadPool(new ThreadFactory() {
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setDaemon(true);
return t;
}
});
jo.setInternalVariable("executor", executor);
RubyClass joFuture = jo.defineClassUnder("Future", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
RubyClass joChannel = jo.defineClassUnder("Channel", runtime.getObject(), ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR);
jo.defineAnnotatedMethods(JoMethods.class);
joFuture.defineAnnotatedMethods(JoFuture.class);
joChannel.defineAnnotatedMethods(JoChannel.class);
runtime.addFinalizer(new Finalizable() {
public void finalize() {
executor.shutdown();
}
});
}
示例2: load
import org.jruby.runtime.ObjectAllocator; //导入依赖的package包/类
public void load(Ruby runtime, boolean wrap) {
RubyModule persistent = runtime.getOrCreateModule("Persistent");
RubyClass persistentVector = persistent.defineOrGetClassUnder("Vector", runtime.getObject());
persistentVector.setAllocator(new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
return new PersistentVector(ruby, rubyClass);
}
});
persistentVector.includeModule(runtime.getEnumerable());
persistentVector.defineAnnotatedMethods(PersistentVector.class);
}
示例3: createRubyMap
import org.jruby.runtime.ObjectAllocator; //导入依赖的package包/类
public static void createRubyMap(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cMap = protobuf.defineClassUnder("Map", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
return new RubyMap(ruby, rubyClass);
}
});
cMap.includeModule(runtime.getEnumerable());
cMap.defineAnnotatedMethods(RubyMap.class);
}
示例4: createRubyOneofBuilderContext
import org.jruby.runtime.ObjectAllocator; //导入依赖的package包/类
public static void createRubyOneofBuilderContext(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyModule internal = protobuf.defineModuleUnder("Internal");
RubyClass cRubyOneofBuidlerContext = internal.defineClassUnder("OneofBuilderContext", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
return new RubyOneofBuilderContext(ruby, rubyClass);
}
});
cRubyOneofBuidlerContext.defineAnnotatedMethods(RubyOneofBuilderContext.class);
}
示例5: createRubyOneofDescriptor
import org.jruby.runtime.ObjectAllocator; //导入依赖的package包/类
public static void createRubyOneofDescriptor(Ruby runtime) {
RubyModule protobuf = runtime.getClassFromPath("Google::Protobuf");
RubyClass cRubyOneofDescriptor = protobuf.defineClassUnder("OneofDescriptor", runtime.getObject(), new ObjectAllocator() {
@Override
public IRubyObject allocate(Ruby ruby, RubyClass rubyClass) {
return new RubyOneofDescriptor(ruby, rubyClass);
}
});
cRubyOneofDescriptor.defineAnnotatedMethods(RubyOneofDescriptor.class);
cRubyOneofDescriptor.includeModule(runtime.getEnumerable());
}