Providing implementation of the most important java.lang.System methods
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 01 Feb 2013 16:34:51 +0100
changeset 6368d0be6a9a809
parent 635 e5cc7edead25
child 648 77735e75d6dc
child 656 ef21eeecf47c
Providing implementation of the most important java.lang.System methods
emul/compact/src/main/java/java/io/BufferedReader.java
emul/compact/src/main/java/java/lang/System.java
emul/compact/src/main/java/java/util/ArrayDeque.java
emul/compact/src/main/java/java/util/ArrayList.java
emul/compact/src/main/java/java/util/Arrays.java
emul/compact/src/main/java/java/util/Collections.java
emul/compact/src/main/java/java/util/ComparableTimSort.java
emul/compact/src/main/java/java/util/PriorityQueue.java
emul/compact/src/main/java/java/util/TimSort.java
emul/compact/src/main/java/java/util/Vector.java
emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java
     1.1 --- a/emul/compact/src/main/java/java/io/BufferedReader.java	Fri Feb 01 16:25:57 2013 +0100
     1.2 +++ b/emul/compact/src/main/java/java/io/BufferedReader.java	Fri Feb 01 16:34:51 2013 +0100
     1.3 @@ -25,7 +25,6 @@
     1.4  
     1.5  package java.io;
     1.6  
     1.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     1.8  
     1.9  
    1.10  /**
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/emul/compact/src/main/java/java/lang/System.java	Fri Feb 01 16:34:51 2013 +0100
     2.3 @@ -0,0 +1,36 @@
     2.4 +/**
     2.5 + * Back 2 Browser Bytecode Translator
     2.6 + * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     2.7 + *
     2.8 + * This program is free software: you can redistribute it and/or modify
     2.9 + * it under the terms of the GNU General Public License as published by
    2.10 + * the Free Software Foundation, version 2 of the License.
    2.11 + *
    2.12 + * This program is distributed in the hope that it will be useful,
    2.13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    2.14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    2.15 + * GNU General Public License for more details.
    2.16 + *
    2.17 + * You should have received a copy of the GNU General Public License
    2.18 + * along with this program. Look for COPYING file in the top folder.
    2.19 + * If not, see http://opensource.org/licenses/GPL-2.0.
    2.20 + */
    2.21 +package java.lang;
    2.22 +
    2.23 +/** Poor man's re-implementation of most important System methods.
    2.24 + *
    2.25 + * @author Jaroslav Tulach <jtulach@netbeans.org>
    2.26 + */
    2.27 +public class System {
    2.28 +    private System() {
    2.29 +    }
    2.30 +    
    2.31 +    public static void arraycopy(Object value, int srcBegin, Object dst, int dstBegin, int count) {
    2.32 +        org.apidesign.bck2brwsr.emul.lang.System.arraycopy(value, srcBegin, dst, dstBegin, count);
    2.33 +    }
    2.34 +    
    2.35 +    public static long currentTimeMillis() {
    2.36 +        return org.apidesign.bck2brwsr.emul.lang.System.currentTimeMillis();
    2.37 +    }
    2.38 +    
    2.39 +}
     3.1 --- a/emul/compact/src/main/java/java/util/ArrayDeque.java	Fri Feb 01 16:25:57 2013 +0100
     3.2 +++ b/emul/compact/src/main/java/java/util/ArrayDeque.java	Fri Feb 01 16:34:51 2013 +0100
     3.3 @@ -34,7 +34,6 @@
     3.4  
     3.5  package java.util;
     3.6  import java.io.*;
     3.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     3.8  
     3.9  /**
    3.10   * Resizable-array implementation of the {@link Deque} interface.  Array
     4.1 --- a/emul/compact/src/main/java/java/util/ArrayList.java	Fri Feb 01 16:25:57 2013 +0100
     4.2 +++ b/emul/compact/src/main/java/java/util/ArrayList.java	Fri Feb 01 16:34:51 2013 +0100
     4.3 @@ -25,7 +25,6 @@
     4.4  
     4.5  package java.util;
     4.6  
     4.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     4.8  
     4.9  /**
    4.10   * Resizable-array implementation of the <tt>List</tt> interface.  Implements
     5.1 --- a/emul/compact/src/main/java/java/util/Arrays.java	Fri Feb 01 16:25:57 2013 +0100
     5.2 +++ b/emul/compact/src/main/java/java/util/Arrays.java	Fri Feb 01 16:34:51 2013 +0100
     5.3 @@ -26,7 +26,6 @@
     5.4  package java.util;
     5.5  
     5.6  import java.lang.reflect.*;
     5.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     5.8  
     5.9  /**
    5.10   * This class contains various methods for manipulating arrays (such as
     6.1 --- a/emul/compact/src/main/java/java/util/Collections.java	Fri Feb 01 16:25:57 2013 +0100
     6.2 +++ b/emul/compact/src/main/java/java/util/Collections.java	Fri Feb 01 16:34:51 2013 +0100
     6.3 @@ -27,7 +27,6 @@
     6.4  import java.io.Serializable;
     6.5  import java.io.IOException;
     6.6  import java.lang.reflect.Array;
     6.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     6.8  
     6.9  /**
    6.10   * This class consists exclusively of static methods that operate on or return
     7.1 --- a/emul/compact/src/main/java/java/util/ComparableTimSort.java	Fri Feb 01 16:25:57 2013 +0100
     7.2 +++ b/emul/compact/src/main/java/java/util/ComparableTimSort.java	Fri Feb 01 16:34:51 2013 +0100
     7.3 @@ -25,7 +25,6 @@
     7.4  
     7.5  package java.util;
     7.6  
     7.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     7.8  
     7.9  /**
    7.10   * This is a near duplicate of {@link TimSort}, modified for use with
     8.1 --- a/emul/compact/src/main/java/java/util/PriorityQueue.java	Fri Feb 01 16:25:57 2013 +0100
     8.2 +++ b/emul/compact/src/main/java/java/util/PriorityQueue.java	Fri Feb 01 16:34:51 2013 +0100
     8.3 @@ -25,7 +25,6 @@
     8.4  
     8.5  package java.util;
     8.6  
     8.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     8.8  
     8.9  /**
    8.10   * An unbounded priority {@linkplain Queue queue} based on a priority heap.
     9.1 --- a/emul/compact/src/main/java/java/util/TimSort.java	Fri Feb 01 16:25:57 2013 +0100
     9.2 +++ b/emul/compact/src/main/java/java/util/TimSort.java	Fri Feb 01 16:34:51 2013 +0100
     9.3 @@ -25,7 +25,6 @@
     9.4  
     9.5  package java.util;
     9.6  
     9.7 -import org.apidesign.bck2brwsr.emul.lang.System;
     9.8  
     9.9  /**
    9.10   * A stable, adaptive, iterative mergesort that requires far fewer than
    10.1 --- a/emul/compact/src/main/java/java/util/Vector.java	Fri Feb 01 16:25:57 2013 +0100
    10.2 +++ b/emul/compact/src/main/java/java/util/Vector.java	Fri Feb 01 16:34:51 2013 +0100
    10.3 @@ -25,7 +25,6 @@
    10.4  
    10.5  package java.util;
    10.6  
    10.7 -import org.apidesign.bck2brwsr.emul.lang.System;
    10.8  
    10.9  /**
   10.10   * The {@code Vector} class implements a growable array of
    11.1 --- a/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java	Fri Feb 01 16:25:57 2013 +0100
    11.2 +++ b/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java	Fri Feb 01 16:34:51 2013 +0100
    11.3 @@ -45,6 +45,10 @@
    11.4      )
    11.5      public static native byte[] expandArray(byte[] arr, int expectedSize);
    11.6  
    11.7 -    @JavaScriptBody(args = {}, body = "new Date().getMilliseconds() * 1000;")
    11.8 -    public static native long nanoTime();
    11.9 +    @JavaScriptBody(args = {}, body = "new Date().getMilliseconds();")
   11.10 +    public static native long currentTimeMillis();
   11.11 +    
   11.12 +    public static long nanoTime() {
   11.13 +        return 1000L * currentTimeMillis();
   11.14 +    }
   11.15  }