KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > google > gwt > user > client > Random


1 /*
2  * Copyright 2006 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */

16 package com.google.gwt.user.client;
17
18 /**
19  * This class can be used as a substitute for {@link java.util.Random}. The
20  * semantics differ in that the underlying browser's implementation is used. The
21  * random generator cannot be seeded or otherwise used to reproduce a particular
22  * sequence of results.
23  */

24 public final class Random {
25
26   /**
27    * Returns true or false with roughly equal probability. The underlying
28    * browser's random implementation is used.
29    */

30   public static native boolean nextBoolean() /*-{
31     return Math.random() < 0.5;
32   }-*/
;
33
34   /**
35    * Returns a random <code>double</code> between 0 (inclusive) and 1
36    * (exclusive). The underlying browser's random implementation is used.
37    */

38   public static native double nextDouble() /*-{
39     return Math.random();
40   }-*/
;
41
42   /**
43    * Returns a random <code>int</code> between -2147483648 and 2147483647
44    * (inclusive) with roughly equal probability of returning any particular
45    * <code>int</code> in this range. The underlying browser's random
46    * implementation is used.
47    */

48   public static native int nextInt() /*-{
49     // "~~" forces the value to a 32 bit integer.
50     return ~~(Math.floor(Math.random() * 4294967296) - 2147483648);
51   }-*/
;
52
53   /**
54    * Returns a random <code>int</code> between 0 (inclusive) and
55    * <code>upperBound</code> (exclusive) with roughly equal probability of
56    * returning any particular <code>int</code> in this range. The underlying
57    * browser's random implementation is used.
58    */

59   public static native int nextInt(int upperBound) /*-{
60     // "~~" forces the value to a 32 bit integer.
61     return ~~(Math.floor(Math.random() * upperBound));
62   }-*/
;
63
64   /**
65    * Not instantiable. Having different instances of this class would not be
66    * meaningful because no state is stored and the common browser implementation
67    * is shared.
68    */

69   private Random() {
70   }
71 }
72
Popular Tags