b3502aa8d4
libjava/ PR libgcj/17002 PR classpath/28550 * java/util/VMTimeZone.java (getDefaultTimeZoneId): To read /etc/localtime, use ZoneInfo.readTZFile instead of VMTimeZone.readtzFile. Get better timezone name for /etc/localtime, either if it is a symlink or through /etc/sysconfig/clock. (readSysconfigClockFile): New static method. (readtzFile): Removed. * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments. * posix.cc (_Jv_platform_initProperties): Set gnu.java.util.zoneinfo.dir. * sources.am (gnu_java_util_source_files): Add classpath/gnu/java/util/ZoneInfo.java. * Makefile.in: Regenerated. * java/util/VMTimeZone.h: Regenerated. * java/util/TimeZone.h: Regenerated. * gnu/java/util/ZoneInfo.h: Generated. libjava/classpath/ * java/util/Date.java (parse): Properly parse 09:01:02 as hours/minutes/seconds, not as hours/minutes/year. * java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify {start,end}TimeMode constructor by calling shorter constructor, set {start,end}TimeMode fields after it returns. (setStartRule): Don't adjust startTime into WALL_TIME. Set startTimeMode to WALL_TIME. (endStartRule): Similarly. (getOffset): Handle properly millis + dstOffset overflowing into the next day. Adjust startTime resp. endTime based on startTimeMode resp. endTimeMode. * java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New static fields. (timezones): Remove synchronized keyword. Set zoneinfo_dir. If non-null, set up aliases0 and don't put anything into timezones0. (defaultZone): Call getTimeZone instead of timezones().get. (getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6. Use getTimeZoneInternal instead of timezones().get. (parseTime): Parse correctly hour:minute. (getTimeZoneInternal): New private method. (getTimeZone): Do the custom ID checking first, canonicalize ID for custom IDs as required by documentation. Call getTimeZoneInternal to handle the rest. (getAvailableIDs(int)): Add locking. Handle zoneinfo_dir != null. (getAvailableIDs(File,String,ArrayList)): New private method. (getAvailableIDs()): Add locking. Handle zoneinfo_dir != null. * gnu/java/util/ZoneInfo.java: New file. From-SVN: r122229
71 lines
2.0 KiB
C++
71 lines
2.0 KiB
C++
|
|
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
|
|
|
|
#ifndef __gnu_java_util_ZoneInfo__
|
|
#define __gnu_java_util_ZoneInfo__
|
|
|
|
#pragma interface
|
|
|
|
#include <java/util/TimeZone.h>
|
|
#include <gcj/array.h>
|
|
|
|
extern "Java"
|
|
{
|
|
namespace gnu
|
|
{
|
|
namespace java
|
|
{
|
|
namespace util
|
|
{
|
|
class ZoneInfo;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
class gnu::java::util::ZoneInfo : public ::java::util::TimeZone
|
|
{
|
|
|
|
public:
|
|
ZoneInfo(jint, ::java::lang::String *, JArray< jlong > *, ::java::util::SimpleTimeZone *);
|
|
virtual jint getOffset(jint, jint, jint, jint, jint, jint);
|
|
private:
|
|
jlong findTransition(jlong);
|
|
public:
|
|
virtual jint getOffset(jlong);
|
|
virtual jint getRawOffset();
|
|
virtual void setRawOffset(jint);
|
|
private:
|
|
void computeDSTSavings();
|
|
public:
|
|
virtual jint getDSTSavings();
|
|
virtual jboolean useDaylightTime();
|
|
virtual jboolean inDaylightTime(::java::util::Date *);
|
|
virtual jint hashCode();
|
|
virtual jboolean equals(::java::lang::Object *);
|
|
virtual jboolean hasSameRules(::java::util::TimeZone *);
|
|
virtual ::java::lang::String * toString();
|
|
static ::java::util::TimeZone * readTZFile(::java::lang::String *, ::java::lang::String *);
|
|
private:
|
|
static void skipFully(::java::io::InputStream *, jlong);
|
|
static ::java::util::SimpleTimeZone * createLastRule(::java::lang::String *);
|
|
static JArray< jint > * getDateParams(::java::lang::String *);
|
|
static jint parseTime(::java::lang::String *);
|
|
static const jint SECS_SHIFT = 22;
|
|
static const jlong OFFSET_MASK = 2097151LL;
|
|
static const jint OFFSET_SHIFT = 43;
|
|
static const jlong IS_DST = 2097152LL;
|
|
jint __attribute__((aligned(__alignof__( ::java::util::TimeZone)))) rawOffset;
|
|
jint dstSavings;
|
|
jboolean useDaylight;
|
|
JArray< jlong > * transitions;
|
|
::java::util::SimpleTimeZone * lastRule;
|
|
static ::java::util::SimpleTimeZone * gmtZone;
|
|
public: // actually package-private
|
|
static const jlong serialVersionUID = -3740626706860383657LL;
|
|
public:
|
|
static ::java::lang::Class class$;
|
|
};
|
|
|
|
#endif // __gnu_java_util_ZoneInfo__
|