//
// Copyright (C) 2006 United States Government as represented by the
// Administrator of the National Aeronautics and Space Administration
// (NASA). All Rights Reserved.
//
// This software is distributed under the NASA Open Source Agreement
// (NOSA), version 1.3. The NOSA has been approved by the Open Source
// Initiative. See the file NOSA-1.3-JPF at the top of the distribution
// directory tree for the complete NOSA document.
//
// THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY
// KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
// LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
// SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT
// THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT
// DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE.
//
package gov.nasa.jpf.vm;
import de.fosd.typechef.featureexpr.FeatureExpr;
import gov.nasa.jpf.annotation.MJI;
/**
* MJI NativePeer class for java.lang.Long library abstraction
*/
@SuppressWarnings("deprecation")
public class JPF_java_lang_Long extends NativePeer {
// <2do> at this point we deliberately do not override clinit
@MJI
public long parseLong__Ljava_lang_String_2I__J (MJIEnv env, int clsObjRef,
int strRef, int radix, FeatureExpr ctx) {
try {
return Long.parseLong(env.getStringObject(ctx, strRef), radix);
} catch (NumberFormatException e) {
env.throwException(ctx, "java.lang.NumberFormatException");
return 0;
}
}
@MJI
public long parseLong__Ljava_lang_String_2__J (MJIEnv env, int clsObjRef,
int strRef, FeatureExpr ctx) {
try {
return Long.parseLong(env.getStringObject(ctx, strRef));
} catch (NumberFormatException e) {
env.throwException(ctx, "java.lang.NumberFormatException");
return 0;
}
}
@MJI
public int toBinaryString__J__Ljava_lang_String_2 (MJIEnv env, int objref, long val, FeatureExpr ctx) {
return env.newString(ctx, Long.toBinaryString(val));
}
@MJI
public int toHexString__J__Ljava_lang_String_2 (MJIEnv env, int objref, long val, FeatureExpr ctx) {
return env.newString(ctx, Long.toHexString(val));
}
@MJI
public int toOctalString__J__Ljava_lang_String_2 (MJIEnv env, int objref, long val, FeatureExpr ctx) {
return env.newString(ctx, Long.toOctalString(val));
}
@MJI
public int toString__J__Ljava_lang_String_2 (MJIEnv env, int objref, long val, FeatureExpr ctx) {
return env.newString(ctx, Long.toString(val));
}
@MJI
public int toString__JI__Ljava_lang_String_2 (MJIEnv env, int objref, long val, int radix, FeatureExpr ctx) {
return env.newString(ctx, Long.toString(val, radix));
}
// @MJI
public int valueOf__J__Ljava_lang_Long_2 (MJIEnv env, int clsRef, long val, FeatureExpr ctx) {
return env.valueOfLong(ctx, val);
}
}