diff options
| author | Michael Koch <konqueror@gmx.de> | 2005-02-17 07:48:58 +0000 |
|---|---|---|
| committer | Michael Koch <mkoch@gcc.gnu.org> | 2005-02-17 07:48:58 +0000 |
| commit | 96dd155e2c78f10846b8cda792450846978b8644 (patch) | |
| tree | 562ec727df722dd9631848494a1a04b5b86160df /libjava/java/util/AbstractList.java | |
| parent | 927c8259b186909698e27e3c5390b5f9a01ffc6c (diff) | |
GThreadNativeMethodRunner.java, [...]: Fixed usage of @author tag...
2005-02-17 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
gnu/java/awt/peer/gtk/GdkFontPeer.java,
gnu/java/awt/peer/gtk/GdkGlyphVector.java,
gnu/java/awt/peer/gtk/GdkGraphics.java,
gnu/java/awt/peer/gtk/GdkGraphics2D.java,
gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java,
gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
gnu/java/awt/peer/gtk/GdkRobotPeer.java,
gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
gnu/java/awt/peer/gtk/GdkTextLayout.java,
gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java,
gnu/java/awt/peer/gtk/GtkChoicePeer.java,
gnu/java/awt/peer/gtk/GtkClipboard.java,
gnu/java/awt/peer/gtk/GtkComponentPeer.java,
gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
gnu/java/awt/peer/gtk/GtkFontPeer.java,
gnu/java/awt/peer/gtk/GtkLabelPeer.java,
gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,
gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
gnu/java/awt/peer/gtk/GtkMenuPeer.java,
gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
gnu/java/awt/peer/gtk/GtkToolkit.java,
gnu/java/awt/peer/gtk/GtkWindowPeer.java,
java/applet/Applet.java,
java/awt/AWTError.java,
java/awt/AWTEvent.java,
java/awt/AWTEventMulticaster.java,
java/awt/AWTException.java,
java/awt/AWTKeyStroke.java,
java/awt/AWTPermission.java,
java/awt/ActiveEvent.java,
java/awt/Adjustable.java,
java/awt/AlphaComposite.java,
java/awt/AttributeValue.java,
java/awt/BorderLayout.java,
java/awt/BufferCapabilities.java,
java/awt/Button.java,
java/awt/Canvas.java,
java/awt/CheckboxGroup.java,
java/awt/CheckboxMenuItem.java,
java/awt/Color.java,
java/awt/ColorPaintContext.java,
java/awt/Component.java,
java/awt/ComponentOrientation.java,
java/awt/Composite.java,
java/awt/CompositeContext.java,
java/awt/Container.java,
java/awt/ContainerOrderFocusTraversalPolicy.java,
java/awt/DefaultFocusTraversalPolicy.java,
java/awt/Dialog.java,
java/awt/Dimension.java,
java/awt/DisplayMode.java,
java/awt/EventQueue.java,
java/awt/FileDialog.java,
java/awt/FontFormatException.java,
java/awt/Graphics.java,
java/awt/Graphics2D.java,
java/awt/GraphicsConfigTemplate.java,
java/awt/GraphicsConfiguration.java,
java/awt/GraphicsDevice.java,
java/awt/GridBagLayout.java,
java/awt/GridBagLayoutInfo.java,
java/awt/GridLayout.java,
java/awt/HeadlessException.java,
java/awt/IllegalComponentStateException.java,
java/awt/Image.java,
java/awt/Insets.java,
java/awt/ItemSelectable.java,
java/awt/JobAttributes.java,
java/awt/KeyEventDispatcher.java,
java/awt/KeyEventPostProcessor.java,
java/awt/KeyboardFocusManager.java,
java/awt/Label.java,
java/awt/LayoutManager.java,
java/awt/MenuBar.java,
java/awt/MenuComponent.java,
java/awt/MenuContainer.java,
java/awt/PageAttributes.java,
java/awt/Paint.java,
java/awt/PaintContext.java,
java/awt/Panel.java,
java/awt/Point.java,
java/awt/Polygon.java,
java/awt/PrintGraphics.java,
java/awt/PrintJob.java,
java/awt/Rectangle.java,
java/awt/RenderingHints.java,
java/awt/Shape.java,
java/awt/Stroke.java,
java/awt/SystemColor.java,
java/awt/Toolkit.java,
java/awt/Transparency.java,
java/awt/Window.java,
java/awt/color/CMMException.java,
java/awt/color/ColorSpace.java,
java/awt/color/ICC_ColorSpace.java,
java/awt/color/ICC_Profile.java,
java/awt/color/ProfileDataException.java,
java/awt/datatransfer/FlavorTable.java,
java/awt/datatransfer/MimeTypeParseException.java,
java/awt/datatransfer/Transferable.java,
java/awt/datatransfer/UnsupportedFlavorException.java,
java/awt/dnd/Autoscroll.java,
java/awt/dnd/DnDConstants.java,
java/awt/dnd/DragGestureListener.java,
java/awt/dnd/DragSourceAdapter.java,
java/awt/dnd/DragSourceDropEvent.java,
java/awt/dnd/DragSourceListener.java,
java/awt/dnd/DragSourceMotionListener.java,
java/awt/dnd/DropTargetAdapter.java,
java/awt/dnd/DropTargetContext.java,
java/awt/dnd/DropTargetListener.java,
java/awt/dnd/InvalidDnDOperationException.java,
java/awt/dnd/MouseDragGestureRecognizer.java,
java/awt/dnd/peer/DropTargetContextPeer.java,
java/awt/event/AWTEventListener.java,
java/awt/event/AWTEventListenerProxy.java,
java/awt/event/ActionEvent.java,
java/awt/event/AdjustmentEvent.java,
java/awt/event/AdjustmentListener.java,
java/awt/event/ComponentAdapter.java,
java/awt/event/ComponentEvent.java,
java/awt/event/ComponentListener.java,
java/awt/event/ContainerAdapter.java,
java/awt/event/ContainerEvent.java,
java/awt/event/ContainerListener.java,
java/awt/event/FocusAdapter.java,
java/awt/event/FocusEvent.java,
java/awt/event/FocusListener.java,
java/awt/event/InputEvent.java,
java/awt/event/InputMethodEvent.java,
java/awt/event/InputMethodListener.java,
java/awt/event/InvocationEvent.java,
java/awt/event/ItemEvent.java,
java/awt/event/ItemListener.java,
java/awt/event/KeyAdapter.java,
java/awt/event/KeyEvent.java,
java/awt/event/KeyListener.java,
java/awt/event/MouseAdapter.java,
java/awt/event/MouseEvent.java,
java/awt/event/MouseListener.java,
java/awt/event/MouseMotionAdapter.java,
java/awt/event/MouseMotionListener.java,
java/awt/event/MouseWheelEvent.java,
java/awt/event/MouseWheelListener.java,
java/awt/event/PaintEvent.java,
java/awt/event/TextEvent.java,
java/awt/event/TextListener.java,
java/awt/event/WindowAdapter.java,
java/awt/event/WindowEvent.java,
java/awt/event/WindowFocusListener.java,
java/awt/event/WindowListener.java,
java/awt/event/WindowStateListener.java,
java/awt/font/TextHitInfo.java,
java/awt/geom/CubicCurve2D.java,
java/awt/geom/Dimension2D.java,
java/awt/geom/Ellipse2D.java,
java/awt/geom/IllegalPathStateException.java,
java/awt/geom/Line2D.java,
java/awt/geom/NoninvertibleTransformException.java,
java/awt/geom/PathIterator.java,
java/awt/geom/Point2D.java,
java/awt/geom/QuadCurve2D.java,
java/awt/geom/RectangularShape.java,
java/awt/geom/RoundRectangle2D.java,
java/awt/im/InputContext.java,
java/awt/im/InputMethodHighlight.java,
java/awt/im/InputMethodRequests.java,
java/awt/im/InputSubset.java,
java/awt/im/spi/InputMethod.java,
java/awt/im/spi/InputMethodDescriptor.java,
java/awt/image/BandCombineOp.java,
java/awt/image/BandedSampleModel.java,
java/awt/image/ByteLookupTable.java,
java/awt/image/ComponentSampleModel.java,
java/awt/image/DataBuffer.java,
java/awt/image/DataBufferByte.java,
java/awt/image/DataBufferDouble.java,
java/awt/image/DataBufferFloat.java,
java/awt/image/DataBufferInt.java,
java/awt/image/DataBufferShort.java,
java/awt/image/DataBufferUShort.java,
java/awt/image/ImagingOpException.java,
java/awt/image/Kernel.java,
java/awt/image/LookupTable.java,
java/awt/image/MultiPixelPackedSampleModel.java,
java/awt/image/PackedColorModel.java,
java/awt/image/PixelInterleavedSampleModel.java,
java/awt/image/RGBImageFilter.java,
java/awt/image/Raster.java,
java/awt/image/RasterFormatException.java,
java/awt/image/SampleModel.java,
java/awt/image/ShortLookupTable.java,
java/awt/image/SinglePixelPackedSampleModel.java,
java/awt/image/WritableRaster.java,
java/awt/print/PrinterAbortException.java,
java/awt/print/PrinterException.java,
java/awt/print/PrinterIOException.java,
java/beans/AppletInitializer.java,
java/beans/ExceptionListener.java,
java/beans/PropertyChangeEvent.java,
java/beans/PropertyChangeListenerProxy.java,
java/beans/PropertyChangeSupport.java,
java/beans/PropertyDescriptor.java,
java/beans/VetoableChangeListenerProxy.java,
java/beans/VetoableChangeSupport.java,
java/io/BufferedReader.java,
java/io/ByteArrayInputStream.java,
java/io/ByteArrayOutputStream.java,
java/io/CharArrayReader.java,
java/io/CharArrayWriter.java,
java/io/CharConversionException.java,
java/io/DataInput.java,
java/io/DataInputStream.java,
java/io/DataOutput.java,
java/io/DataOutputStream.java,
java/io/EOFException.java,
java/io/FileInputStream.java,
java/io/FileNotFoundException.java,
java/io/FileOutputStream.java,
java/io/FilenameFilter.java,
java/io/FilterInputStream.java,
java/io/FilterOutputStream.java,
java/io/FilterReader.java,
java/io/FilterWriter.java,
java/io/IOException.java,
java/io/InputStream.java,
java/io/InterruptedIOException.java,
java/io/LineNumberInputStream.java,
java/io/LineNumberReader.java,
java/io/ObjectInputStream.java,
java/io/ObjectStreamException.java,
java/io/OptionalDataException.java,
java/io/OutputStream.java,
java/io/OutputStreamWriter.java,
java/io/PrintStream.java,
java/io/PrintWriter.java,
java/io/PushbackInputStream.java,
java/io/PushbackReader.java,
java/io/RandomAccessFile.java,
java/io/Reader.java,
java/io/SequenceInputStream.java,
java/io/Serializable.java,
java/io/StreamCorruptedException.java,
java/io/StreamTokenizer.java,
java/io/StringBufferInputStream.java,
java/io/StringWriter.java,
java/io/SyncFailedException.java,
java/io/UTFDataFormatException.java,
java/io/UnsupportedEncodingException.java,
java/io/WriteAbortedException.java,
java/io/Writer.java,
java/lang/AbstractMethodError.java,
java/lang/ArithmeticException.java,
java/lang/ArrayIndexOutOfBoundsException.java,
java/lang/ArrayStoreException.java,
java/lang/AssertionError.java,
java/lang/Boolean.java,
java/lang/Byte.java,
java/lang/Class.java,
java/lang/ClassCastException.java,
java/lang/ClassCircularityError.java,
java/lang/ClassLoader.java,
java/lang/ClassNotFoundException.java,
java/lang/CloneNotSupportedException.java,
java/lang/Cloneable.java,
java/lang/Comparable.java,
java/lang/Compiler.java,
java/lang/Double.java,
java/lang/Error.java,
java/lang/Exception.java,
java/lang/ExceptionInInitializerError.java,
java/lang/Float.java,
java/lang/IllegalAccessError.java,
java/lang/IllegalAccessException.java,
java/lang/IllegalArgumentException.java,
java/lang/IllegalMonitorStateException.java,
java/lang/IllegalStateException.java,
java/lang/IllegalThreadStateException.java,
java/lang/IncompatibleClassChangeError.java,
java/lang/IndexOutOfBoundsException.java,
java/lang/InheritableThreadLocal.java,
java/lang/InstantiationError.java,
java/lang/InstantiationException.java,
java/lang/Integer.java,
java/lang/InternalError.java,
java/lang/InterruptedException.java,
java/lang/LinkageError.java,
java/lang/Long.java,
java/lang/NegativeArraySizeException.java,
java/lang/NoClassDefFoundError.java,
java/lang/NoSuchFieldError.java,
java/lang/NoSuchFieldException.java,
java/lang/NoSuchMethodError.java,
java/lang/NoSuchMethodException.java,
java/lang/NullPointerException.java,
java/lang/Number.java,
java/lang/NumberFormatException.java,
java/lang/OutOfMemoryError.java,
java/lang/Process.java,
java/lang/Runnable.java,
java/lang/Runtime.java,
java/lang/RuntimeException.java,
java/lang/RuntimePermission.java,
java/lang/SecurityException.java,
java/lang/SecurityManager.java,
java/lang/Short.java,
java/lang/StackOverflowError.java,
java/lang/StackTraceElement.java,
java/lang/StringBuffer.java,
java/lang/StringIndexOutOfBoundsException.java,
java/lang/ThreadDeath.java,
java/lang/ThreadGroup.java,
java/lang/Throwable.java,
java/lang/UnsatisfiedLinkError.java,
java/lang/UnsupportedOperationException.java,
java/lang/VerifyError.java,
java/lang/VirtualMachineError.java,
java/lang/reflect/AccessibleObject.java,
java/lang/reflect/Array.java,
java/lang/reflect/InvocationTargetException.java,
java/lang/reflect/Member.java,
java/lang/reflect/Modifier.java,
java/lang/reflect/Proxy.java,
java/lang/reflect/ReflectPermission.java,
java/lang/reflect/UndeclaredThrowableException.java,
java/math/BigInteger.java,
java/net/NetworkInterface.java,
java/nio/ByteBufferHelper.java,
java/nio/ByteBufferImpl.java,
java/nio/DirectByteBufferImpl.java,
java/nio/DoubleBufferImpl.java,
java/nio/FloatBufferImpl.java,
java/nio/IntBufferImpl.java,
java/nio/LongBufferImpl.java,
java/nio/ShortBufferImpl.java,
java/nio/channels/Channel.java,
java/nio/channels/IllegalBlockingModeException.java,
java/nio/charset/spi/CharsetProvider.java,
java/security/AccessControlException.java,
java/security/BasicPermission.java,
java/security/DigestException.java,
java/security/DigestInputStream.java,
java/security/DigestOutputStream.java,
java/security/GeneralSecurityException.java,
java/security/Guard.java,
java/security/GuardedObject.java,
java/security/InvalidAlgorithmParameterException.java,
java/security/InvalidKeyException.java,
java/security/InvalidParameterException.java,
java/security/Key.java,
java/security/KeyException.java,
java/security/KeyManagementException.java,
java/security/KeyStoreException.java,
java/security/MessageDigestSpi.java,
java/security/NoSuchAlgorithmException.java,
java/security/NoSuchProviderException.java,
java/security/Permission.java,
java/security/PermissionCollection.java,
java/security/Permissions.java,
java/security/Principal.java,
java/security/PrivateKey.java,
java/security/PrivilegedActionException.java,
java/security/ProviderException.java,
java/security/PublicKey.java,
java/security/SecureRandom.java,
java/security/SecureRandomSpi.java,
java/security/SignatureException.java,
java/security/SignatureSpi.java,
java/security/SignedObject.java,
java/security/Signer.java,
java/security/UnrecoverableKeyException.java,
java/security/UnresolvedPermission.java,
java/security/acl/AclNotFoundException.java,
java/security/acl/LastOwnerException.java,
java/security/acl/NotOwnerException.java,
java/security/cert/CertPath.java,
java/security/cert/CertPathBuilderException.java,
java/security/cert/CertPathValidatorException.java,
java/security/cert/CertStoreException.java,
java/text/BreakIterator.java,
java/text/ChoiceFormat.java,
java/text/CollationElementIterator.java,
java/text/CollationKey.java,
java/text/Collator.java,
java/text/DateFormat.java,
java/text/DateFormatSymbols.java,
java/text/DecimalFormat.java,
java/text/DecimalFormatSymbols.java,
java/text/FieldPosition.java,
java/text/Format.java,
java/text/NumberFormat.java,
java/text/ParseException.java,
java/text/ParsePosition.java,
java/text/StringCharacterIterator.java,
java/util/AbstractCollection.java,
java/util/AbstractList.java,
java/util/AbstractMap.java,
java/util/AbstractSequentialList.java,
java/util/AbstractSet.java,
java/util/ArrayList.java,
java/util/Arrays.java,
java/util/BitSet.java,
java/util/Collection.java,
java/util/Collections.java,
java/util/Comparator.java,
java/util/ConcurrentModificationException.java,
java/util/Currency.java,
java/util/Date.java,
java/util/EmptyStackException.java,
java/util/Enumeration.java,
java/util/EventListener.java,
java/util/EventListenerProxy.java,
java/util/EventObject.java,
java/util/HashMap.java,
java/util/HashSet.java,
java/util/Hashtable.java,
java/util/IdentityHashMap.java,
java/util/Iterator.java,
java/util/LinkedHashSet.java,
java/util/LinkedList.java,
java/util/List.java,
java/util/ListIterator.java,
java/util/ListResourceBundle.java,
java/util/Map.java,
java/util/MissingResourceException.java,
java/util/NoSuchElementException.java,
java/util/Observable.java,
java/util/Observer.java,
java/util/Properties.java,
java/util/PropertyPermissionCollection.java,
java/util/RandomAccess.java,
java/util/Set.java,
java/util/SortedMap.java,
java/util/SortedSet.java,
java/util/Stack.java,
java/util/StringTokenizer.java,
java/util/TooManyListenersException.java,
java/util/TreeMap.java,
java/util/TreeSet.java,
java/util/Vector.java,
java/util/logging/FileHandler.java,
java/util/logging/Level.java,
java/util/prefs/BackingStoreException.java,
java/util/prefs/InvalidPreferencesFormatException.java,
java/util/prefs/Preferences.java,
javax/accessibility/Accessible.java,
javax/accessibility/AccessibleAction.java,
javax/accessibility/AccessibleBundle.java,
javax/accessibility/AccessibleComponent.java,
javax/accessibility/AccessibleContext.java,
javax/accessibility/AccessibleEditableText.java,
javax/accessibility/AccessibleExtendedComponent.java,
javax/accessibility/AccessibleExtendedTable.java,
javax/accessibility/AccessibleHyperlink.java,
javax/accessibility/AccessibleHypertext.java,
javax/accessibility/AccessibleIcon.java,
javax/accessibility/AccessibleKeyBinding.java,
javax/accessibility/AccessibleRelation.java,
javax/accessibility/AccessibleRelationSet.java,
javax/accessibility/AccessibleResourceBundle.java,
javax/accessibility/AccessibleRole.java,
javax/accessibility/AccessibleSelection.java,
javax/accessibility/AccessibleState.java,
javax/accessibility/AccessibleStateSet.java,
javax/accessibility/AccessibleTable.java,
javax/accessibility/AccessibleTableModelChange.java,
javax/accessibility/AccessibleText.java,
javax/accessibility/AccessibleValue.java,
javax/imageio/IIOException.java,
javax/imageio/ImageIO.java,
javax/imageio/spi/IIOServiceProvider.java,
javax/imageio/spi/ImageInputStreamSpi.java,
javax/imageio/spi/ImageOutputStreamSpi.java,
javax/imageio/spi/ImageReaderWriterSpi.java,
javax/imageio/spi/ImageTranscoderSpi.java,
javax/imageio/spi/RegisterableService.java,
javax/imageio/spi/ServiceRegistry.java,
javax/imageio/stream/IIOByteBuffer.java,
javax/imageio/stream/ImageInputStream.java,
javax/imageio/stream/ImageOutputStream.java,
javax/naming/Binding.java,
javax/naming/CannotProceedException.java,
javax/naming/CompositeName.java,
javax/naming/CompoundName.java,
javax/naming/LinkException.java,
javax/naming/LinkRef.java,
javax/naming/NameClassPair.java,
javax/naming/Reference.java,
javax/naming/ReferralException.java,
javax/naming/directory/Attribute.java,
javax/naming/directory/AttributeModificationException.java,
javax/naming/directory/Attributes.java,
javax/naming/directory/DirContext.java,
javax/naming/directory/ModificationItem.java,
javax/naming/directory/SearchControls.java,
javax/naming/directory/SearchResult.java,
javax/naming/event/EventContext.java,
javax/naming/event/EventDirContext.java,
javax/naming/event/NamespaceChangeListener.java,
javax/naming/event/NamingExceptionEvent.java,
javax/naming/event/NamingListener.java,
javax/naming/event/ObjectChangeListener.java,
javax/naming/ldap/Control.java,
javax/naming/ldap/ExtendedResponse.java,
javax/naming/ldap/HasControls.java,
javax/naming/ldap/LdapContext.java,
javax/naming/ldap/UnsolicitedNotification.java,
javax/naming/ldap/UnsolicitedNotificationEvent.java,
javax/naming/ldap/UnsolicitedNotificationListener.java,
javax/naming/spi/DirectoryManager.java,
javax/naming/spi/ResolveResult.java,
javax/naming/spi/Resolver.java,
javax/security/auth/callback/Callback.java,
javax/security/auth/callback/CallbackHandler.java,
javax/security/auth/callback/ChoiceCallback.java,
javax/security/auth/callback/ConfirmationCallback.java,
javax/security/auth/callback/LanguageCallback.java,
javax/security/auth/callback/NameCallback.java,
javax/security/auth/callback/PasswordCallback.java,
javax/security/auth/callback/TextInputCallback.java,
javax/security/auth/callback/TextOutputCallback.java,
javax/security/auth/callback/UnsupportedCallbackException.java,
javax/security/sasl/Sasl.java,
javax/security/sasl/SaslServerFactory.java,
javax/swing/DefaultBoundedRangeModel.java,
javax/swing/JComponent.java,
javax/swing/JList.java,
javax/swing/JProgressBar.java,
javax/swing/JRadioButton.java,
javax/swing/JTextArea.java,
javax/swing/JTextField.java,
javax/swing/JToggleButton.java,
javax/swing/JTree.java,
javax/swing/SpinnerListModel.java,
javax/swing/event/EventListenerList.java,
javax/swing/text/JTextComponent.java,
javax/swing/text/StringContent.java,
javax/swing/text/Utilities.java,
javax/swing/undo/UndoManager.java,
javax/swing/undo/UndoableEditSupport.java,
javax/transaction/HeuristicCommitException.java,
javax/transaction/HeuristicMixedException.java,
javax/transaction/HeuristicRollbackException.java,
javax/transaction/InvalidTransactionException.java,
javax/transaction/NotSupportedException.java,
javax/transaction/RollbackException.java,
javax/transaction/Status.java,
javax/transaction/Synchronization.java,
javax/transaction/SystemException.java,
javax/transaction/Transaction.java,
javax/transaction/TransactionManager.java,
javax/transaction/TransactionRequiredException.java,
javax/transaction/TransactionRolledbackException.java,
javax/transaction/UserTransaction.java,
javax/transaction/xa/XAException.java,
javax/transaction/xa/XAResource.java,
javax/transaction/xa/Xid.java,
javax/xml/XMLConstants.java,
javax/xml/datatype/DatatypeConfigurationException.java,
javax/xml/datatype/DatatypeConstants.java,
javax/xml/datatype/DatatypeFactory.java,
javax/xml/datatype/Duration.java,
javax/xml/datatype/XMLGregorianCalendar.java,
javax/xml/namespace/NamespaceContext.java,
javax/xml/namespace/QName.java,
javax/xml/parsers/DocumentBuilder.java,
javax/xml/parsers/DocumentBuilderFactory.java,
javax/xml/parsers/FactoryConfigurationError.java,
javax/xml/parsers/ParserConfigurationException.java,
javax/xml/parsers/SAXParser.java,
javax/xml/parsers/SAXParserFactory.java,
javax/xml/transform/ErrorListener.java,
javax/xml/transform/OutputKeys.java,
javax/xml/transform/Result.java,
javax/xml/transform/Source.java,
javax/xml/transform/SourceLocator.java,
javax/xml/transform/Templates.java,
javax/xml/transform/Transformer.java,
javax/xml/transform/TransformerConfigurationException.java,
javax/xml/transform/TransformerException.java,
javax/xml/transform/TransformerFactory.java,
javax/xml/transform/TransformerFactoryConfigurationError.java,
javax/xml/transform/URIResolver.java,
javax/xml/transform/dom/DOMLocator.java,
javax/xml/transform/dom/DOMResult.java,
javax/xml/transform/dom/DOMSource.java,
javax/xml/transform/sax/SAXResult.java,
javax/xml/transform/sax/SAXSource.java,
javax/xml/transform/sax/SAXTransformerFactory.java,
javax/xml/transform/sax/TemplatesHandler.java,
javax/xml/transform/sax/TransformerHandler.java,
javax/xml/transform/stream/StreamResult.java,
javax/xml/transform/stream/StreamSource.java,
javax/xml/validation/Schema.java,
javax/xml/validation/SchemaFactory.java,
javax/xml/validation/TypeInfoProvider.java,
javax/xml/validation/Validator.java,
javax/xml/validation/ValidatorHandler.java,
javax/xml/xpath/XPathConstants.java,
javax/xml/xpath/XPathException.java,
javax/xml/xpath/XPathExpression.java,
javax/xml/xpath/XPathExpressionException.java,
javax/xml/xpath/XPathFactory.java,
javax/xml/xpath/XPathFactoryConfigurationException.java,
javax/xml/xpath/XPathFunction.java,
javax/xml/xpath/XPathFunctionException.java,
javax/xml/xpath/XPathFunctionResolver.java:
Fixed usage of @author tag, reworked import statements,
removed CVS tags, changed the modifier order and fixed
HTML usage in javadocs.
From-SVN: r95152
Diffstat (limited to 'libjava/java/util/AbstractList.java')
| -rw-r--r-- | libjava/java/util/AbstractList.java | 925 |
1 files changed, 462 insertions, 463 deletions
diff --git a/libjava/java/util/AbstractList.java b/libjava/java/util/AbstractList.java index 15cb5814ab8..37288a7bb9e 100644 --- a/libjava/java/util/AbstractList.java +++ b/libjava/java/util/AbstractList.java @@ -1,5 +1,5 @@ /* AbstractList.java -- Abstract implementation of most of List - Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,7 +59,7 @@ package java.util; * * @author Original author unknown * @author Bryce McKinlay - * @author Eric Blake <ebb9@email.byu.edu> + * @author Eric Blake (ebb9@email.byu.edu) * @see Collection * @see List * @see AbstractSequentialList @@ -751,476 +751,475 @@ while (i.hasNext()) return new SubList(this, fromIndex, toIndex); } -} // class AbstractList - - -/** - * This class follows the implementation requirements set forth in - * {@link AbstractList#subList(int, int)}. It matches Sun's implementation - * by using a non-public top-level class in the same package. - * - * @author Original author unknown - * @author Eric Blake <ebb9@email.byu.edu> - */ -class SubList extends AbstractList -{ - // Package visible, for use by iterator. - /** The original list. */ - final AbstractList backingList; - /** The index of the first element of the sublist. */ - final int offset; - /** The size of the sublist. */ - int size; - - /** - * Construct the sublist. - * - * @param backing the list this comes from - * @param fromIndex the lower bound, inclusive - * @param toIndex the upper bound, exclusive - */ - SubList(AbstractList backing, int fromIndex, int toIndex) - { - backingList = backing; - modCount = backing.modCount; - offset = fromIndex; - size = toIndex - fromIndex; - } - - /** - * This method checks the two modCount fields to ensure that there has - * not been a concurrent modification, returning if all is okay. - * - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - */ - // This can be inlined. Package visible, for use by iterator. - void checkMod() - { - if (modCount != backingList.modCount) - throw new ConcurrentModificationException(); - } - - /** - * This method checks that a value is between 0 and size (inclusive). If - * it is not, an exception is thrown. - * - * @param index the value to check - * @throws IndexOutOfBoundsException if index < 0 || index > size() - */ - // This will get inlined, since it is private. - private void checkBoundsInclusive(int index) - { - if (index < 0 || index > size) - throw new IndexOutOfBoundsException("Index: " + index + ", Size:" - + size); - } - - /** - * This method checks that a value is between 0 (inclusive) and size - * (exclusive). If it is not, an exception is thrown. - * - * @param index the value to check - * @throws IndexOutOfBoundsException if index < 0 || index >= size() - */ - // This will get inlined, since it is private. - private void checkBoundsExclusive(int index) - { - if (index < 0 || index >= size) - throw new IndexOutOfBoundsException("Index: " + index + ", Size:" - + size); - } - - /** - * Specified by AbstractList.subList to return the private field size. - * - * @return the sublist size - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - */ - public int size() - { - checkMod(); - return size; - } - - /** - * Specified by AbstractList.subList to delegate to the backing list. - * - * @param index the location to modify - * @param o the new value - * @return the old value - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws UnsupportedOperationException if the backing list does not - * support the set operation - * @throws IndexOutOfBoundsException if index < 0 || index >= size() - * @throws ClassCastException if o cannot be added to the backing list due - * to its type - * @throws IllegalArgumentException if o cannot be added to the backing list - * for some other reason - */ - public Object set(int index, Object o) - { - checkMod(); - checkBoundsExclusive(index); - return backingList.set(index + offset, o); - } - - /** - * Specified by AbstractList.subList to delegate to the backing list. - * - * @param index the location to get from - * @return the object at that location - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws IndexOutOfBoundsException if index < 0 || index >= size() - */ - public Object get(int index) - { - checkMod(); - checkBoundsExclusive(index); - return backingList.get(index + offset); - } - - /** - * Specified by AbstractList.subList to delegate to the backing list. - * - * @param index the index to insert at - * @param o the object to add - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws IndexOutOfBoundsException if index < 0 || index > size() - * @throws UnsupportedOperationException if the backing list does not - * support the add operation. - * @throws ClassCastException if o cannot be added to the backing list due - * to its type. - * @throws IllegalArgumentException if o cannot be added to the backing - * list for some other reason. - */ - public void add(int index, Object o) - { - checkMod(); - checkBoundsInclusive(index); - backingList.add(index + offset, o); - size++; - modCount = backingList.modCount; - } - - /** - * Specified by AbstractList.subList to delegate to the backing list. - * - * @param index the index to remove - * @return the removed object - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws IndexOutOfBoundsException if index < 0 || index >= size() - * @throws UnsupportedOperationException if the backing list does not - * support the remove operation - */ - public Object remove(int index) - { - checkMod(); - checkBoundsExclusive(index); - Object o = backingList.remove(index + offset); - size--; - modCount = backingList.modCount; - return o; - } - - /** - * Specified by AbstractList.subList to delegate to the backing list. - * This does no bounds checking, as it assumes it will only be called - * by trusted code like clear() which has already checked the bounds. - * - * @param fromIndex the lower bound, inclusive - * @param toIndex the upper bound, exclusive - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws UnsupportedOperationException if the backing list does - * not support removing elements. - */ - protected void removeRange(int fromIndex, int toIndex) - { - checkMod(); - - backingList.removeRange(offset + fromIndex, offset + toIndex); - size -= toIndex - fromIndex; - modCount = backingList.modCount; - } - - /** - * Specified by AbstractList.subList to delegate to the backing list. - * - * @param index the location to insert at - * @param c the collection to insert - * @return true if this list was modified, in other words, c is non-empty - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws IndexOutOfBoundsException if index < 0 || index > size() - * @throws UnsupportedOperationException if this list does not support the - * addAll operation - * @throws ClassCastException if some element of c cannot be added to this - * list due to its type - * @throws IllegalArgumentException if some element of c cannot be added - * to this list for some other reason - * @throws NullPointerException if the specified collection is null - */ - public boolean addAll(int index, Collection c) - { - checkMod(); - checkBoundsInclusive(index); - int csize = c.size(); - boolean result = backingList.addAll(offset + index, c); - size += csize; - modCount = backingList.modCount; - return result; - } - - /** - * Specified by AbstractList.subList to return addAll(size, c). - * - * @param c the collection to insert - * @return true if this list was modified, in other words, c is non-empty - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws UnsupportedOperationException if this list does not support the - * addAll operation - * @throws ClassCastException if some element of c cannot be added to this - * list due to its type - * @throws IllegalArgumentException if some element of c cannot be added - * to this list for some other reason - * @throws NullPointerException if the specified collection is null - */ - public boolean addAll(Collection c) - { - return addAll(size, c); - } - - /** - * Specified by AbstractList.subList to return listIterator(). - * - * @return an iterator over the sublist - */ - public Iterator iterator() - { - return listIterator(); - } - /** - * Specified by AbstractList.subList to return a wrapper around the - * backing list's iterator. + * This class follows the implementation requirements set forth in + * {@link AbstractList#subList(int, int)}. It matches Sun's implementation + * by using a non-public top-level class in the same package. * - * @param index the start location of the iterator - * @return a list iterator over the sublist - * @throws ConcurrentModificationException if the backing list has been - * modified externally to this sublist - * @throws IndexOutOfBoundsException if the value is out of range + * @author Original author unknown + * @author Eric Blake (ebb9@email.byu.edu) */ - public ListIterator listIterator(final int index) + private static class SubList extends AbstractList { - checkMod(); - checkBoundsInclusive(index); - - return new ListIterator() + // Package visible, for use by iterator. + /** The original list. */ + final AbstractList backingList; + /** The index of the first element of the sublist. */ + final int offset; + /** The size of the sublist. */ + int size; + + /** + * Construct the sublist. + * + * @param backing the list this comes from + * @param fromIndex the lower bound, inclusive + * @param toIndex the upper bound, exclusive + */ + SubList(AbstractList backing, int fromIndex, int toIndex) { - private final ListIterator i = backingList.listIterator(index + offset); - private int position = index; - - /** - * Tests to see if there are any more objects to - * return. - * - * @return True if the end of the list has not yet been - * reached. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public boolean hasNext() - { - checkMod(); - return position < size; - } - - /** - * Tests to see if there are objects prior to the - * current position in the list. - * - * @return True if objects exist prior to the current - * position of the iterator. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public boolean hasPrevious() - { - checkMod(); - return position > 0; - } - - /** - * 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 Object next() - { - if (position == size) - throw new NoSuchElementException(); - position++; - return i.next(); - } - - /** - * Retrieves the previous object from the list. - * - * @return The next object. - * @throws NoSuchElementException if there are no - * previous objects to retrieve. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public Object previous() - { - if (position == 0) - throw new NoSuchElementException(); - position--; - return i.previous(); - } - - /** - * Returns the index of the next element in the - * list, which will be retrieved by <code>next()</code> - * - * @return The index of the next element. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public int nextIndex() - { - return i.nextIndex() - offset; - } - - /** - * Returns the index of the previous element in the - * list, which will be retrieved by <code>previous()</code> - * - * @return The index of the previous element. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public int previousIndex() - { - return i.previousIndex() - offset; - } - - /** - * Removes the last object retrieved by <code>next()</code> - * from the list, if the list supports object removal. - * - * @throws IllegalStateException if the iterator is positioned - * before the start of the list or the last object has already - * been removed. - * @throws UnsupportedOperationException if the list does - * not support removing elements. - */ - public void remove() - { - i.remove(); - size--; - position = nextIndex(); - modCount = backingList.modCount; - } - - - /** - * Replaces the last object retrieved by <code>next()</code> - * or <code>previous</code> with o, if the list supports object - * replacement and an add or remove operation has not already - * been performed. - * - * @throws IllegalStateException if the iterator is positioned - * before the start of the list or the last object has already - * been removed. - * @throws UnsupportedOperationException if the list doesn't support - * the addition or removal of elements. - * @throws ClassCastException if the type of o is not a valid type - * for this list. - * @throws IllegalArgumentException if something else related to o - * prevents its addition. - * @throws ConcurrentModificationException if the list - * has been modified elsewhere. - */ - public void set(Object o) - { - i.set(o); - } + backingList = backing; + modCount = backing.modCount; + offset = fromIndex; + size = toIndex - fromIndex; + } + + /** + * This method checks the two modCount fields to ensure that there has + * not been a concurrent modification, returning if all is okay. + * + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + */ + // This can be inlined. Package visible, for use by iterator. + void checkMod() + { + if (modCount != backingList.modCount) + throw new ConcurrentModificationException(); + } + + /** + * This method checks that a value is between 0 and size (inclusive). If + * it is not, an exception is thrown. + * + * @param index the value to check + * @throws IndexOutOfBoundsException if index < 0 || index > size() + */ + // This will get inlined, since it is private. + private void checkBoundsInclusive(int index) + { + if (index < 0 || index > size) + throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + + size); + } + + /** + * This method checks that a value is between 0 (inclusive) and size + * (exclusive). If it is not, an exception is thrown. + * + * @param index the value to check + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + */ + // This will get inlined, since it is private. + private void checkBoundsExclusive(int index) + { + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + + size); + } + + /** + * Specified by AbstractList.subList to return the private field size. + * + * @return the sublist size + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + */ + public int size() + { + checkMod(); + return size; + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the location to modify + * @param o the new value + * @return the old value + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws UnsupportedOperationException if the backing list does not + * support the set operation + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + * @throws ClassCastException if o cannot be added to the backing list due + * to its type + * @throws IllegalArgumentException if o cannot be added to the backing list + * for some other reason + */ + public Object set(int index, Object o) + { + checkMod(); + checkBoundsExclusive(index); + return backingList.set(index + offset, o); + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the location to get from + * @return the object at that location + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + */ + public Object get(int index) + { + checkMod(); + checkBoundsExclusive(index); + return backingList.get(index + offset); + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the index to insert at + * @param o the object to add + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index > size() + * @throws UnsupportedOperationException if the backing list does not + * support the add operation. + * @throws ClassCastException if o cannot be added to the backing list due + * to its type. + * @throws IllegalArgumentException if o cannot be added to the backing + * list for some other reason. + */ + public void add(int index, Object o) + { + checkMod(); + checkBoundsInclusive(index); + backingList.add(index + offset, o); + size++; + modCount = backingList.modCount; + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the index to remove + * @return the removed object + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + * @throws UnsupportedOperationException if the backing list does not + * support the remove operation + */ + public Object remove(int index) + { + checkMod(); + checkBoundsExclusive(index); + Object o = backingList.remove(index + offset); + size--; + modCount = backingList.modCount; + return o; + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * This does no bounds checking, as it assumes it will only be called + * by trusted code like clear() which has already checked the bounds. + * + * @param fromIndex the lower bound, inclusive + * @param toIndex the upper bound, exclusive + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws UnsupportedOperationException if the backing list does + * not support removing elements. + */ + protected void removeRange(int fromIndex, int toIndex) + { + checkMod(); + + backingList.removeRange(offset + fromIndex, offset + toIndex); + size -= toIndex - fromIndex; + modCount = backingList.modCount; + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the location to insert at + * @param c the collection to insert + * @return true if this list was modified, in other words, c is non-empty + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index > size() + * @throws UnsupportedOperationException if this list does not support the + * addAll operation + * @throws ClassCastException if some element of c cannot be added to this + * list due to its type + * @throws IllegalArgumentException if some element of c cannot be added + * to this list for some other reason + * @throws NullPointerException if the specified collection is null + */ + public boolean addAll(int index, Collection c) + { + checkMod(); + checkBoundsInclusive(index); + int csize = c.size(); + boolean result = backingList.addAll(offset + index, c); + size += csize; + modCount = backingList.modCount; + return result; + } + + /** + * Specified by AbstractList.subList to return addAll(size, c). + * + * @param c the collection to insert + * @return true if this list was modified, in other words, c is non-empty + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws UnsupportedOperationException if this list does not support the + * addAll operation + * @throws ClassCastException if some element of c cannot be added to this + * list due to its type + * @throws IllegalArgumentException if some element of c cannot be added + * to this list for some other reason + * @throws NullPointerException if the specified collection is null + */ + public boolean addAll(Collection c) + { + return addAll(size, c); + } + + /** + * Specified by AbstractList.subList to return listIterator(). + * + * @return an iterator over the sublist + */ + public Iterator iterator() + { + return listIterator(); + } + + /** + * Specified by AbstractList.subList to return a wrapper around the + * backing list's iterator. + * + * @param index the start location of the iterator + * @return a list iterator over the sublist + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if the value is out of range + */ + public ListIterator listIterator(final int index) + { + checkMod(); + checkBoundsInclusive(index); - /** - * Adds the supplied object before the element that would be returned - * by a call to <code>next()</code>, if the list supports addition. - * - * @param o The object to add to the list. - * @throws UnsupportedOperationException if the list doesn't support - * the addition of new elements. - * @throws ClassCastException if the type of o is not a valid type - * for this list. - * @throws IllegalArgumentException if something else related to o - * prevents its addition. - * @throws ConcurrentModificationException if the list - * has been modified elsewhere. - */ - public void add(Object o) + return new ListIterator() { - i.add(o); - size++; - position++; - modCount = backingList.modCount; - } - - // Here is the reason why the various modCount fields are mostly - // ignored in this wrapper listIterator. - // If the backing listIterator is failfast, then the following holds: - // Using any other method on this list will call a corresponding - // method on the backing list *after* the backing listIterator - // is created, which will in turn cause a ConcurrentModException - // when this listIterator comes to use the backing one. So it is - // implicitly failfast. - // If the backing listIterator is NOT failfast, then the whole of - // this list isn't failfast, because the modCount field of the - // backing list is not valid. It would still be *possible* to - // make the iterator failfast wrt modifications of the sublist - // only, but somewhat pointless when the list can be changed under - // us. - // Either way, no explicit handling of modCount is needed. - // However modCount = backingList.modCount must be executed in add - // and remove, and size must also be updated in these two methods, - // since they do not go through the corresponding methods of the subList. - }; - } -} // class SubList + private final ListIterator i = backingList.listIterator(index + offset); + private int position = index; + + /** + * Tests to see if there are any more objects to + * return. + * + * @return True if the end of the list has not yet been + * reached. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public boolean hasNext() + { + checkMod(); + return position < size; + } + + /** + * Tests to see if there are objects prior to the + * current position in the list. + * + * @return True if objects exist prior to the current + * position of the iterator. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public boolean hasPrevious() + { + checkMod(); + return position > 0; + } + + /** + * 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 Object next() + { + if (position == size) + throw new NoSuchElementException(); + position++; + return i.next(); + } + + /** + * Retrieves the previous object from the list. + * + * @return The next object. + * @throws NoSuchElementException if there are no + * previous objects to retrieve. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public Object previous() + { + if (position == 0) + throw new NoSuchElementException(); + position--; + return i.previous(); + } + + /** + * Returns the index of the next element in the + * list, which will be retrieved by <code>next()</code> + * + * @return The index of the next element. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public int nextIndex() + { + return i.nextIndex() - offset; + } + + /** + * Returns the index of the previous element in the + * list, which will be retrieved by <code>previous()</code> + * + * @return The index of the previous element. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public int previousIndex() + { + return i.previousIndex() - offset; + } + + /** + * Removes the last object retrieved by <code>next()</code> + * from the list, if the list supports object removal. + * + * @throws IllegalStateException if the iterator is positioned + * before the start of the list or the last object has already + * been removed. + * @throws UnsupportedOperationException if the list does + * not support removing elements. + */ + public void remove() + { + i.remove(); + size--; + position = nextIndex(); + modCount = backingList.modCount; + } + + + /** + * Replaces the last object retrieved by <code>next()</code> + * or <code>previous</code> with o, if the list supports object + * replacement and an add or remove operation has not already + * been performed. + * + * @throws IllegalStateException if the iterator is positioned + * before the start of the list or the last object has already + * been removed. + * @throws UnsupportedOperationException if the list doesn't support + * the addition or removal of elements. + * @throws ClassCastException if the type of o is not a valid type + * for this list. + * @throws IllegalArgumentException if something else related to o + * prevents its addition. + * @throws ConcurrentModificationException if the list + * has been modified elsewhere. + */ + public void set(Object o) + { + i.set(o); + } + + /** + * Adds the supplied object before the element that would be returned + * by a call to <code>next()</code>, if the list supports addition. + * + * @param o The object to add to the list. + * @throws UnsupportedOperationException if the list doesn't support + * the addition of new elements. + * @throws ClassCastException if the type of o is not a valid type + * for this list. + * @throws IllegalArgumentException if something else related to o + * prevents its addition. + * @throws ConcurrentModificationException if the list + * has been modified elsewhere. + */ + public void add(Object o) + { + i.add(o); + size++; + position++; + modCount = backingList.modCount; + } + + // Here is the reason why the various modCount fields are mostly + // ignored in this wrapper listIterator. + // If the backing listIterator is failfast, then the following holds: + // Using any other method on this list will call a corresponding + // method on the backing list *after* the backing listIterator + // is created, which will in turn cause a ConcurrentModException + // when this listIterator comes to use the backing one. So it is + // implicitly failfast. + // If the backing listIterator is NOT failfast, then the whole of + // this list isn't failfast, because the modCount field of the + // backing list is not valid. It would still be *possible* to + // make the iterator failfast wrt modifications of the sublist + // only, but somewhat pointless when the list can be changed under + // us. + // Either way, no explicit handling of modCount is needed. + // However modCount = backingList.modCount must be executed in add + // and remove, and size must also be updated in these two methods, + // since they do not go through the corresponding methods of the subList. + }; + } + } // class SubList -/** - * This class is a RandomAccess version of SubList, as required by - * {@link AbstractList#subList(int, int)}. - * - * @author Eric Blake <ebb9@email.byu.edu> - */ -final class RandomAccessSubList extends SubList - implements RandomAccess -{ /** - * Construct the sublist. + * This class is a RandomAccess version of SubList, as required by + * {@link AbstractList#subList(int, int)}. * - * @param backing the list this comes from - * @param fromIndex the lower bound, inclusive - * @param toIndex the upper bound, exclusive + * @author Eric Blake (ebb9@email.byu.edu) */ - RandomAccessSubList(AbstractList backing, int fromIndex, int toIndex) + private static final class RandomAccessSubList extends SubList + implements RandomAccess { - super(backing, fromIndex, toIndex); - } -} // class RandomAccessSubList + /** + * Construct the sublist. + * + * @param backing the list this comes from + * @param fromIndex the lower bound, inclusive + * @param toIndex the upper bound, exclusive + */ + RandomAccessSubList(AbstractList backing, int fromIndex, int toIndex) + { + super(backing, fromIndex, toIndex); + } + } // class RandomAccessSubList + +} // class AbstractList |
