Package org.jruby.ext.ref

Source Code of org.jruby.ext.ref.ReferencesService

package org.jruby.ext.ref;

import java.io.IOException;
import org.jruby.Ruby;
import org.jruby.RubyClass;
import org.jruby.RubyModule;
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.runtime.load.BasicLibraryService;

/**
* This library adds native Java support for weak and soft references.
*
* @author Brian Durand
*/
public class ReferencesService implements BasicLibraryService {
  public boolean basicLoad(Ruby runtime) throws IOException {
    RubyModule refModule = runtime.getModule("Ref");
    RubyClass referenceClass = refModule.getClass("Reference");
   
    RubyClass rubyWeakReferenceClass = runtime.defineClassUnder("WeakReference", referenceClass, RubyWeakReference.ALLOCATOR, refModule);
    rubyWeakReferenceClass.defineAnnotatedMethods(RubyWeakReference.class);
   
    RubyClass rubySoftReferenceClass = runtime.defineClassUnder("SoftReference", referenceClass, RubySoftReference.ALLOCATOR, refModule);
    rubySoftReferenceClass.defineAnnotatedMethods(RubySoftReference.class);
   
    return true;
  }
}
TOP

Related Classes of org.jruby.ext.ref.ReferencesService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.