gcc/libjava/gnu/java/util/ZoneInfo.h
Jakub Jelinek b3502aa8d4 re PR libgcj/17002 (java.util.TimeZone.getDefault() is broken)
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
2007-02-22 17:04:55 +01:00

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__