Mercurial > hg > Members > kono > jpf-core
view src/peers/gov/nasa/jpf/vm/JPF_java_text_DateFormat.java @ 16:08ca336d5928
fixed forgotten ClInitRequired check in DateFormat - thanks to Jiri Vahala
first stab at IntelliJ configuration. Note that the provided run configs require
the 3rd party ContextRun IntelliJ plugin
(https://github.com/m-lau/contextrun.git).
The mapping uses a IntelliJ "project" per JPF project, and a IntelliJ "module"
for each of the src/* subdirs (main, peers, classes,..). This is required to be
able to set the subdir specific output dirs (build/main,...), which are in turn
required to separate the jar contents and classpaths. We also keep the module
definitions (*.iml) files under .idea and share the run configs, so that we can
avoid any IDE content outside the IDE config dir.
Separating the projects has also the silver lining that simultaneously opened
projects are much better separated, which helps a lot if they contain the same
class names.
Note that the session specific .idea/workspace.xml is in .hgignore and hence
doesn't get cloned/merged
While this is all not the most IntelliJ compliant schema, the JPF directory layout
can stay the same and Eclipse/Netbeans compatibility should not be affected.
author | Peter Mehlitz <pcmehlitz@gmail.com> |
---|---|
date | Fri, 20 Mar 2015 15:47:10 -0700 |
parents | 61d41facf527 |
children |
line wrap: on
line source
/* * Copyright (C) 2014, United States Government, as represented by the * Administrator of the National Aeronautics and Space Administration. * All rights reserved. * * The Java Pathfinder core (jpf-core) platform is licensed under the * Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package gov.nasa.jpf.vm; import gov.nasa.jpf.annotation.MJI; import gov.nasa.jpf.vm.MJIEnv; import gov.nasa.jpf.vm.NativePeer; import java.text.DateFormat; import java.text.Format; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; /** * this is just the minimal support for DateFormat.parse(String) */ public class JPF_java_text_DateFormat extends NativePeer { DateFormat getInstance (MJIEnv env, int objref) { Format fmt = JPF_java_text_Format.getInstance(env,objref); assert fmt instanceof SimpleDateFormat; return (DateFormat)fmt; } @MJI public void setTimeZone__Ljava_util_TimeZone_2__V(MJIEnv env, int objref,int timeZoneRef) { String timeZoneId = env.getStringField(timeZoneRef, "ID"); TimeZone timeZone = TimeZone.getTimeZone(timeZoneId); DateFormat fmt = getInstance(env,objref); fmt.setTimeZone(timeZone); int calendarRef = env.getReferenceField(objref, "calendar"); env.setReferenceField(calendarRef, "zone", timeZoneRef); } @MJI public int parse__Ljava_lang_String_2__Ljava_util_Date_2 (MJIEnv env, int objref, int strRef) { DateFormat f = getInstance(env,objref); String s = env.getStringObject(strRef); try { Date d = f.parse(s); long t = d.getTime(); int dref = env.newObject("java.util.Date"); env.setLongField(dref, "fastTime", t); return dref; } catch (ClinitRequired x){ env.handleClinitRequest(x.getRequiredClassInfo()); return 0; } catch (ParseException px) { env.throwException("java.text.ParseException", px.getMessage()); return 0; } } @MJI public void setLenient__Z__V (MJIEnv env, int objref, boolean isLenient) { DateFormat f = getInstance(env,objref); f.setLenient(isLenient); } @MJI public int format__Ljava_util_Date_2__Ljava_lang_String_2 (MJIEnv env, int objref, int dateRef) { DateFormat fmt = getInstance(env,objref); if (fmt != null) { Date d = env.getDateObject(dateRef); String s = fmt.format(d); int sref = env.newString(s); return sref; } return MJIEnv.NULL; } }