1 cananian 1.1.2.1 // INResourceBundle.java, created Fri Sep 28 17:01:58 2001 by cananian
 2 cananian 1.1.2.1 // Copyright (C) 2000 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 cananian 1.1.2.1 package harpoon.Interpret.Quads;
 5 cananian 1.1.2.1 
 6 cananian 1.1.2.2 import harpoon.ClassFile.HClass;
 7 cananian 1.1.2.2 import harpoon.ClassFile.HMethod;
 8 cananian 1.1.2.2 import harpoon.ClassFile.Linker;
 9 cananian 1.1.2.1 
10 cananian 1.1.2.1 /**
11 cananian 1.1.2.1  * <code>INResourceBundle</code> provides implementations for (some
12 cananian 1.1.2.1  * of) the native methods in <code>java.util.ResourceBundle</code>.
13 cananian 1.1.2.1  * 
14 cananian 1.1.2.1  * @author  C. Scott Ananian <cananian@alumni.princeton.edu>
15 cananian 1.2      * @version $Id: INResourceBundle.java,v 1.2 2002/02/25 21:05:46 cananian Exp $
16 cananian 1.1.2.1  */
17 cananian 1.1.2.1 public class INResourceBundle {
18 cananian 1.1.2.1     static final void register(StaticState ss) {
19 cananian 1.1.2.1         try{ss.register(getClassContext(ss));}catch(NoSuchMethodError e){}
20 cananian 1.1.2.1     }
21 cananian 1.1.2.1     // punt on the implementation of getClassContext: always return an
22 cananian 1.1.2.1     // array of three nulls.
23 cananian 1.1.2.1     private static final NativeMethod getClassContext(StaticState ss0) {
24 cananian 1.1.2.1         final HClass hc = ss0.linker.forName("java.util.ResourceBundle");
25 cananian 1.1.2.1         final HMethod hm =
26 cananian 1.1.2.1             hc.getMethod("getClassContext", new HClass[0] );
27 cananian 1.1.2.1         return new NativeMethod() {
28 cananian 1.1.2.1             HMethod getMethod() { return hm; }
29 cananian 1.1.2.1             Object invoke(StaticState ss, Object[] params) {
30 cananian 1.1.2.1                 // punt: return array of three nulls.
31 cananian 1.1.2.1                 return new ArrayRef(ss, ss.HCclassA, new int[] { 3 });
32 cananian 1.1.2.1             }
33 cananian 1.1.2.1         };
34 cananian 1.1.2.1     }
35 cananian 1.2     }