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 }