libjava/classpath/ChangeLog.gcj:

2007-05-31  Matthias Klose  <doko@ubuntu.com>

        * javax/management/NotificationBroadcasterSupport.java
        (getNotificationInfo): Add cast.
        * native/jni/qt-peer/Makefile.am (AM_CXXFLAGS): Add libstdc++ include
        directories.
        * native/jni/qt-peer/Makefile.in: Regenerate.

libjava/ChangeLog:

2007-06-03  Matthias Klose  <doko@ubuntu.com>

        * java/io/natFileWin32.cc (setFilePermissions): New (stub only).
        _access: Handle EXEC query, stub only.

2007-06-03  Matthias Klose  <doko@ubuntu.com>

        Merged from classpath:
        * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge.
        * java/lang/System.java(inheritedChannel): New.
        * java/lang/Character.java: Remove stray`;'.
        * java/net/MulticastSocket.java: Merged.
        * java/text/DateFormatSymbols.java(getInstance): New, comment updates.
        * java/text/Collator.java(getInstance): Merged.
        * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG.
        getDisplayName, getDisplayNames: New.
        * java/util/logging/Logger.java: Merged.
        * Regenerate .class and .h files.

2007-06-03  Matthias Klose  <doko@ubuntu.com>

        * java/io/File.java: Merge with classpath-0.95, new method
        setFilePermissions, new attribute EXEC.
        * java/io/natFilePosix.cc (setFilePermissions): New.
        _access: Handle EXEC query.
        * classpath/lib/java/io/File.class, java/io/File.h: Regenerate.

2007-06-03  Matthias Klose  <doko@ubuntu.com>

        Imported GNU Classpath 0.95.

        * classpath/Makefile.in,
        classpath/native/jni/midi-dssi/Makefile.in,
        classpath/native/jni/classpath/Makefile.in,
        classpath/native/jni/Makefile.in,
        classpath/native/jni/gconf-peer/Makefile.in,
        classpath/native/jni/java-io/Makefile.in,
        classpath/native/jni/native-lib/Makefile.in,
        classpath/native/jni/java-util/Makefile.in,
        classpath/native/jni/midi-alsa/Makefile.in,
        classpath/native/jni/java-lang/Makefile.in,
        classpath/native/jni/java-nio/Makefile.in,
        classpath/native/jni/java-net/Makefile.in,
        classpath/native/jni/xmlj/Makefile.in,
        classpath/native/jni/qt-peer/Makefile.in,
        classpath/native/jni/gtk-peer/Makefile.in,
        classpath/native/Makefile.in, classpath/native/jawt/Makefile.in,
        classpath/native/fdlibm/Makefile.in,
        classpath/native/plugin/Makefile.in,
        classpath/resource/Makefile.in, classpath/scripts/Makefile.in,
        classpath/tools/Makefile.in, classpath/doc/Makefile.in,
        classpath/doc/api/Makefile.in, classpath/lib/Makefile.in,
        classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in,
        classpath/external/sax/Makefile.in,
        classpath/external/w3c_dom/Makefile.in,
        classpath/external/relaxngDatatype/Makefile.in,
        classpath/include/Makefile.in,
        classpath/examples/Makefile.in: Regenerate.
        * classpath/config.guess, classpath/config.sub,
        classpath/ltmain.sh : Update.
        * classpath/configure, classpath/depcomp, classpath/missing,
        classpath/aclocal.m4, classpath/install-sh: Regenerate.

        * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95.
        * sources.am: Regenerate.
        * Makefile.in: Regenerate.

        * Update the .class files and generated CNI header files, add new
        .class and generated CNI header files.
        * Remove generated files for removed java source files:
        classpath/gnu/java/net/BASE64.java,
        classpath/gnu/java/security/util/Base64.java,
        classpath/gnu/java/awt/peer/gtk/GThreadMutex.java,
        classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
        classpath/gnu/java/awt/font/autofit/Scaler.java,
        classpath/gnu/classpath/jdwp/util/Value.java,
        classpath/gnu/javax/net/ssl/Base64.java.
        * Remove empty directories.

        * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc.
        * java/lang/Class.java(setAccessible): Merge from classpath.
        * java/util/Locale.java: Remove.
        * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java,
        gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New.
        * gcj/javaprims.h: Update class declarations.
        * scripts/classes.pl: Update usage.
        * HACKING: Mention to build all peers.

From-SVN: r125302
This commit is contained in:
Matthias Klose 2007-06-03 23:18:43 +00:00
parent af333b9a7f
commit e1bea0c068
2951 changed files with 80982 additions and 68583 deletions

View file

@ -1,5 +1,5 @@
/* LinkedList.java -- Linked list implementation of the List interface
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -64,15 +64,17 @@ import java.lang.reflect.Array;
* @author Original author unknown
* @author Bryce McKinlay
* @author Eric Blake (ebb9@email.byu.edu)
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see List
* @see ArrayList
* @see Vector
* @see Collections#synchronizedList(List)
* @since 1.2
* @status missing javadoc, but complete to 1.4
* @status Complete to 1.6
*/
public class LinkedList<T> extends AbstractSequentialList<T>
implements List<T>, Queue<T>, Cloneable, Serializable
implements List<T>, Deque<T>, Cloneable, Serializable
{
/**
* Compatible with JDK 1.2.
@ -708,6 +710,10 @@ public class LinkedList<T> extends AbstractSequentialList<T>
}
/**
* Adds the specified element to the end of the list.
*
* @param value the value to add.
* @return true.
* @since 1.5
*/
public boolean offer(T value)
@ -716,6 +722,11 @@ public class LinkedList<T> extends AbstractSequentialList<T>
}
/**
* Returns the first element of the list without removing
* it.
*
* @return the first element of the list.
* @throws NoSuchElementException if the list is empty.
* @since 1.5
*/
public T element()
@ -724,6 +735,11 @@ public class LinkedList<T> extends AbstractSequentialList<T>
}
/**
* Returns the first element of the list without removing
* it.
*
* @return the first element of the list, or <code>null</code>
* if the list is empty.
* @since 1.5
*/
public T peek()
@ -734,6 +750,10 @@ public class LinkedList<T> extends AbstractSequentialList<T>
}
/**
* Removes and returns the first element of the list.
*
* @return the first element of the list, or <code>null</code>
* if the list is empty.
* @since 1.5
*/
public T poll()
@ -744,6 +764,10 @@ public class LinkedList<T> extends AbstractSequentialList<T>
}
/**
* Removes and returns the first element of the list.
*
* @return the first element of the list.
* @throws NoSuchElementException if the list is empty.
* @since 1.5
*/
public T remove()
@ -992,4 +1016,245 @@ public class LinkedList<T> extends AbstractSequentialList<T>
lastReturned.data = o;
}
} // class LinkedListItr
/**
* Obtain an Iterator over this list in reverse sequential order.
*
* @return an Iterator over the elements of the list in
* reverse order.
* @since 1.6
*/
public Iterator<T> descendingIterator()
{
return new Iterator<T>()
{
/** Number of modifications we know about. */
private int knownMod = modCount;
/** Entry that will be returned by next(). */
private Entry<T> next = last;
/** Entry that will be affected by remove() or set(). */
private Entry<T> lastReturned;
/** Index of `next'. */
private int position = size() - 1;
// This will get inlined, since it is private.
/**
* Checks for modifications made to the list from
* elsewhere while iteration is in progress.
*
* @throws ConcurrentModificationException if the
* list has been modified elsewhere.
*/
private void checkMod()
{
if (knownMod != modCount)
throw new ConcurrentModificationException();
}
/**
* Tests to see if there are any more objects to
* return.
*
* @return true if the start of the list has not yet been
* reached.
*/
public boolean hasNext()
{
return next != null;
}
/**
* Retrieves the next object from the list.
*
* @return The next object.
* @throws NoSuchElementException if there are
* no more objects to retrieve.
* @throws ConcurrentModificationException if the
* list has been modified elsewhere.
*/
public T next()
{
checkMod();
if (next == null)
throw new NoSuchElementException();
--position;
lastReturned = next;
next = lastReturned.previous;
return lastReturned.data;
}
/**
* Removes the last object retrieved by <code>next()</code>
* from the list, if the list supports object removal.
*
* @throws ConcurrentModificationException if the list
* has been modified elsewhere.
* @throws IllegalStateException if the iterator is positioned
* before the start of the list or the last object has already
* been removed.
*/
public void remove()
{
checkMod();
if (lastReturned == null)
throw new IllegalStateException();
removeEntry(lastReturned);
lastReturned = null;
++knownMod;
}
};
}
/**
* Inserts the specified element at the front of the list.
*
* @param value the element to insert.
* @return true.
* @since 1.6
*/
public boolean offerFirst(T value)
{
addFirst(value);
return true;
}
/**
* Inserts the specified element at the end of the list.
*
* @param value the element to insert.
* @return true.
* @since 1.6
*/
public boolean offerLast(T value)
{
return add(value);
}
/**
* Returns the first element of the list without removing
* it.
*
* @return the first element of the list, or <code>null</code>
* if the list is empty.
* @since 1.6
*/
public T peekFirst()
{
return peek();
}
/**
* Returns the last element of the list without removing
* it.
*
* @return the last element of the list, or <code>null</code>
* if the list is empty.
* @since 1.6
*/
public T peekLast()
{
if (size == 0)
return null;
return getLast();
}
/**
* Removes and returns the first element of the list.
*
* @return the first element of the list, or <code>null</code>
* if the list is empty.
* @since 1.6
*/
public T pollFirst()
{
return poll();
}
/**
* Removes and returns the last element of the list.
*
* @return the last element of the list, or <code>null</code>
* if the list is empty.
* @since 1.6
*/
public T pollLast()
{
if (size == 0)
return null;
return removeLast();
}
/**
* Pops an element from the stack by removing and returning
* the first element in the list. This is equivalent to
* calling {@link #removeFirst()}.
*
* @return the top of the stack, which is the first element
* of the list.
* @throws NoSuchElementException if the list is empty.
* @since 1.6
* @see #removeFirst()
*/
public T pop()
{
return removeFirst();
}
/**
* Pushes an element on to the stack by adding it to the
* front of the list. This is equivalent to calling
* {@link #addFirst(T)}.
*
* @param value the element to push on to the stack.
* @throws NoSuchElementException if the list is empty.
* @since 1.6
* @see #addFirst(T)
*/
public void push(T value)
{
addFirst(value);
}
/**
* Removes the first occurrence of the specified element
* from the list, when traversing the list from head to
* tail. The list is unchanged if the element is not found.
* This is equivalent to calling {@link #remove(Object)}.
*
* @param o the element to remove.
* @return true if an instance of the object was removed.
* @since 1.6
*/
public boolean removeFirstOccurrence(Object o)
{
return remove(o);
}
/**
* Removes the last occurrence of the specified element
* from the list, when traversing the list from head to
* tail. The list is unchanged if the element is not found.
*
* @param o the element to remove.
* @return true if an instance of the object was removed.
* @since 1.6
*/
public boolean removeLastOccurrence(Object o)
{
Entry<T> e = last;
while (e != null)
{
if (equals(o, e.data))
{
removeEntry(e);
return true;
}
e = e.previous;
}
return false;
}
}