1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/emul/src/main/java/java/lang/ArrayIndexOutOfBoundsException.java Sat Sep 29 10:52:05 2012 +0200
1.3 @@ -0,0 +1,67 @@
1.4 +/*
1.5 + * Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved.
1.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1.7 + *
1.8 + * This code is free software; you can redistribute it and/or modify it
1.9 + * under the terms of the GNU General Public License version 2 only, as
1.10 + * published by the Free Software Foundation. Oracle designates this
1.11 + * particular file as subject to the "Classpath" exception as provided
1.12 + * by Oracle in the LICENSE file that accompanied this code.
1.13 + *
1.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
1.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1.17 + * version 2 for more details (a copy is included in the LICENSE file that
1.18 + * accompanied this code).
1.19 + *
1.20 + * You should have received a copy of the GNU General Public License version
1.21 + * 2 along with this work; if not, write to the Free Software Foundation,
1.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1.23 + *
1.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1.25 + * or visit www.oracle.com if you need additional information or have any
1.26 + * questions.
1.27 + */
1.28 +
1.29 +package java.lang;
1.30 +
1.31 +/**
1.32 + * Thrown to indicate that an array has been accessed with an
1.33 + * illegal index. The index is either negative or greater than or
1.34 + * equal to the size of the array.
1.35 + *
1.36 + * @author unascribed
1.37 + * @since JDK1.0
1.38 + */
1.39 +public
1.40 +class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException {
1.41 + private static final long serialVersionUID = -5116101128118950844L;
1.42 +
1.43 + /**
1.44 + * Constructs an <code>ArrayIndexOutOfBoundsException</code> with no
1.45 + * detail message.
1.46 + */
1.47 + public ArrayIndexOutOfBoundsException() {
1.48 + super();
1.49 + }
1.50 +
1.51 + /**
1.52 + * Constructs a new <code>ArrayIndexOutOfBoundsException</code>
1.53 + * class with an argument indicating the illegal index.
1.54 + *
1.55 + * @param index the illegal index.
1.56 + */
1.57 + public ArrayIndexOutOfBoundsException(int index) {
1.58 + super("Array index out of range: " + index);
1.59 + }
1.60 +
1.61 + /**
1.62 + * Constructs an <code>ArrayIndexOutOfBoundsException</code> class
1.63 + * with the specified detail message.
1.64 + *
1.65 + * @param s the detail message.
1.66 + */
1.67 + public ArrayIndexOutOfBoundsException(String s) {
1.68 + super(s);
1.69 + }
1.70 +}
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/emul/src/main/java/java/lang/ClassNotFoundException.java Sat Sep 29 10:52:05 2012 +0200
2.3 @@ -0,0 +1,125 @@
2.4 +/*
2.5 + * Copyright (c) 1995, 2004, Oracle and/or its affiliates. All rights reserved.
2.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2.7 + *
2.8 + * This code is free software; you can redistribute it and/or modify it
2.9 + * under the terms of the GNU General Public License version 2 only, as
2.10 + * published by the Free Software Foundation. Oracle designates this
2.11 + * particular file as subject to the "Classpath" exception as provided
2.12 + * by Oracle in the LICENSE file that accompanied this code.
2.13 + *
2.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
2.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2.17 + * version 2 for more details (a copy is included in the LICENSE file that
2.18 + * accompanied this code).
2.19 + *
2.20 + * You should have received a copy of the GNU General Public License version
2.21 + * 2 along with this work; if not, write to the Free Software Foundation,
2.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
2.23 + *
2.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2.25 + * or visit www.oracle.com if you need additional information or have any
2.26 + * questions.
2.27 + */
2.28 +
2.29 +package java.lang;
2.30 +
2.31 +/**
2.32 + * Thrown when an application tries to load in a class through its
2.33 + * string name using:
2.34 + * <ul>
2.35 + * <li>The <code>forName</code> method in class <code>Class</code>.
2.36 + * <li>The <code>findSystemClass</code> method in class
2.37 + * <code>ClassLoader</code> .
2.38 + * <li>The <code>loadClass</code> method in class <code>ClassLoader</code>.
2.39 + * </ul>
2.40 + * <p>
2.41 + * but no definition for the class with the specified name could be found.
2.42 + *
2.43 + * <p>As of release 1.4, this exception has been retrofitted to conform to
2.44 + * the general purpose exception-chaining mechanism. The "optional exception
2.45 + * that was raised while loading the class" that may be provided at
2.46 + * construction time and accessed via the {@link #getException()} method is
2.47 + * now known as the <i>cause</i>, and may be accessed via the {@link
2.48 + * Throwable#getCause()} method, as well as the aforementioned "legacy method."
2.49 + *
2.50 + * @author unascribed
2.51 + * @see java.lang.Class#forName(java.lang.String)
2.52 + * @see java.lang.ClassLoader#findSystemClass(java.lang.String)
2.53 + * @see java.lang.ClassLoader#loadClass(java.lang.String, boolean)
2.54 + * @since JDK1.0
2.55 + */
2.56 +public class ClassNotFoundException extends ReflectiveOperationException {
2.57 + /**
2.58 + * use serialVersionUID from JDK 1.1.X for interoperability
2.59 + */
2.60 + private static final long serialVersionUID = 9176873029745254542L;
2.61 +
2.62 + /**
2.63 + * This field holds the exception ex if the
2.64 + * ClassNotFoundException(String s, Throwable ex) constructor was
2.65 + * used to instantiate the object
2.66 + * @serial
2.67 + * @since 1.2
2.68 + */
2.69 + private Throwable ex;
2.70 +
2.71 + /**
2.72 + * Constructs a <code>ClassNotFoundException</code> with no detail message.
2.73 + */
2.74 + public ClassNotFoundException() {
2.75 + super((Throwable)null); // Disallow initCause
2.76 + }
2.77 +
2.78 + /**
2.79 + * Constructs a <code>ClassNotFoundException</code> with the
2.80 + * specified detail message.
2.81 + *
2.82 + * @param s the detail message.
2.83 + */
2.84 + public ClassNotFoundException(String s) {
2.85 + super(s, null); // Disallow initCause
2.86 + }
2.87 +
2.88 + /**
2.89 + * Constructs a <code>ClassNotFoundException</code> with the
2.90 + * specified detail message and optional exception that was
2.91 + * raised while loading the class.
2.92 + *
2.93 + * @param s the detail message
2.94 + * @param ex the exception that was raised while loading the class
2.95 + * @since 1.2
2.96 + */
2.97 + public ClassNotFoundException(String s, Throwable ex) {
2.98 + super(s, null); // Disallow initCause
2.99 + this.ex = ex;
2.100 + }
2.101 +
2.102 + /**
2.103 + * Returns the exception that was raised if an error occurred while
2.104 + * attempting to load the class. Otherwise, returns <tt>null</tt>.
2.105 + *
2.106 + * <p>This method predates the general-purpose exception chaining facility.
2.107 + * The {@link Throwable#getCause()} method is now the preferred means of
2.108 + * obtaining this information.
2.109 + *
2.110 + * @return the <code>Exception</code> that was raised while loading a class
2.111 + * @since 1.2
2.112 + */
2.113 + public Throwable getException() {
2.114 + return ex;
2.115 + }
2.116 +
2.117 + /**
2.118 + * Returns the cause of this exception (the exception that was raised
2.119 + * if an error occurred while attempting to load the class; otherwise
2.120 + * <tt>null</tt>).
2.121 + *
2.122 + * @return the cause of this exception.
2.123 + * @since 1.4
2.124 + */
2.125 + public Throwable getCause() {
2.126 + return ex;
2.127 + }
2.128 +}
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/emul/src/main/java/java/lang/IllegalStateException.java Sat Sep 29 10:52:05 2012 +0200
3.3 @@ -0,0 +1,97 @@
3.4 +/*
3.5 + * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved.
3.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3.7 + *
3.8 + * This code is free software; you can redistribute it and/or modify it
3.9 + * under the terms of the GNU General Public License version 2 only, as
3.10 + * published by the Free Software Foundation. Oracle designates this
3.11 + * particular file as subject to the "Classpath" exception as provided
3.12 + * by Oracle in the LICENSE file that accompanied this code.
3.13 + *
3.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
3.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3.17 + * version 2 for more details (a copy is included in the LICENSE file that
3.18 + * accompanied this code).
3.19 + *
3.20 + * You should have received a copy of the GNU General Public License version
3.21 + * 2 along with this work; if not, write to the Free Software Foundation,
3.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3.23 + *
3.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3.25 + * or visit www.oracle.com if you need additional information or have any
3.26 + * questions.
3.27 + */
3.28 +
3.29 +package java.lang;
3.30 +
3.31 +/**
3.32 + * Signals that a method has been invoked at an illegal or
3.33 + * inappropriate time. In other words, the Java environment or
3.34 + * Java application is not in an appropriate state for the requested
3.35 + * operation.
3.36 + *
3.37 + * @author Jonni Kanerva
3.38 + * @since JDK1.1
3.39 + */
3.40 +public
3.41 +class IllegalStateException extends RuntimeException {
3.42 + /**
3.43 + * Constructs an IllegalStateException with no detail message.
3.44 + * A detail message is a String that describes this particular exception.
3.45 + */
3.46 + public IllegalStateException() {
3.47 + super();
3.48 + }
3.49 +
3.50 + /**
3.51 + * Constructs an IllegalStateException with the specified detail
3.52 + * message. A detail message is a String that describes this particular
3.53 + * exception.
3.54 + *
3.55 + * @param s the String that contains a detailed message
3.56 + */
3.57 + public IllegalStateException(String s) {
3.58 + super(s);
3.59 + }
3.60 +
3.61 + /**
3.62 + * Constructs a new exception with the specified detail message and
3.63 + * cause.
3.64 + *
3.65 + * <p>Note that the detail message associated with <code>cause</code> is
3.66 + * <i>not</i> automatically incorporated in this exception's detail
3.67 + * message.
3.68 + *
3.69 + * @param message the detail message (which is saved for later retrieval
3.70 + * by the {@link Throwable#getMessage()} method).
3.71 + * @param cause the cause (which is saved for later retrieval by the
3.72 + * {@link Throwable#getCause()} method). (A <tt>null</tt> value
3.73 + * is permitted, and indicates that the cause is nonexistent or
3.74 + * unknown.)
3.75 + * @since 1.5
3.76 + */
3.77 + public IllegalStateException(String message, Throwable cause) {
3.78 + super(message, cause);
3.79 + }
3.80 +
3.81 + /**
3.82 + * Constructs a new exception with the specified cause and a detail
3.83 + * message of <tt>(cause==null ? null : cause.toString())</tt> (which
3.84 + * typically contains the class and detail message of <tt>cause</tt>).
3.85 + * This constructor is useful for exceptions that are little more than
3.86 + * wrappers for other throwables (for example, {@link
3.87 + * java.security.PrivilegedActionException}).
3.88 + *
3.89 + * @param cause the cause (which is saved for later retrieval by the
3.90 + * {@link Throwable#getCause()} method). (A <tt>null</tt> value is
3.91 + * permitted, and indicates that the cause is nonexistent or
3.92 + * unknown.)
3.93 + * @since 1.5
3.94 + */
3.95 + public IllegalStateException(Throwable cause) {
3.96 + super(cause);
3.97 + }
3.98 +
3.99 + static final long serialVersionUID = -1848914673093119416L;
3.100 +}
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/emul/src/main/java/java/lang/IndexOutOfBoundsException.java Sat Sep 29 10:52:05 2012 +0200
4.3 @@ -0,0 +1,58 @@
4.4 +/*
4.5 + * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
4.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4.7 + *
4.8 + * This code is free software; you can redistribute it and/or modify it
4.9 + * under the terms of the GNU General Public License version 2 only, as
4.10 + * published by the Free Software Foundation. Oracle designates this
4.11 + * particular file as subject to the "Classpath" exception as provided
4.12 + * by Oracle in the LICENSE file that accompanied this code.
4.13 + *
4.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
4.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4.17 + * version 2 for more details (a copy is included in the LICENSE file that
4.18 + * accompanied this code).
4.19 + *
4.20 + * You should have received a copy of the GNU General Public License version
4.21 + * 2 along with this work; if not, write to the Free Software Foundation,
4.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4.23 + *
4.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4.25 + * or visit www.oracle.com if you need additional information or have any
4.26 + * questions.
4.27 + */
4.28 +
4.29 +package java.lang;
4.30 +
4.31 +/**
4.32 + * Thrown to indicate that an index of some sort (such as to an array, to a
4.33 + * string, or to a vector) is out of range.
4.34 + * <p>
4.35 + * Applications can subclass this class to indicate similar exceptions.
4.36 + *
4.37 + * @author Frank Yellin
4.38 + * @since JDK1.0
4.39 + */
4.40 +public
4.41 +class IndexOutOfBoundsException extends RuntimeException {
4.42 + private static final long serialVersionUID = 234122996006267687L;
4.43 +
4.44 + /**
4.45 + * Constructs an <code>IndexOutOfBoundsException</code> with no
4.46 + * detail message.
4.47 + */
4.48 + public IndexOutOfBoundsException() {
4.49 + super();
4.50 + }
4.51 +
4.52 + /**
4.53 + * Constructs an <code>IndexOutOfBoundsException</code> with the
4.54 + * specified detail message.
4.55 + *
4.56 + * @param s the detail message.
4.57 + */
4.58 + public IndexOutOfBoundsException(String s) {
4.59 + super(s);
4.60 + }
4.61 +}
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/emul/src/main/java/java/lang/InstantiationException.java Sat Sep 29 10:52:05 2012 +0200
5.3 @@ -0,0 +1,65 @@
5.4 +/*
5.5 + * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
5.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5.7 + *
5.8 + * This code is free software; you can redistribute it and/or modify it
5.9 + * under the terms of the GNU General Public License version 2 only, as
5.10 + * published by the Free Software Foundation. Oracle designates this
5.11 + * particular file as subject to the "Classpath" exception as provided
5.12 + * by Oracle in the LICENSE file that accompanied this code.
5.13 + *
5.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
5.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
5.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
5.17 + * version 2 for more details (a copy is included in the LICENSE file that
5.18 + * accompanied this code).
5.19 + *
5.20 + * You should have received a copy of the GNU General Public License version
5.21 + * 2 along with this work; if not, write to the Free Software Foundation,
5.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
5.23 + *
5.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
5.25 + * or visit www.oracle.com if you need additional information or have any
5.26 + * questions.
5.27 + */
5.28 +
5.29 +package java.lang;
5.30 +
5.31 +/**
5.32 + * Thrown when an application tries to create an instance of a class
5.33 + * using the {@code newInstance} method in class
5.34 + * {@code Class}, but the specified class object cannot be
5.35 + * instantiated. The instantiation can fail for a variety of
5.36 + * reasons including but not limited to:
5.37 + *
5.38 + * <ul>
5.39 + * <li> the class object represents an abstract class, an interface,
5.40 + * an array class, a primitive type, or {@code void}
5.41 + * <li> the class has no nullary constructor
5.42 + *</ul>
5.43 + *
5.44 + * @author unascribed
5.45 + * @see java.lang.Class#newInstance()
5.46 + * @since JDK1.0
5.47 + */
5.48 +public
5.49 +class InstantiationException extends ReflectiveOperationException {
5.50 + private static final long serialVersionUID = -8441929162975509110L;
5.51 +
5.52 + /**
5.53 + * Constructs an {@code InstantiationException} with no detail message.
5.54 + */
5.55 + public InstantiationException() {
5.56 + super();
5.57 + }
5.58 +
5.59 + /**
5.60 + * Constructs an {@code InstantiationException} with the
5.61 + * specified detail message.
5.62 + *
5.63 + * @param s the detail message.
5.64 + */
5.65 + public InstantiationException(String s) {
5.66 + super(s);
5.67 + }
5.68 +}
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/emul/src/main/java/java/lang/StringIndexOutOfBoundsException.java Sat Sep 29 10:52:05 2012 +0200
6.3 @@ -0,0 +1,71 @@
6.4 +/*
6.5 + * Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved.
6.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6.7 + *
6.8 + * This code is free software; you can redistribute it and/or modify it
6.9 + * under the terms of the GNU General Public License version 2 only, as
6.10 + * published by the Free Software Foundation. Oracle designates this
6.11 + * particular file as subject to the "Classpath" exception as provided
6.12 + * by Oracle in the LICENSE file that accompanied this code.
6.13 + *
6.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
6.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
6.17 + * version 2 for more details (a copy is included in the LICENSE file that
6.18 + * accompanied this code).
6.19 + *
6.20 + * You should have received a copy of the GNU General Public License version
6.21 + * 2 along with this work; if not, write to the Free Software Foundation,
6.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6.23 + *
6.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6.25 + * or visit www.oracle.com if you need additional information or have any
6.26 + * questions.
6.27 + */
6.28 +
6.29 +package java.lang;
6.30 +
6.31 +/**
6.32 + * Thrown by <code>String</code> methods to indicate that an index
6.33 + * is either negative or greater than the size of the string. For
6.34 + * some methods such as the charAt method, this exception also is
6.35 + * thrown when the index is equal to the size of the string.
6.36 + *
6.37 + * @author unascribed
6.38 + * @see java.lang.String#charAt(int)
6.39 + * @since JDK1.0
6.40 + */
6.41 +public
6.42 +class StringIndexOutOfBoundsException extends IndexOutOfBoundsException {
6.43 + private static final long serialVersionUID = -6762910422159637258L;
6.44 +
6.45 + /**
6.46 + * Constructs a <code>StringIndexOutOfBoundsException</code> with no
6.47 + * detail message.
6.48 + *
6.49 + * @since JDK1.0.
6.50 + */
6.51 + public StringIndexOutOfBoundsException() {
6.52 + super();
6.53 + }
6.54 +
6.55 + /**
6.56 + * Constructs a <code>StringIndexOutOfBoundsException</code> with
6.57 + * the specified detail message.
6.58 + *
6.59 + * @param s the detail message.
6.60 + */
6.61 + public StringIndexOutOfBoundsException(String s) {
6.62 + super(s);
6.63 + }
6.64 +
6.65 + /**
6.66 + * Constructs a new <code>StringIndexOutOfBoundsException</code>
6.67 + * class with an argument indicating the illegal index.
6.68 + *
6.69 + * @param index the illegal index.
6.70 + */
6.71 + public StringIndexOutOfBoundsException(int index) {
6.72 + super("String index out of range: " + index);
6.73 + }
6.74 +}
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/emul/src/main/java/java/lang/annotation/Annotation.java Sat Sep 29 10:52:05 2012 +0200
7.3 @@ -0,0 +1,131 @@
7.4 +/*
7.5 + * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
7.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7.7 + *
7.8 + * This code is free software; you can redistribute it and/or modify it
7.9 + * under the terms of the GNU General Public License version 2 only, as
7.10 + * published by the Free Software Foundation. Oracle designates this
7.11 + * particular file as subject to the "Classpath" exception as provided
7.12 + * by Oracle in the LICENSE file that accompanied this code.
7.13 + *
7.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
7.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
7.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
7.17 + * version 2 for more details (a copy is included in the LICENSE file that
7.18 + * accompanied this code).
7.19 + *
7.20 + * You should have received a copy of the GNU General Public License version
7.21 + * 2 along with this work; if not, write to the Free Software Foundation,
7.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
7.23 + *
7.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
7.25 + * or visit www.oracle.com if you need additional information or have any
7.26 + * questions.
7.27 + */
7.28 +
7.29 +package java.lang.annotation;
7.30 +
7.31 +/**
7.32 + * The common interface extended by all annotation types. Note that an
7.33 + * interface that manually extends this one does <i>not</i> define
7.34 + * an annotation type. Also note that this interface does not itself
7.35 + * define an annotation type.
7.36 + *
7.37 + * More information about annotation types can be found in section 9.6 of
7.38 + * <cite>The Java™ Language Specification</cite>.
7.39 + *
7.40 + * @author Josh Bloch
7.41 + * @since 1.5
7.42 + */
7.43 +public interface Annotation {
7.44 + /**
7.45 + * Returns true if the specified object represents an annotation
7.46 + * that is logically equivalent to this one. In other words,
7.47 + * returns true if the specified object is an instance of the same
7.48 + * annotation type as this instance, all of whose members are equal
7.49 + * to the corresponding member of this annotation, as defined below:
7.50 + * <ul>
7.51 + * <li>Two corresponding primitive typed members whose values are
7.52 + * <tt>x</tt> and <tt>y</tt> are considered equal if <tt>x == y</tt>,
7.53 + * unless their type is <tt>float</tt> or <tt>double</tt>.
7.54 + *
7.55 + * <li>Two corresponding <tt>float</tt> members whose values
7.56 + * are <tt>x</tt> and <tt>y</tt> are considered equal if
7.57 + * <tt>Float.valueOf(x).equals(Float.valueOf(y))</tt>.
7.58 + * (Unlike the <tt>==</tt> operator, NaN is considered equal
7.59 + * to itself, and <tt>0.0f</tt> unequal to <tt>-0.0f</tt>.)
7.60 + *
7.61 + * <li>Two corresponding <tt>double</tt> members whose values
7.62 + * are <tt>x</tt> and <tt>y</tt> are considered equal if
7.63 + * <tt>Double.valueOf(x).equals(Double.valueOf(y))</tt>.
7.64 + * (Unlike the <tt>==</tt> operator, NaN is considered equal
7.65 + * to itself, and <tt>0.0</tt> unequal to <tt>-0.0</tt>.)
7.66 + *
7.67 + * <li>Two corresponding <tt>String</tt>, <tt>Class</tt>, enum, or
7.68 + * annotation typed members whose values are <tt>x</tt> and <tt>y</tt>
7.69 + * are considered equal if <tt>x.equals(y)</tt>. (Note that this
7.70 + * definition is recursive for annotation typed members.)
7.71 + *
7.72 + * <li>Two corresponding array typed members <tt>x</tt> and <tt>y</tt>
7.73 + * are considered equal if <tt>Arrays.equals(x, y)</tt>, for the
7.74 + * appropriate overloading of {@link java.util.Arrays#equals}.
7.75 + * </ul>
7.76 + *
7.77 + * @return true if the specified object represents an annotation
7.78 + * that is logically equivalent to this one, otherwise false
7.79 + */
7.80 + boolean equals(Object obj);
7.81 +
7.82 + /**
7.83 + * Returns the hash code of this annotation, as defined below:
7.84 + *
7.85 + * <p>The hash code of an annotation is the sum of the hash codes
7.86 + * of its members (including those with default values), as defined
7.87 + * below:
7.88 + *
7.89 + * The hash code of an annotation member is (127 times the hash code
7.90 + * of the member-name as computed by {@link String#hashCode()}) XOR
7.91 + * the hash code of the member-value, as defined below:
7.92 + *
7.93 + * <p>The hash code of a member-value depends on its type:
7.94 + * <ul>
7.95 + * <li>The hash code of a primitive value <tt><i>v</i></tt> is equal to
7.96 + * <tt><i>WrapperType</i>.valueOf(<i>v</i>).hashCode()</tt>, where
7.97 + * <tt><i>WrapperType</i></tt> is the wrapper type corresponding
7.98 + * to the primitive type of <tt><i>v</i></tt> ({@link Byte},
7.99 + * {@link Character}, {@link Double}, {@link Float}, {@link Integer},
7.100 + * {@link Long}, {@link Short}, or {@link Boolean}).
7.101 + *
7.102 + * <li>The hash code of a string, enum, class, or annotation member-value
7.103 + I <tt><i>v</i></tt> is computed as by calling
7.104 + * <tt><i>v</i>.hashCode()</tt>. (In the case of annotation
7.105 + * member values, this is a recursive definition.)
7.106 + *
7.107 + * <li>The hash code of an array member-value is computed by calling
7.108 + * the appropriate overloading of
7.109 + * {@link java.util.Arrays#hashCode(long[]) Arrays.hashCode}
7.110 + * on the value. (There is one overloading for each primitive
7.111 + * type, and one for object reference types.)
7.112 + * </ul>
7.113 + *
7.114 + * @return the hash code of this annotation
7.115 + */
7.116 + int hashCode();
7.117 +
7.118 + /**
7.119 + * Returns a string representation of this annotation. The details
7.120 + * of the representation are implementation-dependent, but the following
7.121 + * may be regarded as typical:
7.122 + * <pre>
7.123 + * @com.acme.util.Name(first=Alfred, middle=E., last=Neuman)
7.124 + * </pre>
7.125 + *
7.126 + * @return a string representation of this annotation
7.127 + */
7.128 + String toString();
7.129 +
7.130 + /**
7.131 + * Returns the annotation type of this annotation.
7.132 + */
7.133 + Class<? extends Annotation> annotationType();
7.134 +}
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/emul/src/main/java/java/lang/annotation/Documented.java Sat Sep 29 10:52:05 2012 +0200
8.3 @@ -0,0 +1,43 @@
8.4 +/*
8.5 + * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
8.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8.7 + *
8.8 + * This code is free software; you can redistribute it and/or modify it
8.9 + * under the terms of the GNU General Public License version 2 only, as
8.10 + * published by the Free Software Foundation. Oracle designates this
8.11 + * particular file as subject to the "Classpath" exception as provided
8.12 + * by Oracle in the LICENSE file that accompanied this code.
8.13 + *
8.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
8.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
8.17 + * version 2 for more details (a copy is included in the LICENSE file that
8.18 + * accompanied this code).
8.19 + *
8.20 + * You should have received a copy of the GNU General Public License version
8.21 + * 2 along with this work; if not, write to the Free Software Foundation,
8.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
8.23 + *
8.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
8.25 + * or visit www.oracle.com if you need additional information or have any
8.26 + * questions.
8.27 + */
8.28 +
8.29 +package java.lang.annotation;
8.30 +
8.31 +/**
8.32 + * Indicates that annotations with a type are to be documented by javadoc
8.33 + * and similar tools by default. This type should be used to annotate the
8.34 + * declarations of types whose annotations affect the use of annotated
8.35 + * elements by their clients. If a type declaration is annotated with
8.36 + * Documented, its annotations become part of the public API
8.37 + * of the annotated elements.
8.38 + *
8.39 + * @author Joshua Bloch
8.40 + * @since 1.5
8.41 + */
8.42 +@Documented
8.43 +@Retention(RetentionPolicy.RUNTIME)
8.44 +@Target(ElementType.ANNOTATION_TYPE)
8.45 +public @interface Documented {
8.46 +}
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/emul/src/main/java/java/lang/annotation/NullPointerException.java Sat Sep 29 10:52:05 2012 +0200
9.3 @@ -0,0 +1,72 @@
9.4 +/*
9.5 + * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
9.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9.7 + *
9.8 + * This code is free software; you can redistribute it and/or modify it
9.9 + * under the terms of the GNU General Public License version 2 only, as
9.10 + * published by the Free Software Foundation. Oracle designates this
9.11 + * particular file as subject to the "Classpath" exception as provided
9.12 + * by Oracle in the LICENSE file that accompanied this code.
9.13 + *
9.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
9.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
9.17 + * version 2 for more details (a copy is included in the LICENSE file that
9.18 + * accompanied this code).
9.19 + *
9.20 + * You should have received a copy of the GNU General Public License version
9.21 + * 2 along with this work; if not, write to the Free Software Foundation,
9.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
9.23 + *
9.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
9.25 + * or visit www.oracle.com if you need additional information or have any
9.26 + * questions.
9.27 + */
9.28 +
9.29 +package java.lang;
9.30 +
9.31 +/**
9.32 + * Thrown when an application attempts to use {@code null} in a
9.33 + * case where an object is required. These include:
9.34 + * <ul>
9.35 + * <li>Calling the instance method of a {@code null} object.
9.36 + * <li>Accessing or modifying the field of a {@code null} object.
9.37 + * <li>Taking the length of {@code null} as if it were an array.
9.38 + * <li>Accessing or modifying the slots of {@code null} as if it
9.39 + * were an array.
9.40 + * <li>Throwing {@code null} as if it were a {@code Throwable}
9.41 + * value.
9.42 + * </ul>
9.43 + * <p>
9.44 + * Applications should throw instances of this class to indicate
9.45 + * other illegal uses of the {@code null} object.
9.46 + *
9.47 + * {@code NullPointerException} objects may be constructed by the
9.48 + * virtual machine as if {@linkplain Throwable#Throwable(String,
9.49 + * Throwable, boolean, boolean) suppression were disabled and/or the
9.50 + * stack trace was not writable}.
9.51 + *
9.52 + * @author unascribed
9.53 + * @since JDK1.0
9.54 + */
9.55 +public
9.56 +class NullPointerException extends RuntimeException {
9.57 + private static final long serialVersionUID = 5162710183389028792L;
9.58 +
9.59 + /**
9.60 + * Constructs a {@code NullPointerException} with no detail message.
9.61 + */
9.62 + public NullPointerException() {
9.63 + super();
9.64 + }
9.65 +
9.66 + /**
9.67 + * Constructs a {@code NullPointerException} with the specified
9.68 + * detail message.
9.69 + *
9.70 + * @param s the detail message.
9.71 + */
9.72 + public NullPointerException(String s) {
9.73 + super(s);
9.74 + }
9.75 +}
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/emul/src/main/java/java/lang/annotation/Retention.java Sat Sep 29 10:52:05 2012 +0200
10.3 @@ -0,0 +1,47 @@
10.4 +/*
10.5 + * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
10.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
10.7 + *
10.8 + * This code is free software; you can redistribute it and/or modify it
10.9 + * under the terms of the GNU General Public License version 2 only, as
10.10 + * published by the Free Software Foundation. Oracle designates this
10.11 + * particular file as subject to the "Classpath" exception as provided
10.12 + * by Oracle in the LICENSE file that accompanied this code.
10.13 + *
10.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
10.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
10.17 + * version 2 for more details (a copy is included in the LICENSE file that
10.18 + * accompanied this code).
10.19 + *
10.20 + * You should have received a copy of the GNU General Public License version
10.21 + * 2 along with this work; if not, write to the Free Software Foundation,
10.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
10.23 + *
10.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
10.25 + * or visit www.oracle.com if you need additional information or have any
10.26 + * questions.
10.27 + */
10.28 +
10.29 +package java.lang.annotation;
10.30 +
10.31 +/**
10.32 + * Indicates how long annotations with the annotated type are to
10.33 + * be retained. If no Retention annotation is present on
10.34 + * an annotation type declaration, the retention policy defaults to
10.35 + * {@code RetentionPolicy.CLASS}.
10.36 + *
10.37 + * <p>A Retention meta-annotation has effect only if the
10.38 + * meta-annotated type is used directly for annotation. It has no
10.39 + * effect if the meta-annotated type is used as a member type in
10.40 + * another annotation type.
10.41 + *
10.42 + * @author Joshua Bloch
10.43 + * @since 1.5
10.44 + */
10.45 +@Documented
10.46 +@Retention(RetentionPolicy.RUNTIME)
10.47 +@Target(ElementType.ANNOTATION_TYPE)
10.48 +public @interface Retention {
10.49 + RetentionPolicy value();
10.50 +}
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/emul/src/main/java/java/lang/annotation/RetentionPolicy.java Sat Sep 29 10:52:05 2012 +0200
11.3 @@ -0,0 +1,57 @@
11.4 +/*
11.5 + * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
11.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
11.7 + *
11.8 + * This code is free software; you can redistribute it and/or modify it
11.9 + * under the terms of the GNU General Public License version 2 only, as
11.10 + * published by the Free Software Foundation. Oracle designates this
11.11 + * particular file as subject to the "Classpath" exception as provided
11.12 + * by Oracle in the LICENSE file that accompanied this code.
11.13 + *
11.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
11.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11.17 + * version 2 for more details (a copy is included in the LICENSE file that
11.18 + * accompanied this code).
11.19 + *
11.20 + * You should have received a copy of the GNU General Public License version
11.21 + * 2 along with this work; if not, write to the Free Software Foundation,
11.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
11.23 + *
11.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
11.25 + * or visit www.oracle.com if you need additional information or have any
11.26 + * questions.
11.27 + */
11.28 +
11.29 +package java.lang.annotation;
11.30 +
11.31 +/**
11.32 + * Annotation retention policy. The constants of this enumerated type
11.33 + * describe the various policies for retaining annotations. They are used
11.34 + * in conjunction with the {@link Retention} meta-annotation type to specify
11.35 + * how long annotations are to be retained.
11.36 + *
11.37 + * @author Joshua Bloch
11.38 + * @since 1.5
11.39 + */
11.40 +public enum RetentionPolicy {
11.41 + /**
11.42 + * Annotations are to be discarded by the compiler.
11.43 + */
11.44 + SOURCE,
11.45 +
11.46 + /**
11.47 + * Annotations are to be recorded in the class file by the compiler
11.48 + * but need not be retained by the VM at run time. This is the default
11.49 + * behavior.
11.50 + */
11.51 + CLASS,
11.52 +
11.53 + /**
11.54 + * Annotations are to be recorded in the class file by the compiler and
11.55 + * retained by the VM at run time, so they may be read reflectively.
11.56 + *
11.57 + * @see java.lang.reflect.AnnotatedElement
11.58 + */
11.59 + RUNTIME
11.60 +}
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/emul/src/main/java/java/lang/annotation/UnsupportedOperationException.java Sat Sep 29 10:52:05 2012 +0200
12.3 @@ -0,0 +1,94 @@
12.4 +/*
12.5 + * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
12.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
12.7 + *
12.8 + * This code is free software; you can redistribute it and/or modify it
12.9 + * under the terms of the GNU General Public License version 2 only, as
12.10 + * published by the Free Software Foundation. Oracle designates this
12.11 + * particular file as subject to the "Classpath" exception as provided
12.12 + * by Oracle in the LICENSE file that accompanied this code.
12.13 + *
12.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
12.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12.17 + * version 2 for more details (a copy is included in the LICENSE file that
12.18 + * accompanied this code).
12.19 + *
12.20 + * You should have received a copy of the GNU General Public License version
12.21 + * 2 along with this work; if not, write to the Free Software Foundation,
12.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
12.23 + *
12.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
12.25 + * or visit www.oracle.com if you need additional information or have any
12.26 + * questions.
12.27 + */
12.28 +
12.29 +package java.lang;
12.30 +
12.31 +/**
12.32 + * Thrown to indicate that the requested operation is not supported.<p>
12.33 + *
12.34 + * This class is a member of the
12.35 + * <a href="{@docRoot}/../technotes/guides/collections/index.html">
12.36 + * Java Collections Framework</a>.
12.37 + *
12.38 + * @author Josh Bloch
12.39 + * @since 1.2
12.40 + */
12.41 +public class UnsupportedOperationException extends RuntimeException {
12.42 + /**
12.43 + * Constructs an UnsupportedOperationException with no detail message.
12.44 + */
12.45 + public UnsupportedOperationException() {
12.46 + }
12.47 +
12.48 + /**
12.49 + * Constructs an UnsupportedOperationException with the specified
12.50 + * detail message.
12.51 + *
12.52 + * @param message the detail message
12.53 + */
12.54 + public UnsupportedOperationException(String message) {
12.55 + super(message);
12.56 + }
12.57 +
12.58 + /**
12.59 + * Constructs a new exception with the specified detail message and
12.60 + * cause.
12.61 + *
12.62 + * <p>Note that the detail message associated with <code>cause</code> is
12.63 + * <i>not</i> automatically incorporated in this exception's detail
12.64 + * message.
12.65 + *
12.66 + * @param message the detail message (which is saved for later retrieval
12.67 + * by the {@link Throwable#getMessage()} method).
12.68 + * @param cause the cause (which is saved for later retrieval by the
12.69 + * {@link Throwable#getCause()} method). (A <tt>null</tt> value
12.70 + * is permitted, and indicates that the cause is nonexistent or
12.71 + * unknown.)
12.72 + * @since 1.5
12.73 + */
12.74 + public UnsupportedOperationException(String message, Throwable cause) {
12.75 + super(message, cause);
12.76 + }
12.77 +
12.78 + /**
12.79 + * Constructs a new exception with the specified cause and a detail
12.80 + * message of <tt>(cause==null ? null : cause.toString())</tt> (which
12.81 + * typically contains the class and detail message of <tt>cause</tt>).
12.82 + * This constructor is useful for exceptions that are little more than
12.83 + * wrappers for other throwables (for example, {@link
12.84 + * java.security.PrivilegedActionException}).
12.85 + *
12.86 + * @param cause the cause (which is saved for later retrieval by the
12.87 + * {@link Throwable#getCause()} method). (A <tt>null</tt> value is
12.88 + * permitted, and indicates that the cause is nonexistent or
12.89 + * unknown.)
12.90 + * @since 1.5
12.91 + */
12.92 + public UnsupportedOperationException(Throwable cause) {
12.93 + super(cause);
12.94 + }
12.95 +
12.96 + static final long serialVersionUID = -1242599979055084673L;
12.97 +}