1 cananian 1.1.2.1 // INString.java, created Mon Dec 28 21:22:06 1998 by cananian
 2 cananian 1.1.2.3 // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.1.2.3 // 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.HField;
 8 cananian 1.1.2.2 import harpoon.ClassFile.HMethod;
 9 cananian 1.1.2.1 
10 cananian 1.1.2.1 /**
11 cananian 1.1.2.1  * <code>INString</code> provides implementations of the native methods in
12 cananian 1.1.2.1  * <code>java.lang.String</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: INString.java,v 1.2 2002/02/25 21:05:46 cananian Exp $
16 cananian 1.1.2.1  */
17 cananian 1.1.2.4 public class INString {
18 cananian 1.1.2.1     static final void register(StaticState ss) {
19 cananian 1.1.2.4         ss.register(intern(ss));
20 cananian 1.1.2.1     }
21 cananian 1.1.2.4     private static final NativeMethod intern(StaticState ss0) {
22 cananian 1.1.2.1         final HMethod hm = 
23 cananian 1.1.2.4             ss0.HCstring.getMethod("intern", new HClass[0]);
24 cananian 1.1.2.1         return new NativeMethod() {
25 cananian 1.1.2.1             HMethod getMethod() { return hm; }
26 cananian 1.1.2.1             Object invoke(StaticState ss, Object[] params) {
27 cananian 1.1.2.1                 ObjectRef obj = (ObjectRef) params[0];
28 cananian 1.1.2.1                 return ss.intern(obj);
29 cananian 1.1.2.1             }
30 cananian 1.1.2.1         };
31 cananian 1.1.2.1     }
32 cananian 1.2     }