emul/mini/src/main/java/java/lang/Runnable.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 26 Jan 2013 08:47:05 +0100
changeset 592 5e13b1ac2886
parent 539 1831d3ddc7f0
permissions -rw-r--r--
In order to support fields of the same name in subclasses we are now prefixing them with name of the class that defines them. To provide convenient way to access them from generated bytecode and also directly from JavaScript, there is a getter/setter function for each field. It starts with _ followed by the field name. If called with a parameter, it sets the field, with a parameter it just returns it.
     1 /*
     2  * Copyright (c) 1994, 2005, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    25 
    26 package java.lang;
    27 
    28 /**
    29  * The <code>Runnable</code> interface should be implemented by any
    30  * class whose instances are intended to be executed by a thread. The
    31  * class must define a method of no arguments called <code>run</code>.
    32  * <p>
    33  * This interface is designed to provide a common protocol for objects that
    34  * wish to execute code while they are active. For example,
    35  * <code>Runnable</code> is implemented by class <code>Thread</code>.
    36  * Being active simply means that a thread has been started and has not
    37  * yet been stopped.
    38  * <p>
    39  * In addition, <code>Runnable</code> provides the means for a class to be
    40  * active while not subclassing <code>Thread</code>. A class that implements
    41  * <code>Runnable</code> can run without subclassing <code>Thread</code>
    42  * by instantiating a <code>Thread</code> instance and passing itself in
    43  * as the target.  In most cases, the <code>Runnable</code> interface should
    44  * be used if you are only planning to override the <code>run()</code>
    45  * method and no other <code>Thread</code> methods.
    46  * This is important because classes should not be subclassed
    47  * unless the programmer intends on modifying or enhancing the fundamental
    48  * behavior of the class.
    49  *
    50  * @author  Arthur van Hoff
    51  * @see     java.lang.Thread
    52  * @see     java.util.concurrent.Callable
    53  * @since   JDK1.0
    54  */
    55 public
    56 interface Runnable {
    57     /**
    58      * When an object implementing interface <code>Runnable</code> is used
    59      * to create a thread, starting the thread causes the object's
    60      * <code>run</code> method to be called in that separately executing
    61      * thread.
    62      * <p>
    63      * The general contract of the method <code>run</code> is that it may
    64      * take any action whatsoever.
    65      *
    66      * @see     java.lang.Thread#run()
    67      */
    68     public abstract void run();
    69 }