X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=libjava%2Fjava%2Flang%2FSystem.java;fp=libjava%2Fjava%2Flang%2FSystem.java;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=9ac160a56f3acde6ac901a8ce7b8371ce02c1aca;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libjava/java/lang/System.java b/libjava/java/lang/System.java deleted file mode 100644 index 9ac160a5..00000000 --- a/libjava/java/lang/System.java +++ /dev/null @@ -1,252 +0,0 @@ -// System.java - System-specific info. - -/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -package java.lang; - -import java.io.FileDescriptor; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FilterInputStream; -import java.io.InputStream; -import java.io.PrintStream; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.util.Properties; -import java.util.PropertyPermission; -import java.util.TimeZone; - -/** - * @author Tom Tromey - * @date August 27, 1998 - */ - -/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 - * "The Java Language Specification", ISBN 0-201-63451-1 - * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. - * Status: 1.1. Some 1.2 methods missing. Properties code not fully - * implemented. - */ - -public final class System -{ - public static native void arraycopy (Object src, int srcOffset, - Object dst, int dstOffset, - int count); - - public static native long currentTimeMillis (); - - // FIXME: When merging with Classpath, remember to remove the call to - // getDefaultTimeZoneId from java.util.Timezone. - private static native String getSystemTimeZone (); - - // Get the System Timezone as reported by the OS. It should be in - // the form PST8PDT so we'll need to parse it and check that it's valid. - // The result is used to set the user.timezone property in init_properties. - // FIXME: Using the code from Classpath for generating the System - // Timezone IMO is suboptimal because it ignores whether the rules for - // DST match up. - private static String getDefaultTimeZoneId () - { - String sysTimeZoneId = getSystemTimeZone (); - - // Check if this is a valid timezone. Make sure the IDs match - // since getTimeZone returns GMT if no match is found. - TimeZone tz = TimeZone.getTimeZone (sysTimeZoneId); - if (tz.getID ().equals (sysTimeZoneId)) - return sysTimeZoneId; - - // Check if the base part of sysTimeZoneId is a valid timezone that - // matches with daylight usage and rawOffset. Make sure the IDs match - // since getTimeZone returns GMT if no match is found. - // First find start of GMT offset info and any Daylight zone name. - int startGMToffset = 0; - int sysTimeZoneIdLength = sysTimeZoneId.length(); - for (int i = 0; i < sysTimeZoneIdLength && startGMToffset == 0; i++) - { - if (Character.isDigit (sysTimeZoneId.charAt (i))) - startGMToffset = i; - } - - int startDaylightZoneName = 0; - boolean usesDaylight = false; - for (int i = sysTimeZoneIdLength - 1; - i >= 0 && !Character.isDigit (sysTimeZoneId.charAt (i)); --i) - { - startDaylightZoneName = i; - } - if (startDaylightZoneName > 0) - usesDaylight = true; - - int GMToffset = Integer.parseInt (startDaylightZoneName == 0 ? - sysTimeZoneId.substring (startGMToffset) : - sysTimeZoneId.substring (startGMToffset, startDaylightZoneName)); - - // Offset could be in hours or seconds. Convert to millis. - if (GMToffset < 24) - GMToffset *= 60 * 60; - GMToffset *= -1000; - - String tzBasename = sysTimeZoneId.substring (0, startGMToffset); - tz = TimeZone.getTimeZone (tzBasename); - if (tz.getID ().equals (tzBasename) && tz.getRawOffset () == GMToffset) - { - boolean tzUsesDaylight = tz.useDaylightTime (); - if (usesDaylight && tzUsesDaylight || !usesDaylight && !tzUsesDaylight) - return tzBasename; - } - - // If no match, see if a valid timezone has the same attributes as this - // and then use it instead. - String[] IDs = TimeZone.getAvailableIDs (GMToffset); - for (int i = 0; i < IDs.length; ++i) - { - // FIXME: The daylight savings rules may not match the rules - // for the desired zone. - boolean IDusesDaylight = - TimeZone.getTimeZone (IDs[i]).useDaylightTime (); - if (usesDaylight && IDusesDaylight || !usesDaylight && !IDusesDaylight) - return IDs[i]; - } - - // If all else fails, return null. - return null; - } - - public static void exit (int status) - { - Runtime.getRuntime().exit(status); - } - - public static void gc () - { - Runtime.getRuntime().gc(); - } - - // Marked deprecated in 1.1. We implement what the JCL book says. - public static String getenv (String name) - { - throw new Error (); - } - - private static native void init_properties (); - - public static Properties getProperties () - { - if (secman != null) - secman.checkPropertiesAccess(); - if (properties == null) - init_properties (); - return properties; - } - - public static String getProperty (String property) - { - if (secman != null) - secman.checkPropertyAccess(property); - if (properties == null) - init_properties (); - return properties.getProperty(property); - } - - public static String getProperty (String property, String defval) - { - if (secman != null) - secman.checkPropertyAccess(property); - if (properties == null) - init_properties (); - return properties.getProperty(property, defval); - } - - public static SecurityManager getSecurityManager () - { - return secman; - } - - public static native int identityHashCode (Object obj); - - public static void load (String pathname) - { - Runtime.getRuntime().load(pathname); - } - - public static void loadLibrary (String libname) - { - Runtime.getRuntime().loadLibrary(libname); - } - - public static void runFinalization () - { - Runtime.getRuntime().runFinalization(); - } - - // Marked as deprecated in 1.2. - public static void runFinalizersOnExit (boolean run) - { - Runtime.getRuntime().runFinalizersOnExit(run); - } - - private static void checkSetIO () - { - // In 1.1, we are supposed to call checkExec, but the argument is - // not specified. In 1.2, we are supposed to use checkPermission, - // which doesn't exist in 1.1. - if (secman != null) - secman.checkExec(""); - } - - public static native void setErr (PrintStream newErr); - public static native void setIn (InputStream newIn); - public static native void setOut (PrintStream newOut); - - public static void setProperties (Properties props) - { - if (secman != null) - secman.checkPropertiesAccess(); - synchronized (System.class) - { - properties = props; - } - } - - public static String setProperty (String key, String value) - { - if (secman != null) - secman.checkPermission (new PropertyPermission (key, "write")); - if (properties == null) - init_properties (); - return (String) properties.setProperty (key, value); - } - - // TODO 1.2. - // public static String mapLibraryName (String libname); - - public static void setSecurityManager (SecurityManager s) - { - if (secman != null) - secman.checkPermission(new RuntimePermission("setSecurityManager")); - secman = s; - } - - // Public data. - public static final InputStream in = new BufferedInputStream (new FileInputStream (FileDescriptor.in)); - - public static final PrintStream out = new PrintStream (new BufferedOutputStream (new FileOutputStream (FileDescriptor.out)), true); - - public static final PrintStream err = new PrintStream (new BufferedOutputStream (new FileOutputStream (FileDescriptor.err)), true); - - // Don't allow System objects to be made. - private System () - { - } - - // Private data. - private static SecurityManager secman = null; - private static Properties properties = null; -}