Initial import
[jpf-core.git] / src / peers / gov / nasa / jpf / vm / JPF_java_io_ObjectStreamClass.java
1 /*
2  * Copyright (C) 2014, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The Java Pathfinder core (jpf-core) platform is licensed under the
7  * Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  * 
10  *        http://www.apache.org/licenses/LICENSE-2.0. 
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and 
16  * limitations under the License.
17  */
18 package gov.nasa.jpf.vm;
19
20 import gov.nasa.jpf.annotation.MJI;
21 import gov.nasa.jpf.vm.ClassInfo;
22 import gov.nasa.jpf.vm.ElementInfo;
23 import gov.nasa.jpf.vm.FieldInfo;
24 import gov.nasa.jpf.vm.MJIEnv;
25 import gov.nasa.jpf.vm.MethodInfo;
26 import gov.nasa.jpf.vm.NativePeer;
27
28 public class JPF_java_io_ObjectStreamClass extends NativePeer {
29   @MJI
30   public void initNative____V (MJIEnv env, int clsObjRef) {
31     // cut off
32   }
33   
34   // why is this here??
35   @MJI
36   public boolean hasStaticInitializer__Ljava_lang_Class_2__Z (MJIEnv env, int objRef, int clsRef){
37     ClassInfo ci = env.getReferredClassInfo(clsRef);
38     MethodInfo mi = ci.getMethod("<clinit>()V", false);          
39     return (mi != null);
40   }
41
42   // just a little accelerator
43   @MJI
44   public int getDeclaredSUID__Ljava_lang_Class_2__Ljava_lang_Long_2 (MJIEnv env, int objRef, int clsRef){
45     ClassInfo ci = env.getReferredClassInfo(clsRef);
46     FieldInfo fi = ci.getDeclaredStaticField("serialVersionUID");
47     if (fi != null){
48       ElementInfo ei = ci.getStaticElementInfo();
49       long l = ei.getLongField(fi);
50       return env.newLong(l);
51     } else {
52       return MJIEnv.NULL;
53     }
54   }
55 }