aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/libjava/java
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2013-03-28 11:14:20 -0700
committerBen Cheng <bccheng@google.com>2013-03-28 12:40:33 -0700
commitaf0c51ac87ab2a87caa03fa108f0d164987a2764 (patch)
tree4b8b470f7c5b69642fdab8d0aa1fbc148d02196b /gcc-4.8/libjava/java
parentd87cae247d39ebf4f5a6bf25c932a14d2fdb9384 (diff)
downloadtoolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.tar.gz
toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.tar.bz2
toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.zip
[GCC 4.8] Initial check-in of GCC 4.8.0
Change-Id: I0719d8a6d0f69b367a6ab6f10eb75622dbf12771
Diffstat (limited to 'gcc-4.8/libjava/java')
-rw-r--r--gcc-4.8/libjava/java/applet/Applet$AccessibleApplet.h46
-rw-r--r--gcc-4.8/libjava/java/applet/Applet$URLAudioClip.h53
-rw-r--r--gcc-4.8/libjava/java/applet/Applet.h82
-rw-r--r--gcc-4.8/libjava/java/applet/AppletContext.h48
-rw-r--r--gcc-4.8/libjava/java/applet/AppletStub.h39
-rw-r--r--gcc-4.8/libjava/java/applet/AudioClip.h31
-rw-r--r--gcc-4.8/libjava/java/awt/AWTError.h32
-rw-r--r--gcc-4.8/libjava/java/awt/AWTEvent.h75
-rw-r--r--gcc-4.8/libjava/java/awt/AWTEventMulticaster.h151
-rw-r--r--gcc-4.8/libjava/java/awt/AWTException.h32
-rw-r--r--gcc-4.8/libjava/java/awt/AWTKeyStroke$1.h34
-rw-r--r--gcc-4.8/libjava/java/awt/AWTKeyStroke$2.h31
-rw-r--r--gcc-4.8/libjava/java/awt/AWTKeyStroke$3.h34
-rw-r--r--gcc-4.8/libjava/java/awt/AWTKeyStroke.h70
-rw-r--r--gcc-4.8/libjava/java/awt/AWTPermission.h33
-rw-r--r--gcc-4.8/libjava/java/awt/ActiveEvent.h29
-rw-r--r--gcc-4.8/libjava/java/awt/Adjustable.h50
-rw-r--r--gcc-4.8/libjava/java/awt/AlphaComposite$1.h34
-rw-r--r--gcc-4.8/libjava/java/awt/AlphaComposite.h75
-rw-r--r--gcc-4.8/libjava/java/awt/AttributeValue.h39
-rw-r--r--gcc-4.8/libjava/java/awt/BasicStroke.h92
-rw-r--r--gcc-4.8/libjava/java/awt/BorderLayout.h85
-rw-r--r--gcc-4.8/libjava/java/awt/BufferCapabilities$FlipContents.h36
-rw-r--r--gcc-4.8/libjava/java/awt/BufferCapabilities.h43
-rw-r--r--gcc-4.8/libjava/java/awt/Button$AccessibleAWTButton.h56
-rw-r--r--gcc-4.8/libjava/java/awt/Button.h75
-rw-r--r--gcc-4.8/libjava/java/awt/Canvas$AccessibleAWTCanvas.h44
-rw-r--r--gcc-4.8/libjava/java/awt/Canvas$CanvasBltBufferStrategy.h32
-rw-r--r--gcc-4.8/libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h32
-rw-r--r--gcc-4.8/libjava/java/awt/Canvas.h60
-rw-r--r--gcc-4.8/libjava/java/awt/CardLayout.h68
-rw-r--r--gcc-4.8/libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h61
-rw-r--r--gcc-4.8/libjava/java/awt/Checkbox.h82
-rw-r--r--gcc-4.8/libjava/java/awt/CheckboxGroup.h39
-rw-r--r--gcc-4.8/libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h35
-rw-r--r--gcc-4.8/libjava/java/awt/CheckboxMenuItem.h71
-rw-r--r--gcc-4.8/libjava/java/awt/Choice$AccessibleAWTChoice.h48
-rw-r--r--gcc-4.8/libjava/java/awt/Choice.h84
-rw-r--r--gcc-4.8/libjava/java/awt/Color.h128
-rw-r--r--gcc-4.8/libjava/java/awt/ColorPaintContext$ColorRaster.h39
-rw-r--r--gcc-4.8/libjava/java/awt/ColorPaintContext.h46
-rw-r--r--gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h42
-rw-r--r--gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h40
-rw-r--r--gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent.h104
-rw-r--r--gcc-4.8/libjava/java/awt/Component$BltBufferStrategy.h59
-rw-r--r--gcc-4.8/libjava/java/awt/Component$FlipBufferStrategy.h63
-rw-r--r--gcc-4.8/libjava/java/awt/Component$HeavyweightInLightweightListener.h42
-rw-r--r--gcc-4.8/libjava/java/awt/Component.h438
-rw-r--r--gcc-4.8/libjava/java/awt/ComponentOrientation.h45
-rw-r--r--gcc-4.8/libjava/java/awt/Composite.h35
-rw-r--r--gcc-4.8/libjava/java/awt/CompositeContext.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h40
-rw-r--r--gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer.h53
-rw-r--r--gcc-4.8/libjava/java/awt/Container$GfxPaintAllVisitor.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Container$GfxPaintVisitor.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Container$GfxPrintAllVisitor.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Container$GfxPrintVisitor.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Container$GfxVisitor.h33
-rw-r--r--gcc-4.8/libjava/java/awt/Container.h168
-rw-r--r--gcc-4.8/libjava/java/awt/ContainerOrderFocusTraversalPolicy.h52
-rw-r--r--gcc-4.8/libjava/java/awt/Cursor.h69
-rw-r--r--gcc-4.8/libjava/java/awt/DefaultFocusTraversalPolicy.h35
-rw-r--r--gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h48
-rw-r--r--gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager.h60
-rw-r--r--gcc-4.8/libjava/java/awt/Desktop$Action.h41
-rw-r--r--gcc-4.8/libjava/java/awt/Desktop.h50
-rw-r--r--gcc-4.8/libjava/java/awt/Dialog$AccessibleAWTDialog.h46
-rw-r--r--gcc-4.8/libjava/java/awt/Dialog$ModalExclusionType.h39
-rw-r--r--gcc-4.8/libjava/java/awt/Dialog$ModalityType.h40
-rw-r--r--gcc-4.8/libjava/java/awt/Dialog.h76
-rw-r--r--gcc-4.8/libjava/java/awt/Dimension.h45
-rw-r--r--gcc-4.8/libjava/java/awt/DisplayMode.h43
-rw-r--r--gcc-4.8/libjava/java/awt/Event.h119
-rw-r--r--gcc-4.8/libjava/java/awt/EventDispatchThread.h37
-rw-r--r--gcc-4.8/libjava/java/awt/EventQueue$Queue.h36
-rw-r--r--gcc-4.8/libjava/java/awt/EventQueue.h69
-rw-r--r--gcc-4.8/libjava/java/awt/FileDialog.h62
-rw-r--r--gcc-4.8/libjava/java/awt/FlowLayout.h60
-rw-r--r--gcc-4.8/libjava/java/awt/FocusTraversalPolicy.h38
-rw-r--r--gcc-4.8/libjava/java/awt/Font.h164
-rw-r--r--gcc-4.8/libjava/java/awt/FontFormatException.h32
-rw-r--r--gcc-4.8/libjava/java/awt/FontMetrics.h83
-rw-r--r--gcc-4.8/libjava/java/awt/Frame$AccessibleAWTFrame.h46
-rw-r--r--gcc-4.8/libjava/java/awt/Frame.h120
-rw-r--r--gcc-4.8/libjava/java/awt/GradientPaint.h62
-rw-r--r--gcc-4.8/libjava/java/awt/Graphics.h97
-rw-r--r--gcc-4.8/libjava/java/awt/Graphics2D.h103
-rw-r--r--gcc-4.8/libjava/java/awt/GraphicsConfigTemplate.h40
-rw-r--r--gcc-4.8/libjava/java/awt/GraphicsConfiguration.h62
-rw-r--r--gcc-4.8/libjava/java/awt/GraphicsDevice.h58
-rw-r--r--gcc-4.8/libjava/java/awt/GraphicsEnvironment.h55
-rw-r--r--gcc-4.8/libjava/java/awt/GridBagConstraints.h69
-rw-r--r--gcc-4.8/libjava/java/awt/GridBagLayout.h100
-rw-r--r--gcc-4.8/libjava/java/awt/GridBagLayoutInfo.h43
-rw-r--r--gcc-4.8/libjava/java/awt/GridLayout.h58
-rw-r--r--gcc-4.8/libjava/java/awt/HeadlessException.h33
-rw-r--r--gcc-4.8/libjava/java/awt/IllegalComponentStateException.h33
-rw-r--r--gcc-4.8/libjava/java/awt/Image.h53
-rw-r--r--gcc-4.8/libjava/java/awt/ImageCapabilities.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Insets.h41
-rw-r--r--gcc-4.8/libjava/java/awt/ItemSelectable.h37
-rw-r--r--gcc-4.8/libjava/java/awt/JobAttributes$DefaultSelectionType.h35
-rw-r--r--gcc-4.8/libjava/java/awt/JobAttributes$DestinationType.h34
-rw-r--r--gcc-4.8/libjava/java/awt/JobAttributes$DialogType.h35
-rw-r--r--gcc-4.8/libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h34
-rw-r--r--gcc-4.8/libjava/java/awt/JobAttributes$SidesType.h35
-rw-r--r--gcc-4.8/libjava/java/awt/JobAttributes.h87
-rw-r--r--gcc-4.8/libjava/java/awt/KeyEventDispatcher.h33
-rw-r--r--gcc-4.8/libjava/java/awt/KeyEventPostProcessor.h33
-rw-r--r--gcc-4.8/libjava/java/awt/KeyboardFocusManager.h156
-rw-r--r--gcc-4.8/libjava/java/awt/Label$AccessibleAWTLabel.h44
-rw-r--r--gcc-4.8/libjava/java/awt/Label.h61
-rw-r--r--gcc-4.8/libjava/java/awt/LayoutManager.h36
-rw-r--r--gcc-4.8/libjava/java/awt/LayoutManager2.h41
-rw-r--r--gcc-4.8/libjava/java/awt/LightweightDispatcher.h53
-rw-r--r--gcc-4.8/libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h51
-rw-r--r--gcc-4.8/libjava/java/awt/List$AccessibleAWTList.h66
-rw-r--r--gcc-4.8/libjava/java/awt/List.h121
-rw-r--r--gcc-4.8/libjava/java/awt/MediaTracker$MediaEntry.h42
-rw-r--r--gcc-4.8/libjava/java/awt/MediaTracker.h62
-rw-r--r--gcc-4.8/libjava/java/awt/Menu$AccessibleAWTMenu.h44
-rw-r--r--gcc-4.8/libjava/java/awt/Menu.h70
-rw-r--r--gcc-4.8/libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h44
-rw-r--r--gcc-4.8/libjava/java/awt/MenuBar.h63
-rw-r--r--gcc-4.8/libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h103
-rw-r--r--gcc-4.8/libjava/java/awt/MenuComponent.h102
-rw-r--r--gcc-4.8/libjava/java/awt/MenuContainer.h34
-rw-r--r--gcc-4.8/libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h56
-rw-r--r--gcc-4.8/libjava/java/awt/MenuItem.h91
-rw-r--r--gcc-4.8/libjava/java/awt/MenuShortcut.h45
-rw-r--r--gcc-4.8/libjava/java/awt/MouseInfo.h39
-rw-r--r--gcc-4.8/libjava/java/awt/PageAttributes$ColorType.h34
-rw-r--r--gcc-4.8/libjava/java/awt/PageAttributes$MediaType.h179
-rw-r--r--gcc-4.8/libjava/java/awt/PageAttributes$OrientationRequestedType.h34
-rw-r--r--gcc-4.8/libjava/java/awt/PageAttributes$OriginType.h34
-rw-r--r--gcc-4.8/libjava/java/awt/PageAttributes$PrintQualityType.h35
-rw-r--r--gcc-4.8/libjava/java/awt/PageAttributes.h72
-rw-r--r--gcc-4.8/libjava/java/awt/Paint.h42
-rw-r--r--gcc-4.8/libjava/java/awt/PaintContext.h36
-rw-r--r--gcc-4.8/libjava/java/awt/Panel$AccessibleAWTPanel.h44
-rw-r--r--gcc-4.8/libjava/java/awt/Panel.h50
-rw-r--r--gcc-4.8/libjava/java/awt/Point.h46
-rw-r--r--gcc-4.8/libjava/java/awt/PointerInfo.h38
-rw-r--r--gcc-4.8/libjava/java/awt/Polygon$1.h49
-rw-r--r--gcc-4.8/libjava/java/awt/Polygon.h71
-rw-r--r--gcc-4.8/libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h44
-rw-r--r--gcc-4.8/libjava/java/awt/PopupMenu.h48
-rw-r--r--gcc-4.8/libjava/java/awt/PrintGraphics.h30
-rw-r--r--gcc-4.8/libjava/java/awt/PrintJob.h37
-rw-r--r--gcc-4.8/libjava/java/awt/Rectangle.h85
-rw-r--r--gcc-4.8/libjava/java/awt/RenderingHints$Key.h39
-rw-r--r--gcc-4.8/libjava/java/awt/RenderingHints$KeyImpl.h38
-rw-r--r--gcc-4.8/libjava/java/awt/RenderingHints.h87
-rw-r--r--gcc-4.8/libjava/java/awt/Robot$1.h35
-rw-r--r--gcc-4.8/libjava/java/awt/Robot.h61
-rw-r--r--gcc-4.8/libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h44
-rw-r--r--gcc-4.8/libjava/java/awt/ScrollPane.h89
-rw-r--r--gcc-4.8/libjava/java/awt/ScrollPaneAdjustable.h76
-rw-r--r--gcc-4.8/libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h52
-rw-r--r--gcc-4.8/libjava/java/awt/Scrollbar.h102
-rw-r--r--gcc-4.8/libjava/java/awt/Shape.h46
-rw-r--r--gcc-4.8/libjava/java/awt/Stroke.h30
-rw-r--r--gcc-4.8/libjava/java/awt/SystemColor.h105
-rw-r--r--gcc-4.8/libjava/java/awt/TextArea$AccessibleAWTTextArea.h44
-rw-r--r--gcc-4.8/libjava/java/awt/TextArea.h80
-rw-r--r--gcc-4.8/libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h72
-rw-r--r--gcc-4.8/libjava/java/awt/TextComponent.h88
-rw-r--r--gcc-4.8/libjava/java/awt/TextField$AccessibleAWTTextField.h44
-rw-r--r--gcc-4.8/libjava/java/awt/TextField.h88
-rw-r--r--gcc-4.8/libjava/java/awt/TexturePaint.h50
-rw-r--r--gcc-4.8/libjava/java/awt/Toolkit$1.h31
-rw-r--r--gcc-4.8/libjava/java/awt/Toolkit$2.h31
-rw-r--r--gcc-4.8/libjava/java/awt/Toolkit.h252
-rw-r--r--gcc-4.8/libjava/java/awt/Transparency.h32
-rw-r--r--gcc-4.8/libjava/java/awt/Window$AccessibleAWTWindow.h46
-rw-r--r--gcc-4.8/libjava/java/awt/Window$WindowBltBufferStrategy.h32
-rw-r--r--gcc-4.8/libjava/java/awt/Window$WindowFlipBufferStrategy.h32
-rw-r--r--gcc-4.8/libjava/java/awt/Window.h142
-rw-r--r--gcc-4.8/libjava/java/awt/color/CMMException.h35
-rw-r--r--gcc-4.8/libjava/java/awt/color/ColorSpace.h88
-rw-r--r--gcc-4.8/libjava/java/awt/color/ICC_ColorSpace.h71
-rw-r--r--gcc-4.8/libjava/java/awt/color/ICC_Profile.h217
-rw-r--r--gcc-4.8/libjava/java/awt/color/ICC_ProfileGray.h43
-rw-r--r--gcc-4.8/libjava/java/awt/color/ICC_ProfileRGB.h52
-rw-r--r--gcc-4.8/libjava/java/awt/color/ProfileDataException.h35
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/Clipboard.h54
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/ClipboardOwner.h34
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/DataFlavor.h100
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/FlavorEvent.h33
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/FlavorListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/FlavorMap.h36
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/FlavorTable.h38
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/MimeType.h51
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/MimeTypeParseException.h36
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/StringSelection.h46
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap$1.h38
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap.h58
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/Transferable.h37
-rw-r--r--gcc-4.8/libjava/java/awt/datatransfer/UnsupportedFlavorException.h36
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/Autoscroll.h35
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DnDConstants.h38
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DnDEventMulticaster.h39
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragGestureEvent.h70
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragGestureListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragGestureRecognizer.h69
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSource.h90
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceAdapter.h41
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceContext.h86
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceDragEvent.h45
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceDropEvent.h42
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceEvent.h45
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceListener.h39
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DragSourceMotionListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h59
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTarget.h91
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetAdapter.h40
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h50
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetContext.h72
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetDragEvent.h56
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetDropEvent.h60
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetEvent.h39
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/DropTargetListener.h39
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/InvalidDnDOperationException.h36
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/MouseDragGestureRecognizer.h52
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/peer/DragSourceContextPeer.h42
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/peer/DropTargetContextPeer.h53
-rw-r--r--gcc-4.8/libjava/java/awt/dnd/peer/DropTargetPeer.h37
-rw-r--r--gcc-4.8/libjava/java/awt/event/AWTEventListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/AWTEventListenerProxy.h39
-rw-r--r--gcc-4.8/libjava/java/awt/event/ActionEvent.h53
-rw-r--r--gcc-4.8/libjava/java/awt/event/ActionListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/AdjustmentEvent.h56
-rw-r--r--gcc-4.8/libjava/java/awt/event/AdjustmentListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/ComponentAdapter.h37
-rw-r--r--gcc-4.8/libjava/java/awt/event/ComponentEvent.h44
-rw-r--r--gcc-4.8/libjava/java/awt/event/ComponentListener.h36
-rw-r--r--gcc-4.8/libjava/java/awt/event/ContainerAdapter.h35
-rw-r--r--gcc-4.8/libjava/java/awt/event/ContainerEvent.h47
-rw-r--r--gcc-4.8/libjava/java/awt/event/ContainerListener.h34
-rw-r--r--gcc-4.8/libjava/java/awt/event/FocusAdapter.h35
-rw-r--r--gcc-4.8/libjava/java/awt/event/FocusEvent.h49
-rw-r--r--gcc-4.8/libjava/java/awt/event/FocusListener.h34
-rw-r--r--gcc-4.8/libjava/java/awt/event/HierarchyBoundsAdapter.h35
-rw-r--r--gcc-4.8/libjava/java/awt/event/HierarchyBoundsListener.h34
-rw-r--r--gcc-4.8/libjava/java/awt/event/HierarchyEvent.h56
-rw-r--r--gcc-4.8/libjava/java/awt/event/HierarchyListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/InputEvent.h72
-rw-r--r--gcc-4.8/libjava/java/awt/event/InputMethodEvent.h66
-rw-r--r--gcc-4.8/libjava/java/awt/event/InputMethodListener.h34
-rw-r--r--gcc-4.8/libjava/java/awt/event/InvocationEvent.h56
-rw-r--r--gcc-4.8/libjava/java/awt/event/ItemEvent.h49
-rw-r--r--gcc-4.8/libjava/java/awt/event/ItemListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/KeyAdapter.h36
-rw-r--r--gcc-4.8/libjava/java/awt/event/KeyEvent.h255
-rw-r--r--gcc-4.8/libjava/java/awt/event/KeyListener.h35
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseAdapter.h38
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseEvent.h75
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseListener.h37
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseMotionAdapter.h35
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseMotionListener.h34
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseWheelEvent.h48
-rw-r--r--gcc-4.8/libjava/java/awt/event/MouseWheelListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/PaintEvent.h47
-rw-r--r--gcc-4.8/libjava/java/awt/event/TextEvent.h39
-rw-r--r--gcc-4.8/libjava/java/awt/event/TextListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/event/WindowAdapter.h43
-rw-r--r--gcc-4.8/libjava/java/awt/event/WindowEvent.h61
-rw-r--r--gcc-4.8/libjava/java/awt/event/WindowFocusListener.h34
-rw-r--r--gcc-4.8/libjava/java/awt/event/WindowListener.h39
-rw-r--r--gcc-4.8/libjava/java/awt/event/WindowStateListener.h33
-rw-r--r--gcc-4.8/libjava/java/awt/font/FontRenderContext.h49
-rw-r--r--gcc-4.8/libjava/java/awt/font/GlyphJustificationInfo.h45
-rw-r--r--gcc-4.8/libjava/java/awt/font/GlyphMetrics.h61
-rw-r--r--gcc-4.8/libjava/java/awt/font/GlyphVector.h78
-rw-r--r--gcc-4.8/libjava/java/awt/font/GraphicAttribute.h54
-rw-r--r--gcc-4.8/libjava/java/awt/font/ImageGraphicAttribute.h52
-rw-r--r--gcc-4.8/libjava/java/awt/font/LineBreakMeasurer.h55
-rw-r--r--gcc-4.8/libjava/java/awt/font/LineMetrics.h45
-rw-r--r--gcc-4.8/libjava/java/awt/font/MultipleMaster.h40
-rw-r--r--gcc-4.8/libjava/java/awt/font/NumericShaper.h75
-rw-r--r--gcc-4.8/libjava/java/awt/font/OpenType.h91
-rw-r--r--gcc-4.8/libjava/java/awt/font/ShapeGraphicAttribute.h53
-rw-r--r--gcc-4.8/libjava/java/awt/font/TextAttribute.h88
-rw-r--r--gcc-4.8/libjava/java/awt/font/TextHitInfo.h50
-rw-r--r--gcc-4.8/libjava/java/awt/font/TextLayout$CaretPolicy.h35
-rw-r--r--gcc-4.8/libjava/java/awt/font/TextLayout$Run.h43
-rw-r--r--gcc-4.8/libjava/java/awt/font/TextLayout.h140
-rw-r--r--gcc-4.8/libjava/java/awt/font/TextMeasurer.h52
-rw-r--r--gcc-4.8/libjava/java/awt/font/TransformAttribute.h42
-rw-r--r--gcc-4.8/libjava/java/awt/geom/AffineTransform.h111
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Arc2D$ArcIterator.h55
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Arc2D$Double.h55
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Arc2D$Float.h55
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Arc2D.h72
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h39
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$AreaIterator.h48
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$CubicSegment.h60
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$Intersection.h42
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$LineSegment.h58
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$QuadSegment.h59
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area$Segment.h76
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Area.h96
-rw-r--r--gcc-4.8/libjava/java/awt/geom/CubicCurve2D$1.h49
-rw-r--r--gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Double.h57
-rw-r--r--gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Float.h58
-rw-r--r--gcc-4.8/libjava/java/awt/geom/CubicCurve2D.h86
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Dimension2D.h38
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Ellipse2D$Double.h45
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Ellipse2D$Float.h46
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Ellipse2D.h39
-rw-r--r--gcc-4.8/libjava/java/awt/geom/FlatteningPathIterator.h59
-rw-r--r--gcc-4.8/libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h50
-rw-r--r--gcc-4.8/libjava/java/awt/geom/GeneralPath.h88
-rw-r--r--gcc-4.8/libjava/java/awt/geom/IllegalPathStateException.h36
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Line2D$1.h49
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Line2D$Double.h48
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Line2D$Float.h49
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Line2D.h80
-rw-r--r--gcc-4.8/libjava/java/awt/geom/NoninvertibleTransformException.h35
-rw-r--r--gcc-4.8/libjava/java/awt/geom/PathIterator.h45
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Point2D$Double.h39
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Point2D$Float.h40
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Point2D.h46
-rw-r--r--gcc-4.8/libjava/java/awt/geom/QuadCurve2D$1.h49
-rw-r--r--gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Double.h52
-rw-r--r--gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Float.h53
-rw-r--r--gcc-4.8/libjava/java/awt/geom/QuadCurve2D.h83
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Rectangle2D$1.h53
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Rectangle2D$Double.h50
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Rectangle2D$Float.h54
-rw-r--r--gcc-4.8/libjava/java/awt/geom/Rectangle2D.h63
-rw-r--r--gcc-4.8/libjava/java/awt/geom/RectangularShape.h69
-rw-r--r--gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$1.h58
-rw-r--r--gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Double.h49
-rw-r--r--gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Float.h50
-rw-r--r--gcc-4.8/libjava/java/awt/geom/RoundRectangle2D.h45
-rw-r--r--gcc-4.8/libjava/java/awt/im/InputContext.h59
-rw-r--r--gcc-4.8/libjava/java/awt/im/InputMethodHighlight.h50
-rw-r--r--gcc-4.8/libjava/java/awt/im/InputMethodRequests.h50
-rw-r--r--gcc-4.8/libjava/java/awt/im/InputSubset.h41
-rw-r--r--gcc-4.8/libjava/java/awt/im/spi/InputMethod.h55
-rw-r--r--gcc-4.8/libjava/java/awt/im/spi/InputMethodContext.h66
-rw-r--r--gcc-4.8/libjava/java/awt/im/spi/InputMethodDescriptor.h43
-rw-r--r--gcc-4.8/libjava/java/awt/image/AffineTransformOp.h68
-rw-r--r--gcc-4.8/libjava/java/awt/image/AreaAveragingScaleFilter.h42
-rw-r--r--gcc-4.8/libjava/java/awt/image/BandCombineOp.h52
-rw-r--r--gcc-4.8/libjava/java/awt/image/BandedSampleModel.h65
-rw-r--r--gcc-4.8/libjava/java/awt/image/BufferStrategy.h39
-rw-r--r--gcc-4.8/libjava/java/awt/image/BufferedImage$1.h44
-rw-r--r--gcc-4.8/libjava/java/awt/image/BufferedImage.h124
-rw-r--r--gcc-4.8/libjava/java/awt/image/BufferedImageFilter.h42
-rw-r--r--gcc-4.8/libjava/java/awt/image/BufferedImageOp.h44
-rw-r--r--gcc-4.8/libjava/java/awt/image/ByteLookupTable.h41
-rw-r--r--gcc-4.8/libjava/java/awt/image/ColorConvertOp.h70
-rw-r--r--gcc-4.8/libjava/java/awt/image/ColorModel$SRGBColorModel.h39
-rw-r--r--gcc-4.8/libjava/java/awt/image/ColorModel.h108
-rw-r--r--gcc-4.8/libjava/java/awt/image/ComponentColorModel.h74
-rw-r--r--gcc-4.8/libjava/java/awt/image/ComponentSampleModel.h66
-rw-r--r--gcc-4.8/libjava/java/awt/image/ConvolveOp.h64
-rw-r--r--gcc-4.8/libjava/java/awt/image/CropImageFilter.h45
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBuffer.h70
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBufferByte.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBufferDouble.h58
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBufferFloat.h58
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBufferInt.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBufferShort.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/DataBufferUShort.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/DirectColorModel.h77
-rw-r--r--gcc-4.8/libjava/java/awt/image/FilteredImageSource.h45
-rw-r--r--gcc-4.8/libjava/java/awt/image/ImageConsumer.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/ImageFilter.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/ImageObserver.h41
-rw-r--r--gcc-4.8/libjava/java/awt/image/ImageProducer.h37
-rw-r--r--gcc-4.8/libjava/java/awt/image/ImagingOpException.h35
-rw-r--r--gcc-4.8/libjava/java/awt/image/IndexColorModel.h73
-rw-r--r--gcc-4.8/libjava/java/awt/image/Kernel.h45
-rw-r--r--gcc-4.8/libjava/java/awt/image/LookupOp.h56
-rw-r--r--gcc-4.8/libjava/java/awt/image/LookupTable.h42
-rw-r--r--gcc-4.8/libjava/java/awt/image/MemoryImageSource.h69
-rw-r--r--gcc-4.8/libjava/java/awt/image/MultiPixelPackedSampleModel.h68
-rw-r--r--gcc-4.8/libjava/java/awt/image/PackedColorModel.h59
-rw-r--r--gcc-4.8/libjava/java/awt/image/PixelGrabber$1.h38
-rw-r--r--gcc-4.8/libjava/java/awt/image/PixelGrabber.h82
-rw-r--r--gcc-4.8/libjava/java/awt/image/PixelInterleavedSampleModel.h37
-rw-r--r--gcc-4.8/libjava/java/awt/image/RGBImageFilter.h48
-rw-r--r--gcc-4.8/libjava/java/awt/image/Raster.h104
-rw-r--r--gcc-4.8/libjava/java/awt/image/RasterFormatException.h35
-rw-r--r--gcc-4.8/libjava/java/awt/image/RasterOp.h44
-rw-r--r--gcc-4.8/libjava/java/awt/image/RenderedImage.h59
-rw-r--r--gcc-4.8/libjava/java/awt/image/ReplicateScaleFilter.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/RescaleOp.h64
-rw-r--r--gcc-4.8/libjava/java/awt/image/SampleModel.h80
-rw-r--r--gcc-4.8/libjava/java/awt/image/ShortLookupTable.h41
-rw-r--r--gcc-4.8/libjava/java/awt/image/SinglePixelPackedSampleModel.h64
-rw-r--r--gcc-4.8/libjava/java/awt/image/TileObserver.h33
-rw-r--r--gcc-4.8/libjava/java/awt/image/VolatileImage.h55
-rw-r--r--gcc-4.8/libjava/java/awt/image/WritableRaster.h63
-rw-r--r--gcc-4.8/libjava/java/awt/image/WritableRenderedImage.h69
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h52
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/ParameterBlock.h87
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/RenderContext.h60
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/RenderableImage.h51
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/RenderableImageOp.h59
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/RenderableImageProducer.h50
-rw-r--r--gcc-4.8/libjava/java/awt/image/renderable/RenderedImageFactory.h38
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ButtonPeer.h118
-rw-r--r--gcc-4.8/libjava/java/awt/peer/CanvasPeer.h117
-rw-r--r--gcc-4.8/libjava/java/awt/peer/CheckboxMenuItemPeer.h39
-rw-r--r--gcc-4.8/libjava/java/awt/peer/CheckboxPeer.h121
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ChoicePeer.h122
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ComponentPeer.h117
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ContainerPeer.h127
-rw-r--r--gcc-4.8/libjava/java/awt/peer/DesktopPeer.h43
-rw-r--r--gcc-4.8/libjava/java/awt/peer/DialogPeer.h140
-rw-r--r--gcc-4.8/libjava/java/awt/peer/FileDialogPeer.h143
-rw-r--r--gcc-4.8/libjava/java/awt/peer/FontPeer.h31
-rw-r--r--gcc-4.8/libjava/java/awt/peer/FramePeer.h148
-rw-r--r--gcc-4.8/libjava/java/awt/peer/LabelPeer.h119
-rw-r--r--gcc-4.8/libjava/java/awt/peer/LightweightPeer.h117
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ListPeer.h134
-rw-r--r--gcc-4.8/libjava/java/awt/peer/MenuBarPeer.h38
-rw-r--r--gcc-4.8/libjava/java/awt/peer/MenuComponentPeer.h34
-rw-r--r--gcc-4.8/libjava/java/awt/peer/MenuItemPeer.h38
-rw-r--r--gcc-4.8/libjava/java/awt/peer/MenuPeer.h42
-rw-r--r--gcc-4.8/libjava/java/awt/peer/MouseInfoPeer.h35
-rw-r--r--gcc-4.8/libjava/java/awt/peer/PanelPeer.h128
-rw-r--r--gcc-4.8/libjava/java/awt/peer/PopupMenuPeer.h46
-rw-r--r--gcc-4.8/libjava/java/awt/peer/RobotPeer.h43
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ScrollPanePeer.h135
-rw-r--r--gcc-4.8/libjava/java/awt/peer/ScrollbarPeer.h120
-rw-r--r--gcc-4.8/libjava/java/awt/peer/TextAreaPeer.h141
-rw-r--r--gcc-4.8/libjava/java/awt/peer/TextComponentPeer.h133
-rw-r--r--gcc-4.8/libjava/java/awt/peer/TextFieldPeer.h139
-rw-r--r--gcc-4.8/libjava/java/awt/peer/WindowPeer.h138
-rw-r--r--gcc-4.8/libjava/java/awt/print/Book.h44
-rw-r--r--gcc-4.8/libjava/java/awt/print/NoPrinterJob.h51
-rw-r--r--gcc-4.8/libjava/java/awt/print/PageFormat.h54
-rw-r--r--gcc-4.8/libjava/java/awt/print/Pageable.h37
-rw-r--r--gcc-4.8/libjava/java/awt/print/Paper.h49
-rw-r--r--gcc-4.8/libjava/java/awt/print/Printable.h36
-rw-r--r--gcc-4.8/libjava/java/awt/print/PrinterAbortException.h36
-rw-r--r--gcc-4.8/libjava/java/awt/print/PrinterException.h36
-rw-r--r--gcc-4.8/libjava/java/awt/print/PrinterGraphics.h33
-rw-r--r--gcc-4.8/libjava/java/awt/print/PrinterIOException.h38
-rw-r--r--gcc-4.8/libjava/java/awt/print/PrinterJob.h76
-rw-r--r--gcc-4.8/libjava/java/beans/AppletInitializer.h38
-rw-r--r--gcc-4.8/libjava/java/beans/BeanDescriptor.h36
-rw-r--r--gcc-4.8/libjava/java/beans/BeanInfo.h50
-rw-r--r--gcc-4.8/libjava/java/beans/Beans.h47
-rw-r--r--gcc-4.8/libjava/java/beans/ConstructorProperties.h32
-rw-r--r--gcc-4.8/libjava/java/beans/Customizer.h32
-rw-r--r--gcc-4.8/libjava/java/beans/DefaultPersistenceDelegate.h41
-rw-r--r--gcc-4.8/libjava/java/beans/DesignMode.h31
-rw-r--r--gcc-4.8/libjava/java/beans/Encoder$1.h34
-rw-r--r--gcc-4.8/libjava/java/beans/Encoder.h57
-rw-r--r--gcc-4.8/libjava/java/beans/EventHandler.h54
-rw-r--r--gcc-4.8/libjava/java/beans/EventSetDescriptor.h60
-rw-r--r--gcc-4.8/libjava/java/beans/ExceptionListener.h29
-rw-r--r--gcc-4.8/libjava/java/beans/ExplicitInfo.h60
-rw-r--r--gcc-4.8/libjava/java/beans/Expression.h39
-rw-r--r--gcc-4.8/libjava/java/beans/FeatureDescriptor.h53
-rw-r--r--gcc-4.8/libjava/java/beans/IndexedPropertyChangeEvent.h34
-rw-r--r--gcc-4.8/libjava/java/beans/IndexedPropertyDescriptor.h42
-rw-r--r--gcc-4.8/libjava/java/beans/IntrospectionException.h32
-rw-r--r--gcc-4.8/libjava/java/beans/Introspector.h64
-rw-r--r--gcc-4.8/libjava/java/beans/MethodDescriptor.h39
-rw-r--r--gcc-4.8/libjava/java/beans/ParameterDescriptor.h29
-rw-r--r--gcc-4.8/libjava/java/beans/PersistenceDelegate.h39
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyChangeEvent.h45
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyChangeListener.h30
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyChangeListenerProxy.h36
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyChangeSupport.h56
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyDescriptor.h64
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyEditor.h49
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyEditorManager.h40
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyEditorSupport.h60
-rw-r--r--gcc-4.8/libjava/java/beans/PropertyVetoException.h35
-rw-r--r--gcc-4.8/libjava/java/beans/SimpleBeanInfo.h49
-rw-r--r--gcc-4.8/libjava/java/beans/Statement.h52
-rw-r--r--gcc-4.8/libjava/java/beans/VetoableChangeListener.h30
-rw-r--r--gcc-4.8/libjava/java/beans/VetoableChangeListenerProxy.h36
-rw-r--r--gcc-4.8/libjava/java/beans/VetoableChangeSupport.h53
-rw-r--r--gcc-4.8/libjava/java/beans/Visibility.h32
-rw-r--r--gcc-4.8/libjava/java/beans/XMLDecoder.h47
-rw-r--r--gcc-4.8/libjava/java/beans/XMLEncoder.h58
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContext.h72
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextChild.h40
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextChildComponentProxy.h36
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextChildSupport.h67
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextContainerProxy.h36
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextEvent.h43
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipEvent.h45
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipListener.h34
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextProxy.h33
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h41
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProvider.h35
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h51
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h44
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h33
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServices.h88
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesListener.h35
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h38
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h47
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h46
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h37
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h37
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h38
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport.h90
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h44
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h39
-rw-r--r--gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport.h136
-rw-r--r--gcc-4.8/libjava/java/io/BufferedInputStream.h43
-rw-r--r--gcc-4.8/libjava/java/io/BufferedInputStream.java390
-rw-r--r--gcc-4.8/libjava/java/io/BufferedOutputStream.h31
-rw-r--r--gcc-4.8/libjava/java/io/BufferedReader.h47
-rw-r--r--gcc-4.8/libjava/java/io/BufferedWriter.h36
-rw-r--r--gcc-4.8/libjava/java/io/ByteArrayInputStream.h35
-rw-r--r--gcc-4.8/libjava/java/io/ByteArrayOutputStream.h41
-rw-r--r--gcc-4.8/libjava/java/io/CharArrayReader.h36
-rw-r--r--gcc-4.8/libjava/java/io/CharArrayWriter.h50
-rw-r--r--gcc-4.8/libjava/java/io/CharConversionException.h23
-rw-r--r--gcc-4.8/libjava/java/io/Closeable.h19
-rw-r--r--gcc-4.8/libjava/java/io/Console.h36
-rw-r--r--gcc-4.8/libjava/java/io/DataInput.h35
-rw-r--r--gcc-4.8/libjava/java/io/DataInputStream.h56
-rw-r--r--gcc-4.8/libjava/java/io/DataOutput.h34
-rw-r--r--gcc-4.8/libjava/java/io/DataOutputStream.h49
-rw-r--r--gcc-4.8/libjava/java/io/DeleteFileHelper$1.h21
-rw-r--r--gcc-4.8/libjava/java/io/DeleteFileHelper.h28
-rw-r--r--gcc-4.8/libjava/java/io/EOFException.h23
-rw-r--r--gcc-4.8/libjava/java/io/Externalizable.h20
-rw-r--r--gcc-4.8/libjava/java/io/File.h164
-rw-r--r--gcc-4.8/libjava/java/io/File.java1576
-rw-r--r--gcc-4.8/libjava/java/io/FileDescriptor.h43
-rw-r--r--gcc-4.8/libjava/java/io/FileDescriptor.java139
-rw-r--r--gcc-4.8/libjava/java/io/FileFilter.h19
-rw-r--r--gcc-4.8/libjava/java/io/FileInputStream.h67
-rw-r--r--gcc-4.8/libjava/java/io/FileInputStream.java309
-rw-r--r--gcc-4.8/libjava/java/io/FileNotFoundException.h23
-rw-r--r--gcc-4.8/libjava/java/io/FileOutputStream.h66
-rw-r--r--gcc-4.8/libjava/java/io/FileOutputStream.java296
-rw-r--r--gcc-4.8/libjava/java/io/FilePermission.h43
-rw-r--r--gcc-4.8/libjava/java/io/FileReader.h21
-rw-r--r--gcc-4.8/libjava/java/io/FileWriter.h23
-rw-r--r--gcc-4.8/libjava/java/io/FilenameFilter.h19
-rw-r--r--gcc-4.8/libjava/java/io/FilterInputStream.h34
-rw-r--r--gcc-4.8/libjava/java/io/FilterOutputStream.h29
-rw-r--r--gcc-4.8/libjava/java/io/FilterReader.h33
-rw-r--r--gcc-4.8/libjava/java/io/FilterWriter.h30
-rw-r--r--gcc-4.8/libjava/java/io/Flushable.h19
-rw-r--r--gcc-4.8/libjava/java/io/IOError.h22
-rw-r--r--gcc-4.8/libjava/java/io/IOException.h23
-rw-r--r--gcc-4.8/libjava/java/io/InputStream.h30
-rw-r--r--gcc-4.8/libjava/java/io/InputStreamReader.h65
-rw-r--r--gcc-4.8/libjava/java/io/InputStreamReader.java332
-rw-r--r--gcc-4.8/libjava/java/io/InterruptedIOException.h26
-rw-r--r--gcc-4.8/libjava/java/io/InvalidClassException.h25
-rw-r--r--gcc-4.8/libjava/java/io/InvalidObjectException.h22
-rw-r--r--gcc-4.8/libjava/java/io/LineNumberInputStream.h34
-rw-r--r--gcc-4.8/libjava/java/io/LineNumberReader.h41
-rw-r--r--gcc-4.8/libjava/java/io/NotActiveException.h23
-rw-r--r--gcc-4.8/libjava/java/io/NotSerializableException.h23
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInput.h42
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInputStream$1.h26
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInputStream$2.h42
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInputStream$GetField.h30
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInputStream$ValidatorAndPriority.h25
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInputStream.h106
-rw-r--r--gcc-4.8/libjava/java/io/ObjectInputValidation.h19
-rw-r--r--gcc-4.8/libjava/java/io/ObjectOutput.h37
-rw-r--r--gcc-4.8/libjava/java/io/ObjectOutputStream$1.h41
-rw-r--r--gcc-4.8/libjava/java/io/ObjectOutputStream$2.h25
-rw-r--r--gcc-4.8/libjava/java/io/ObjectOutputStream$PutField.h29
-rw-r--r--gcc-4.8/libjava/java/io/ObjectOutputStream.h127
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamClass$1.h24
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamClass$2.h26
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamClass$InterfaceComparator.h23
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamClass$MemberComparator.h23
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamClass.h117
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamConstants.h47
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamException.h23
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamField$1.h26
-rw-r--r--gcc-4.8/libjava/java/io/ObjectStreamField.h67
-rw-r--r--gcc-4.8/libjava/java/io/OptionalDataException.h24
-rw-r--r--gcc-4.8/libjava/java/io/OutputStream.h26
-rw-r--r--gcc-4.8/libjava/java/io/OutputStreamWriter.h65
-rw-r--r--gcc-4.8/libjava/java/io/OutputStreamWriter.java347
-rw-r--r--gcc-4.8/libjava/java/io/PipedInputStream.h45
-rw-r--r--gcc-4.8/libjava/java/io/PipedOutputStream.h31
-rw-r--r--gcc-4.8/libjava/java/io/PipedReader.h39
-rw-r--r--gcc-4.8/libjava/java/io/PipedWriter.h32
-rw-r--r--gcc-4.8/libjava/java/io/PrintStream.h93
-rw-r--r--gcc-4.8/libjava/java/io/PrintStream.java684
-rw-r--r--gcc-4.8/libjava/java/io/PrintWriter.h80
-rw-r--r--gcc-4.8/libjava/java/io/PushbackInputStream.h38
-rw-r--r--gcc-4.8/libjava/java/io/PushbackReader.h38
-rw-r--r--gcc-4.8/libjava/java/io/RandomAccessFile.h93
-rw-r--r--gcc-4.8/libjava/java/io/RandomAccessFile.java1036
-rw-r--r--gcc-4.8/libjava/java/io/Reader.h46
-rw-r--r--gcc-4.8/libjava/java/io/SequenceInputStream.h32
-rw-r--r--gcc-4.8/libjava/java/io/Serializable.h18
-rw-r--r--gcc-4.8/libjava/java/io/SerializablePermission.h27
-rw-r--r--gcc-4.8/libjava/java/io/StreamCorruptedException.h23
-rw-r--r--gcc-4.8/libjava/java/io/StreamTokenizer.h72
-rw-r--r--gcc-4.8/libjava/java/io/StringBufferInputStream.h31
-rw-r--r--gcc-4.8/libjava/java/io/StringReader.h35
-rw-r--r--gcc-4.8/libjava/java/io/StringWriter.h43
-rw-r--r--gcc-4.8/libjava/java/io/SyncFailedException.h22
-rw-r--r--gcc-4.8/libjava/java/io/UTFDataFormatException.h23
-rw-r--r--gcc-4.8/libjava/java/io/UnsupportedEncodingException.h23
-rw-r--r--gcc-4.8/libjava/java/io/VMConsole.h22
-rw-r--r--gcc-4.8/libjava/java/io/VMConsole.java44
-rw-r--r--gcc-4.8/libjava/java/io/VMObjectInputStream.h21
-rw-r--r--gcc-4.8/libjava/java/io/VMObjectInputStream.java56
-rw-r--r--gcc-4.8/libjava/java/io/VMObjectStreamClass.h30
-rw-r--r--gcc-4.8/libjava/java/io/VMObjectStreamClass.java140
-rw-r--r--gcc-4.8/libjava/java/io/WriteAbortedException.h25
-rw-r--r--gcc-4.8/libjava/java/io/Writer.h39
-rw-r--r--gcc-4.8/libjava/java/io/natFilePosix.cc509
-rw-r--r--gcc-4.8/libjava/java/io/natFileWin32.cc374
-rw-r--r--gcc-4.8/libjava/java/io/natVMConsole.cc49
-rw-r--r--gcc-4.8/libjava/java/io/natVMObjectInputStream.cc71
-rw-r--r--gcc-4.8/libjava/java/io/natVMObjectStreamClass.cc87
-rw-r--r--gcc-4.8/libjava/java/lang/AbstractMethodError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/AbstractStringBuffer.h85
-rw-r--r--gcc-4.8/libjava/java/lang/AbstractStringBuffer.java1027
-rw-r--r--gcc-4.8/libjava/java/lang/Appendable.h21
-rw-r--r--gcc-4.8/libjava/java/lang/ArithmeticException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/ArrayIndexOutOfBoundsException.h24
-rw-r--r--gcc-4.8/libjava/java/lang/ArrayStoreException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/AssertionError.h30
-rw-r--r--gcc-4.8/libjava/java/lang/AutoCloseable.h19
-rw-r--r--gcc-4.8/libjava/java/lang/Boolean.h41
-rw-r--r--gcc-4.8/libjava/java/lang/Byte.h52
-rw-r--r--gcc-4.8/libjava/java/lang/CharSequence.h22
-rw-r--r--gcc-4.8/libjava/java/lang/Character$Subset.h26
-rw-r--r--gcc-4.8/libjava/java/lang/Character$UnicodeBlock$NameType.h29
-rw-r--r--gcc-4.8/libjava/java/lang/Character$UnicodeBlock.h161
-rw-r--r--gcc-4.8/libjava/java/lang/Character.h179
-rw-r--r--gcc-4.8/libjava/java/lang/Character.java4051
-rw-r--r--gcc-4.8/libjava/java/lang/Class$1.h24
-rw-r--r--gcc-4.8/libjava/java/lang/Class.h758
-rw-r--r--gcc-4.8/libjava/java/lang/Class.java1430
-rw-r--r--gcc-4.8/libjava/java/lang/ClassCastException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/ClassCircularityError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/ClassFormatError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/ClassLoader$AnnotationsKey.h31
-rw-r--r--gcc-4.8/libjava/java/lang/ClassLoader.h112
-rw-r--r--gcc-4.8/libjava/java/lang/ClassLoader.java1144
-rw-r--r--gcc-4.8/libjava/java/lang/ClassNotFoundException.h27
-rw-r--r--gcc-4.8/libjava/java/lang/CloneNotSupportedException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Cloneable.h18
-rw-r--r--gcc-4.8/libjava/java/lang/Comparable.h19
-rw-r--r--gcc-4.8/libjava/java/lang/Compiler.h24
-rw-r--r--gcc-4.8/libjava/java/lang/Deprecated.h19
-rw-r--r--gcc-4.8/libjava/java/lang/Double.h59
-rw-r--r--gcc-4.8/libjava/java/lang/EcosProcess.h27
-rw-r--r--gcc-4.8/libjava/java/lang/EcosProcess.java60
-rw-r--r--gcc-4.8/libjava/java/lang/Enum.h41
-rw-r--r--gcc-4.8/libjava/java/lang/EnumConstantNotPresentException.h26
-rw-r--r--gcc-4.8/libjava/java/lang/Error.h25
-rw-r--r--gcc-4.8/libjava/java/lang/Exception.h25
-rw-r--r--gcc-4.8/libjava/java/lang/ExceptionInInitializerError.h28
-rw-r--r--gcc-4.8/libjava/java/lang/Float.h60
-rw-r--r--gcc-4.8/libjava/java/lang/IllegalAccessError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/IllegalAccessException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/IllegalArgumentException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/IllegalMonitorStateException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/IllegalStateException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/IllegalThreadStateException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/IncompatibleClassChangeError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/IndexOutOfBoundsException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/InheritableThreadLocal.h24
-rw-r--r--gcc-4.8/libjava/java/lang/InstantiationError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/InstantiationException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Integer.h78
-rw-r--r--gcc-4.8/libjava/java/lang/InternalError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/InterruptedException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Iterable.h19
-rw-r--r--gcc-4.8/libjava/java/lang/LinkageError.h24
-rw-r--r--gcc-4.8/libjava/java/lang/Long.h78
-rw-r--r--gcc-4.8/libjava/java/lang/Math.h68
-rw-r--r--gcc-4.8/libjava/java/lang/Math.java973
-rw-r--r--gcc-4.8/libjava/java/lang/NegativeArraySizeException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/NoClassDefFoundError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/NoSuchFieldError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/NoSuchFieldException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/NoSuchMethodError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/NoSuchMethodException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/NullPointerException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Number.h32
-rw-r--r--gcc-4.8/libjava/java/lang/NumberFormatException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Object.h91
-rw-r--r--gcc-4.8/libjava/java/lang/Object.java519
-rw-r--r--gcc-4.8/libjava/java/lang/OutOfMemoryError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Override.h19
-rw-r--r--gcc-4.8/libjava/java/lang/Package.h62
-rw-r--r--gcc-4.8/libjava/java/lang/PosixProcess$EOFInputStream.h24
-rw-r--r--gcc-4.8/libjava/java/lang/PosixProcess$ProcessManager.h45
-rw-r--r--gcc-4.8/libjava/java/lang/PosixProcess.h62
-rw-r--r--gcc-4.8/libjava/java/lang/PosixProcess.java470
-rw-r--r--gcc-4.8/libjava/java/lang/Process.h25
-rw-r--r--gcc-4.8/libjava/java/lang/ProcessBuilder.h37
-rw-r--r--gcc-4.8/libjava/java/lang/Readable.h29
-rw-r--r--gcc-4.8/libjava/java/lang/ReflectiveOperationException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/Runnable.h19
-rw-r--r--gcc-4.8/libjava/java/lang/Runtime.h69
-rw-r--r--gcc-4.8/libjava/java/lang/Runtime.java747
-rw-r--r--gcc-4.8/libjava/java/lang/RuntimeException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/RuntimePermission.h23
-rw-r--r--gcc-4.8/libjava/java/lang/SecurityException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/SecurityManager$1.h26
-rw-r--r--gcc-4.8/libjava/java/lang/SecurityManager.h84
-rw-r--r--gcc-4.8/libjava/java/lang/Short.h55
-rw-r--r--gcc-4.8/libjava/java/lang/StackOverflowError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/StackTraceElement.h39
-rw-r--r--gcc-4.8/libjava/java/lang/StrictMath.h203
-rw-r--r--gcc-4.8/libjava/java/lang/String$CaseInsensitiveComparator.h25
-rw-r--r--gcc-4.8/libjava/java/lang/String.h148
-rw-r--r--gcc-4.8/libjava/java/lang/String.java1457
-rw-r--r--gcc-4.8/libjava/java/lang/StringBuffer.h115
-rw-r--r--gcc-4.8/libjava/java/lang/StringBuffer.java976
-rw-r--r--gcc-4.8/libjava/java/lang/StringBuilder.h96
-rw-r--r--gcc-4.8/libjava/java/lang/StringBuilder.java706
-rw-r--r--gcc-4.8/libjava/java/lang/StringIndexOutOfBoundsException.h24
-rw-r--r--gcc-4.8/libjava/java/lang/SuppressWarnings.h22
-rw-r--r--gcc-4.8/libjava/java/lang/System$EnvironmentCollection.h29
-rw-r--r--gcc-4.8/libjava/java/lang/System$EnvironmentMap.h37
-rw-r--r--gcc-4.8/libjava/java/lang/System$EnvironmentSet.h21
-rw-r--r--gcc-4.8/libjava/java/lang/System.h70
-rw-r--r--gcc-4.8/libjava/java/lang/System.java1089
-rw-r--r--gcc-4.8/libjava/java/lang/Thread$State.h32
-rw-r--r--gcc-4.8/libjava/java/lang/Thread$UncaughtExceptionHandler.h19
-rw-r--r--gcc-4.8/libjava/java/lang/Thread.h157
-rw-r--r--gcc-4.8/libjava/java/lang/Thread.java1358
-rw-r--r--gcc-4.8/libjava/java/lang/ThreadDeath.h22
-rw-r--r--gcc-4.8/libjava/java/lang/ThreadGroup.h69
-rw-r--r--gcc-4.8/libjava/java/lang/ThreadLocal.h57
-rw-r--r--gcc-4.8/libjava/java/lang/ThreadLocal.java198
-rw-r--r--gcc-4.8/libjava/java/lang/ThreadLocalMap$Entry.h21
-rw-r--r--gcc-4.8/libjava/java/lang/ThreadLocalMap.h41
-rw-r--r--gcc-4.8/libjava/java/lang/Throwable$StaticData.h21
-rw-r--r--gcc-4.8/libjava/java/lang/Throwable.h59
-rw-r--r--gcc-4.8/libjava/java/lang/TypeNotPresentException.h24
-rw-r--r--gcc-4.8/libjava/java/lang/UnknownError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/UnsatisfiedLinkError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/UnsupportedClassVersionError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/UnsupportedOperationException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/VMClassLoader.h74
-rw-r--r--gcc-4.8/libjava/java/lang/VMClassLoader.java348
-rw-r--r--gcc-4.8/libjava/java/lang/VMCompiler.h64
-rw-r--r--gcc-4.8/libjava/java/lang/VMCompiler.java369
-rw-r--r--gcc-4.8/libjava/java/lang/VMDouble.h25
-rw-r--r--gcc-4.8/libjava/java/lang/VMDouble.java111
-rw-r--r--gcc-4.8/libjava/java/lang/VMFloat.h25
-rw-r--r--gcc-4.8/libjava/java/lang/VMFloat.java121
-rw-r--r--gcc-4.8/libjava/java/lang/VMProcess.h24
-rw-r--r--gcc-4.8/libjava/java/lang/VMProcess.java68
-rw-r--r--gcc-4.8/libjava/java/lang/VMThrowable.h36
-rw-r--r--gcc-4.8/libjava/java/lang/VMThrowable.java82
-rw-r--r--gcc-4.8/libjava/java/lang/VerifyError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/VirtualMachineError.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Void.h20
-rw-r--r--gcc-4.8/libjava/java/lang/Win32Process$EOFInputStream.h23
-rw-r--r--gcc-4.8/libjava/java/lang/Win32Process.h37
-rw-r--r--gcc-4.8/libjava/java/lang/Win32Process.java97
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/Annotation.h22
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/AnnotationFormatError.h24
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/AnnotationTypeMismatchException.h26
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/Documented.h19
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/ElementType.h35
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/IncompleteAnnotationException.h25
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/Inherited.h19
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/Retention.h20
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/RetentionPolicy.h30
-rw-r--r--gcc-4.8/libjava/java/lang/annotation/Target.h22
-rw-r--r--gcc-4.8/libjava/java/lang/instrument/ClassDefinition.h27
-rw-r--r--gcc-4.8/libjava/java/lang/instrument/ClassFileTransformer.h31
-rw-r--r--gcc-4.8/libjava/java/lang/instrument/IllegalClassFormatException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/instrument/Instrumentation.h27
-rw-r--r--gcc-4.8/libjava/java/lang/instrument/UnmodifiableClassException.h23
-rw-r--r--gcc-4.8/libjava/java/lang/management/ClassLoadingMXBean.h23
-rw-r--r--gcc-4.8/libjava/java/lang/management/CompilationMXBean.h21
-rw-r--r--gcc-4.8/libjava/java/lang/management/GarbageCollectorMXBean.h25
-rw-r--r--gcc-4.8/libjava/java/lang/management/LockInfo.h26
-rw-r--r--gcc-4.8/libjava/java/lang/management/ManagementFactory$ManagementInvocationHandler.h38
-rw-r--r--gcc-4.8/libjava/java/lang/management/ManagementFactory.h59
-rw-r--r--gcc-4.8/libjava/java/lang/management/ManagementPermission.h23
-rw-r--r--gcc-4.8/libjava/java/lang/management/MemoryMXBean.h24
-rw-r--r--gcc-4.8/libjava/java/lang/management/MemoryManagerMXBean.h23
-rw-r--r--gcc-4.8/libjava/java/lang/management/MemoryNotificationInfo.h43
-rw-r--r--gcc-4.8/libjava/java/lang/management/MemoryPoolMXBean.h38
-rw-r--r--gcc-4.8/libjava/java/lang/management/MemoryType.h28
-rw-r--r--gcc-4.8/libjava/java/lang/management/MemoryUsage.h44
-rw-r--r--gcc-4.8/libjava/java/lang/management/MonitorInfo.h39
-rw-r--r--gcc-4.8/libjava/java/lang/management/OperatingSystemMXBean.h23
-rw-r--r--gcc-4.8/libjava/java/lang/management/RuntimeMXBean.h34
-rw-r--r--gcc-4.8/libjava/java/lang/management/ThreadInfo.h77
-rw-r--r--gcc-4.8/libjava/java/lang/management/ThreadMXBean.h47
-rw-r--r--gcc-4.8/libjava/java/lang/management/VMManagementFactory.h25
-rw-r--r--gcc-4.8/libjava/java/lang/management/VMManagementFactory.java87
-rw-r--r--gcc-4.8/libjava/java/lang/natAbstractStringBuffer.cc41
-rw-r--r--gcc-4.8/libjava/java/lang/natCharacter.cc235
-rw-r--r--gcc-4.8/libjava/java/lang/natClass.cc2095
-rw-r--r--gcc-4.8/libjava/java/lang/natClassLoader.cc734
-rw-r--r--gcc-4.8/libjava/java/lang/natEcosProcess.cc25
-rw-r--r--gcc-4.8/libjava/java/lang/natMath.cc184
-rw-r--r--gcc-4.8/libjava/java/lang/natObject.cc1457
-rw-r--r--gcc-4.8/libjava/java/lang/natPosixProcess.cc515
-rw-r--r--gcc-4.8/libjava/java/lang/natRuntime.cc323
-rw-r--r--gcc-4.8/libjava/java/lang/natString.cc1068
-rw-r--r--gcc-4.8/libjava/java/lang/natSystem.cc150
-rw-r--r--gcc-4.8/libjava/java/lang/natThread.cc534
-rw-r--r--gcc-4.8/libjava/java/lang/natThreadLocal.cc169
-rw-r--r--gcc-4.8/libjava/java/lang/natVMClassLoader.cc245
-rw-r--r--gcc-4.8/libjava/java/lang/natVMDouble.cc215
-rw-r--r--gcc-4.8/libjava/java/lang/natVMFloat.cc52
-rw-r--r--gcc-4.8/libjava/java/lang/natVMProcess.cc33
-rw-r--r--gcc-4.8/libjava/java/lang/natVMThrowable.cc45
-rw-r--r--gcc-4.8/libjava/java/lang/natWin32Process.cc360
-rw-r--r--gcc-4.8/libjava/java/lang/ref/PhantomReference.h20
-rw-r--r--gcc-4.8/libjava/java/lang/ref/Reference.h45
-rw-r--r--gcc-4.8/libjava/java/lang/ref/Reference.java204
-rw-r--r--gcc-4.8/libjava/java/lang/ref/ReferenceQueue.h31
-rw-r--r--gcc-4.8/libjava/java/lang/ref/SoftReference.h21
-rw-r--r--gcc-4.8/libjava/java/lang/ref/WeakReference.h20
-rw-r--r--gcc-4.8/libjava/java/lang/ref/natReference.cc377
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/AccessibleObject.h36
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/AnnotatedElement.h24
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Array.h46
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Array.java458
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Constructor.h65
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Constructor.java424
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Field.h98
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Field.java817
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/GenericArrayType.h19
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/GenericDeclaration.h21
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/GenericSignatureFormatError.h22
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/InvocationHandler.h21
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/InvocationTargetException.h28
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/MalformedParameterizedTypeException.h22
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Member.h24
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Method.h84
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Method.java501
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Modifier.h58
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Modifier.java375
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/ParameterizedType.h23
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Proxy$ClassFactory.h78
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyData.h37
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Proxy$ProxySignature.h28
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyType.h28
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Proxy.h32
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/ReflectPermission.h23
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/Type.h18
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/TypeVariable.h23
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/UndeclaredThrowableException.h26
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/VMProxy.h28
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/VMProxy.java140
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/WildcardType.h22
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/natArray.cc360
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/natConstructor.cc93
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/natField.cc449
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/natMethod.cc706
-rw-r--r--gcc-4.8/libjava/java/lang/reflect/natVMProxy.cc463
-rw-r--r--gcc-4.8/libjava/java/math/BigDecimal.h126
-rw-r--r--gcc-4.8/libjava/java/math/BigInteger.h211
-rw-r--r--gcc-4.8/libjava/java/math/MathContext.h46
-rw-r--r--gcc-4.8/libjava/java/math/RoundingMode.h46
-rw-r--r--gcc-4.8/libjava/java/net/Authenticator.h51
-rw-r--r--gcc-4.8/libjava/java/net/BindException.h33
-rw-r--r--gcc-4.8/libjava/java/net/ConnectException.h33
-rw-r--r--gcc-4.8/libjava/java/net/ContentHandler.h34
-rw-r--r--gcc-4.8/libjava/java/net/ContentHandlerFactory.h30
-rw-r--r--gcc-4.8/libjava/java/net/DatagramPacket.h60
-rw-r--r--gcc-4.8/libjava/java/net/DatagramSocket.h87
-rw-r--r--gcc-4.8/libjava/java/net/DatagramSocketImpl.h60
-rw-r--r--gcc-4.8/libjava/java/net/DatagramSocketImplFactory.h30
-rw-r--r--gcc-4.8/libjava/java/net/FileNameMap.h29
-rw-r--r--gcc-4.8/libjava/java/net/HttpURLConnection.h101
-rw-r--r--gcc-4.8/libjava/java/net/Inet4Address.h52
-rw-r--r--gcc-4.8/libjava/java/net/Inet6Address.h66
-rw-r--r--gcc-4.8/libjava/java/net/InetAddress.h76
-rw-r--r--gcc-4.8/libjava/java/net/InetSocketAddress.h49
-rw-r--r--gcc-4.8/libjava/java/net/JarURLConnection.h56
-rw-r--r--gcc-4.8/libjava/java/net/MalformedURLException.h33
-rw-r--r--gcc-4.8/libjava/java/net/MimeTypeMapper.h39
-rw-r--r--gcc-4.8/libjava/java/net/MulticastSocket.h50
-rw-r--r--gcc-4.8/libjava/java/net/MulticastSocket.java519
-rw-r--r--gcc-4.8/libjava/java/net/NetPermission.h33
-rw-r--r--gcc-4.8/libjava/java/net/NetworkInterface.h50
-rw-r--r--gcc-4.8/libjava/java/net/NetworkInterface.java299
-rw-r--r--gcc-4.8/libjava/java/net/NoRouteToHostException.h33
-rw-r--r--gcc-4.8/libjava/java/net/PasswordAuthentication.h37
-rw-r--r--gcc-4.8/libjava/java/net/PortUnreachableException.h33
-rw-r--r--gcc-4.8/libjava/java/net/ProtocolException.h33
-rw-r--r--gcc-4.8/libjava/java/net/Proxy$Type.h40
-rw-r--r--gcc-4.8/libjava/java/net/Proxy.h41
-rw-r--r--gcc-4.8/libjava/java/net/ProxySelector.h38
-rw-r--r--gcc-4.8/libjava/java/net/ResolverCache$Entry.h32
-rw-r--r--gcc-4.8/libjava/java/net/ResolverCache.h51
-rw-r--r--gcc-4.8/libjava/java/net/ServerSocket.h85
-rw-r--r--gcc-4.8/libjava/java/net/Socket.h103
-rw-r--r--gcc-4.8/libjava/java/net/SocketAddress.h32
-rw-r--r--gcc-4.8/libjava/java/net/SocketException.h33
-rw-r--r--gcc-4.8/libjava/java/net/SocketImpl.h63
-rw-r--r--gcc-4.8/libjava/java/net/SocketImplFactory.h30
-rw-r--r--gcc-4.8/libjava/java/net/SocketOptions.h44
-rw-r--r--gcc-4.8/libjava/java/net/SocketPermission.h68
-rw-r--r--gcc-4.8/libjava/java/net/SocketTimeoutException.h33
-rw-r--r--gcc-4.8/libjava/java/net/URI.h144
-rw-r--r--gcc-4.8/libjava/java/net/URISyntaxException.h39
-rw-r--r--gcc-4.8/libjava/java/net/URL$1.h32
-rw-r--r--gcc-4.8/libjava/java/net/URL.h92
-rw-r--r--gcc-4.8/libjava/java/net/URLClassLoader$1.h46
-rw-r--r--gcc-4.8/libjava/java/net/URLClassLoader$2.h37
-rw-r--r--gcc-4.8/libjava/java/net/URLClassLoader.h91
-rw-r--r--gcc-4.8/libjava/java/net/URLConnection.h117
-rw-r--r--gcc-4.8/libjava/java/net/URLDecoder.h31
-rw-r--r--gcc-4.8/libjava/java/net/URLEncoder.h35
-rw-r--r--gcc-4.8/libjava/java/net/URLStreamHandler.h48
-rw-r--r--gcc-4.8/libjava/java/net/URLStreamHandlerFactory.h30
-rw-r--r--gcc-4.8/libjava/java/net/UnknownHostException.h33
-rw-r--r--gcc-4.8/libjava/java/net/UnknownServiceException.h33
-rw-r--r--gcc-4.8/libjava/java/net/VMInetAddress.h37
-rw-r--r--gcc-4.8/libjava/java/net/VMInetAddress.java97
-rw-r--r--gcc-4.8/libjava/java/net/VMNetworkInterface.h31
-rw-r--r--gcc-4.8/libjava/java/net/VMNetworkInterface.java66
-rw-r--r--gcc-4.8/libjava/java/net/VMURLConnection.h38
-rw-r--r--gcc-4.8/libjava/java/net/VMURLConnection.java79
-rw-r--r--gcc-4.8/libjava/java/net/natVMInetAddressNoNet.cc40
-rw-r--r--gcc-4.8/libjava/java/net/natVMInetAddressPosix.cc304
-rw-r--r--gcc-4.8/libjava/java/net/natVMInetAddressWin32.cc121
-rw-r--r--gcc-4.8/libjava/java/net/natVMNetworkInterfaceNoNet.cc21
-rw-r--r--gcc-4.8/libjava/java/net/natVMNetworkInterfacePosix.cc163
-rw-r--r--gcc-4.8/libjava/java/net/natVMNetworkInterfaceWin32.cc144
-rw-r--r--gcc-4.8/libjava/java/net/natVMURLConnection.cc81
-rw-r--r--gcc-4.8/libjava/java/nio/Buffer.h66
-rw-r--r--gcc-4.8/libjava/java/nio/Buffer.java367
-rw-r--r--gcc-4.8/libjava/java/nio/BufferOverflowException.h32
-rw-r--r--gcc-4.8/libjava/java/nio/BufferUnderflowException.h32
-rw-r--r--gcc-4.8/libjava/java/nio/ByteBuffer.h112
-rw-r--r--gcc-4.8/libjava/java/nio/ByteBufferHelper.h56
-rw-r--r--gcc-4.8/libjava/java/nio/ByteBufferImpl.h87
-rw-r--r--gcc-4.8/libjava/java/nio/ByteOrder.h35
-rw-r--r--gcc-4.8/libjava/java/nio/CharBuffer.h84
-rw-r--r--gcc-4.8/libjava/java/nio/CharBufferImpl.h53
-rw-r--r--gcc-4.8/libjava/java/nio/CharSequenceBuffer.h48
-rw-r--r--gcc-4.8/libjava/java/nio/CharViewBufferImpl.h55
-rw-r--r--gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadOnly.h41
-rw-r--r--gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadWrite.h40
-rw-r--r--gcc-4.8/libjava/java/nio/DirectByteBufferImpl.h101
-rw-r--r--gcc-4.8/libjava/java/nio/DirectByteBufferImpl.java429
-rw-r--r--gcc-4.8/libjava/java/nio/DoubleBuffer.h69
-rw-r--r--gcc-4.8/libjava/java/nio/DoubleBufferImpl.h49
-rw-r--r--gcc-4.8/libjava/java/nio/DoubleViewBufferImpl.h54
-rw-r--r--gcc-4.8/libjava/java/nio/FloatBuffer.h69
-rw-r--r--gcc-4.8/libjava/java/nio/FloatBufferImpl.h49
-rw-r--r--gcc-4.8/libjava/java/nio/FloatViewBufferImpl.h54
-rw-r--r--gcc-4.8/libjava/java/nio/IntBuffer.h69
-rw-r--r--gcc-4.8/libjava/java/nio/IntBufferImpl.h49
-rw-r--r--gcc-4.8/libjava/java/nio/IntViewBufferImpl.h54
-rw-r--r--gcc-4.8/libjava/java/nio/InvalidMarkException.h32
-rw-r--r--gcc-4.8/libjava/java/nio/LongBuffer.h69
-rw-r--r--gcc-4.8/libjava/java/nio/LongBufferImpl.h49
-rw-r--r--gcc-4.8/libjava/java/nio/LongViewBufferImpl.h54
-rw-r--r--gcc-4.8/libjava/java/nio/MappedByteBuffer.h52
-rw-r--r--gcc-4.8/libjava/java/nio/MappedByteBufferImpl.h99
-rw-r--r--gcc-4.8/libjava/java/nio/MappedByteBufferImpl.java359
-rw-r--r--gcc-4.8/libjava/java/nio/ReadOnlyBufferException.h32
-rw-r--r--gcc-4.8/libjava/java/nio/ShortBuffer.h69
-rw-r--r--gcc-4.8/libjava/java/nio/ShortBufferImpl.h49
-rw-r--r--gcc-4.8/libjava/java/nio/ShortViewBufferImpl.h54
-rw-r--r--gcc-4.8/libjava/java/nio/VMDirectByteBuffer.h46
-rw-r--r--gcc-4.8/libjava/java/nio/VMDirectByteBuffer.java53
-rw-r--r--gcc-4.8/libjava/java/nio/channels/AlreadyConnectedException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/AsynchronousCloseException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ByteChannel.h36
-rw-r--r--gcc-4.8/libjava/java/nio/channels/CancelledKeyException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/Channel.h33
-rw-r--r--gcc-4.8/libjava/java/nio/channels/Channels.h47
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ClosedByInterruptException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ClosedChannelException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ClosedSelectorException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ConnectionPendingException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/DatagramChannel.h59
-rw-r--r--gcc-4.8/libjava/java/nio/channels/FileChannel$MapMode.h40
-rw-r--r--gcc-4.8/libjava/java/nio/channels/FileChannel.h64
-rw-r--r--gcc-4.8/libjava/java/nio/channels/FileLock.h49
-rw-r--r--gcc-4.8/libjava/java/nio/channels/FileLockInterruptionException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/GatheringByteChannel.h39
-rw-r--r--gcc-4.8/libjava/java/nio/channels/IllegalBlockingModeException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/IllegalSelectorException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/InterruptibleChannel.h33
-rw-r--r--gcc-4.8/libjava/java/nio/channels/NoConnectionPendingException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/NonReadableChannelException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/NonWritableChannelException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/NotYetBoundException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/NotYetConnectedException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/OverlappingFileLockException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/Pipe$SinkChannel.h44
-rw-r--r--gcc-4.8/libjava/java/nio/channels/Pipe$SourceChannel.h44
-rw-r--r--gcc-4.8/libjava/java/nio/channels/Pipe.h38
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ReadableByteChannel.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ScatteringByteChannel.h39
-rw-r--r--gcc-4.8/libjava/java/nio/channels/SelectableChannel.h48
-rw-r--r--gcc-4.8/libjava/java/nio/channels/SelectionKey.h55
-rw-r--r--gcc-4.8/libjava/java/nio/channels/Selector.h47
-rw-r--r--gcc-4.8/libjava/java/nio/channels/ServerSocketChannel.h46
-rw-r--r--gcc-4.8/libjava/java/nio/channels/SocketChannel.h59
-rw-r--r--gcc-4.8/libjava/java/nio/channels/UnresolvedAddressException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/UnsupportedAddressTypeException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/VMChannels.h52
-rw-r--r--gcc-4.8/libjava/java/nio/channels/VMChannels.java85
-rw-r--r--gcc-4.8/libjava/java/nio/channels/WritableByteChannel.h35
-rw-r--r--gcc-4.8/libjava/java/nio/channels/natVMChannels.cc37
-rw-r--r--gcc-4.8/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h46
-rw-r--r--gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectableChannel.h64
-rw-r--r--gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectionKey.h41
-rw-r--r--gcc-4.8/libjava/java/nio/channels/spi/AbstractSelector.h60
-rw-r--r--gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider$1.h38
-rw-r--r--gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider.h52
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CharacterCodingException.h35
-rw-r--r--gcc-4.8/libjava/java/nio/charset/Charset.h80
-rw-r--r--gcc-4.8/libjava/java/nio/charset/Charset.java414
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CharsetDecoder.h81
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CharsetEncoder.h84
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CoderMalfunctionError.h35
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CoderResult$1.h36
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CoderResult$2.h36
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CoderResult$Cache.h39
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CoderResult.h61
-rw-r--r--gcc-4.8/libjava/java/nio/charset/CodingErrorAction.h39
-rw-r--r--gcc-4.8/libjava/java/nio/charset/IllegalCharsetNameException.h37
-rw-r--r--gcc-4.8/libjava/java/nio/charset/MalformedInputException.h38
-rw-r--r--gcc-4.8/libjava/java/nio/charset/UnmappableCharacterException.h38
-rw-r--r--gcc-4.8/libjava/java/nio/charset/UnsupportedCharsetException.h38
-rw-r--r--gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.h39
-rw-r--r--gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.java96
-rw-r--r--gcc-4.8/libjava/java/nio/natVMDirectByteBufferImpl.cc72
-rw-r--r--gcc-4.8/libjava/java/rmi/AccessException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/AlreadyBoundException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/ConnectException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/ConnectIOException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/MarshalException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/MarshalledObject.h41
-rw-r--r--gcc-4.8/libjava/java/rmi/Naming.h50
-rw-r--r--gcc-4.8/libjava/java/rmi/NoSuchObjectException.h32
-rw-r--r--gcc-4.8/libjava/java/rmi/NotBoundException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/RMISecurityException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/RMISecurityManager.h29
-rw-r--r--gcc-4.8/libjava/java/rmi/Remote.h28
-rw-r--r--gcc-4.8/libjava/java/rmi/RemoteException.h37
-rw-r--r--gcc-4.8/libjava/java/rmi/ServerError.h32
-rw-r--r--gcc-4.8/libjava/java/rmi/ServerException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/ServerRuntimeException.h32
-rw-r--r--gcc-4.8/libjava/java/rmi/StubNotFoundException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/UnexpectedException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/UnknownHostException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/UnmarshalException.h33
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/Activatable.h67
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivateFailedException.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationDesc.h55
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationException.h40
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationGroup.h63
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h46
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc.h54
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationGroupID.h46
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationGroup_Stub.h43
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationID.h55
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationInstantiator.h35
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationMonitor.h37
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/ActivationSystem.h48
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/Activator.h34
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/UnknownGroupException.h35
-rw-r--r--gcc-4.8/libjava/java/rmi/activation/UnknownObjectException.h35
-rw-r--r--gcc-4.8/libjava/java/rmi/dgc/DGC.h41
-rw-r--r--gcc-4.8/libjava/java/rmi/dgc/Lease.h42
-rw-r--r--gcc-4.8/libjava/java/rmi/dgc/VMID.h53
-rw-r--r--gcc-4.8/libjava/java/rmi/registry/LocateRegistry.h45
-rw-r--r--gcc-4.8/libjava/java/rmi/registry/Registry.h40
-rw-r--r--gcc-4.8/libjava/java/rmi/registry/RegistryHandler.h34
-rw-r--r--gcc-4.8/libjava/java/rmi/server/ExportException.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/server/LoaderHandler.h39
-rw-r--r--gcc-4.8/libjava/java/rmi/server/LogStream.h49
-rw-r--r--gcc-4.8/libjava/java/rmi/server/ObjID.h55
-rw-r--r--gcc-4.8/libjava/java/rmi/server/Operation.h37
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RMIClassLoader.h51
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RMIClassLoaderSpi.h38
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RMIClientSocketFactory.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RMIFailureHandler.h32
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RMIServerSocketFactory.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RMISocketFactory.h50
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RemoteCall.h38
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RemoteObject.h54
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RemoteObjectInvocationHandler.h43
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RemoteRef.h49
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RemoteServer.h41
-rw-r--r--gcc-4.8/libjava/java/rmi/server/RemoteStub.h38
-rw-r--r--gcc-4.8/libjava/java/rmi/server/ServerCloneException.h39
-rw-r--r--gcc-4.8/libjava/java/rmi/server/ServerNotActiveException.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/server/ServerRef.h52
-rw-r--r--gcc-4.8/libjava/java/rmi/server/Skeleton.h38
-rw-r--r--gcc-4.8/libjava/java/rmi/server/SkeletonMismatchException.h35
-rw-r--r--gcc-4.8/libjava/java/rmi/server/SkeletonNotFoundException.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/server/SocketSecurityException.h36
-rw-r--r--gcc-4.8/libjava/java/rmi/server/UID.h50
-rw-r--r--gcc-4.8/libjava/java/rmi/server/UnicastRemoteObject.h55
-rw-r--r--gcc-4.8/libjava/java/rmi/server/Unreferenced.h32
-rw-r--r--gcc-4.8/libjava/java/security/AccessControlContext.h48
-rw-r--r--gcc-4.8/libjava/java/security/AccessControlException.h36
-rw-r--r--gcc-4.8/libjava/java/security/AccessController.h39
-rw-r--r--gcc-4.8/libjava/java/security/AlgorithmParameterGenerator.h54
-rw-r--r--gcc-4.8/libjava/java/security/AlgorithmParameterGeneratorSpi.h40
-rw-r--r--gcc-4.8/libjava/java/security/AlgorithmParameters.h56
-rw-r--r--gcc-4.8/libjava/java/security/AlgorithmParametersSpi.h44
-rw-r--r--gcc-4.8/libjava/java/security/AllPermission$AllPermissionCollection.h39
-rw-r--r--gcc-4.8/libjava/java/security/AllPermission.h40
-rw-r--r--gcc-4.8/libjava/java/security/BasicPermission$BasicPermissionCollection.h40
-rw-r--r--gcc-4.8/libjava/java/security/BasicPermission.h40
-rw-r--r--gcc-4.8/libjava/java/security/Certificate.h37
-rw-r--r--gcc-4.8/libjava/java/security/CodeSource.h52
-rw-r--r--gcc-4.8/libjava/java/security/DigestException.h35
-rw-r--r--gcc-4.8/libjava/java/security/DigestInputStream.h43
-rw-r--r--gcc-4.8/libjava/java/security/DigestOutputStream.h43
-rw-r--r--gcc-4.8/libjava/java/security/DomainCombiner.h32
-rw-r--r--gcc-4.8/libjava/java/security/DummyKeyPairGenerator.h43
-rw-r--r--gcc-4.8/libjava/java/security/DummyMessageDigest.h42
-rw-r--r--gcc-4.8/libjava/java/security/DummySignature.h47
-rw-r--r--gcc-4.8/libjava/java/security/GeneralSecurityException.h35
-rw-r--r--gcc-4.8/libjava/java/security/Guard.h29
-rw-r--r--gcc-4.8/libjava/java/security/GuardedObject.h37
-rw-r--r--gcc-4.8/libjava/java/security/Identity.h61
-rw-r--r--gcc-4.8/libjava/java/security/IdentityScope.h51
-rw-r--r--gcc-4.8/libjava/java/security/IntersectingDomainCombiner.h36
-rw-r--r--gcc-4.8/libjava/java/security/InvalidAlgorithmParameterException.h35
-rw-r--r--gcc-4.8/libjava/java/security/InvalidKeyException.h35
-rw-r--r--gcc-4.8/libjava/java/security/InvalidParameterException.h33
-rw-r--r--gcc-4.8/libjava/java/security/Key.h34
-rw-r--r--gcc-4.8/libjava/java/security/KeyException.h35
-rw-r--r--gcc-4.8/libjava/java/security/KeyFactory.h54
-rw-r--r--gcc-4.8/libjava/java/security/KeyFactorySpi.h42
-rw-r--r--gcc-4.8/libjava/java/security/KeyManagementException.h35
-rw-r--r--gcc-4.8/libjava/java/security/KeyPair.h38
-rw-r--r--gcc-4.8/libjava/java/security/KeyPairGenerator.h55
-rw-r--r--gcc-4.8/libjava/java/security/KeyPairGeneratorSpi.h41
-rw-r--r--gcc-4.8/libjava/java/security/KeyStore$1.h32
-rw-r--r--gcc-4.8/libjava/java/security/KeyStore.h67
-rw-r--r--gcc-4.8/libjava/java/security/KeyStoreException.h35
-rw-r--r--gcc-4.8/libjava/java/security/KeyStoreSpi.h52
-rw-r--r--gcc-4.8/libjava/java/security/MessageDigest.h63
-rw-r--r--gcc-4.8/libjava/java/security/MessageDigestSpi.h45
-rw-r--r--gcc-4.8/libjava/java/security/NoSuchAlgorithmException.h35
-rw-r--r--gcc-4.8/libjava/java/security/NoSuchProviderException.h33
-rw-r--r--gcc-4.8/libjava/java/security/Permission.h42
-rw-r--r--gcc-4.8/libjava/java/security/PermissionCollection.h40
-rw-r--r--gcc-4.8/libjava/java/security/Permissions$1.h38
-rw-r--r--gcc-4.8/libjava/java/security/Permissions$PermissionsHash.h39
-rw-r--r--gcc-4.8/libjava/java/security/Permissions.h40
-rw-r--r--gcc-4.8/libjava/java/security/Policy.h49
-rw-r--r--gcc-4.8/libjava/java/security/Principal.h32
-rw-r--r--gcc-4.8/libjava/java/security/PrivateKey.h34
-rw-r--r--gcc-4.8/libjava/java/security/PrivilegedAction.h29
-rw-r--r--gcc-4.8/libjava/java/security/PrivilegedActionException.h36
-rw-r--r--gcc-4.8/libjava/java/security/PrivilegedExceptionAction.h29
-rw-r--r--gcc-4.8/libjava/java/security/ProtectionDomain.h53
-rw-r--r--gcc-4.8/libjava/java/security/Provider.h45
-rw-r--r--gcc-4.8/libjava/java/security/ProviderException.h35
-rw-r--r--gcc-4.8/libjava/java/security/PublicKey.h34
-rw-r--r--gcc-4.8/libjava/java/security/SecureClassLoader.h48
-rw-r--r--gcc-4.8/libjava/java/security/SecureRandom.h66
-rw-r--r--gcc-4.8/libjava/java/security/SecureRandomSpi.h38
-rw-r--r--gcc-4.8/libjava/java/security/Security.h51
-rw-r--r--gcc-4.8/libjava/java/security/SecurityPermission.h33
-rw-r--r--gcc-4.8/libjava/java/security/Signature.h84
-rw-r--r--gcc-4.8/libjava/java/security/SignatureException.h35
-rw-r--r--gcc-4.8/libjava/java/security/SignatureSpi.h63
-rw-r--r--gcc-4.8/libjava/java/security/SignedObject.h45
-rw-r--r--gcc-4.8/libjava/java/security/Signer.h42
-rw-r--r--gcc-4.8/libjava/java/security/UnrecoverableKeyException.h33
-rw-r--r--gcc-4.8/libjava/java/security/UnresolvedPermission.h56
-rw-r--r--gcc-4.8/libjava/java/security/UnresolvedPermissionCollection$1.h38
-rw-r--r--gcc-4.8/libjava/java/security/UnresolvedPermissionCollection.h39
-rw-r--r--gcc-4.8/libjava/java/security/VMAccessControlState.h37
-rw-r--r--gcc-4.8/libjava/java/security/VMAccessControlState.java103
-rw-r--r--gcc-4.8/libjava/java/security/VMAccessController.h41
-rw-r--r--gcc-4.8/libjava/java/security/VMAccessController.java257
-rw-r--r--gcc-4.8/libjava/java/security/acl/Acl.h45
-rw-r--r--gcc-4.8/libjava/java/security/acl/AclEntry.h43
-rw-r--r--gcc-4.8/libjava/java/security/acl/AclNotFoundException.h35
-rw-r--r--gcc-4.8/libjava/java/security/acl/Group.h37
-rw-r--r--gcc-4.8/libjava/java/security/acl/LastOwnerException.h35
-rw-r--r--gcc-4.8/libjava/java/security/acl/NotOwnerException.h35
-rw-r--r--gcc-4.8/libjava/java/security/acl/Owner.h35
-rw-r--r--gcc-4.8/libjava/java/security/acl/Permission.h33
-rw-r--r--gcc-4.8/libjava/java/security/cert/CRL.h40
-rw-r--r--gcc-4.8/libjava/java/security/cert/CRLException.h38
-rw-r--r--gcc-4.8/libjava/java/security/cert/CRLSelector.h34
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPath$CertPathRep.h40
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPath.h49
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathBuilder.h50
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathBuilderException.h44
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathBuilderResult.h34
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathBuilderSpi.h35
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathParameters.h32
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathValidator$1.h34
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathValidator.h51
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathValidatorException.h50
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathValidatorResult.h32
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertPathValidatorSpi.h36
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertSelector.h34
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertStore$1.h34
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertStore.h54
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertStoreException.h44
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertStoreParameters.h32
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertStoreSpi.h37
-rw-r--r--gcc-4.8/libjava/java/security/cert/Certificate$CertificateRep.h40
-rw-r--r--gcc-4.8/libjava/java/security/cert/Certificate.h50
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateEncodingException.h38
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateException.h38
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateExpiredException.h36
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateFactory.h57
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateFactorySpi.h43
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateNotYetValidException.h36
-rw-r--r--gcc-4.8/libjava/java/security/cert/CertificateParsingException.h38
-rw-r--r--gcc-4.8/libjava/java/security/cert/CollectionCertStoreParameters.h39
-rw-r--r--gcc-4.8/libjava/java/security/cert/LDAPCertStoreParameters.h43
-rw-r--r--gcc-4.8/libjava/java/security/cert/PKIXBuilderParameters.h41
-rw-r--r--gcc-4.8/libjava/java/security/cert/PKIXCertPathBuilderResult.h41
-rw-r--r--gcc-4.8/libjava/java/security/cert/PKIXCertPathChecker.h39
-rw-r--r--gcc-4.8/libjava/java/security/cert/PKIXCertPathValidatorResult.h45
-rw-r--r--gcc-4.8/libjava/java/security/cert/PKIXParameters.h83
-rw-r--r--gcc-4.8/libjava/java/security/cert/PolicyNode.h38
-rw-r--r--gcc-4.8/libjava/java/security/cert/PolicyQualifierInfo.h57
-rw-r--r--gcc-4.8/libjava/java/security/cert/TrustAnchor.h61
-rw-r--r--gcc-4.8/libjava/java/security/cert/X509CRL.h76
-rw-r--r--gcc-4.8/libjava/java/security/cert/X509CRLEntry.h49
-rw-r--r--gcc-4.8/libjava/java/security/cert/X509CRLSelector.h63
-rw-r--r--gcc-4.8/libjava/java/security/cert/X509CertSelector.h151
-rw-r--r--gcc-4.8/libjava/java/security/cert/X509Certificate.h82
-rw-r--r--gcc-4.8/libjava/java/security/cert/X509Extension.h37
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/DSAKey.h33
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/DSAKeyPairGenerator.h35
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/DSAParams.h38
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/DSAPrivateKey.h44
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/DSAPublicKey.h44
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/RSAKey.h36
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h54
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/RSAPrivateCrtKey.h49
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/RSAPrivateKey.h43
-rw-r--r--gcc-4.8/libjava/java/security/interfaces/RSAPublicKey.h43
-rw-r--r--gcc-4.8/libjava/java/security/natVMAccessControlState.cc32
-rw-r--r--gcc-4.8/libjava/java/security/natVMAccessController.cc23
-rw-r--r--gcc-4.8/libjava/java/security/spec/AlgorithmParameterSpec.h31
-rw-r--r--gcc-4.8/libjava/java/security/spec/DSAParameterSpec.h44
-rw-r--r--gcc-4.8/libjava/java/security/spec/DSAPrivateKeySpec.h46
-rw-r--r--gcc-4.8/libjava/java/security/spec/DSAPublicKeySpec.h46
-rw-r--r--gcc-4.8/libjava/java/security/spec/EncodedKeySpec.h39
-rw-r--r--gcc-4.8/libjava/java/security/spec/InvalidKeySpecException.h38
-rw-r--r--gcc-4.8/libjava/java/security/spec/InvalidParameterSpecException.h36
-rw-r--r--gcc-4.8/libjava/java/security/spec/KeySpec.h31
-rw-r--r--gcc-4.8/libjava/java/security/spec/PKCS8EncodedKeySpec.h36
-rw-r--r--gcc-4.8/libjava/java/security/spec/PSSParameterSpec.h36
-rw-r--r--gcc-4.8/libjava/java/security/spec/RSAKeyGenParameterSpec.h44
-rw-r--r--gcc-4.8/libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h55
-rw-r--r--gcc-4.8/libjava/java/security/spec/RSAOtherPrimeInfo.h44
-rw-r--r--gcc-4.8/libjava/java/security/spec/RSAPrivateCrtKeySpec.h50
-rw-r--r--gcc-4.8/libjava/java/security/spec/RSAPrivateKeySpec.h42
-rw-r--r--gcc-4.8/libjava/java/security/spec/RSAPublicKeySpec.h42
-rw-r--r--gcc-4.8/libjava/java/security/spec/X509EncodedKeySpec.h36
-rw-r--r--gcc-4.8/libjava/java/sql/Array.h39
-rw-r--r--gcc-4.8/libjava/java/sql/BatchUpdateException.h41
-rw-r--r--gcc-4.8/libjava/java/sql/Blob.h39
-rw-r--r--gcc-4.8/libjava/java/sql/CallableStatement.h203
-rw-r--r--gcc-4.8/libjava/java/sql/Clob.h39
-rw-r--r--gcc-4.8/libjava/java/sql/Connection.h77
-rw-r--r--gcc-4.8/libjava/java/sql/DataTruncation.h43
-rw-r--r--gcc-4.8/libjava/java/sql/DatabaseMetaData.h245
-rw-r--r--gcc-4.8/libjava/java/sql/Date.h47
-rw-r--r--gcc-4.8/libjava/java/sql/Driver.h38
-rw-r--r--gcc-4.8/libjava/java/sql/DriverManager.h51
-rw-r--r--gcc-4.8/libjava/java/sql/DriverPropertyInfo.h36
-rw-r--r--gcc-4.8/libjava/java/sql/ParameterMetaData.h44
-rw-r--r--gcc-4.8/libjava/java/sql/PreparedStatement.h124
-rw-r--r--gcc-4.8/libjava/java/sql/Ref.h32
-rw-r--r--gcc-4.8/libjava/java/sql/ResultSet.h197
-rw-r--r--gcc-4.8/libjava/java/sql/ResultSetMetaData.h52
-rw-r--r--gcc-4.8/libjava/java/sql/SQLData.h33
-rw-r--r--gcc-4.8/libjava/java/sql/SQLException.h43
-rw-r--r--gcc-4.8/libjava/java/sql/SQLInput.h68
-rw-r--r--gcc-4.8/libjava/java/sql/SQLOutput.h70
-rw-r--r--gcc-4.8/libjava/java/sql/SQLPermission.h30
-rw-r--r--gcc-4.8/libjava/java/sql/SQLWarning.h37
-rw-r--r--gcc-4.8/libjava/java/sql/Savepoint.h30
-rw-r--r--gcc-4.8/libjava/java/sql/Statement.h77
-rw-r--r--gcc-4.8/libjava/java/sql/Struct.h33
-rw-r--r--gcc-4.8/libjava/java/sql/Time.h48
-rw-r--r--gcc-4.8/libjava/java/sql/Timestamp.h54
-rw-r--r--gcc-4.8/libjava/java/sql/Types.h59
-rw-r--r--gcc-4.8/libjava/java/text/Annotation.h34
-rw-r--r--gcc-4.8/libjava/java/text/AttributedCharacterIterator$Attribute.h44
-rw-r--r--gcc-4.8/libjava/java/text/AttributedCharacterIterator.h47
-rw-r--r--gcc-4.8/libjava/java/text/AttributedString$AttributeRange.h35
-rw-r--r--gcc-4.8/libjava/java/text/AttributedString.h49
-rw-r--r--gcc-4.8/libjava/java/text/AttributedStringIterator.h63
-rw-r--r--gcc-4.8/libjava/java/text/Bidi.h80
-rw-r--r--gcc-4.8/libjava/java/text/BreakIterator.h59
-rw-r--r--gcc-4.8/libjava/java/text/CharacterIterator.h39
-rw-r--r--gcc-4.8/libjava/java/text/ChoiceFormat.h67
-rw-r--r--gcc-4.8/libjava/java/text/CollationElementIterator.h59
-rw-r--r--gcc-4.8/libjava/java/text/CollationKey.h44
-rw-r--r--gcc-4.8/libjava/java/text/Collator.h61
-rw-r--r--gcc-4.8/libjava/java/text/Collator.java419
-rw-r--r--gcc-4.8/libjava/java/text/DateFormat$Field.h63
-rw-r--r--gcc-4.8/libjava/java/text/DateFormat.h97
-rw-r--r--gcc-4.8/libjava/java/text/DateFormatSymbols$DFSData.h53
-rw-r--r--gcc-4.8/libjava/java/text/DateFormatSymbols.h88
-rw-r--r--gcc-4.8/libjava/java/text/DecimalFormat.h130
-rw-r--r--gcc-4.8/libjava/java/text/DecimalFormatSymbols.h96
-rw-r--r--gcc-4.8/libjava/java/text/FieldPosition.h47
-rw-r--r--gcc-4.8/libjava/java/text/Format$Field.h32
-rw-r--r--gcc-4.8/libjava/java/text/Format.h42
-rw-r--r--gcc-4.8/libjava/java/text/MessageFormat$Field.h35
-rw-r--r--gcc-4.8/libjava/java/text/MessageFormat$MessageFormatElement.h40
-rw-r--r--gcc-4.8/libjava/java/text/MessageFormat.h87
-rw-r--r--gcc-4.8/libjava/java/text/NumberFormat$Field.h50
-rw-r--r--gcc-4.8/libjava/java/text/NumberFormat.h102
-rw-r--r--gcc-4.8/libjava/java/text/ParseException.h34
-rw-r--r--gcc-4.8/libjava/java/text/ParsePosition.h40
-rw-r--r--gcc-4.8/libjava/java/text/RuleBasedCollator$CollationElement.h38
-rw-r--r--gcc-4.8/libjava/java/text/RuleBasedCollator$CollationSorter.h43
-rw-r--r--gcc-4.8/libjava/java/text/RuleBasedCollator.h70
-rw-r--r--gcc-4.8/libjava/java/text/SimpleDateFormat$CompiledField.h42
-rw-r--r--gcc-4.8/libjava/java/text/SimpleDateFormat.h88
-rw-r--r--gcc-4.8/libjava/java/text/StringCharacterIterator.h53
-rw-r--r--gcc-4.8/libjava/java/text/natCollator.cc74
-rw-r--r--gcc-4.8/libjava/java/text/spi/BreakIteratorProvider.h38
-rw-r--r--gcc-4.8/libjava/java/text/spi/CollatorProvider.h35
-rw-r--r--gcc-4.8/libjava/java/text/spi/DateFormatProvider.h37
-rw-r--r--gcc-4.8/libjava/java/text/spi/DateFormatSymbolsProvider.h35
-rw-r--r--gcc-4.8/libjava/java/text/spi/DecimalFormatSymbolsProvider.h35
-rw-r--r--gcc-4.8/libjava/java/text/spi/NumberFormatProvider.h38
-rw-r--r--gcc-4.8/libjava/java/util/AbstractCollection.h46
-rw-r--r--gcc-4.8/libjava/java/util/AbstractList$1.h35
-rw-r--r--gcc-4.8/libjava/java/util/AbstractList$2.h33
-rw-r--r--gcc-4.8/libjava/java/util/AbstractList$3.h39
-rw-r--r--gcc-4.8/libjava/java/util/AbstractList$RandomAccessSubList.h20
-rw-r--r--gcc-4.8/libjava/java/util/AbstractList$SubList.h41
-rw-r--r--gcc-4.8/libjava/java/util/AbstractList.h41
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap$1.h27
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap$2.h28
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap$3.h27
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap$4.h28
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap$SimpleEntry.h32
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap$SimpleImmutableEntry.h29
-rw-r--r--gcc-4.8/libjava/java/util/AbstractMap.h47
-rw-r--r--gcc-4.8/libjava/java/util/AbstractQueue.h28
-rw-r--r--gcc-4.8/libjava/java/util/AbstractSequentialList.h27
-rw-r--r--gcc-4.8/libjava/java/util/AbstractSet.h23
-rw-r--r--gcc-4.8/libjava/java/util/ArrayDeque$DeqIterator.h31
-rw-r--r--gcc-4.8/libjava/java/util/ArrayDeque$DescendingIterator.h31
-rw-r--r--gcc-4.8/libjava/java/util/ArrayDeque.h81
-rw-r--r--gcc-4.8/libjava/java/util/ArrayList.h58
-rw-r--r--gcc-4.8/libjava/java/util/Arrays$ArrayList.h34
-rw-r--r--gcc-4.8/libjava/java/util/Arrays.h186
-rw-r--r--gcc-4.8/libjava/java/util/BitSet.h57
-rw-r--r--gcc-4.8/libjava/java/util/Calendar.h149
-rw-r--r--gcc-4.8/libjava/java/util/Collection.h35
-rw-r--r--gcc-4.8/libjava/java/util/Collections$1$SynchronizedMapEntry.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections$1.h28
-rw-r--r--gcc-4.8/libjava/java/util/Collections$2.h24
-rw-r--r--gcc-4.8/libjava/java/util/Collections$3.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$4.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$5.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$6.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$7.h31
-rw-r--r--gcc-4.8/libjava/java/util/Collections$8.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$9.h24
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedCollection.h42
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedIterator.h28
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedList.h37
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedListIterator.h29
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h27
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedMap.h46
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedRandomAccessList.h22
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedSet.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedSortedMap.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CheckedSortedSet.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections$CopiesList.h35
-rw-r--r--gcc-4.8/libjava/java/util/Collections$EmptyList.h39
-rw-r--r--gcc-4.8/libjava/java/util/Collections$EmptyMap.h34
-rw-r--r--gcc-4.8/libjava/java/util/Collections$EmptySet.h37
-rw-r--r--gcc-4.8/libjava/java/util/Collections$LIFOQueue.h31
-rw-r--r--gcc-4.8/libjava/java/util/Collections$MapSet.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections$ReverseComparator.h24
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SingletonList.h36
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SingletonMap.h35
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SingletonSet.h34
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedCollection.h43
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedIterator.h28
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedList.h38
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedListIterator.h29
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedMap.h46
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedRandomAccessList.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedSet.h26
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedSortedMap.h31
-rw-r--r--gcc-4.8/libjava/java/util/Collections$SynchronizedSortedSet.h31
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableCollection.h41
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableIterator.h26
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableList.h37
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableListIterator.h29
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h28
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableMap.h42
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableRandomAccessList.h22
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableSet.h25
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedMap.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedSet.h30
-rw-r--r--gcc-4.8/libjava/java/util/Collections.h87
-rw-r--r--gcc-4.8/libjava/java/util/Comparator.h20
-rw-r--r--gcc-4.8/libjava/java/util/ConcurrentModificationException.h23
-rw-r--r--gcc-4.8/libjava/java/util/Currency.h39
-rw-r--r--gcc-4.8/libjava/java/util/Date.h69
-rw-r--r--gcc-4.8/libjava/java/util/Deque.h55
-rw-r--r--gcc-4.8/libjava/java/util/Dictionary.h26
-rw-r--r--gcc-4.8/libjava/java/util/DuplicateFormatFlagsException.h24
-rw-r--r--gcc-4.8/libjava/java/util/EmptyStackException.h22
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$1.h29
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$2.h29
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$3.h27
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$4.h28
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$5.h29
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$6.h30
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap$7.h24
-rw-r--r--gcc-4.8/libjava/java/util/EnumMap.h47
-rw-r--r--gcc-4.8/libjava/java/util/EnumSet$1.h31
-rw-r--r--gcc-4.8/libjava/java/util/EnumSet$2.h29
-rw-r--r--gcc-4.8/libjava/java/util/EnumSet.h43
-rw-r--r--gcc-4.8/libjava/java/util/Enumeration.h20
-rw-r--r--gcc-4.8/libjava/java/util/EventListener.h18
-rw-r--r--gcc-4.8/libjava/java/util/EventListenerProxy.h23
-rw-r--r--gcc-4.8/libjava/java/util/EventObject.h26
-rw-r--r--gcc-4.8/libjava/java/util/FormatFlagsConversionMismatchException.h26
-rw-r--r--gcc-4.8/libjava/java/util/Formattable.h19
-rw-r--r--gcc-4.8/libjava/java/util/FormattableFlags.h29
-rw-r--r--gcc-4.8/libjava/java/util/Formatter$BigDecimalLayoutForm.h28
-rw-r--r--gcc-4.8/libjava/java/util/Formatter.h100
-rw-r--r--gcc-4.8/libjava/java/util/FormatterClosedException.h22
-rw-r--r--gcc-4.8/libjava/java/util/GregorianCalendar.h71
-rw-r--r--gcc-4.8/libjava/java/util/HashMap$1.h28
-rw-r--r--gcc-4.8/libjava/java/util/HashMap$2.h26
-rw-r--r--gcc-4.8/libjava/java/util/HashMap$3.h28
-rw-r--r--gcc-4.8/libjava/java/util/HashMap$HashEntry.h23
-rw-r--r--gcc-4.8/libjava/java/util/HashMap$HashIterator.h33
-rw-r--r--gcc-4.8/libjava/java/util/HashMap.h61
-rw-r--r--gcc-4.8/libjava/java/util/HashSet.h38
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$1.h28
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$2.h26
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$3.h28
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$EntryEnumerator.h29
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$EntryIterator.h32
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$HashEntry.h24
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$KeyEnumerator.h27
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$KeyIterator.h28
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$ValueEnumerator.h27
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable$ValueIterator.h28
-rw-r--r--gcc-4.8/libjava/java/util/Hashtable.h67
-rw-r--r--gcc-4.8/libjava/java/util/IdentityHashMap$1.h29
-rw-r--r--gcc-4.8/libjava/java/util/IdentityHashMap$2.h29
-rw-r--r--gcc-4.8/libjava/java/util/IdentityHashMap$3.h27
-rw-r--r--gcc-4.8/libjava/java/util/IdentityHashMap$IdentityEntry.h31
-rw-r--r--gcc-4.8/libjava/java/util/IdentityHashMap$IdentityIterator.h30
-rw-r--r--gcc-4.8/libjava/java/util/IdentityHashMap.h61
-rw-r--r--gcc-4.8/libjava/java/util/IllegalFormatCodePointException.h25
-rw-r--r--gcc-4.8/libjava/java/util/IllegalFormatConversionException.h27
-rw-r--r--gcc-4.8/libjava/java/util/IllegalFormatException.h23
-rw-r--r--gcc-4.8/libjava/java/util/IllegalFormatFlagsException.h24
-rw-r--r--gcc-4.8/libjava/java/util/IllegalFormatPrecisionException.h24
-rw-r--r--gcc-4.8/libjava/java/util/IllegalFormatWidthException.h24
-rw-r--r--gcc-4.8/libjava/java/util/InputMismatchException.h20
-rw-r--r--gcc-4.8/libjava/java/util/InvalidPropertiesFormatException.h25
-rw-r--r--gcc-4.8/libjava/java/util/Iterator.h21
-rw-r--r--gcc-4.8/libjava/java/util/LinkedHashMap$1.h31
-rw-r--r--gcc-4.8/libjava/java/util/LinkedHashMap$LinkedHashEntry.h25
-rw-r--r--gcc-4.8/libjava/java/util/LinkedHashMap.h38
-rw-r--r--gcc-4.8/libjava/java/util/LinkedHashSet.h27
-rw-r--r--gcc-4.8/libjava/java/util/LinkedList$1.h33
-rw-r--r--gcc-4.8/libjava/java/util/LinkedList$Entry.h23
-rw-r--r--gcc-4.8/libjava/java/util/LinkedList$LinkedListItr.h40
-rw-r--r--gcc-4.8/libjava/java/util/LinkedList.h81
-rw-r--r--gcc-4.8/libjava/java/util/List.h45
-rw-r--r--gcc-4.8/libjava/java/util/ListIterator.h27
-rw-r--r--gcc-4.8/libjava/java/util/ListResourceBundle.h26
-rw-r--r--gcc-4.8/libjava/java/util/Locale.h90
-rw-r--r--gcc-4.8/libjava/java/util/Map$Entry.h23
-rw-r--r--gcc-4.8/libjava/java/util/Map.h32
-rw-r--r--gcc-4.8/libjava/java/util/MissingFormatArgumentException.h24
-rw-r--r--gcc-4.8/libjava/java/util/MissingFormatWidthException.h24
-rw-r--r--gcc-4.8/libjava/java/util/MissingResourceException.h26
-rw-r--r--gcc-4.8/libjava/java/util/NavigableMap.h54
-rw-r--r--gcc-4.8/libjava/java/util/NavigableSet.h50
-rw-r--r--gcc-4.8/libjava/java/util/NoSuchElementException.h23
-rw-r--r--gcc-4.8/libjava/java/util/Observable.h35
-rw-r--r--gcc-4.8/libjava/java/util/Observer.h19
-rw-r--r--gcc-4.8/libjava/java/util/PriorityQueue$1.h28
-rw-r--r--gcc-4.8/libjava/java/util/PriorityQueue.h48
-rw-r--r--gcc-4.8/libjava/java/util/Properties.h54
-rw-r--r--gcc-4.8/libjava/java/util/PropertyPermission.h52
-rw-r--r--gcc-4.8/libjava/java/util/PropertyPermissionCollection.h38
-rw-r--r--gcc-4.8/libjava/java/util/PropertyResourceBundle.h25
-rw-r--r--gcc-4.8/libjava/java/util/Queue.h38
-rw-r--r--gcc-4.8/libjava/java/util/Random.h40
-rw-r--r--gcc-4.8/libjava/java/util/RandomAccess.h18
-rw-r--r--gcc-4.8/libjava/java/util/ResourceBundle$1.h21
-rw-r--r--gcc-4.8/libjava/java/util/ResourceBundle$BundleKey.h32
-rw-r--r--gcc-4.8/libjava/java/util/ResourceBundle.h51
-rw-r--r--gcc-4.8/libjava/java/util/Scanner.h178
-rw-r--r--gcc-4.8/libjava/java/util/ServiceConfigurationError.h23
-rw-r--r--gcc-4.8/libjava/java/util/ServiceLoader$1.h28
-rw-r--r--gcc-4.8/libjava/java/util/ServiceLoader.h37
-rw-r--r--gcc-4.8/libjava/java/util/Set.h35
-rw-r--r--gcc-4.8/libjava/java/util/SimpleTimeZone.h80
-rw-r--r--gcc-4.8/libjava/java/util/SortedMap.h36
-rw-r--r--gcc-4.8/libjava/java/util/SortedSet.h39
-rw-r--r--gcc-4.8/libjava/java/util/Stack.h27
-rw-r--r--gcc-4.8/libjava/java/util/StringTokenizer.h34
-rw-r--r--gcc-4.8/libjava/java/util/TimeZone$1.h22
-rw-r--r--gcc-4.8/libjava/java/util/TimeZone.h70
-rw-r--r--gcc-4.8/libjava/java/util/Timer$Scheduler.h23
-rw-r--r--gcc-4.8/libjava/java/util/Timer$TaskQueue.h39
-rw-r--r--gcc-4.8/libjava/java/util/Timer.h49
-rw-r--r--gcc-4.8/libjava/java/util/TimerTask.h29
-rw-r--r--gcc-4.8/libjava/java/util/TooManyListenersException.h23
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$1.h25
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$2.h26
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$3.h27
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$4.h29
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$5.h29
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$6.h25
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$7.h26
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$DescendingMap.h65
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$DescendingSet.h57
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$EntrySet.h28
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$KeySet.h29
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$NavigableEntrySet.h55
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$NavigableKeySet.h40
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$Node.h24
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$SubMap$EntrySet.h28
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$SubMap$KeySet.h29
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableEntrySet.h55
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableKeySet.h40
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$SubMap.h66
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap$TreeIterator.h33
-rw-r--r--gcc-4.8/libjava/java/util/TreeMap.h109
-rw-r--r--gcc-4.8/libjava/java/util/TreeSet.h59
-rw-r--r--gcc-4.8/libjava/java/util/UUID.h45
-rw-r--r--gcc-4.8/libjava/java/util/UnknownFormatConversionException.h24
-rw-r--r--gcc-4.8/libjava/java/util/UnknownFormatFlagsException.h24
-rw-r--r--gcc-4.8/libjava/java/util/VMTimeZone.h25
-rw-r--r--gcc-4.8/libjava/java/util/VMTimeZone.java300
-rw-r--r--gcc-4.8/libjava/java/util/Vector$1.h27
-rw-r--r--gcc-4.8/libjava/java/util/Vector.h78
-rw-r--r--gcc-4.8/libjava/java/util/WeakHashMap$1.h22
-rw-r--r--gcc-4.8/libjava/java/util/WeakHashMap$2.h32
-rw-r--r--gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h30
-rw-r--r--gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket.h25
-rw-r--r--gcc-4.8/libjava/java/util/WeakHashMap$WeakEntrySet.h26
-rw-r--r--gcc-4.8/libjava/java/util/WeakHashMap.h66
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/AbstractExecutorService.h42
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h33
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue.h65
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/BlockingDeque.h70
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/BlockingQueue.h45
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/BrokenBarrierException.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Callable.h19
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CancellationException.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CompletionService.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h28
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h39
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h28
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Segment.h43
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Values.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap.h65
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue.h43
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentMap.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentNavigableMap.h66
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h21
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h28
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h54
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h35
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h118
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap.h136
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListSet.h75
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h35
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h30
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h36
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h42
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList.h66
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArraySet.h41
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CountDownLatch$Sync.h26
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CountDownLatch.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CyclicBarrier$Generation.h22
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/CyclicBarrier.h37
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/DelayQueue$Itr.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/DelayQueue.h57
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Delayed.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Exchanger$Node.h21
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Exchanger$Slot.h36
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Exchanger.h42
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ExecutionException.h26
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executor.h19
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h26
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ExecutorService.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$1.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$2.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$3.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$4.h26
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$5.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$6.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$DefaultThreadFactory.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedExecutorService.h36
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h22
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallable.h41
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h43
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h38
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors$RunnableAdapter.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Executors.h52
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Future.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/FutureTask$Sync.h46
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/FutureTask.h36
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Node.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque.h96
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h30
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Node.h22
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue.h71
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue.h57
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/RejectedExecutionException.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/RejectedExecutionHandler.h19
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/RunnableFuture.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/RunnableScheduledFuture.h27
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ScheduledExecutorService.h35
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ScheduledFuture.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h29
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h58
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h40
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h56
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Semaphore$FairSync.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Semaphore$NonfairSync.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Semaphore$Sync.h29
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/Semaphore.h46
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h22
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h22
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack.h32
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$Transferer.h21
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/SynchronousQueue.h58
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadFactory.h19
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor.h97
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$1.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$2.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$3.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$4.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$5.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$6.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit$7.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeUnit.h61
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/TimeoutException.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicBoolean.h43
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicInteger.h53
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerArray.h54
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h44
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLong.h57
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongArray.h54
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h44
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h44
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReference.h43
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceArray.h48
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h45
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h28
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/atomic/natAtomicLong.cc12
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h52
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h115
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h52
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h34
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h115
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/Condition.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/Lock.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/LockSupport.h42
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReadWriteLock.h20
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h25
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$Sync.h33
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock.h49
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h24
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h31
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h23
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h22
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h55
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h33
-rw-r--r--gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h57
-rw-r--r--gcc-4.8/libjava/java/util/jar/Attributes$Name.h43
-rw-r--r--gcc-4.8/libjava/java/util/jar/Attributes.h45
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarEntry.h42
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarException.h23
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarFile$EntryInputStream.h49
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarFile$JarEnumeration.h27
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarFile.h103
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarInputStream.h35
-rw-r--r--gcc-4.8/libjava/java/util/jar/JarOutputStream.h24
-rw-r--r--gcc-4.8/libjava/java/util/jar/Manifest.h34
-rw-r--r--gcc-4.8/libjava/java/util/logging/ConsoleHandler.h21
-rw-r--r--gcc-4.8/libjava/java/util/logging/ErrorManager.h29
-rw-r--r--gcc-4.8/libjava/java/util/logging/FileHandler$ostr.h28
-rw-r--r--gcc-4.8/libjava/java/util/logging/FileHandler.h49
-rw-r--r--gcc-4.8/libjava/java/util/logging/Filter.h19
-rw-r--r--gcc-4.8/libjava/java/util/logging/Formatter.h24
-rw-r--r--gcc-4.8/libjava/java/util/logging/Handler.h44
-rw-r--r--gcc-4.8/libjava/java/util/logging/Level.h53
-rw-r--r--gcc-4.8/libjava/java/util/logging/LogManager$1.h24
-rw-r--r--gcc-4.8/libjava/java/util/logging/LogManager.h77
-rw-r--r--gcc-4.8/libjava/java/util/logging/LogManager.java991
-rw-r--r--gcc-4.8/libjava/java/util/logging/LogRecord.h70
-rw-r--r--gcc-4.8/libjava/java/util/logging/Logger$1.h21
-rw-r--r--gcc-4.8/libjava/java/util/logging/Logger.h90
-rw-r--r--gcc-4.8/libjava/java/util/logging/Logger.java1206
-rw-r--r--gcc-4.8/libjava/java/util/logging/LoggingMXBean.h22
-rw-r--r--gcc-4.8/libjava/java/util/logging/LoggingPermission.h22
-rw-r--r--gcc-4.8/libjava/java/util/logging/MemoryHandler.h35
-rw-r--r--gcc-4.8/libjava/java/util/logging/SimpleFormatter.h35
-rw-r--r--gcc-4.8/libjava/java/util/logging/SocketHandler.h25
-rw-r--r--gcc-4.8/libjava/java/util/logging/StreamHandler.h43
-rw-r--r--gcc-4.8/libjava/java/util/logging/XMLFormatter.h50
-rw-r--r--gcc-4.8/libjava/java/util/logging/natLogger.cc49
-rw-r--r--gcc-4.8/libjava/java/util/natVMTimeZone.cc145
-rw-r--r--gcc-4.8/libjava/java/util/prefs/AbstractPreferences$1.h27
-rw-r--r--gcc-4.8/libjava/java/util/prefs/AbstractPreferences$2.h28
-rw-r--r--gcc-4.8/libjava/java/util/prefs/AbstractPreferences.h106
-rw-r--r--gcc-4.8/libjava/java/util/prefs/BackingStoreException.h26
-rw-r--r--gcc-4.8/libjava/java/util/prefs/InvalidPreferencesFormatException.h27
-rw-r--r--gcc-4.8/libjava/java/util/prefs/NodeChangeEvent.h27
-rw-r--r--gcc-4.8/libjava/java/util/prefs/NodeChangeListener.h20
-rw-r--r--gcc-4.8/libjava/java/util/prefs/PreferenceChangeEvent.h29
-rw-r--r--gcc-4.8/libjava/java/util/prefs/PreferenceChangeListener.h19
-rw-r--r--gcc-4.8/libjava/java/util/prefs/Preferences$1.h22
-rw-r--r--gcc-4.8/libjava/java/util/prefs/Preferences.h85
-rw-r--r--gcc-4.8/libjava/java/util/prefs/PreferencesFactory.h20
-rw-r--r--gcc-4.8/libjava/java/util/regex/MatchResult.h25
-rw-r--r--gcc-4.8/libjava/java/util/regex/Matcher.h82
-rw-r--r--gcc-4.8/libjava/java/util/regex/Pattern.h64
-rw-r--r--gcc-4.8/libjava/java/util/regex/PatternSyntaxException.h29
-rw-r--r--gcc-4.8/libjava/java/util/spi/CurrencyNameProvider.h21
-rw-r--r--gcc-4.8/libjava/java/util/spi/LocaleNameProvider.h23
-rw-r--r--gcc-4.8/libjava/java/util/spi/LocaleServiceProvider.h23
-rw-r--r--gcc-4.8/libjava/java/util/spi/TimeZoneNameProvider.h21
-rw-r--r--gcc-4.8/libjava/java/util/zip/Adler32.h30
-rw-r--r--gcc-4.8/libjava/java/util/zip/CRC32.h33
-rw-r--r--gcc-4.8/libjava/java/util/zip/CheckedInputStream.h28
-rw-r--r--gcc-4.8/libjava/java/util/zip/CheckedOutputStream.h27
-rw-r--r--gcc-4.8/libjava/java/util/zip/Checksum.h24
-rw-r--r--gcc-4.8/libjava/java/util/zip/DataFormatException.h23
-rw-r--r--gcc-4.8/libjava/java/util/zip/Deflater.h76
-rw-r--r--gcc-4.8/libjava/java/util/zip/Deflater.java354
-rw-r--r--gcc-4.8/libjava/java/util/zip/DeflaterOutputStream.h34
-rw-r--r--gcc-4.8/libjava/java/util/zip/GZIPInputStream.h41
-rw-r--r--gcc-4.8/libjava/java/util/zip/GZIPOutputStream.h28
-rw-r--r--gcc-4.8/libjava/java/util/zip/Inflater.h58
-rw-r--r--gcc-4.8/libjava/java/util/zip/Inflater.java269
-rw-r--r--gcc-4.8/libjava/java/util/zip/InflaterInputStream.h41
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipConstants.h58
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipEntry.h72
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipException.h23
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipFile$1.h26
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipFile$PartialInputStream.h66
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h25
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipFile.h49
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipInputStream.h50
-rw-r--r--gcc-4.8/libjava/java/util/zip/ZipOutputStream.h47
-rw-r--r--gcc-4.8/libjava/java/util/zip/natDeflater.cc216
-rw-r--r--gcc-4.8/libjava/java/util/zip/natInflater.cc214
1821 files changed, 125932 insertions, 0 deletions
diff --git a/gcc-4.8/libjava/java/applet/Applet$AccessibleApplet.h b/gcc-4.8/libjava/java/applet/Applet$AccessibleApplet.h
new file mode 100644
index 000000000..6819ecb1d
--- /dev/null
+++ b/gcc-4.8/libjava/java/applet/Applet$AccessibleApplet.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_applet_Applet$AccessibleApplet__
+#define __java_applet_Applet$AccessibleApplet__
+
+#pragma interface
+
+#include <java/awt/Panel$AccessibleAWTPanel.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class Applet;
+ class Applet$AccessibleApplet;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::applet::Applet$AccessibleApplet : public ::java::awt::Panel$AccessibleAWTPanel
+{
+
+public: // actually protected
+ Applet$AccessibleApplet(::java::applet::Applet *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = 8127374778187708896LL;
+public: // actually package-private
+ ::java::applet::Applet * __attribute__((aligned(__alignof__( ::java::awt::Panel$AccessibleAWTPanel)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_applet_Applet$AccessibleApplet__
diff --git a/gcc-4.8/libjava/java/applet/Applet$URLAudioClip.h b/gcc-4.8/libjava/java/applet/Applet$URLAudioClip.h
new file mode 100644
index 000000000..67449e40a
--- /dev/null
+++ b/gcc-4.8/libjava/java/applet/Applet$URLAudioClip.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_applet_Applet$URLAudioClip__
+#define __java_applet_Applet$URLAudioClip__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class Applet$URLAudioClip;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class Clip;
+ }
+ }
+ }
+}
+
+class java::applet::Applet$URLAudioClip : public ::java::lang::Object
+{
+
+public:
+ Applet$URLAudioClip(::java::net::URL *);
+private:
+ ::javax::sound::sampled::Clip * getClip();
+public:
+ virtual void loop();
+ virtual void play();
+ virtual void stop();
+private:
+ ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) url;
+ ::javax::sound::sampled::Clip * clip;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_applet_Applet$URLAudioClip__
diff --git a/gcc-4.8/libjava/java/applet/Applet.h b/gcc-4.8/libjava/java/applet/Applet.h
new file mode 100644
index 000000000..8d8417374
--- /dev/null
+++ b/gcc-4.8/libjava/java/applet/Applet.h
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_applet_Applet__
+#define __java_applet_Applet__
+
+#pragma interface
+
+#include <java/awt/Panel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class Applet;
+ class AppletContext;
+ class AppletStub;
+ class AudioClip;
+ }
+ namespace awt
+ {
+ class Dimension;
+ class Image;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::applet::Applet : public ::java::awt::Panel
+{
+
+public:
+ Applet();
+ virtual void setStub(::java::applet::AppletStub *);
+ virtual jboolean isActive();
+ virtual ::java::net::URL * getDocumentBase();
+ virtual ::java::net::URL * getCodeBase();
+ virtual ::java::lang::String * getParameter(::java::lang::String *);
+ virtual ::java::applet::AppletContext * getAppletContext();
+ virtual void resize(jint, jint);
+ virtual void resize(::java::awt::Dimension *);
+ virtual void showStatus(::java::lang::String *);
+ virtual ::java::awt::Image * getImage(::java::net::URL *);
+ virtual ::java::awt::Image * getImage(::java::net::URL *, ::java::lang::String *);
+ static ::java::applet::AudioClip * newAudioClip(::java::net::URL *);
+ virtual ::java::applet::AudioClip * getAudioClip(::java::net::URL *);
+ virtual ::java::applet::AudioClip * getAudioClip(::java::net::URL *, ::java::lang::String *);
+ virtual ::java::lang::String * getAppletInfo();
+ virtual ::java::util::Locale * getLocale();
+ virtual JArray< JArray< ::java::lang::String * > * > * getParameterInfo();
+ virtual void play(::java::net::URL *);
+ virtual void play(::java::net::URL *, ::java::lang::String *);
+ virtual void init();
+ virtual void start();
+ virtual void stop();
+ virtual void destroy();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -5836846270535785031LL;
+ ::java::applet::AppletStub * __attribute__((aligned(__alignof__( ::java::awt::Panel)))) stub;
+ jint width;
+ jint height;
+ ::javax::accessibility::AccessibleContext * accessibleContext;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_applet_Applet__
diff --git a/gcc-4.8/libjava/java/applet/AppletContext.h b/gcc-4.8/libjava/java/applet/AppletContext.h
new file mode 100644
index 000000000..a69369fe7
--- /dev/null
+++ b/gcc-4.8/libjava/java/applet/AppletContext.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_applet_AppletContext__
+#define __java_applet_AppletContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class Applet;
+ class AppletContext;
+ class AudioClip;
+ }
+ namespace awt
+ {
+ class Image;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::applet::AppletContext : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::applet::AudioClip * getAudioClip(::java::net::URL *) = 0;
+ virtual ::java::awt::Image * getImage(::java::net::URL *) = 0;
+ virtual ::java::applet::Applet * getApplet(::java::lang::String *) = 0;
+ virtual ::java::util::Enumeration * getApplets() = 0;
+ virtual void showDocument(::java::net::URL *) = 0;
+ virtual void showDocument(::java::net::URL *, ::java::lang::String *) = 0;
+ virtual void showStatus(::java::lang::String *) = 0;
+ virtual void setStream(::java::lang::String *, ::java::io::InputStream *) = 0;
+ virtual ::java::io::InputStream * getStream(::java::lang::String *) = 0;
+ virtual ::java::util::Iterator * getStreamKeys() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_applet_AppletContext__
diff --git a/gcc-4.8/libjava/java/applet/AppletStub.h b/gcc-4.8/libjava/java/applet/AppletStub.h
new file mode 100644
index 000000000..085746547
--- /dev/null
+++ b/gcc-4.8/libjava/java/applet/AppletStub.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_applet_AppletStub__
+#define __java_applet_AppletStub__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class AppletContext;
+ class AppletStub;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::applet::AppletStub : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean isActive() = 0;
+ virtual ::java::net::URL * getDocumentBase() = 0;
+ virtual ::java::net::URL * getCodeBase() = 0;
+ virtual ::java::lang::String * getParameter(::java::lang::String *) = 0;
+ virtual ::java::applet::AppletContext * getAppletContext() = 0;
+ virtual void appletResize(jint, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_applet_AppletStub__
diff --git a/gcc-4.8/libjava/java/applet/AudioClip.h b/gcc-4.8/libjava/java/applet/AudioClip.h
new file mode 100644
index 000000000..2ee517d4d
--- /dev/null
+++ b/gcc-4.8/libjava/java/applet/AudioClip.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_applet_AudioClip__
+#define __java_applet_AudioClip__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class AudioClip;
+ }
+ }
+}
+
+class java::applet::AudioClip : public ::java::lang::Object
+{
+
+public:
+ virtual void play() = 0;
+ virtual void stop() = 0;
+ virtual void loop() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_applet_AudioClip__
diff --git a/gcc-4.8/libjava/java/awt/AWTError.h b/gcc-4.8/libjava/java/awt/AWTError.h
new file mode 100644
index 000000000..bcfbd634c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTError.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTError__
+#define __java_awt_AWTError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTError;
+ }
+ }
+}
+
+class java::awt::AWTError : public ::java::lang::Error
+{
+
+public:
+ AWTError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -1819846354050686206LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTError__
diff --git a/gcc-4.8/libjava/java/awt/AWTEvent.h b/gcc-4.8/libjava/java/awt/AWTEvent.h
new file mode 100644
index 000000000..94d090a9f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTEvent.h
@@ -0,0 +1,75 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTEvent__
+#define __java_awt_AWTEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Event;
+ }
+ }
+}
+
+class java::awt::AWTEvent : public ::java::util::EventObject
+{
+
+public:
+ AWTEvent(::java::awt::Event *);
+ AWTEvent(::java::lang::Object *, jint);
+ virtual void setSource(::java::lang::Object *);
+ virtual jint getID();
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * paramString();
+public: // actually protected
+ virtual void consume();
+ virtual jboolean isConsumed();
+public: // actually package-private
+ static jlong eventIdToMask(jint);
+private:
+ static const jlong serialVersionUID = -1825314779160409405LL;
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::util::EventObject)))) id;
+ jboolean consumed;
+public: // actually package-private
+ ::java::awt::AWTEvent * queueNext;
+ JArray< jbyte > * bdata;
+ jboolean isFocusManagerEvent;
+public:
+ static const jlong COMPONENT_EVENT_MASK = 1LL;
+ static const jlong CONTAINER_EVENT_MASK = 2LL;
+ static const jlong FOCUS_EVENT_MASK = 4LL;
+ static const jlong KEY_EVENT_MASK = 8LL;
+ static const jlong MOUSE_EVENT_MASK = 16LL;
+ static const jlong MOUSE_MOTION_EVENT_MASK = 32LL;
+ static const jlong WINDOW_EVENT_MASK = 64LL;
+ static const jlong ACTION_EVENT_MASK = 128LL;
+ static const jlong ADJUSTMENT_EVENT_MASK = 256LL;
+ static const jlong ITEM_EVENT_MASK = 512LL;
+ static const jlong TEXT_EVENT_MASK = 1024LL;
+ static const jlong INPUT_METHOD_EVENT_MASK = 2048LL;
+public: // actually package-private
+ static const jlong INPUT_ENABLED_EVENT_MASK = 4096LL;
+public:
+ static const jlong PAINT_EVENT_MASK = 8192LL;
+ static const jlong INVOCATION_EVENT_MASK = 16384LL;
+ static const jlong HIERARCHY_EVENT_MASK = 32768LL;
+ static const jlong HIERARCHY_BOUNDS_EVENT_MASK = 65536LL;
+ static const jlong MOUSE_WHEEL_EVENT_MASK = 131072LL;
+ static const jlong WINDOW_STATE_EVENT_MASK = 262144LL;
+ static const jlong WINDOW_FOCUS_EVENT_MASK = 524288LL;
+ static const jint RESERVED_ID_MAX = 1999;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTEvent__
diff --git a/gcc-4.8/libjava/java/awt/AWTEventMulticaster.h b/gcc-4.8/libjava/java/awt/AWTEventMulticaster.h
new file mode 100644
index 000000000..cb5d0243a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTEventMulticaster.h
@@ -0,0 +1,151 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTEventMulticaster__
+#define __java_awt_AWTEventMulticaster__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEventMulticaster;
+ namespace event
+ {
+ class ActionEvent;
+ class ActionListener;
+ class AdjustmentEvent;
+ class AdjustmentListener;
+ class ComponentEvent;
+ class ComponentListener;
+ class ContainerEvent;
+ class ContainerListener;
+ class FocusEvent;
+ class FocusListener;
+ class HierarchyBoundsListener;
+ class HierarchyEvent;
+ class HierarchyListener;
+ class InputMethodEvent;
+ class InputMethodListener;
+ class ItemEvent;
+ class ItemListener;
+ class KeyEvent;
+ class KeyListener;
+ class MouseEvent;
+ class MouseListener;
+ class MouseMotionListener;
+ class MouseWheelEvent;
+ class MouseWheelListener;
+ class TextEvent;
+ class TextListener;
+ class WindowEvent;
+ class WindowFocusListener;
+ class WindowListener;
+ class WindowStateListener;
+ }
+ }
+ }
+}
+
+class java::awt::AWTEventMulticaster : public ::java::lang::Object
+{
+
+public: // actually protected
+ AWTEventMulticaster(::java::util::EventListener *, ::java::util::EventListener *);
+ virtual ::java::util::EventListener * remove(::java::util::EventListener *);
+public:
+ virtual void componentResized(::java::awt::event::ComponentEvent *);
+ virtual void componentMoved(::java::awt::event::ComponentEvent *);
+ virtual void componentShown(::java::awt::event::ComponentEvent *);
+ virtual void componentHidden(::java::awt::event::ComponentEvent *);
+ virtual void componentAdded(::java::awt::event::ContainerEvent *);
+ virtual void componentRemoved(::java::awt::event::ContainerEvent *);
+ virtual void focusGained(::java::awt::event::FocusEvent *);
+ virtual void focusLost(::java::awt::event::FocusEvent *);
+ virtual void keyTyped(::java::awt::event::KeyEvent *);
+ virtual void keyPressed(::java::awt::event::KeyEvent *);
+ virtual void keyReleased(::java::awt::event::KeyEvent *);
+ virtual void mouseClicked(::java::awt::event::MouseEvent *);
+ virtual void mousePressed(::java::awt::event::MouseEvent *);
+ virtual void mouseReleased(::java::awt::event::MouseEvent *);
+ virtual void mouseEntered(::java::awt::event::MouseEvent *);
+ virtual void mouseExited(::java::awt::event::MouseEvent *);
+ virtual void mouseDragged(::java::awt::event::MouseEvent *);
+ virtual void mouseMoved(::java::awt::event::MouseEvent *);
+ virtual void windowOpened(::java::awt::event::WindowEvent *);
+ virtual void windowClosing(::java::awt::event::WindowEvent *);
+ virtual void windowClosed(::java::awt::event::WindowEvent *);
+ virtual void windowIconified(::java::awt::event::WindowEvent *);
+ virtual void windowDeiconified(::java::awt::event::WindowEvent *);
+ virtual void windowActivated(::java::awt::event::WindowEvent *);
+ virtual void windowDeactivated(::java::awt::event::WindowEvent *);
+ virtual void windowStateChanged(::java::awt::event::WindowEvent *);
+ virtual void windowGainedFocus(::java::awt::event::WindowEvent *);
+ virtual void windowLostFocus(::java::awt::event::WindowEvent *);
+ virtual void actionPerformed(::java::awt::event::ActionEvent *);
+ virtual void itemStateChanged(::java::awt::event::ItemEvent *);
+ virtual void adjustmentValueChanged(::java::awt::event::AdjustmentEvent *);
+ virtual void textValueChanged(::java::awt::event::TextEvent *);
+ virtual void inputMethodTextChanged(::java::awt::event::InputMethodEvent *);
+ virtual void caretPositionChanged(::java::awt::event::InputMethodEvent *);
+ virtual void hierarchyChanged(::java::awt::event::HierarchyEvent *);
+ virtual void ancestorMoved(::java::awt::event::HierarchyEvent *);
+ virtual void ancestorResized(::java::awt::event::HierarchyEvent *);
+ virtual void mouseWheelMoved(::java::awt::event::MouseWheelEvent *);
+ static ::java::awt::event::ComponentListener * add(::java::awt::event::ComponentListener *, ::java::awt::event::ComponentListener *);
+ static ::java::awt::event::ContainerListener * add(::java::awt::event::ContainerListener *, ::java::awt::event::ContainerListener *);
+ static ::java::awt::event::FocusListener * add(::java::awt::event::FocusListener *, ::java::awt::event::FocusListener *);
+ static ::java::awt::event::KeyListener * add(::java::awt::event::KeyListener *, ::java::awt::event::KeyListener *);
+ static ::java::awt::event::MouseListener * add(::java::awt::event::MouseListener *, ::java::awt::event::MouseListener *);
+ static ::java::awt::event::MouseMotionListener * add(::java::awt::event::MouseMotionListener *, ::java::awt::event::MouseMotionListener *);
+ static ::java::awt::event::WindowListener * add(::java::awt::event::WindowListener *, ::java::awt::event::WindowListener *);
+ static ::java::awt::event::WindowStateListener * add(::java::awt::event::WindowStateListener *, ::java::awt::event::WindowStateListener *);
+ static ::java::awt::event::WindowFocusListener * add(::java::awt::event::WindowFocusListener *, ::java::awt::event::WindowFocusListener *);
+ static ::java::awt::event::ActionListener * add(::java::awt::event::ActionListener *, ::java::awt::event::ActionListener *);
+ static ::java::awt::event::ItemListener * add(::java::awt::event::ItemListener *, ::java::awt::event::ItemListener *);
+ static ::java::awt::event::AdjustmentListener * add(::java::awt::event::AdjustmentListener *, ::java::awt::event::AdjustmentListener *);
+ static ::java::awt::event::TextListener * add(::java::awt::event::TextListener *, ::java::awt::event::TextListener *);
+ static ::java::awt::event::InputMethodListener * add(::java::awt::event::InputMethodListener *, ::java::awt::event::InputMethodListener *);
+ static ::java::awt::event::HierarchyListener * add(::java::awt::event::HierarchyListener *, ::java::awt::event::HierarchyListener *);
+ static ::java::awt::event::HierarchyBoundsListener * add(::java::awt::event::HierarchyBoundsListener *, ::java::awt::event::HierarchyBoundsListener *);
+ static ::java::awt::event::MouseWheelListener * add(::java::awt::event::MouseWheelListener *, ::java::awt::event::MouseWheelListener *);
+ static ::java::awt::event::ComponentListener * remove(::java::awt::event::ComponentListener *, ::java::awt::event::ComponentListener *);
+ static ::java::awt::event::ContainerListener * remove(::java::awt::event::ContainerListener *, ::java::awt::event::ContainerListener *);
+ static ::java::awt::event::FocusListener * remove(::java::awt::event::FocusListener *, ::java::awt::event::FocusListener *);
+ static ::java::awt::event::KeyListener * remove(::java::awt::event::KeyListener *, ::java::awt::event::KeyListener *);
+ static ::java::awt::event::MouseListener * remove(::java::awt::event::MouseListener *, ::java::awt::event::MouseListener *);
+ static ::java::awt::event::MouseMotionListener * remove(::java::awt::event::MouseMotionListener *, ::java::awt::event::MouseMotionListener *);
+ static ::java::awt::event::WindowListener * remove(::java::awt::event::WindowListener *, ::java::awt::event::WindowListener *);
+ static ::java::awt::event::WindowStateListener * remove(::java::awt::event::WindowStateListener *, ::java::awt::event::WindowStateListener *);
+ static ::java::awt::event::WindowFocusListener * remove(::java::awt::event::WindowFocusListener *, ::java::awt::event::WindowFocusListener *);
+ static ::java::awt::event::ActionListener * remove(::java::awt::event::ActionListener *, ::java::awt::event::ActionListener *);
+ static ::java::awt::event::ItemListener * remove(::java::awt::event::ItemListener *, ::java::awt::event::ItemListener *);
+ static ::java::awt::event::AdjustmentListener * remove(::java::awt::event::AdjustmentListener *, ::java::awt::event::AdjustmentListener *);
+ static ::java::awt::event::TextListener * remove(::java::awt::event::TextListener *, ::java::awt::event::TextListener *);
+ static ::java::awt::event::InputMethodListener * remove(::java::awt::event::InputMethodListener *, ::java::awt::event::InputMethodListener *);
+ static ::java::awt::event::HierarchyListener * remove(::java::awt::event::HierarchyListener *, ::java::awt::event::HierarchyListener *);
+ static ::java::awt::event::HierarchyBoundsListener * remove(::java::awt::event::HierarchyBoundsListener *, ::java::awt::event::HierarchyBoundsListener *);
+ static ::java::awt::event::MouseWheelListener * remove(::java::awt::event::MouseWheelListener *, ::java::awt::event::MouseWheelListener *);
+public: // actually protected
+ static ::java::util::EventListener * addInternal(::java::util::EventListener *, ::java::util::EventListener *);
+ static ::java::util::EventListener * removeInternal(::java::util::EventListener *, ::java::util::EventListener *);
+ virtual void saveInternal(::java::io::ObjectOutputStream *, ::java::lang::String *);
+ static void save(::java::io::ObjectOutputStream *, ::java::lang::String *, ::java::util::EventListener *);
+public:
+ static JArray< ::java::util::EventListener * > * getListeners(::java::util::EventListener *, ::java::lang::Class *);
+private:
+ void getListeners(::java::util::ArrayList *, ::java::lang::Class *);
+public: // actually protected
+ ::java::util::EventListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) a;
+ ::java::util::EventListener * b;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTEventMulticaster__
diff --git a/gcc-4.8/libjava/java/awt/AWTException.h b/gcc-4.8/libjava/java/awt/AWTException.h
new file mode 100644
index 000000000..fdda1bde2
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTException__
+#define __java_awt_AWTException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTException;
+ }
+ }
+}
+
+class java::awt::AWTException : public ::java::lang::Exception
+{
+
+public:
+ AWTException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -1900414231151323879LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTException__
diff --git a/gcc-4.8/libjava/java/awt/AWTKeyStroke$1.h b/gcc-4.8/libjava/java/awt/AWTKeyStroke$1.h
new file mode 100644
index 000000000..15805dad8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTKeyStroke$1.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTKeyStroke$1__
+#define __java_awt_AWTKeyStroke$1__
+
+#pragma interface
+
+#include <java/util/LinkedHashMap.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTKeyStroke$1;
+ }
+ }
+}
+
+class java::awt::AWTKeyStroke$1 : public ::java::util::LinkedHashMap
+{
+
+public: // actually package-private
+ AWTKeyStroke$1(jint, jfloat, jboolean);
+public: // actually protected
+ virtual jboolean removeEldestEntry(::java::util::Map$Entry *);
+private:
+ static const jint MAX_CACHE_SIZE = 2048;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTKeyStroke$1__
diff --git a/gcc-4.8/libjava/java/awt/AWTKeyStroke$2.h b/gcc-4.8/libjava/java/awt/AWTKeyStroke$2.h
new file mode 100644
index 000000000..0117323aa
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTKeyStroke$2.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTKeyStroke$2__
+#define __java_awt_AWTKeyStroke$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTKeyStroke$2;
+ }
+ }
+}
+
+class java::awt::AWTKeyStroke$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AWTKeyStroke$2();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTKeyStroke$2__
diff --git a/gcc-4.8/libjava/java/awt/AWTKeyStroke$3.h b/gcc-4.8/libjava/java/awt/AWTKeyStroke$3.h
new file mode 100644
index 000000000..94238cef1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTKeyStroke$3.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTKeyStroke$3__
+#define __java_awt_AWTKeyStroke$3__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTKeyStroke$3;
+ }
+ }
+}
+
+class java::awt::AWTKeyStroke$3 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AWTKeyStroke$3(::java::lang::Class *);
+public:
+ virtual ::java::lang::Object * run();
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$subclass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTKeyStroke$3__
diff --git a/gcc-4.8/libjava/java/awt/AWTKeyStroke.h b/gcc-4.8/libjava/java/awt/AWTKeyStroke.h
new file mode 100644
index 000000000..0b0032dd8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTKeyStroke.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTKeyStroke__
+#define __java_awt_AWTKeyStroke__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTKeyStroke;
+ namespace event
+ {
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::AWTKeyStroke : public ::java::lang::Object
+{
+
+public: // actually protected
+ AWTKeyStroke();
+ AWTKeyStroke(jchar, jint, jint, jboolean);
+ static void registerSubclass(::java::lang::Class *);
+public:
+ static ::java::awt::AWTKeyStroke * getAWTKeyStroke(jchar);
+ static ::java::awt::AWTKeyStroke * getAWTKeyStroke(::java::lang::Character *, jint);
+ static ::java::awt::AWTKeyStroke * getAWTKeyStroke(jint, jint, jboolean);
+ static ::java::awt::AWTKeyStroke * getAWTKeyStroke(jint, jint);
+ static ::java::awt::AWTKeyStroke * getAWTKeyStrokeForEvent(::java::awt::event::KeyEvent *);
+ static ::java::awt::AWTKeyStroke * getAWTKeyStroke(::java::lang::String *);
+ virtual jchar getKeyChar();
+ virtual jint getKeyCode();
+ virtual jint getModifiers();
+ virtual jboolean isOnKeyRelease();
+ virtual jint getKeyEventType();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ virtual ::java::lang::Object * readResolve();
+private:
+ static ::java::awt::AWTKeyStroke * getAWTKeyStroke(jchar, jint, jint, jboolean);
+ static jint extend(jint);
+ static const jlong serialVersionUID = -6430539691155161871LL;
+ static const jint MODIFIERS_MASK = 16367;
+ static ::java::util::LinkedHashMap * cache;
+ static ::java::awt::AWTKeyStroke * recent;
+ static ::java::lang::reflect::Constructor * ctor;
+public: // actually package-private
+ static ::java::util::HashMap * vktable;
+private:
+ jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) keyChar;
+public: // actually package-private
+ jint keyCode;
+private:
+ jint modifiers;
+ jboolean onKeyRelease;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTKeyStroke__
diff --git a/gcc-4.8/libjava/java/awt/AWTPermission.h b/gcc-4.8/libjava/java/awt/AWTPermission.h
new file mode 100644
index 000000000..4936c3dad
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AWTPermission.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AWTPermission__
+#define __java_awt_AWTPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTPermission;
+ }
+ }
+}
+
+class java::awt::AWTPermission : public ::java::security::BasicPermission
+{
+
+public:
+ AWTPermission(::java::lang::String *);
+ AWTPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8890392402588814465LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AWTPermission__
diff --git a/gcc-4.8/libjava/java/awt/ActiveEvent.h b/gcc-4.8/libjava/java/awt/ActiveEvent.h
new file mode 100644
index 000000000..a2183cfe1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ActiveEvent.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ActiveEvent__
+#define __java_awt_ActiveEvent__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ActiveEvent;
+ }
+ }
+}
+
+class java::awt::ActiveEvent : public ::java::lang::Object
+{
+
+public:
+ virtual void dispatch() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_ActiveEvent__
diff --git a/gcc-4.8/libjava/java/awt/Adjustable.h b/gcc-4.8/libjava/java/awt/Adjustable.h
new file mode 100644
index 000000000..9460f529a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Adjustable.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Adjustable__
+#define __java_awt_Adjustable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Adjustable;
+ namespace event
+ {
+ class AdjustmentListener;
+ }
+ }
+ }
+}
+
+class java::awt::Adjustable : public ::java::lang::Object
+{
+
+public:
+ virtual jint getOrientation() = 0;
+ virtual void setMinimum(jint) = 0;
+ virtual jint getMinimum() = 0;
+ virtual void setMaximum(jint) = 0;
+ virtual jint getMaximum() = 0;
+ virtual void setUnitIncrement(jint) = 0;
+ virtual jint getUnitIncrement() = 0;
+ virtual void setBlockIncrement(jint) = 0;
+ virtual jint getBlockIncrement() = 0;
+ virtual void setVisibleAmount(jint) = 0;
+ virtual jint getVisibleAmount() = 0;
+ virtual void setValue(jint) = 0;
+ virtual jint getValue() = 0;
+ virtual void addAdjustmentListener(::java::awt::event::AdjustmentListener *) = 0;
+ virtual void removeAdjustmentListener(::java::awt::event::AdjustmentListener *) = 0;
+ static const jint HORIZONTAL = 0;
+ static const jint VERTICAL = 1;
+ static const jint NO_ORIENTATION = 2;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_Adjustable__
diff --git a/gcc-4.8/libjava/java/awt/AlphaComposite$1.h b/gcc-4.8/libjava/java/awt/AlphaComposite$1.h
new file mode 100644
index 000000000..1bc20fa28
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AlphaComposite$1.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AlphaComposite$1__
+#define __java_awt_AlphaComposite$1__
+
+#pragma interface
+
+#include <java/util/LinkedHashMap.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AlphaComposite$1;
+ }
+ }
+}
+
+class java::awt::AlphaComposite$1 : public ::java::util::LinkedHashMap
+{
+
+public: // actually package-private
+ AlphaComposite$1(jint, jfloat, jboolean);
+public: // actually protected
+ virtual jboolean removeEldestEntry(::java::util::Map$Entry *);
+private:
+ static const jint MAX_CACHE_SIZE = 2048;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AlphaComposite$1__
diff --git a/gcc-4.8/libjava/java/awt/AlphaComposite.h b/gcc-4.8/libjava/java/awt/AlphaComposite.h
new file mode 100644
index 000000000..2113fb86d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AlphaComposite.h
@@ -0,0 +1,75 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AlphaComposite__
+#define __java_awt_AlphaComposite__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AlphaComposite;
+ class CompositeContext;
+ class RenderingHints;
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::AlphaComposite : public ::java::lang::Object
+{
+
+ AlphaComposite(jint, jfloat);
+public:
+ static ::java::awt::AlphaComposite * getInstance(jint);
+ static ::java::awt::AlphaComposite * getInstance(jint, jfloat);
+ ::java::awt::CompositeContext * createContext(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::RenderingHints *);
+ ::java::awt::AlphaComposite * derive(jint);
+ ::java::awt::AlphaComposite * derive(jfloat);
+ jfloat getAlpha();
+ jint getRule();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+private:
+ static ::java::util::LinkedHashMap * cache;
+public:
+ static const jint CLEAR = 1;
+ static const jint SRC = 2;
+ static const jint DST = 9;
+ static const jint SRC_OVER = 3;
+ static const jint DST_OVER = 4;
+ static const jint SRC_IN = 5;
+ static const jint DST_IN = 6;
+ static const jint SRC_OUT = 7;
+ static const jint DST_OUT = 8;
+ static const jint SRC_ATOP = 10;
+ static const jint DST_ATOP = 11;
+ static const jint XOR = 12;
+ static ::java::awt::AlphaComposite * Clear;
+ static ::java::awt::AlphaComposite * Src;
+ static ::java::awt::AlphaComposite * Dst;
+ static ::java::awt::AlphaComposite * SrcOver;
+ static ::java::awt::AlphaComposite * DstOver;
+ static ::java::awt::AlphaComposite * SrcIn;
+ static ::java::awt::AlphaComposite * DstIn;
+ static ::java::awt::AlphaComposite * SrcOut;
+ static ::java::awt::AlphaComposite * DstOut;
+ static ::java::awt::AlphaComposite * SrcAtop;
+ static ::java::awt::AlphaComposite * DstAtop;
+ static ::java::awt::AlphaComposite * Xor;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) rule;
+ jfloat alpha;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AlphaComposite__
diff --git a/gcc-4.8/libjava/java/awt/AttributeValue.h b/gcc-4.8/libjava/java/awt/AttributeValue.h
new file mode 100644
index 000000000..36294940b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/AttributeValue.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_AttributeValue__
+#define __java_awt_AttributeValue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AttributeValue;
+ }
+ }
+}
+
+class java::awt::AttributeValue : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AttributeValue(jint, JArray< ::java::lang::String * > *);
+public:
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
+private:
+ JArray< ::java::lang::String * > * names;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_AttributeValue__
diff --git a/gcc-4.8/libjava/java/awt/BasicStroke.h b/gcc-4.8/libjava/java/awt/BasicStroke.h
new file mode 100644
index 000000000..c3a923435
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/BasicStroke.h
@@ -0,0 +1,92 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_BasicStroke__
+#define __java_awt_BasicStroke__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace java2d
+ {
+ class Segment;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class BasicStroke;
+ class Shape;
+ namespace geom
+ {
+ class GeneralPath;
+ class PathIterator;
+ class Point2D;
+ }
+ }
+ }
+}
+
+class java::awt::BasicStroke : public ::java::lang::Object
+{
+
+public:
+ BasicStroke(jfloat, jint, jint, jfloat, JArray< jfloat > *, jfloat);
+ BasicStroke(jfloat, jint, jint, jfloat);
+ BasicStroke(jfloat, jint, jint);
+ BasicStroke(jfloat);
+ BasicStroke();
+ virtual ::java::awt::Shape * createStrokedShape(::java::awt::Shape *);
+ virtual jfloat getLineWidth();
+ virtual jint getEndCap();
+ virtual jint getLineJoin();
+ virtual jfloat getMiterLimit();
+ virtual JArray< jfloat > * getDashArray();
+ virtual jfloat getDashPhase();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ ::java::awt::Shape * solidStroke(::java::awt::geom::PathIterator *);
+ ::java::awt::Shape * dashedStroke(::java::awt::geom::PathIterator *);
+ void capEnds();
+ void convertPath(::java::awt::geom::GeneralPath *, ::gnu::java::awt::java2d::Segment *);
+ void addSegments(JArray< ::gnu::java::awt::java2d::Segment * > *);
+ void joinSegments(JArray< ::gnu::java::awt::java2d::Segment * > *);
+ void capEnd(::gnu::java::awt::java2d::Segment *, ::gnu::java::awt::java2d::Segment *);
+ ::java::awt::geom::Point2D * lineIntersection(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jboolean);
+ void joinOuterSegments(::gnu::java::awt::java2d::Segment *, ::gnu::java::awt::java2d::Segment *, ::java::awt::geom::Point2D *);
+ void joinInnerSegments(::gnu::java::awt::java2d::Segment *, ::gnu::java::awt::java2d::Segment *, ::java::awt::geom::Point2D *);
+public:
+ static const jint JOIN_MITER = 0;
+ static const jint JOIN_ROUND = 1;
+ static const jint JOIN_BEVEL = 2;
+ static const jint CAP_BUTT = 0;
+ static const jint CAP_ROUND = 1;
+ static const jint CAP_SQUARE = 2;
+private:
+ jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) width;
+ jint cap;
+ jint join;
+ jfloat limit;
+ JArray< jfloat > * dash;
+ jfloat phase;
+ ::gnu::java::awt::java2d::Segment * start;
+ ::gnu::java::awt::java2d::Segment * end;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_BasicStroke__
diff --git a/gcc-4.8/libjava/java/awt/BorderLayout.h b/gcc-4.8/libjava/java/awt/BorderLayout.h
new file mode 100644
index 000000000..f78e97164
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/BorderLayout.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_BorderLayout__
+#define __java_awt_BorderLayout__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BorderLayout;
+ class Component;
+ class Container;
+ class Dimension;
+ }
+ }
+}
+
+class java::awt::BorderLayout : public ::java::lang::Object
+{
+
+public:
+ BorderLayout();
+ BorderLayout(jint, jint);
+ virtual jint getHgap();
+ virtual void setHgap(jint);
+ virtual jint getVgap();
+ virtual void setVgap(jint);
+ virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *);
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *);
+ virtual void removeLayoutComponent(::java::awt::Component *);
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * maximumLayoutSize(::java::awt::Container *);
+ virtual jfloat getLayoutAlignmentX(::java::awt::Container *);
+ virtual jfloat getLayoutAlignmentY(::java::awt::Container *);
+ virtual void invalidateLayout(::java::awt::Container *);
+ virtual void layoutContainer(::java::awt::Container *);
+ virtual ::java::lang::String * toString();
+private:
+ ::java::awt::Dimension * calcCompSize(::java::awt::Component *, jint);
+ ::java::awt::Dimension * calcSize(::java::awt::Container *, jint);
+public:
+ virtual ::java::awt::Component * getLayoutComponent(::java::lang::Object *);
+ virtual ::java::awt::Component * getLayoutComponent(::java::awt::Container *, ::java::lang::Object *);
+ virtual ::java::lang::Object * getConstraints(::java::awt::Component *);
+ static ::java::lang::String * NORTH;
+ static ::java::lang::String * SOUTH;
+ static ::java::lang::String * EAST;
+ static ::java::lang::String * WEST;
+ static ::java::lang::String * CENTER;
+ static ::java::lang::String * BEFORE_FIRST_LINE;
+ static ::java::lang::String * AFTER_LAST_LINE;
+ static ::java::lang::String * BEFORE_LINE_BEGINS;
+ static ::java::lang::String * AFTER_LINE_ENDS;
+ static ::java::lang::String * PAGE_START;
+ static ::java::lang::String * PAGE_END;
+ static ::java::lang::String * LINE_START;
+ static ::java::lang::String * LINE_END;
+private:
+ static const jlong serialVersionUID = -8658291919501921765LL;
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) north;
+ ::java::awt::Component * south;
+ ::java::awt::Component * east;
+ ::java::awt::Component * west;
+ ::java::awt::Component * center;
+ ::java::awt::Component * firstLine;
+ ::java::awt::Component * lastLine;
+ ::java::awt::Component * firstItem;
+ ::java::awt::Component * lastItem;
+ jint hgap;
+ jint vgap;
+ static const jint MIN = 0;
+ static const jint MAX = 1;
+ static const jint PREF = 2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_BorderLayout__
diff --git a/gcc-4.8/libjava/java/awt/BufferCapabilities$FlipContents.h b/gcc-4.8/libjava/java/awt/BufferCapabilities$FlipContents.h
new file mode 100644
index 000000000..b5f45e4d0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/BufferCapabilities$FlipContents.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_BufferCapabilities$FlipContents__
+#define __java_awt_BufferCapabilities$FlipContents__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities$FlipContents;
+ }
+ }
+}
+
+class java::awt::BufferCapabilities$FlipContents : public ::java::awt::AttributeValue
+{
+
+ BufferCapabilities$FlipContents(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::BufferCapabilities$FlipContents * UNDEFINED;
+ static ::java::awt::BufferCapabilities$FlipContents * BACKGROUND;
+ static ::java::awt::BufferCapabilities$FlipContents * PRIOR;
+ static ::java::awt::BufferCapabilities$FlipContents * COPIED;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_BufferCapabilities$FlipContents__
diff --git a/gcc-4.8/libjava/java/awt/BufferCapabilities.h b/gcc-4.8/libjava/java/awt/BufferCapabilities.h
new file mode 100644
index 000000000..bda4b752c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/BufferCapabilities.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_BufferCapabilities__
+#define __java_awt_BufferCapabilities__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class ImageCapabilities;
+ }
+ }
+}
+
+class java::awt::BufferCapabilities : public ::java::lang::Object
+{
+
+public:
+ BufferCapabilities(::java::awt::ImageCapabilities *, ::java::awt::ImageCapabilities *, ::java::awt::BufferCapabilities$FlipContents *);
+ virtual ::java::awt::ImageCapabilities * getFrontBufferCapabilities();
+ virtual ::java::awt::ImageCapabilities * getBackBufferCapabilities();
+ virtual jboolean isPageFlipping();
+ virtual ::java::awt::BufferCapabilities$FlipContents * getFlipContents();
+ virtual jboolean isFullScreenRequired();
+ virtual jboolean isMultiBufferAvailable();
+ virtual ::java::lang::Object * clone();
+private:
+ ::java::awt::ImageCapabilities * __attribute__((aligned(__alignof__( ::java::lang::Object)))) front;
+ ::java::awt::ImageCapabilities * back;
+ ::java::awt::BufferCapabilities$FlipContents * flip;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_BufferCapabilities__
diff --git a/gcc-4.8/libjava/java/awt/Button$AccessibleAWTButton.h b/gcc-4.8/libjava/java/awt/Button$AccessibleAWTButton.h
new file mode 100644
index 000000000..be1dc9a11
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Button$AccessibleAWTButton.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Button$AccessibleAWTButton__
+#define __java_awt_Button$AccessibleAWTButton__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Button;
+ class Button$AccessibleAWTButton;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleAction;
+ class AccessibleRole;
+ class AccessibleValue;
+ }
+ }
+}
+
+class java::awt::Button$AccessibleAWTButton : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public: // actually protected
+ Button$AccessibleAWTButton(::java::awt::Button *);
+public:
+ virtual jint getAccessibleActionCount();
+ virtual ::java::lang::String * getAccessibleActionDescription(jint);
+ virtual jboolean doAccessibleAction(jint);
+ virtual ::java::lang::String * getAccessibleName();
+ virtual ::javax::accessibility::AccessibleAction * getAccessibleAction();
+ virtual ::javax::accessibility::AccessibleValue * getAccessibleValue();
+ virtual ::java::lang::Number * getCurrentAccessibleValue();
+ virtual jboolean setCurrentAccessibleValue(::java::lang::Number *);
+ virtual ::java::lang::Number * getMinimumAccessibleValue();
+ virtual ::java::lang::Number * getMaximumAccessibleValue();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = -5932203980244017102LL;
+public: // actually package-private
+ ::java::awt::Button * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Button$AccessibleAWTButton__
diff --git a/gcc-4.8/libjava/java/awt/Button.h b/gcc-4.8/libjava/java/awt/Button.h
new file mode 100644
index 000000000..19636de83
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Button.h
@@ -0,0 +1,75 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Button__
+#define __java_awt_Button__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Button;
+ namespace event
+ {
+ class ActionEvent;
+ class ActionListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Button : public ::java::awt::Component
+{
+
+public:
+ Button();
+ Button(::java::lang::String *);
+ virtual ::java::lang::String * getLabel();
+ virtual void setLabel(::java::lang::String *);
+ virtual ::java::lang::String * getActionCommand();
+ virtual void setActionCommand(::java::lang::String *);
+ virtual void addActionListener(::java::awt::event::ActionListener *);
+ virtual void removeActionListener(::java::awt::event::ActionListener *);
+ virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners();
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual void addNotify();
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processActionEvent(::java::awt::event::ActionEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = -8774683716313001058LL;
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::Component)))) actionCommand;
+ ::java::lang::String * label;
+private:
+ ::java::awt::event::ActionListener * action_listeners;
+ static jlong next_button_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Button__
diff --git a/gcc-4.8/libjava/java/awt/Canvas$AccessibleAWTCanvas.h b/gcc-4.8/libjava/java/awt/Canvas$AccessibleAWTCanvas.h
new file mode 100644
index 000000000..f4f6a3e37
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Canvas$AccessibleAWTCanvas.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Canvas$AccessibleAWTCanvas__
+#define __java_awt_Canvas$AccessibleAWTCanvas__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Canvas;
+ class Canvas$AccessibleAWTCanvas;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::Canvas$AccessibleAWTCanvas : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public: // actually protected
+ Canvas$AccessibleAWTCanvas(::java::awt::Canvas *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = -6325592262103146699LL;
+public: // actually package-private
+ ::java::awt::Canvas * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Canvas$AccessibleAWTCanvas__
diff --git a/gcc-4.8/libjava/java/awt/Canvas$CanvasBltBufferStrategy.h b/gcc-4.8/libjava/java/awt/Canvas$CanvasBltBufferStrategy.h
new file mode 100644
index 000000000..f47ae7068
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Canvas$CanvasBltBufferStrategy.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Canvas$CanvasBltBufferStrategy__
+#define __java_awt_Canvas$CanvasBltBufferStrategy__
+
+#pragma interface
+
+#include <java/awt/Component$BltBufferStrategy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Canvas;
+ class Canvas$CanvasBltBufferStrategy;
+ }
+ }
+}
+
+class java::awt::Canvas$CanvasBltBufferStrategy : public ::java::awt::Component$BltBufferStrategy
+{
+
+public: // actually package-private
+ Canvas$CanvasBltBufferStrategy(::java::awt::Canvas *, jint, jboolean);
+ ::java::awt::Canvas * __attribute__((aligned(__alignof__( ::java::awt::Component$BltBufferStrategy)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Canvas$CanvasBltBufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h b/gcc-4.8/libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h
new file mode 100644
index 000000000..0af653f2c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Canvas$CanvasFlipBufferStrategy__
+#define __java_awt_Canvas$CanvasFlipBufferStrategy__
+
+#pragma interface
+
+#include <java/awt/Component$FlipBufferStrategy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Canvas;
+ class Canvas$CanvasFlipBufferStrategy;
+ }
+ }
+}
+
+class java::awt::Canvas$CanvasFlipBufferStrategy : public ::java::awt::Component$FlipBufferStrategy
+{
+
+public: // actually package-private
+ Canvas$CanvasFlipBufferStrategy(::java::awt::Canvas *, jint);
+ ::java::awt::Canvas * __attribute__((aligned(__alignof__( ::java::awt::Component$FlipBufferStrategy)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Canvas$CanvasFlipBufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/Canvas.h b/gcc-4.8/libjava/java/awt/Canvas.h
new file mode 100644
index 000000000..d7e031018
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Canvas.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Canvas__
+#define __java_awt_Canvas__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities;
+ class Canvas;
+ class Graphics;
+ class GraphicsConfiguration;
+ namespace image
+ {
+ class BufferStrategy;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Canvas : public ::java::awt::Component
+{
+
+public:
+ Canvas();
+ Canvas(::java::awt::GraphicsConfiguration *);
+ virtual void addNotify();
+ virtual void paint(::java::awt::Graphics *);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+ virtual void createBufferStrategy(jint);
+ virtual void createBufferStrategy(jint, ::java::awt::BufferCapabilities *);
+ virtual ::java::awt::image::BufferStrategy * getBufferStrategy();
+ virtual void update(::java::awt::Graphics *);
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = -2284879212465893870LL;
+ static jlong next_canvas_number;
+public: // actually package-private
+ ::java::awt::image::BufferStrategy * __attribute__((aligned(__alignof__( ::java::awt::Component)))) bufferStrategy;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Canvas__
diff --git a/gcc-4.8/libjava/java/awt/CardLayout.h b/gcc-4.8/libjava/java/awt/CardLayout.h
new file mode 100644
index 000000000..9affd84fb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/CardLayout.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_CardLayout__
+#define __java_awt_CardLayout__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class CardLayout;
+ class Component;
+ class Container;
+ class Dimension;
+ }
+ }
+}
+
+class java::awt::CardLayout : public ::java::lang::Object
+{
+
+public:
+ CardLayout();
+ CardLayout(jint, jint);
+ virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *);
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *);
+ virtual void first(::java::awt::Container *);
+ virtual jint getHgap();
+ virtual jfloat getLayoutAlignmentX(::java::awt::Container *);
+ virtual jfloat getLayoutAlignmentY(::java::awt::Container *);
+ virtual jint getVgap();
+ virtual void invalidateLayout(::java::awt::Container *);
+ virtual void last(::java::awt::Container *);
+ virtual void layoutContainer(::java::awt::Container *);
+ virtual ::java::awt::Dimension * maximumLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *);
+ virtual void next(::java::awt::Container *);
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *);
+ virtual void previous(::java::awt::Container *);
+ virtual void removeLayoutComponent(::java::awt::Component *);
+ virtual void setHgap(jint);
+ virtual void setVgap(jint);
+ virtual void show(::java::awt::Container *, ::java::lang::String *);
+ virtual ::java::lang::String * toString();
+private:
+ void gotoComponent(::java::awt::Container *, jint);
+ ::java::awt::Dimension * getSize(::java::awt::Container *, jint);
+ static const jlong serialVersionUID = -4328196481005934313LL;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) hgap;
+ jint vgap;
+ ::java::util::Hashtable * tab;
+ static const jint FIRST = 0;
+ static const jint LAST = 1;
+ static const jint NEXT = 2;
+ static const jint PREV = 3;
+ static const jint MIN = 0;
+ static const jint MAX = 1;
+ static const jint PREF = 2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_CardLayout__
diff --git a/gcc-4.8/libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h b/gcc-4.8/libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h
new file mode 100644
index 000000000..025c42a37
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Checkbox$AccessibleAWTCheckbox__
+#define __java_awt_Checkbox$AccessibleAWTCheckbox__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Checkbox;
+ class Checkbox$AccessibleAWTCheckbox;
+ namespace event
+ {
+ class ItemEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleAction;
+ class AccessibleRole;
+ class AccessibleStateSet;
+ class AccessibleValue;
+ }
+ }
+}
+
+class java::awt::Checkbox$AccessibleAWTCheckbox : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public:
+ Checkbox$AccessibleAWTCheckbox(::java::awt::Checkbox *);
+ virtual void itemStateChanged(::java::awt::event::ItemEvent *);
+ virtual ::javax::accessibility::AccessibleAction * getAccessibleAction();
+ virtual ::javax::accessibility::AccessibleValue * getAccessibleValue();
+ virtual jint getAccessibleActionCount();
+ virtual ::java::lang::String * getAccessibleActionDescription(jint);
+ virtual jboolean doAccessibleAction(jint);
+ virtual ::java::lang::Number * getCurrentAccessibleValue();
+ virtual jboolean setCurrentAccessibleValue(::java::lang::Number *);
+ virtual ::java::lang::Number * getMinimumAccessibleValue();
+ virtual ::java::lang::Number * getMaximumAccessibleValue();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = 7881579233144754107LL;
+public: // actually package-private
+ ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Checkbox$AccessibleAWTCheckbox__
diff --git a/gcc-4.8/libjava/java/awt/Checkbox.h b/gcc-4.8/libjava/java/awt/Checkbox.h
new file mode 100644
index 000000000..614f599f6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Checkbox.h
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Checkbox__
+#define __java_awt_Checkbox__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Checkbox;
+ class CheckboxGroup;
+ namespace event
+ {
+ class ItemEvent;
+ class ItemListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Checkbox : public ::java::awt::Component
+{
+
+public:
+ Checkbox();
+ Checkbox(::java::lang::String *);
+ Checkbox(::java::lang::String *, jboolean);
+ Checkbox(::java::lang::String *, ::java::awt::CheckboxGroup *, jboolean);
+ Checkbox(::java::lang::String *, jboolean, ::java::awt::CheckboxGroup *);
+ virtual ::java::lang::String * getLabel();
+ virtual void setLabel(::java::lang::String *);
+ virtual jboolean getState();
+ virtual void setState(jboolean);
+ virtual JArray< ::java::lang::Object * > * getSelectedObjects();
+ virtual ::java::awt::CheckboxGroup * getCheckboxGroup();
+ virtual void setCheckboxGroup(::java::awt::CheckboxGroup *);
+ virtual void addNotify();
+ virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners();
+ virtual void addItemListener(::java::awt::event::ItemListener *);
+ virtual void removeItemListener(::java::awt::event::ItemListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processItemEvent(::java::awt::event::ItemEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = 7270714317450821763LL;
+ ::java::awt::CheckboxGroup * __attribute__((aligned(__alignof__( ::java::awt::Component)))) group;
+ ::java::lang::String * label;
+public: // actually package-private
+ jboolean state;
+private:
+ ::java::awt::event::ItemListener * item_listeners;
+ static jlong next_checkbox_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Checkbox__
diff --git a/gcc-4.8/libjava/java/awt/CheckboxGroup.h b/gcc-4.8/libjava/java/awt/CheckboxGroup.h
new file mode 100644
index 000000000..80a4557b3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/CheckboxGroup.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_CheckboxGroup__
+#define __java_awt_CheckboxGroup__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Checkbox;
+ class CheckboxGroup;
+ }
+ }
+}
+
+class java::awt::CheckboxGroup : public ::java::lang::Object
+{
+
+public:
+ CheckboxGroup();
+ virtual ::java::awt::Checkbox * getSelectedCheckbox();
+ virtual ::java::awt::Checkbox * getCurrent();
+ virtual void setSelectedCheckbox(::java::awt::Checkbox *);
+ virtual void setCurrent(::java::awt::Checkbox *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 3729780091441768983LL;
+ ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::java::lang::Object)))) selectedCheckbox;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_CheckboxGroup__
diff --git a/gcc-4.8/libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h b/gcc-4.8/libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h
new file mode 100644
index 000000000..c9111835f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_CheckboxMenuItem$AccessibleAWTCheckboxMenuItem__
+#define __java_awt_CheckboxMenuItem$AccessibleAWTCheckboxMenuItem__
+
+#pragma interface
+
+#include <java/awt/MenuItem$AccessibleAWTMenuItem.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class CheckboxMenuItem;
+ class CheckboxMenuItem$AccessibleAWTCheckboxMenuItem;
+ }
+ }
+}
+
+class java::awt::CheckboxMenuItem$AccessibleAWTCheckboxMenuItem : public ::java::awt::MenuItem$AccessibleAWTMenuItem
+{
+
+public: // actually protected
+ CheckboxMenuItem$AccessibleAWTCheckboxMenuItem(::java::awt::CheckboxMenuItem *);
+private:
+ static const jlong serialVersionUID = -1122642964303476LL;
+public: // actually package-private
+ ::java::awt::CheckboxMenuItem * __attribute__((aligned(__alignof__( ::java::awt::MenuItem$AccessibleAWTMenuItem)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_CheckboxMenuItem$AccessibleAWTCheckboxMenuItem__
diff --git a/gcc-4.8/libjava/java/awt/CheckboxMenuItem.h b/gcc-4.8/libjava/java/awt/CheckboxMenuItem.h
new file mode 100644
index 000000000..52b7223cb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/CheckboxMenuItem.h
@@ -0,0 +1,71 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_CheckboxMenuItem__
+#define __java_awt_CheckboxMenuItem__
+
+#pragma interface
+
+#include <java/awt/MenuItem.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class CheckboxMenuItem;
+ namespace event
+ {
+ class ItemEvent;
+ class ItemListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::CheckboxMenuItem : public ::java::awt::MenuItem
+{
+
+public:
+ CheckboxMenuItem();
+ CheckboxMenuItem(::java::lang::String *);
+ CheckboxMenuItem(::java::lang::String *, jboolean);
+ virtual jboolean getState();
+ virtual void setState(jboolean);
+ virtual JArray< ::java::lang::Object * > * getSelectedObjects();
+ virtual void addNotify();
+ virtual void addItemListener(::java::awt::event::ItemListener *);
+ virtual void removeItemListener(::java::awt::event::ItemListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processItemEvent(::java::awt::event::ItemEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public:
+ virtual ::java::lang::String * paramString();
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static jlong next_chkmenuitem_number;
+ static const jlong serialVersionUID = 6190621106981774043LL;
+ jboolean __attribute__((aligned(__alignof__( ::java::awt::MenuItem)))) state;
+ ::java::awt::event::ItemListener * item_listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_CheckboxMenuItem__
diff --git a/gcc-4.8/libjava/java/awt/Choice$AccessibleAWTChoice.h b/gcc-4.8/libjava/java/awt/Choice$AccessibleAWTChoice.h
new file mode 100644
index 000000000..61b2d2377
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Choice$AccessibleAWTChoice.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Choice$AccessibleAWTChoice__
+#define __java_awt_Choice$AccessibleAWTChoice__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Choice;
+ class Choice$AccessibleAWTChoice;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleAction;
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::Choice$AccessibleAWTChoice : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public:
+ Choice$AccessibleAWTChoice(::java::awt::Choice *);
+ virtual ::javax::accessibility::AccessibleAction * getAccessibleAction();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual jint getAccessibleActionCount();
+ virtual ::java::lang::String * getAccessibleActionDescription(jint);
+ virtual jboolean doAccessibleAction(jint);
+private:
+ static const jlong serialVersionUID = 7175603582428509322LL;
+public: // actually package-private
+ ::java::awt::Choice * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Choice$AccessibleAWTChoice__
diff --git a/gcc-4.8/libjava/java/awt/Choice.h b/gcc-4.8/libjava/java/awt/Choice.h
new file mode 100644
index 000000000..fc0261391
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Choice.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Choice__
+#define __java_awt_Choice__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Choice;
+ namespace event
+ {
+ class ItemEvent;
+ class ItemListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Choice : public ::java::awt::Component
+{
+
+public:
+ Choice();
+ virtual jint getItemCount();
+ virtual jint countItems();
+ virtual ::java::lang::String * getItem(jint);
+ virtual void add(::java::lang::String *);
+ virtual void addItem(::java::lang::String *);
+ virtual void insert(::java::lang::String *, jint);
+ virtual void remove(::java::lang::String *);
+ virtual void remove(jint);
+ virtual void removeAll();
+ virtual ::java::lang::String * getSelectedItem();
+ virtual JArray< ::java::lang::Object * > * getSelectedObjects();
+ virtual jint getSelectedIndex();
+ virtual void select(jint);
+ virtual void select(::java::lang::String *);
+ virtual void addNotify();
+ virtual void addItemListener(::java::awt::event::ItemListener *);
+ virtual void removeItemListener(::java::awt::event::ItemListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual void processItemEvent(::java::awt::event::ItemEvent *);
+ virtual ::java::lang::String * paramString();
+public:
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static jlong next_choice_number;
+ static const jlong serialVersionUID = -4075310674757313071LL;
+public: // actually package-private
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::awt::Component)))) pItems;
+private:
+ jint selectedIndex;
+ ::java::awt::event::ItemListener * item_listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Choice__
diff --git a/gcc-4.8/libjava/java/awt/Color.h b/gcc-4.8/libjava/java/awt/Color.h
new file mode 100644
index 000000000..a1bbaff49
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Color.h
@@ -0,0 +1,128 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Color__
+#define __java_awt_Color__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class ColorPaintContext;
+ class PaintContext;
+ class Rectangle;
+ class RenderingHints;
+ namespace color
+ {
+ class ColorSpace;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::Color : public ::java::lang::Object
+{
+
+public:
+ Color(jint, jint, jint);
+ Color(jint, jint, jint, jint);
+ Color(jint);
+ Color(jint, jboolean);
+ Color(jfloat, jfloat, jfloat);
+ Color(jfloat, jfloat, jfloat, jfloat);
+ Color(::java::awt::color::ColorSpace *, JArray< jfloat > *, jfloat);
+ virtual jint getRed();
+ virtual jint getGreen();
+ virtual jint getBlue();
+ virtual jint getAlpha();
+ virtual jint getRGB();
+ virtual ::java::awt::Color * brighter();
+ virtual ::java::awt::Color * darker();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+ static ::java::awt::Color * decode(::java::lang::String *);
+ static ::java::awt::Color * getColor(::java::lang::String *);
+ static ::java::awt::Color * getColor(::java::lang::String *, ::java::awt::Color *);
+ static ::java::awt::Color * getColor(::java::lang::String *, jint);
+ static jint HSBtoRGB(jfloat, jfloat, jfloat);
+ static JArray< jfloat > * RGBtoHSB(jint, jint, jint, JArray< jfloat > *);
+ static ::java::awt::Color * getHSBColor(jfloat, jfloat, jfloat);
+ virtual JArray< jfloat > * getRGBComponents(JArray< jfloat > *);
+ virtual JArray< jfloat > * getRGBColorComponents(JArray< jfloat > *);
+ virtual JArray< jfloat > * getComponents(JArray< jfloat > *);
+ virtual JArray< jfloat > * getColorComponents(JArray< jfloat > *);
+ virtual JArray< jfloat > * getComponents(::java::awt::color::ColorSpace *, JArray< jfloat > *);
+ virtual JArray< jfloat > * getColorComponents(::java::awt::color::ColorSpace *, JArray< jfloat > *);
+ virtual ::java::awt::color::ColorSpace * getColorSpace();
+ virtual ::java::awt::PaintContext * createContext(::java::awt::image::ColorModel *, ::java::awt::Rectangle *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *);
+ virtual jint getTransparency();
+private:
+ static jint convert(jfloat, jfloat, jfloat, jfloat);
+ static const jlong serialVersionUID = 118526816881161077LL;
+public:
+ static ::java::awt::Color * white;
+ static ::java::awt::Color * WHITE;
+ static ::java::awt::Color * lightGray;
+ static ::java::awt::Color * LIGHT_GRAY;
+ static ::java::awt::Color * gray;
+ static ::java::awt::Color * GRAY;
+ static ::java::awt::Color * darkGray;
+ static ::java::awt::Color * DARK_GRAY;
+ static ::java::awt::Color * black;
+ static ::java::awt::Color * BLACK;
+ static ::java::awt::Color * red;
+ static ::java::awt::Color * RED;
+ static ::java::awt::Color * pink;
+ static ::java::awt::Color * PINK;
+ static ::java::awt::Color * orange;
+ static ::java::awt::Color * ORANGE;
+ static ::java::awt::Color * yellow;
+ static ::java::awt::Color * YELLOW;
+ static ::java::awt::Color * green;
+ static ::java::awt::Color * GREEN;
+ static ::java::awt::Color * magenta;
+ static ::java::awt::Color * MAGENTA;
+ static ::java::awt::Color * cyan;
+ static ::java::awt::Color * CYAN;
+ static ::java::awt::Color * blue;
+ static ::java::awt::Color * BLUE;
+private:
+ static const jint RED_MASK = 16711680;
+ static const jint GREEN_MASK = 65280;
+ static const jint BLUE_MASK = 255;
+public: // actually package-private
+ static const jint ALPHA_MASK = -16777216;
+private:
+ static jfloat BRIGHT_SCALE;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
+private:
+ JArray< jfloat > * frgbvalue;
+ JArray< jfloat > * fvalue;
+ jfloat falpha;
+ ::java::awt::color::ColorSpace * cs;
+public: // actually package-private
+ ::java::awt::ColorPaintContext * context;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Color__
diff --git a/gcc-4.8/libjava/java/awt/ColorPaintContext$ColorRaster.h b/gcc-4.8/libjava/java/awt/ColorPaintContext$ColorRaster.h
new file mode 100644
index 000000000..d116f81c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ColorPaintContext$ColorRaster.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ColorPaintContext$ColorRaster__
+#define __java_awt_ColorPaintContext$ColorRaster__
+
+#pragma interface
+
+#include <java/awt/image/Raster.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ColorPaintContext;
+ class ColorPaintContext$ColorRaster;
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::ColorPaintContext$ColorRaster : public ::java::awt::image::Raster
+{
+
+public: // actually package-private
+ ColorPaintContext$ColorRaster(::java::awt::ColorPaintContext *, ::java::awt::image::ColorModel *, jint, jint, jint, jint, jint);
+private:
+ ::java::lang::Object * multiplyData(::java::lang::Object *, ::java::lang::Object *, jint);
+public: // actually package-private
+ ::java::awt::ColorPaintContext * __attribute__((aligned(__alignof__( ::java::awt::image::Raster)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ColorPaintContext$ColorRaster__
diff --git a/gcc-4.8/libjava/java/awt/ColorPaintContext.h b/gcc-4.8/libjava/java/awt/ColorPaintContext.h
new file mode 100644
index 000000000..e96fc43ff
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ColorPaintContext.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ColorPaintContext__
+#define __java_awt_ColorPaintContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ColorPaintContext;
+ class ColorPaintContext$ColorRaster;
+ namespace image
+ {
+ class ColorModel;
+ class Raster;
+ }
+ }
+ }
+}
+
+class java::awt::ColorPaintContext : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ColorPaintContext(jint);
+ ColorPaintContext(::java::awt::image::ColorModel *, jint);
+public:
+ virtual void dispose();
+ virtual ::java::awt::image::ColorModel * getColorModel();
+ virtual ::java::awt::image::Raster * getRaster(jint, jint, jint, jint);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) color;
+ ::java::awt::image::ColorModel * colorModel;
+private:
+ ::java::awt::ColorPaintContext$ColorRaster * cachedRaster;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ColorPaintContext__
diff --git a/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h b/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h
new file mode 100644
index 000000000..4dda12238
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component$AccessibleAWTComponent$AccessibleAWTComponentHandler__
+#define __java_awt_Component$AccessibleAWTComponent$AccessibleAWTComponentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component$AccessibleAWTComponent;
+ class Component$AccessibleAWTComponent$AccessibleAWTComponentHandler;
+ namespace event
+ {
+ class ComponentEvent;
+ }
+ }
+ }
+}
+
+class java::awt::Component$AccessibleAWTComponent$AccessibleAWTComponentHandler : public ::java::lang::Object
+{
+
+public: // actually protected
+ Component$AccessibleAWTComponent$AccessibleAWTComponentHandler(::java::awt::Component$AccessibleAWTComponent *);
+public:
+ virtual void componentHidden(::java::awt::event::ComponentEvent *);
+ virtual void componentShown(::java::awt::event::ComponentEvent *);
+ virtual void componentMoved(::java::awt::event::ComponentEvent *);
+ virtual void componentResized(::java::awt::event::ComponentEvent *);
+public: // actually package-private
+ ::java::awt::Component$AccessibleAWTComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component$AccessibleAWTComponent$AccessibleAWTComponentHandler__
diff --git a/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h b/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h
new file mode 100644
index 000000000..429c49aa7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component$AccessibleAWTComponent$AccessibleAWTFocusHandler__
+#define __java_awt_Component$AccessibleAWTComponent$AccessibleAWTFocusHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component$AccessibleAWTComponent;
+ class Component$AccessibleAWTComponent$AccessibleAWTFocusHandler;
+ namespace event
+ {
+ class FocusEvent;
+ }
+ }
+ }
+}
+
+class java::awt::Component$AccessibleAWTComponent$AccessibleAWTFocusHandler : public ::java::lang::Object
+{
+
+public: // actually protected
+ Component$AccessibleAWTComponent$AccessibleAWTFocusHandler(::java::awt::Component$AccessibleAWTComponent *);
+public:
+ virtual void focusGained(::java::awt::event::FocusEvent *);
+ virtual void focusLost(::java::awt::event::FocusEvent *);
+public: // actually package-private
+ ::java::awt::Component$AccessibleAWTComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component$AccessibleAWTComponent$AccessibleAWTFocusHandler__
diff --git a/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent.h b/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent.h
new file mode 100644
index 000000000..c46ecf76c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component$AccessibleAWTComponent.h
@@ -0,0 +1,104 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component$AccessibleAWTComponent__
+#define __java_awt_Component$AccessibleAWTComponent__
+
+#pragma interface
+
+#include <javax/accessibility/AccessibleContext.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class Component;
+ class Component$AccessibleAWTComponent;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Point;
+ class Rectangle;
+ namespace event
+ {
+ class ComponentListener;
+ class FocusListener;
+ }
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class Accessible;
+ class AccessibleComponent;
+ class AccessibleRole;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::Component$AccessibleAWTComponent : public ::javax::accessibility::AccessibleContext
+{
+
+public: // actually protected
+ Component$AccessibleAWTComponent(::java::awt::Component *);
+public:
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual ::java::lang::String * getAccessibleName();
+ virtual ::java::lang::String * getAccessibleDescription();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+ virtual ::javax::accessibility::Accessible * getAccessibleParent();
+ virtual jint getAccessibleIndexInParent();
+ virtual jint getAccessibleChildrenCount();
+ virtual ::javax::accessibility::Accessible * getAccessibleChild(jint);
+ virtual ::java::util::Locale * getLocale();
+ virtual ::javax::accessibility::AccessibleComponent * getAccessibleComponent();
+ virtual ::java::awt::Color * getBackground();
+ virtual void setBackground(::java::awt::Color *);
+ virtual ::java::awt::Color * getForeground();
+ virtual void setForeground(::java::awt::Color *);
+ virtual ::java::awt::Cursor * getCursor();
+ virtual void setCursor(::java::awt::Cursor *);
+ virtual ::java::awt::Font * getFont();
+ virtual void setFont(::java::awt::Font *);
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *);
+ virtual jboolean isEnabled();
+ virtual void setEnabled(jboolean);
+ virtual jboolean isVisible();
+ virtual void setVisible(jboolean);
+ virtual jboolean isShowing();
+ virtual jboolean contains(::java::awt::Point *);
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual ::java::awt::Point * getLocation();
+ virtual void setLocation(::java::awt::Point *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual void setBounds(::java::awt::Rectangle *);
+ virtual ::java::awt::Dimension * getSize();
+ virtual void setSize(::java::awt::Dimension *);
+ virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *);
+ virtual jboolean isFocusTraversable();
+ virtual void requestFocus();
+ virtual void addFocusListener(::java::awt::event::FocusListener *);
+ virtual void removeFocusListener(::java::awt::event::FocusListener *);
+private:
+ static const jlong serialVersionUID = 642321655757800191LL;
+public: // actually protected
+ ::java::awt::event::ComponentListener * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) accessibleAWTComponentHandler;
+ ::java::awt::event::FocusListener * accessibleAWTFocusHandler;
+public: // actually package-private
+ ::java::awt::Component * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component$AccessibleAWTComponent__
diff --git a/gcc-4.8/libjava/java/awt/Component$BltBufferStrategy.h b/gcc-4.8/libjava/java/awt/Component$BltBufferStrategy.h
new file mode 100644
index 000000000..ca93face1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component$BltBufferStrategy.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component$BltBufferStrategy__
+#define __java_awt_Component$BltBufferStrategy__
+
+#pragma interface
+
+#include <java/awt/image/BufferStrategy.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities;
+ class Component;
+ class Component$BltBufferStrategy;
+ class Graphics;
+ namespace image
+ {
+ class VolatileImage;
+ }
+ }
+ }
+}
+
+class java::awt::Component$BltBufferStrategy : public ::java::awt::image::BufferStrategy
+{
+
+public: // actually protected
+ Component$BltBufferStrategy(::java::awt::Component *, jint, ::java::awt::BufferCapabilities *);
+ virtual void createBackBuffers(jint);
+public:
+ virtual ::java::awt::BufferCapabilities * getCapabilities();
+ virtual ::java::awt::Graphics * getDrawGraphics();
+ virtual void show();
+public: // actually protected
+ virtual void revalidate();
+public:
+ virtual jboolean contentsLost();
+ virtual jboolean contentsRestored();
+public: // actually protected
+ ::java::awt::BufferCapabilities * __attribute__((aligned(__alignof__( ::java::awt::image::BufferStrategy)))) caps;
+ JArray< ::java::awt::image::VolatileImage * > * backBuffers;
+ jboolean validatedContents;
+ jint width;
+ jint height;
+private:
+ ::java::awt::image::VolatileImage * frontBuffer;
+public: // actually package-private
+ ::java::awt::Component * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component$BltBufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/Component$FlipBufferStrategy.h b/gcc-4.8/libjava/java/awt/Component$FlipBufferStrategy.h
new file mode 100644
index 000000000..654cfd29a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component$FlipBufferStrategy.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component$FlipBufferStrategy__
+#define __java_awt_Component$FlipBufferStrategy__
+
+#pragma interface
+
+#include <java/awt/image/BufferStrategy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Component;
+ class Component$FlipBufferStrategy;
+ class Graphics;
+ class Image;
+ namespace image
+ {
+ class VolatileImage;
+ }
+ }
+ }
+}
+
+class java::awt::Component$FlipBufferStrategy : public ::java::awt::image::BufferStrategy
+{
+
+public: // actually protected
+ Component$FlipBufferStrategy(::java::awt::Component *, jint, ::java::awt::BufferCapabilities *);
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *);
+ virtual ::java::awt::Image * getBackBuffer();
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *);
+ virtual void destroyBuffers();
+public:
+ virtual ::java::awt::BufferCapabilities * getCapabilities();
+ virtual ::java::awt::Graphics * getDrawGraphics();
+public: // actually protected
+ virtual void revalidate();
+public:
+ virtual jboolean contentsLost();
+ virtual jboolean contentsRestored();
+ virtual void show();
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::awt::image::BufferStrategy)))) numBuffers;
+ ::java::awt::BufferCapabilities * caps;
+ ::java::awt::Image * drawBuffer;
+ ::java::awt::image::VolatileImage * drawVBuffer;
+ jboolean validatedContents;
+private:
+ jint width;
+ jint height;
+public: // actually package-private
+ ::java::awt::Component * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component$FlipBufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/Component$HeavyweightInLightweightListener.h b/gcc-4.8/libjava/java/awt/Component$HeavyweightInLightweightListener.h
new file mode 100644
index 000000000..571b22dfa
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component$HeavyweightInLightweightListener.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component$HeavyweightInLightweightListener__
+#define __java_awt_Component$HeavyweightInLightweightListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Component$HeavyweightInLightweightListener;
+ class Container;
+ namespace event
+ {
+ class ComponentEvent;
+ }
+ }
+ }
+}
+
+class java::awt::Component$HeavyweightInLightweightListener : public ::java::lang::Object
+{
+
+public:
+ Component$HeavyweightInLightweightListener(::java::awt::Component *, ::java::awt::Container *);
+ virtual void componentResized(::java::awt::event::ComponentEvent *);
+ virtual void componentMoved(::java::awt::event::ComponentEvent *);
+ virtual void componentShown(::java::awt::event::ComponentEvent *);
+ virtual void componentHidden(::java::awt::event::ComponentEvent *);
+public: // actually package-private
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component$HeavyweightInLightweightListener__
diff --git a/gcc-4.8/libjava/java/awt/Component.h b/gcc-4.8/libjava/java/awt/Component.h
new file mode 100644
index 000000000..23edfa77e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Component.h
@@ -0,0 +1,438 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Component__
+#define __java_awt_Component__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Color;
+ class Component;
+ class ComponentOrientation;
+ class Container;
+ class Cursor;
+ class Dimension;
+ class Event;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class ImageCapabilities;
+ class MenuComponent;
+ class Point;
+ class PopupMenu;
+ class Rectangle;
+ class Toolkit;
+ namespace dnd
+ {
+ class DropTarget;
+ }
+ namespace event
+ {
+ class ComponentEvent;
+ class ComponentListener;
+ class FocusEvent;
+ class FocusListener;
+ class HierarchyBoundsListener;
+ class HierarchyEvent;
+ class HierarchyListener;
+ class InputMethodEvent;
+ class InputMethodListener;
+ class KeyEvent;
+ class KeyListener;
+ class MouseEvent;
+ class MouseListener;
+ class MouseMotionListener;
+ class MouseWheelEvent;
+ class MouseWheelListener;
+ }
+ namespace im
+ {
+ class InputContext;
+ class InputMethodRequests;
+ }
+ namespace image
+ {
+ class BufferStrategy;
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ComponentPeer;
+ }
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Component : public ::java::lang::Object
+{
+
+public: // actually protected
+ Component();
+public:
+ virtual ::java::lang::String * getName();
+ virtual void setName(::java::lang::String *);
+ virtual ::java::awt::Container * getParent();
+ virtual ::java::awt::peer::ComponentPeer * getPeer();
+ virtual void setDropTarget(::java::awt::dnd::DropTarget *);
+ virtual ::java::awt::dnd::DropTarget * getDropTarget();
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration();
+ virtual ::java::lang::Object * getTreeLock();
+ virtual ::java::awt::Toolkit * getToolkit();
+ virtual jboolean isValid();
+ virtual jboolean isDisplayable();
+ virtual jboolean isVisible();
+ virtual jboolean isShowing();
+ virtual jboolean isEnabled();
+ virtual void setEnabled(jboolean);
+ virtual void enable();
+ virtual void enable(jboolean);
+ virtual void disable();
+ virtual jboolean isDoubleBuffered();
+ virtual void enableInputMethods(jboolean);
+ virtual void setVisible(jboolean);
+ virtual void show();
+ virtual void show(jboolean);
+ virtual void hide();
+ virtual ::java::awt::Color * getForeground();
+ virtual void setForeground(::java::awt::Color *);
+ virtual jboolean isForegroundSet();
+ virtual ::java::awt::Color * getBackground();
+ virtual void setBackground(::java::awt::Color *);
+ virtual jboolean isBackgroundSet();
+ virtual ::java::awt::Font * getFont();
+private:
+ ::java::awt::Font * getFontImpl();
+public:
+ virtual void setFont(::java::awt::Font *);
+ virtual jboolean isFontSet();
+ virtual ::java::util::Locale * getLocale();
+ virtual void setLocale(::java::util::Locale *);
+ virtual ::java::awt::image::ColorModel * getColorModel();
+ virtual ::java::awt::Point * getLocation();
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual ::java::awt::Point * location();
+ virtual void setLocation(jint, jint);
+ virtual void move(jint, jint);
+ virtual void setLocation(::java::awt::Point *);
+ virtual ::java::awt::Dimension * getSize();
+ virtual ::java::awt::Dimension * size();
+ virtual void setSize(jint, jint);
+ virtual void resize(jint, jint);
+ virtual void setSize(::java::awt::Dimension *);
+ virtual void resize(::java::awt::Dimension *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::Rectangle * bounds();
+ virtual void setBounds(jint, jint, jint, jint);
+ virtual void reshape(jint, jint, jint, jint);
+public: // actually package-private
+ virtual void notifyReshape(jboolean, jboolean);
+public:
+ virtual void setBounds(::java::awt::Rectangle *);
+ virtual jint getX();
+ virtual jint getY();
+ virtual jint getWidth();
+ virtual jint getHeight();
+ virtual ::java::awt::Rectangle * getBounds(::java::awt::Rectangle *);
+ virtual ::java::awt::Dimension * getSize(::java::awt::Dimension *);
+ virtual ::java::awt::Point * getLocation(::java::awt::Point *);
+ virtual jboolean isOpaque();
+ virtual jboolean isLightweight();
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual void setPreferredSize(::java::awt::Dimension *);
+ virtual jboolean isPreferredSizeSet();
+ virtual ::java::awt::Dimension * preferredSize();
+public: // actually package-private
+ virtual ::java::awt::Dimension * preferredSizeImpl();
+public:
+ virtual ::java::awt::Dimension * getMinimumSize();
+ virtual void setMinimumSize(::java::awt::Dimension *);
+ virtual jboolean isMinimumSizeSet();
+ virtual ::java::awt::Dimension * minimumSize();
+public: // actually package-private
+ virtual ::java::awt::Dimension * minimumSizeImpl();
+public:
+ virtual ::java::awt::Dimension * getMaximumSize();
+public: // actually package-private
+ virtual ::java::awt::Dimension * maximumSizeImpl();
+public:
+ virtual void setMaximumSize(::java::awt::Dimension *);
+ virtual jboolean isMaximumSizeSet();
+ virtual jfloat getAlignmentX();
+ virtual jfloat getAlignmentY();
+ virtual void doLayout();
+ virtual void layout();
+ virtual void validate();
+ virtual void invalidate();
+ virtual ::java::awt::Graphics * getGraphics();
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *);
+ virtual void setCursor(::java::awt::Cursor *);
+ virtual ::java::awt::Cursor * getCursor();
+ virtual jboolean isCursorSet();
+ virtual void paint(::java::awt::Graphics *);
+ virtual void update(::java::awt::Graphics *);
+ virtual void paintAll(::java::awt::Graphics *);
+ virtual void repaint();
+ virtual void repaint(jlong);
+ virtual void repaint(jint, jint, jint, jint);
+ virtual void repaint(jlong, jint, jint, jint, jint);
+ virtual void print(::java::awt::Graphics *);
+ virtual void printAll(::java::awt::Graphics *);
+ virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint);
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *);
+ virtual ::java::awt::Image * createImage(jint, jint);
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint);
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint, ::java::awt::ImageCapabilities *);
+ virtual jboolean prepareImage(::java::awt::Image *, ::java::awt::image::ImageObserver *);
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *);
+ virtual jint checkImage(::java::awt::Image *, ::java::awt::image::ImageObserver *);
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *);
+ virtual void setIgnoreRepaint(jboolean);
+ virtual jboolean getIgnoreRepaint();
+ virtual jboolean contains(jint, jint);
+ virtual jboolean inside(jint, jint);
+ virtual jboolean contains(::java::awt::Point *);
+ virtual ::java::awt::Component * getComponentAt(jint, jint);
+ virtual ::java::awt::Component * locate(jint, jint);
+ virtual ::java::awt::Component * getComponentAt(::java::awt::Point *);
+ virtual void deliverEvent(::java::awt::Event *);
+ virtual void dispatchEvent(::java::awt::AWTEvent *);
+public: // actually package-private
+ static jboolean ignoreOldMouseEvents();
+public:
+ virtual jboolean postEvent(::java::awt::Event *);
+ virtual void addComponentListener(::java::awt::event::ComponentListener *);
+ virtual void removeComponentListener(::java::awt::event::ComponentListener *);
+ virtual JArray< ::java::awt::event::ComponentListener * > * getComponentListeners();
+ virtual void addFocusListener(::java::awt::event::FocusListener *);
+ virtual void removeFocusListener(::java::awt::event::FocusListener *);
+ virtual JArray< ::java::awt::event::FocusListener * > * getFocusListeners();
+ virtual void addHierarchyListener(::java::awt::event::HierarchyListener *);
+ virtual void removeHierarchyListener(::java::awt::event::HierarchyListener *);
+ virtual JArray< ::java::awt::event::HierarchyListener * > * getHierarchyListeners();
+ virtual void addHierarchyBoundsListener(::java::awt::event::HierarchyBoundsListener *);
+ virtual void removeHierarchyBoundsListener(::java::awt::event::HierarchyBoundsListener *);
+ virtual JArray< ::java::awt::event::HierarchyBoundsListener * > * getHierarchyBoundsListeners();
+public: // actually package-private
+ virtual void fireHierarchyEvent(jint, ::java::awt::Component *, ::java::awt::Container *, jlong);
+public:
+ virtual void addKeyListener(::java::awt::event::KeyListener *);
+ virtual void removeKeyListener(::java::awt::event::KeyListener *);
+ virtual JArray< ::java::awt::event::KeyListener * > * getKeyListeners();
+ virtual void addMouseListener(::java::awt::event::MouseListener *);
+ virtual void removeMouseListener(::java::awt::event::MouseListener *);
+ virtual JArray< ::java::awt::event::MouseListener * > * getMouseListeners();
+ virtual void addMouseMotionListener(::java::awt::event::MouseMotionListener *);
+ virtual void removeMouseMotionListener(::java::awt::event::MouseMotionListener *);
+ virtual JArray< ::java::awt::event::MouseMotionListener * > * getMouseMotionListeners();
+ virtual void addMouseWheelListener(::java::awt::event::MouseWheelListener *);
+ virtual void removeMouseWheelListener(::java::awt::event::MouseWheelListener *);
+ virtual JArray< ::java::awt::event::MouseWheelListener * > * getMouseWheelListeners();
+ virtual void addInputMethodListener(::java::awt::event::InputMethodListener *);
+ virtual void removeInputMethodListener(::java::awt::event::InputMethodListener *);
+ virtual JArray< ::java::awt::event::InputMethodListener * > * getInputMethodListeners();
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests();
+ virtual ::java::awt::im::InputContext * getInputContext();
+public: // actually protected
+ virtual void enableEvents(jlong);
+ virtual void disableEvents(jlong);
+ virtual ::java::awt::AWTEvent * coalesceEvents(::java::awt::AWTEvent *, ::java::awt::AWTEvent *);
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processComponentEvent(::java::awt::event::ComponentEvent *);
+ virtual void processFocusEvent(::java::awt::event::FocusEvent *);
+ virtual void processKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void processMouseEvent(::java::awt::event::MouseEvent *);
+ virtual void processMouseMotionEvent(::java::awt::event::MouseEvent *);
+ virtual void processMouseWheelEvent(::java::awt::event::MouseWheelEvent *);
+ virtual void processInputMethodEvent(::java::awt::event::InputMethodEvent *);
+ virtual void processHierarchyEvent(::java::awt::event::HierarchyEvent *);
+ virtual void processHierarchyBoundsEvent(::java::awt::event::HierarchyEvent *);
+public:
+ virtual jboolean handleEvent(::java::awt::Event *);
+ virtual jboolean mouseDown(::java::awt::Event *, jint, jint);
+ virtual jboolean mouseDrag(::java::awt::Event *, jint, jint);
+ virtual jboolean mouseUp(::java::awt::Event *, jint, jint);
+ virtual jboolean mouseMove(::java::awt::Event *, jint, jint);
+ virtual jboolean mouseEnter(::java::awt::Event *, jint, jint);
+ virtual jboolean mouseExit(::java::awt::Event *, jint, jint);
+ virtual jboolean keyDown(::java::awt::Event *, jint);
+ virtual jboolean keyUp(::java::awt::Event *, jint);
+ virtual jboolean action(::java::awt::Event *, ::java::lang::Object *);
+ virtual void addNotify();
+ virtual void removeNotify();
+ virtual jboolean gotFocus(::java::awt::Event *, ::java::lang::Object *);
+ virtual jboolean lostFocus(::java::awt::Event *, ::java::lang::Object *);
+ virtual jboolean isFocusTraversable();
+ virtual jboolean isFocusable();
+ virtual void setFocusable(jboolean);
+ virtual void setFocusTraversalKeys(jint, ::java::util::Set *);
+ virtual ::java::util::Set * getFocusTraversalKeys(jint);
+ virtual jboolean areFocusTraversalKeysSet(jint);
+ virtual void setFocusTraversalKeysEnabled(jboolean);
+ virtual jboolean getFocusTraversalKeysEnabled();
+ virtual void requestFocus();
+public: // actually protected
+ virtual jboolean requestFocus(jboolean);
+public:
+ virtual jboolean requestFocusInWindow();
+public: // actually protected
+ virtual jboolean requestFocusInWindow(jboolean);
+private:
+ jboolean requestFocusImpl(jboolean, jboolean);
+public:
+ virtual void transferFocus();
+ virtual ::java::awt::Container * getFocusCycleRootAncestor();
+ virtual jboolean isFocusCycleRoot(::java::awt::Container *);
+ virtual void nextFocus();
+ virtual void transferFocusBackward();
+ virtual void transferFocusUpCycle();
+ virtual jboolean hasFocus();
+ virtual jboolean isFocusOwner();
+ virtual void add(::java::awt::PopupMenu *);
+ virtual void remove(::java::awt::MenuComponent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual ::java::lang::String * toString();
+ virtual void list();
+ virtual void list(::java::io::PrintStream *);
+ virtual void list(::java::io::PrintStream *, jint);
+ virtual void list(::java::io::PrintWriter *);
+ virtual void list(::java::io::PrintWriter *, jint);
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners();
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(::java::lang::String *);
+public: // actually protected
+ virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void firePropertyChange(::java::lang::String *, jboolean, jboolean);
+ virtual void firePropertyChange(::java::lang::String *, jint, jint);
+public:
+ virtual void firePropertyChange(::java::lang::String *, jbyte, jbyte);
+ virtual void firePropertyChange(::java::lang::String *, jchar, jchar);
+ virtual void firePropertyChange(::java::lang::String *, jshort, jshort);
+ virtual void firePropertyChange(::java::lang::String *, jlong, jlong);
+ virtual void firePropertyChange(::java::lang::String *, jfloat, jfloat);
+ virtual void firePropertyChange(::java::lang::String *, jdouble, jdouble);
+ virtual void setComponentOrientation(::java::awt::ComponentOrientation *);
+ virtual ::java::awt::ComponentOrientation * getComponentOrientation();
+ virtual void applyComponentOrientation(::java::awt::ComponentOrientation *);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+ virtual void setPeer(::java::awt::peer::ComponentPeer *);
+ static ::java::awt::Event * translateEvent(::java::awt::AWTEvent *);
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+ virtual jboolean eventTypeEnabled(jint);
+ virtual jboolean isHierarchyVisible();
+public:
+ virtual ::java::awt::Point * getMousePosition();
+public: // actually package-private
+ virtual ::java::awt::Point * getMousePositionHelper(jboolean);
+ virtual jboolean mouseOverComponent(::java::awt::Component *, jboolean);
+ virtual ::java::awt::Component * findNextFocusComponent(::java::awt::Component *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = -7644114512714619750LL;
+public:
+ static jfloat TOP_ALIGNMENT;
+ static jfloat CENTER_ALIGNMENT;
+ static jfloat BOTTOM_ALIGNMENT;
+ static jfloat RIGHT_ALIGNMENT;
+ static jfloat LEFT_ALIGNMENT;
+public: // actually package-private
+ static ::java::lang::Object * treeLock;
+private:
+ static ::java::awt::Dimension * DEFAULT_MAX_SIZE;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) x;
+ jint y;
+ jint width;
+ jint height;
+ ::java::awt::Color * foreground;
+ ::java::awt::Color * background;
+ ::java::awt::Font * font;
+ ::java::awt::Font * peerFont;
+ ::java::awt::Cursor * cursor;
+ ::java::util::Locale * locale;
+ jboolean ignoreRepaint;
+ jboolean visible;
+ jboolean enabled;
+ jboolean valid;
+ ::java::awt::dnd::DropTarget * dropTarget;
+ ::java::util::Vector * popups;
+ ::java::lang::String * name;
+ jboolean nameExplicitlySet;
+ jboolean focusable;
+ jint isFocusTraversableOverridden;
+ JArray< ::java::util::Set * > * focusTraversalKeys;
+ jboolean focusTraversalKeysEnabled;
+ ::java::awt::Dimension * minSize;
+ jboolean minSizeSet;
+ ::java::awt::Dimension * maxSize;
+ jboolean maxSizeSet;
+ ::java::awt::Dimension * prefSize;
+ jboolean prefSizeSet;
+ jboolean newEventsOnly;
+ jlong eventMask;
+ ::java::beans::PropertyChangeSupport * changeSupport;
+ jboolean isPacked;
+ jint componentSerializedDataVersion;
+ ::javax::accessibility::AccessibleContext * accessibleContext;
+ ::java::awt::event::ComponentListener * componentListener;
+ ::java::awt::event::FocusListener * focusListener;
+ ::java::awt::event::KeyListener * keyListener;
+ ::java::awt::event::MouseListener * mouseListener;
+ ::java::awt::event::MouseMotionListener * mouseMotionListener;
+ ::java::awt::event::MouseWheelListener * mouseWheelListener;
+ ::java::awt::event::InputMethodListener * inputMethodListener;
+ ::java::awt::event::HierarchyListener * hierarchyListener;
+ ::java::awt::event::HierarchyBoundsListener * hierarchyBoundsListener;
+ ::java::awt::Container * parent;
+ ::java::awt::peer::ComponentPeer * peer;
+ ::java::awt::ComponentOrientation * componentOrientation;
+ ::java::awt::GraphicsConfiguration * graphicsConfig;
+ ::java::awt::image::BufferStrategy * bufferStrategy;
+ jint numHierarchyListeners;
+ jint numHierarchyBoundsListeners;
+private:
+ ::java::awt::event::FocusEvent * pendingFocusRequest;
+ static jboolean incrementalDraw;
+ static ::java::lang::Long * redrawRate;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Component__
diff --git a/gcc-4.8/libjava/java/awt/ComponentOrientation.h b/gcc-4.8/libjava/java/awt/ComponentOrientation.h
new file mode 100644
index 000000000..fe3ef9c17
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ComponentOrientation.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ComponentOrientation__
+#define __java_awt_ComponentOrientation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ComponentOrientation;
+ }
+ }
+}
+
+class java::awt::ComponentOrientation : public ::java::lang::Object
+{
+
+ ComponentOrientation(jint);
+public:
+ jboolean isHorizontal();
+ jboolean isLeftToRight();
+ static ::java::awt::ComponentOrientation * getOrientation(::java::util::Locale *);
+ static ::java::awt::ComponentOrientation * getOrientation(::java::util::ResourceBundle *);
+private:
+ static const jlong serialVersionUID = -4113291392143563828LL;
+ static const jint UNKNOWN_ID = 1;
+ static const jint HORIZONTAL_ID = 2;
+ static const jint LEFT_TO_RIGHT_ID = 4;
+public:
+ static ::java::awt::ComponentOrientation * LEFT_TO_RIGHT;
+ static ::java::awt::ComponentOrientation * RIGHT_TO_LEFT;
+ static ::java::awt::ComponentOrientation * UNKNOWN;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) orientation;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ComponentOrientation__
diff --git a/gcc-4.8/libjava/java/awt/Composite.h b/gcc-4.8/libjava/java/awt/Composite.h
new file mode 100644
index 000000000..1eed4bcae
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Composite.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Composite__
+#define __java_awt_Composite__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Composite;
+ class CompositeContext;
+ class RenderingHints;
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::Composite : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::CompositeContext * createContext(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::RenderingHints *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_Composite__
diff --git a/gcc-4.8/libjava/java/awt/CompositeContext.h b/gcc-4.8/libjava/java/awt/CompositeContext.h
new file mode 100644
index 000000000..83195ab8b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/CompositeContext.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_CompositeContext__
+#define __java_awt_CompositeContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class CompositeContext;
+ namespace image
+ {
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::CompositeContext : public ::java::lang::Object
+{
+
+public:
+ virtual void dispose() = 0;
+ virtual void compose(::java::awt::image::Raster *, ::java::awt::image::Raster *, ::java::awt::image::WritableRaster *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_CompositeContext__
diff --git a/gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h b/gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h
new file mode 100644
index 000000000..ae8aa684f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$AccessibleAWTContainer$AccessibleContainerHandler__
+#define __java_awt_Container$AccessibleAWTContainer$AccessibleContainerHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Container$AccessibleAWTContainer;
+ class Container$AccessibleAWTContainer$AccessibleContainerHandler;
+ namespace event
+ {
+ class ContainerEvent;
+ }
+ }
+ }
+}
+
+class java::awt::Container$AccessibleAWTContainer$AccessibleContainerHandler : public ::java::lang::Object
+{
+
+public: // actually protected
+ Container$AccessibleAWTContainer$AccessibleContainerHandler(::java::awt::Container$AccessibleAWTContainer *);
+public:
+ virtual void componentAdded(::java::awt::event::ContainerEvent *);
+ virtual void componentRemoved(::java::awt::event::ContainerEvent *);
+public: // actually package-private
+ ::java::awt::Container$AccessibleAWTContainer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$AccessibleAWTContainer$AccessibleContainerHandler__
diff --git a/gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer.h b/gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer.h
new file mode 100644
index 000000000..fe132635d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$AccessibleAWTContainer.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$AccessibleAWTContainer__
+#define __java_awt_Container$AccessibleAWTContainer__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Container;
+ class Container$AccessibleAWTContainer;
+ class Point;
+ namespace event
+ {
+ class ContainerListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class Accessible;
+ }
+ }
+}
+
+class java::awt::Container$AccessibleAWTContainer : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public: // actually protected
+ Container$AccessibleAWTContainer(::java::awt::Container *);
+public:
+ virtual jint getAccessibleChildrenCount();
+ virtual ::javax::accessibility::Accessible * getAccessibleChild(jint);
+ virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *);
+private:
+ static const jlong serialVersionUID = 5081320404842566097LL;
+public: // actually protected
+ ::java::awt::event::ContainerListener * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) accessibleContainerHandler;
+public: // actually package-private
+ ::java::awt::Container * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$AccessibleAWTContainer__
diff --git a/gcc-4.8/libjava/java/awt/Container$GfxPaintAllVisitor.h b/gcc-4.8/libjava/java/awt/Container$GfxPaintAllVisitor.h
new file mode 100644
index 000000000..cd3e68e89
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$GfxPaintAllVisitor.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$GfxPaintAllVisitor__
+#define __java_awt_Container$GfxPaintAllVisitor__
+
+#pragma interface
+
+#include <java/awt/Container$GfxVisitor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container$GfxPaintAllVisitor;
+ class Container$GfxVisitor;
+ class Graphics;
+ }
+ }
+}
+
+class java::awt::Container$GfxPaintAllVisitor : public ::java::awt::Container$GfxVisitor
+{
+
+public: // actually package-private
+ Container$GfxPaintAllVisitor();
+public:
+ virtual void visit(::java::awt::Component *, ::java::awt::Graphics *);
+ static ::java::awt::Container$GfxVisitor * INSTANCE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$GfxPaintAllVisitor__
diff --git a/gcc-4.8/libjava/java/awt/Container$GfxPaintVisitor.h b/gcc-4.8/libjava/java/awt/Container$GfxPaintVisitor.h
new file mode 100644
index 000000000..c75ddd1a3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$GfxPaintVisitor.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$GfxPaintVisitor__
+#define __java_awt_Container$GfxPaintVisitor__
+
+#pragma interface
+
+#include <java/awt/Container$GfxVisitor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container$GfxPaintVisitor;
+ class Container$GfxVisitor;
+ class Graphics;
+ }
+ }
+}
+
+class java::awt::Container$GfxPaintVisitor : public ::java::awt::Container$GfxVisitor
+{
+
+public: // actually package-private
+ Container$GfxPaintVisitor();
+public:
+ virtual void visit(::java::awt::Component *, ::java::awt::Graphics *);
+ static ::java::awt::Container$GfxVisitor * INSTANCE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$GfxPaintVisitor__
diff --git a/gcc-4.8/libjava/java/awt/Container$GfxPrintAllVisitor.h b/gcc-4.8/libjava/java/awt/Container$GfxPrintAllVisitor.h
new file mode 100644
index 000000000..acc4a8ba4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$GfxPrintAllVisitor.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$GfxPrintAllVisitor__
+#define __java_awt_Container$GfxPrintAllVisitor__
+
+#pragma interface
+
+#include <java/awt/Container$GfxVisitor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container$GfxPrintAllVisitor;
+ class Container$GfxVisitor;
+ class Graphics;
+ }
+ }
+}
+
+class java::awt::Container$GfxPrintAllVisitor : public ::java::awt::Container$GfxVisitor
+{
+
+public: // actually package-private
+ Container$GfxPrintAllVisitor();
+public:
+ virtual void visit(::java::awt::Component *, ::java::awt::Graphics *);
+ static ::java::awt::Container$GfxVisitor * INSTANCE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$GfxPrintAllVisitor__
diff --git a/gcc-4.8/libjava/java/awt/Container$GfxPrintVisitor.h b/gcc-4.8/libjava/java/awt/Container$GfxPrintVisitor.h
new file mode 100644
index 000000000..557530ba8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$GfxPrintVisitor.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$GfxPrintVisitor__
+#define __java_awt_Container$GfxPrintVisitor__
+
+#pragma interface
+
+#include <java/awt/Container$GfxVisitor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container$GfxPrintVisitor;
+ class Container$GfxVisitor;
+ class Graphics;
+ }
+ }
+}
+
+class java::awt::Container$GfxPrintVisitor : public ::java::awt::Container$GfxVisitor
+{
+
+public: // actually package-private
+ Container$GfxPrintVisitor();
+public:
+ virtual void visit(::java::awt::Component *, ::java::awt::Graphics *);
+ static ::java::awt::Container$GfxVisitor * INSTANCE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$GfxPrintVisitor__
diff --git a/gcc-4.8/libjava/java/awt/Container$GfxVisitor.h b/gcc-4.8/libjava/java/awt/Container$GfxVisitor.h
new file mode 100644
index 000000000..97322e8d5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container$GfxVisitor.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container$GfxVisitor__
+#define __java_awt_Container$GfxVisitor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container$GfxVisitor;
+ class Graphics;
+ }
+ }
+}
+
+class java::awt::Container$GfxVisitor : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Container$GfxVisitor();
+public:
+ virtual void visit(::java::awt::Component *, ::java::awt::Graphics *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container$GfxVisitor__
diff --git a/gcc-4.8/libjava/java/awt/Container.h b/gcc-4.8/libjava/java/awt/Container.h
new file mode 100644
index 000000000..3ea162aae
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Container.h
@@ -0,0 +1,168 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Container__
+#define __java_awt_Container__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Component;
+ class ComponentOrientation;
+ class Container;
+ class Container$GfxVisitor;
+ class Dimension;
+ class Event;
+ class FocusTraversalPolicy;
+ class Font;
+ class Graphics;
+ class Insets;
+ class LayoutManager;
+ class Point;
+ namespace event
+ {
+ class ContainerEvent;
+ class ContainerListener;
+ }
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ }
+ }
+}
+
+class java::awt::Container : public ::java::awt::Component
+{
+
+public:
+ Container();
+ virtual jint getComponentCount();
+ virtual jint countComponents();
+ virtual ::java::awt::Component * getComponent(jint);
+ virtual JArray< ::java::awt::Component * > * getComponents();
+ virtual ::java::awt::Insets * getInsets();
+ virtual ::java::awt::Insets * insets();
+ virtual ::java::awt::Component * add(::java::awt::Component *);
+ virtual ::java::awt::Component * add(::java::lang::String *, ::java::awt::Component *);
+ virtual ::java::awt::Component * add(::java::awt::Component *, jint);
+ virtual void add(::java::awt::Component *, ::java::lang::Object *);
+ virtual void add(::java::awt::Component *, ::java::lang::Object *, jint);
+public: // actually protected
+ virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint);
+public:
+ virtual void remove(jint);
+ virtual void remove(::java::awt::Component *);
+ virtual void removeAll();
+ virtual ::java::awt::LayoutManager * getLayout();
+ virtual void setLayout(::java::awt::LayoutManager *);
+ virtual void doLayout();
+ virtual void layout();
+ virtual void invalidate();
+ virtual void validate();
+private:
+ void invalidateTree();
+public: // actually protected
+ virtual void validateTree();
+public:
+ virtual void setFont(::java::awt::Font *);
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual ::java::awt::Dimension * preferredSize();
+ virtual ::java::awt::Dimension * getMinimumSize();
+ virtual ::java::awt::Dimension * minimumSize();
+ virtual ::java::awt::Dimension * getMaximumSize();
+ virtual jfloat getAlignmentX();
+ virtual jfloat getAlignmentY();
+ virtual void paint(::java::awt::Graphics *);
+ virtual void update(::java::awt::Graphics *);
+ virtual void print(::java::awt::Graphics *);
+ virtual void paintComponents(::java::awt::Graphics *);
+ virtual void printComponents(::java::awt::Graphics *);
+ virtual void addContainerListener(::java::awt::event::ContainerListener *);
+ virtual void removeContainerListener(::java::awt::event::ContainerListener *);
+ virtual JArray< ::java::awt::event::ContainerListener * > * getContainerListeners();
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processContainerEvent(::java::awt::event::ContainerEvent *);
+public:
+ virtual void deliverEvent(::java::awt::Event *);
+ virtual ::java::awt::Component * getComponentAt(jint, jint);
+ virtual ::java::awt::Point * getMousePosition(jboolean);
+public: // actually package-private
+ virtual jboolean mouseOverComponent(::java::awt::Component *, jboolean);
+public:
+ virtual ::java::awt::Component * locate(jint, jint);
+ virtual ::java::awt::Component * getComponentAt(::java::awt::Point *);
+ virtual ::java::awt::Component * findComponentAt(jint, jint);
+ virtual ::java::awt::Component * findComponentAt(::java::awt::Point *);
+ virtual void addNotify();
+ virtual void removeNotify();
+ virtual jboolean isAncestorOf(::java::awt::Component *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual void list(::java::io::PrintStream *, jint);
+ virtual void list(::java::io::PrintWriter *, jint);
+ virtual void setFocusTraversalKeys(jint, ::java::util::Set *);
+ virtual ::java::util::Set * getFocusTraversalKeys(jint);
+ virtual jboolean areFocusTraversalKeysSet(jint);
+ virtual jboolean isFocusCycleRoot(::java::awt::Container *);
+ virtual void setFocusTraversalPolicy(::java::awt::FocusTraversalPolicy *);
+ virtual ::java::awt::FocusTraversalPolicy * getFocusTraversalPolicy();
+ virtual jboolean isFocusTraversalPolicySet();
+ virtual void setFocusCycleRoot(jboolean);
+ virtual jboolean isFocusTraversalPolicyProvider();
+ virtual void setFocusTraversalPolicyProvider(jboolean);
+ virtual jboolean isFocusCycleRoot();
+ virtual void transferFocusDownCycle();
+ virtual void applyComponentOrientation(::java::awt::ComponentOrientation *);
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void setComponentZOrder(::java::awt::Component *, jint);
+ virtual jint getComponentZOrder(::java::awt::Component *);
+private:
+ void visitChildren(::java::awt::Graphics *, ::java::awt::Container$GfxVisitor *, jboolean);
+ void visitChild(::java::awt::Graphics *, ::java::awt::Container$GfxVisitor *, ::java::awt::Component *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+ virtual void dispatchNoLightweight(::java::awt::AWTEvent *);
+ virtual jboolean eventTypeEnabled(jint);
+ virtual ::java::awt::Component * findNextFocusComponent(::java::awt::Component *);
+ virtual void fireHierarchyEvent(jint, ::java::awt::Component *, ::java::awt::Container *, jlong);
+ virtual void updateHierarchyListenerCount(jlong, jint);
+ virtual void notifyReshape(jboolean, jboolean);
+private:
+ void addNotifyContainerChildren();
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = 4613797578919906343LL;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::awt::Component)))) ncomponents;
+ JArray< ::java::awt::Component * > * component;
+ ::java::awt::LayoutManager * layoutMgr;
+ jboolean focusCycleRoot;
+private:
+ jboolean focusTraversalPolicyProvider;
+public: // actually package-private
+ jint containerSerializedDataVersion;
+ ::java::awt::event::ContainerListener * containerListener;
+private:
+ ::java::awt::FocusTraversalPolicy * focusTraversalPolicy;
+public: // actually package-private
+ JArray< ::java::util::Set * > * focusTraversalKeys;
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Container__
diff --git a/gcc-4.8/libjava/java/awt/ContainerOrderFocusTraversalPolicy.h b/gcc-4.8/libjava/java/awt/ContainerOrderFocusTraversalPolicy.h
new file mode 100644
index 000000000..8f0e89f9b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ContainerOrderFocusTraversalPolicy.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ContainerOrderFocusTraversalPolicy__
+#define __java_awt_ContainerOrderFocusTraversalPolicy__
+
+#pragma interface
+
+#include <java/awt/FocusTraversalPolicy.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class ContainerOrderFocusTraversalPolicy;
+ }
+ }
+}
+
+class java::awt::ContainerOrderFocusTraversalPolicy : public ::java::awt::FocusTraversalPolicy
+{
+
+public:
+ ContainerOrderFocusTraversalPolicy();
+ virtual ::java::awt::Component * getComponentAfter(::java::awt::Container *, ::java::awt::Component *);
+private:
+ ::java::awt::Component * getNextAvailableComponent(JArray< ::java::awt::Component * > *, jint, jint);
+public: // actually package-private
+ virtual ::java::awt::Component * getPrevAvailableComponent(JArray< ::java::awt::Component * > *, jint, jint);
+public:
+ virtual ::java::awt::Component * getComponentBefore(::java::awt::Container *, ::java::awt::Component *);
+ virtual ::java::awt::Component * getFirstComponent(::java::awt::Container *);
+ virtual ::java::awt::Component * getLastComponent(::java::awt::Container *);
+ virtual ::java::awt::Component * getDefaultComponent(::java::awt::Container *);
+ virtual void setImplicitDownCycleTraversal(jboolean);
+ virtual jboolean getImplicitDownCycleTraversal();
+public: // actually protected
+ virtual jboolean accept(::java::awt::Component *);
+public: // actually package-private
+ static const jlong serialVersionUID = 486933713763926351LL;
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::awt::FocusTraversalPolicy)))) implicitDownCycleTraversal;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ContainerOrderFocusTraversalPolicy__
diff --git a/gcc-4.8/libjava/java/awt/Cursor.h b/gcc-4.8/libjava/java/awt/Cursor.h
new file mode 100644
index 000000000..3d50e6345
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Cursor.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Cursor__
+#define __java_awt_Cursor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Cursor;
+ }
+ }
+}
+
+class java::awt::Cursor : public ::java::lang::Object
+{
+
+public:
+ Cursor(jint);
+public: // actually protected
+ Cursor(::java::lang::String *);
+public:
+ static ::java::awt::Cursor * getPredefinedCursor(jint);
+ static ::java::awt::Cursor * getSystemCustomCursor(::java::lang::String *);
+ static ::java::awt::Cursor * getDefaultCursor();
+ virtual jint getType();
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = 8028237497568985504LL;
+public:
+ static const jint DEFAULT_CURSOR = 0;
+ static const jint CROSSHAIR_CURSOR = 1;
+ static const jint TEXT_CURSOR = 2;
+ static const jint WAIT_CURSOR = 3;
+ static const jint SW_RESIZE_CURSOR = 4;
+ static const jint SE_RESIZE_CURSOR = 5;
+ static const jint NW_RESIZE_CURSOR = 6;
+ static const jint NE_RESIZE_CURSOR = 7;
+ static const jint N_RESIZE_CURSOR = 8;
+ static const jint S_RESIZE_CURSOR = 9;
+ static const jint W_RESIZE_CURSOR = 10;
+ static const jint E_RESIZE_CURSOR = 11;
+ static const jint HAND_CURSOR = 12;
+ static const jint MOVE_CURSOR = 13;
+private:
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static const jint CUSTOM_CURSOR = -1;
+private:
+ static const jint PREDEFINED_COUNT = 14;
+public: // actually protected
+ static JArray< ::java::awt::Cursor * > * predefined;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+public: // actually package-private
+ jint type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Cursor__
diff --git a/gcc-4.8/libjava/java/awt/DefaultFocusTraversalPolicy.h b/gcc-4.8/libjava/java/awt/DefaultFocusTraversalPolicy.h
new file mode 100644
index 000000000..d6f22987d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/DefaultFocusTraversalPolicy.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_DefaultFocusTraversalPolicy__
+#define __java_awt_DefaultFocusTraversalPolicy__
+
+#pragma interface
+
+#include <java/awt/ContainerOrderFocusTraversalPolicy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class DefaultFocusTraversalPolicy;
+ }
+ }
+}
+
+class java::awt::DefaultFocusTraversalPolicy : public ::java::awt::ContainerOrderFocusTraversalPolicy
+{
+
+public:
+ DefaultFocusTraversalPolicy();
+public: // actually protected
+ virtual jboolean accept(::java::awt::Component *);
+private:
+ static const jlong serialVersionUID = 8876966522510157497LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_DefaultFocusTraversalPolicy__
diff --git a/gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h b/gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h
new file mode 100644
index 000000000..7061d499e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_DefaultKeyboardFocusManager$EventDelayRequest__
+#define __java_awt_DefaultKeyboardFocusManager$EventDelayRequest__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class DefaultKeyboardFocusManager;
+ class DefaultKeyboardFocusManager$EventDelayRequest;
+ namespace event
+ {
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::DefaultKeyboardFocusManager$EventDelayRequest : public ::java::lang::Object
+{
+
+public:
+ DefaultKeyboardFocusManager$EventDelayRequest(::java::awt::DefaultKeyboardFocusManager *, jlong, ::java::awt::Component *);
+ virtual jint compareTo(::java::lang::Object *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual void enqueueEvent(::java::awt::event::KeyEvent *);
+ virtual void dispatchEvents();
+ virtual void discardEvents();
+private:
+ ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enqueuedKeyEvents;
+public:
+ jlong timestamp;
+ ::java::awt::Component * focusedComp;
+public: // actually package-private
+ ::java::awt::DefaultKeyboardFocusManager * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_DefaultKeyboardFocusManager$EventDelayRequest__
diff --git a/gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager.h b/gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager.h
new file mode 100644
index 000000000..ce9e4467c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/DefaultKeyboardFocusManager.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_DefaultKeyboardFocusManager__
+#define __java_awt_DefaultKeyboardFocusManager__
+
+#pragma interface
+
+#include <java/awt/KeyboardFocusManager.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class AWTKeyStroke;
+ class Component;
+ class Container;
+ class DefaultKeyboardFocusManager;
+ namespace event
+ {
+ class FocusEvent;
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::DefaultKeyboardFocusManager : public ::java::awt::KeyboardFocusManager
+{
+
+public:
+ DefaultKeyboardFocusManager();
+ virtual jboolean dispatchEvent(::java::awt::AWTEvent *);
+private:
+ jboolean handleFocusGained(::java::awt::event::FocusEvent *);
+ jboolean handleFocusLost(::java::awt::event::FocusEvent *);
+ jboolean enqueueKeyEvent(::java::awt::event::KeyEvent *);
+public:
+ virtual jboolean dispatchKeyEvent(::java::awt::event::KeyEvent *);
+ virtual jboolean postProcessKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void processKeyEvent(::java::awt::Component *, ::java::awt::event::KeyEvent *);
+public: // actually protected
+ virtual void enqueueKeyEvents(jlong, ::java::awt::Component *);
+ virtual void dequeueKeyEvents(jlong, ::java::awt::Component *);
+ virtual void discardKeyEvents(::java::awt::Component *);
+public:
+ virtual void focusPreviousComponent(::java::awt::Component *);
+ virtual void focusNextComponent(::java::awt::Component *);
+ virtual void upFocusCycle(::java::awt::Component *);
+ virtual void downFocusCycle(::java::awt::Container *);
+private:
+ ::java::awt::AWTKeyStroke * __attribute__((aligned(__alignof__( ::java::awt::KeyboardFocusManager)))) waitForKeyStroke;
+ ::java::util::SortedSet * delayRequests;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_DefaultKeyboardFocusManager__
diff --git a/gcc-4.8/libjava/java/awt/Desktop$Action.h b/gcc-4.8/libjava/java/awt/Desktop$Action.h
new file mode 100644
index 000000000..f862b4dc0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Desktop$Action.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Desktop$Action__
+#define __java_awt_Desktop$Action__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Desktop$Action;
+ }
+ }
+}
+
+class java::awt::Desktop$Action : public ::java::lang::Enum
+{
+
+ Desktop$Action(::java::lang::String *, jint);
+public:
+ static JArray< ::java::awt::Desktop$Action * > * values();
+ static ::java::awt::Desktop$Action * valueOf(::java::lang::String *);
+ static ::java::awt::Desktop$Action * BROWSE;
+ static ::java::awt::Desktop$Action * EDIT;
+ static ::java::awt::Desktop$Action * MAIL;
+ static ::java::awt::Desktop$Action * OPEN;
+ static ::java::awt::Desktop$Action * PRINT;
+private:
+ static JArray< ::java::awt::Desktop$Action * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Desktop$Action__
diff --git a/gcc-4.8/libjava/java/awt/Desktop.h b/gcc-4.8/libjava/java/awt/Desktop.h
new file mode 100644
index 000000000..b50a063ff
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Desktop.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Desktop__
+#define __java_awt_Desktop__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Desktop;
+ class Desktop$Action;
+ namespace peer
+ {
+ class DesktopPeer;
+ }
+ }
+ namespace net
+ {
+ class URI;
+ }
+ }
+}
+
+class java::awt::Desktop : public ::java::lang::Object
+{
+
+ Desktop();
+public:
+ static ::java::awt::Desktop * getDesktop();
+ static jboolean isDesktopSupported();
+ virtual jboolean isSupported(::java::awt::Desktop$Action *);
+ virtual void browse(::java::net::URI *);
+ virtual void edit(::java::io::File *);
+ virtual void mail();
+ virtual void mail(::java::net::URI *);
+ virtual void open(::java::io::File *);
+ virtual void print(::java::io::File *);
+private:
+ ::java::awt::peer::DesktopPeer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) peer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Desktop__
diff --git a/gcc-4.8/libjava/java/awt/Dialog$AccessibleAWTDialog.h b/gcc-4.8/libjava/java/awt/Dialog$AccessibleAWTDialog.h
new file mode 100644
index 000000000..b8bf577db
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Dialog$AccessibleAWTDialog.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$AccessibleAWTDialog__
+#define __java_awt_Dialog$AccessibleAWTDialog__
+
+#pragma interface
+
+#include <java/awt/Window$AccessibleAWTWindow.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog;
+ class Dialog$AccessibleAWTDialog;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::Dialog$AccessibleAWTDialog : public ::java::awt::Window$AccessibleAWTWindow
+{
+
+public: // actually protected
+ Dialog$AccessibleAWTDialog(::java::awt::Dialog *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = 4837230331833941201LL;
+public: // actually package-private
+ ::java::awt::Dialog * __attribute__((aligned(__alignof__( ::java::awt::Window$AccessibleAWTWindow)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$AccessibleAWTDialog__
diff --git a/gcc-4.8/libjava/java/awt/Dialog$ModalExclusionType.h b/gcc-4.8/libjava/java/awt/Dialog$ModalExclusionType.h
new file mode 100644
index 000000000..a47a2b4ae
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Dialog$ModalExclusionType.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$ModalExclusionType__
+#define __java_awt_Dialog$ModalExclusionType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog$ModalExclusionType;
+ }
+ }
+}
+
+class java::awt::Dialog$ModalExclusionType : public ::java::lang::Enum
+{
+
+ Dialog$ModalExclusionType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::awt::Dialog$ModalExclusionType * > * values();
+ static ::java::awt::Dialog$ModalExclusionType * valueOf(::java::lang::String *);
+ static ::java::awt::Dialog$ModalExclusionType * APPLICATION_EXCLUDE;
+ static ::java::awt::Dialog$ModalExclusionType * NO_EXCLUDE;
+ static ::java::awt::Dialog$ModalExclusionType * TOOLKIT_EXCLUDE;
+private:
+ static JArray< ::java::awt::Dialog$ModalExclusionType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$ModalExclusionType__
diff --git a/gcc-4.8/libjava/java/awt/Dialog$ModalityType.h b/gcc-4.8/libjava/java/awt/Dialog$ModalityType.h
new file mode 100644
index 000000000..e7a3b736e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Dialog$ModalityType.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$ModalityType__
+#define __java_awt_Dialog$ModalityType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog$ModalityType;
+ }
+ }
+}
+
+class java::awt::Dialog$ModalityType : public ::java::lang::Enum
+{
+
+ Dialog$ModalityType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::awt::Dialog$ModalityType * > * values();
+ static ::java::awt::Dialog$ModalityType * valueOf(::java::lang::String *);
+ static ::java::awt::Dialog$ModalityType * APPLICATION_MODAL;
+ static ::java::awt::Dialog$ModalityType * DOCUMENT_MODAL;
+ static ::java::awt::Dialog$ModalityType * MODELESS;
+ static ::java::awt::Dialog$ModalityType * TOOLKIT_MODAL;
+private:
+ static JArray< ::java::awt::Dialog$ModalityType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$ModalityType__
diff --git a/gcc-4.8/libjava/java/awt/Dialog.h b/gcc-4.8/libjava/java/awt/Dialog.h
new file mode 100644
index 000000000..b1d339157
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Dialog.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog__
+#define __java_awt_Dialog__
+
+#pragma interface
+
+#include <java/awt/Window.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog;
+ class EventQueue;
+ class Frame;
+ class GraphicsConfiguration;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Dialog : public ::java::awt::Window
+{
+
+public:
+ Dialog(::java::awt::Frame *);
+ Dialog(::java::awt::Frame *, jboolean);
+ Dialog(::java::awt::Frame *, ::java::lang::String *);
+ Dialog(::java::awt::Frame *, ::java::lang::String *, jboolean);
+ Dialog(::java::awt::Frame *, ::java::lang::String *, jboolean, ::java::awt::GraphicsConfiguration *);
+ Dialog(::java::awt::Dialog *);
+ Dialog(::java::awt::Dialog *, ::java::lang::String *);
+ Dialog(::java::awt::Dialog *, ::java::lang::String *, jboolean);
+ Dialog(::java::awt::Dialog *, ::java::lang::String *, jboolean, ::java::awt::GraphicsConfiguration *);
+ virtual ::java::lang::String * getTitle();
+ virtual void setTitle(::java::lang::String *);
+ virtual jboolean isModal();
+ virtual void setModal(jboolean);
+ virtual jboolean isResizable();
+ virtual void setResizable(jboolean);
+ virtual void addNotify();
+ virtual void show();
+ virtual void hide();
+ virtual void dispose();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual jboolean isUndecorated();
+ virtual void setUndecorated(jboolean);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = 5920926903803293709LL;
+ jboolean __attribute__((aligned(__alignof__( ::java::awt::Window)))) modal;
+ jboolean resizable;
+ ::java::lang::String * title;
+ jboolean undecorated;
+ jboolean blocked;
+ ::java::awt::EventQueue * eq2;
+ static jlong next_dialog_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog__
diff --git a/gcc-4.8/libjava/java/awt/Dimension.h b/gcc-4.8/libjava/java/awt/Dimension.h
new file mode 100644
index 000000000..7722cabc5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Dimension.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dimension__
+#define __java_awt_Dimension__
+
+#pragma interface
+
+#include <java/awt/geom/Dimension2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ }
+ }
+}
+
+class java::awt::Dimension : public ::java::awt::geom::Dimension2D
+{
+
+public:
+ Dimension();
+ Dimension(::java::awt::Dimension *);
+ Dimension(jint, jint);
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual void setSize(jdouble, jdouble);
+ virtual ::java::awt::Dimension * getSize();
+ virtual void setSize(::java::awt::Dimension *);
+ virtual void setSize(jint, jint);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 4723952579491349524LL;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::awt::geom::Dimension2D)))) width;
+ jint height;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dimension__
diff --git a/gcc-4.8/libjava/java/awt/DisplayMode.h b/gcc-4.8/libjava/java/awt/DisplayMode.h
new file mode 100644
index 000000000..26561ca0c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/DisplayMode.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_DisplayMode__
+#define __java_awt_DisplayMode__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class DisplayMode;
+ }
+ }
+}
+
+class java::awt::DisplayMode : public ::java::lang::Object
+{
+
+public:
+ DisplayMode(jint, jint, jint, jint);
+ jint getHeight();
+ jint getWidth();
+ jint getBitDepth();
+ jint getRefreshRate();
+ jboolean equals(::java::awt::DisplayMode *);
+ jint hashCode();
+ static const jint BIT_DEPTH_MULTI = -1;
+ static const jint REFRESH_RATE_UNKNOWN = 0;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) width;
+ jint height;
+ jint bitDepth;
+ jint refreshRate;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_DisplayMode__
diff --git a/gcc-4.8/libjava/java/awt/Event.h b/gcc-4.8/libjava/java/awt/Event.h
new file mode 100644
index 000000000..a0543818d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Event.h
@@ -0,0 +1,119 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Event__
+#define __java_awt_Event__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Event;
+ }
+ }
+}
+
+class java::awt::Event : public ::java::lang::Object
+{
+
+public:
+ Event(::java::lang::Object *, jint, ::java::lang::Object *);
+ Event(::java::lang::Object *, jlong, jint, jint, jint, jint, jint);
+ Event(::java::lang::Object *, jlong, jint, jint, jint, jint, jint, ::java::lang::Object *);
+ virtual jboolean controlDown();
+ virtual jboolean metaDown();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual jboolean shiftDown();
+ virtual ::java::lang::String * toString();
+ virtual void translate(jint, jint);
+public: // actually package-private
+ static const jlong serialVersionUID = 5488922509400504703LL;
+public:
+ static const jint SHIFT_MASK = 1;
+ static const jint CTRL_MASK = 2;
+ static const jint META_MASK = 4;
+ static const jint ALT_MASK = 8;
+ static const jint ACTION_EVENT = 1001;
+ static const jint BACK_SPACE = 8;
+ static const jint CAPS_LOCK = 1022;
+ static const jint DELETE = 127;
+ static const jint DOWN = 1005;
+ static const jint END = 1001;
+ static const jint ENTER = 10;
+ static const jint ESCAPE = 27;
+ static const jint F1 = 1008;
+ static const jint F10 = 1017;
+ static const jint F11 = 1018;
+ static const jint F12 = 1019;
+ static const jint F2 = 1009;
+ static const jint F3 = 1010;
+ static const jint F4 = 1011;
+ static const jint F5 = 1012;
+ static const jint F6 = 1013;
+ static const jint F7 = 1014;
+ static const jint F8 = 1015;
+ static const jint F9 = 1016;
+ static const jint GOT_FOCUS = 1004;
+ static const jint HOME = 1000;
+ static const jint INSERT = 1025;
+ static const jint KEY_ACTION = 403;
+ static const jint KEY_ACTION_RELEASE = 404;
+ static const jint KEY_PRESS = 401;
+ static const jint KEY_RELEASE = 402;
+ static const jint LEFT = 1006;
+ static const jint LIST_DESELECT = 702;
+ static const jint LIST_SELECT = 701;
+ static const jint LOAD_FILE = 1002;
+ static const jint LOST_FOCUS = 1005;
+ static const jint MOUSE_DOWN = 501;
+ static const jint MOUSE_DRAG = 506;
+ static const jint MOUSE_ENTER = 504;
+ static const jint MOUSE_EXIT = 505;
+ static const jint MOUSE_MOVE = 503;
+ static const jint MOUSE_UP = 502;
+ static const jint NUM_LOCK = 1023;
+ static const jint PAUSE = 1024;
+ static const jint PGDN = 1003;
+ static const jint PGUP = 1002;
+ static const jint PRINT_SCREEN = 1020;
+ static const jint RIGHT = 1007;
+ static const jint SAVE_FILE = 1003;
+ static const jint SCROLL_ABSOLUTE = 605;
+ static const jint SCROLL_BEGIN = 606;
+ static const jint SCROLL_END = 607;
+ static const jint SCROLL_LINE_DOWN = 602;
+ static const jint SCROLL_LINE_UP = 601;
+ static const jint SCROLL_LOCK = 1021;
+ static const jint SCROLL_PAGE_DOWN = 604;
+ static const jint SCROLL_PAGE_UP = 603;
+ static const jint TAB = 9;
+ static const jint UP = 1004;
+ static const jint WINDOW_DEICONIFY = 204;
+ static const jint WINDOW_DESTROY = 201;
+ static const jint WINDOW_EXPOSE = 202;
+ static const jint WINDOW_ICONIFY = 203;
+ static const jint WINDOW_MOVED = 205;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) arg;
+ jint clickCount;
+public: // actually package-private
+ jboolean consumed;
+public:
+ ::java::awt::Event * evt;
+ jint id;
+ jint key;
+ jint modifiers;
+ ::java::lang::Object * target;
+ jlong when;
+ jint x;
+ jint y;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Event__
diff --git a/gcc-4.8/libjava/java/awt/EventDispatchThread.h b/gcc-4.8/libjava/java/awt/EventDispatchThread.h
new file mode 100644
index 000000000..a094bdc8a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/EventDispatchThread.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_EventDispatchThread__
+#define __java_awt_EventDispatchThread__
+
+#pragma interface
+
+#include <java/lang/Thread.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class EventDispatchThread;
+ class EventQueue;
+ }
+ }
+}
+
+class java::awt::EventDispatchThread : public ::java::lang::Thread
+{
+
+public: // actually package-private
+ EventDispatchThread(::java::awt::EventQueue *);
+public:
+ virtual void run();
+private:
+ static const jint DEFAULT_PRIORITY = 6;
+ static jint dispatchThreadNum;
+ ::java::awt::EventQueue * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) queue;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_EventDispatchThread__
diff --git a/gcc-4.8/libjava/java/awt/EventQueue$Queue.h b/gcc-4.8/libjava/java/awt/EventQueue$Queue.h
new file mode 100644
index 000000000..6504a9661
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/EventQueue$Queue.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_EventQueue$Queue__
+#define __java_awt_EventQueue$Queue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class EventQueue;
+ class EventQueue$Queue;
+ }
+ }
+}
+
+class java::awt::EventQueue$Queue : public ::java::lang::Object
+{
+
+ EventQueue$Queue(::java::awt::EventQueue *);
+public: // actually package-private
+ EventQueue$Queue(::java::awt::EventQueue *, ::java::awt::EventQueue$Queue *);
+ ::java::awt::AWTEvent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queueHead;
+ ::java::awt::AWTEvent * queueTail;
+ ::java::awt::EventQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_EventQueue$Queue__
diff --git a/gcc-4.8/libjava/java/awt/EventQueue.h b/gcc-4.8/libjava/java/awt/EventQueue.h
new file mode 100644
index 000000000..71da1550e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/EventQueue.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_EventQueue__
+#define __java_awt_EventQueue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class EventDispatchThread;
+ class EventQueue;
+ class EventQueue$Queue;
+ }
+ }
+}
+
+class java::awt::EventQueue : public ::java::lang::Object
+{
+
+ jboolean isShutdown();
+public:
+ EventQueue();
+ virtual ::java::awt::AWTEvent * getNextEvent();
+private:
+ ::java::awt::AWTEvent * getNextEventImpl(jboolean);
+public:
+ virtual ::java::awt::AWTEvent * peekEvent();
+ virtual ::java::awt::AWTEvent * peekEvent(jint);
+ virtual void postEvent(::java::awt::AWTEvent *);
+private:
+ void postEventImpl(::java::awt::AWTEvent *);
+ void postEventImpl(::java::awt::AWTEvent *, jint);
+public:
+ static void invokeAndWait(::java::lang::Runnable *);
+ static void invokeLater(::java::lang::Runnable *);
+ static jboolean isDispatchThread();
+ static ::java::awt::AWTEvent * getCurrentEvent();
+ virtual void push(::java::awt::EventQueue *);
+public: // actually protected
+ virtual void pop();
+ virtual void dispatchEvent(::java::awt::AWTEvent *);
+public:
+ static jlong getMostRecentEventTime();
+private:
+ static const jint NORM_PRIORITY = 0;
+ static const jint LOW_PRIORITY = 1;
+ JArray< ::java::awt::EventQueue$Queue * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queues;
+ ::java::awt::EventQueue * next;
+ ::java::awt::EventQueue * prev;
+ ::java::awt::AWTEvent * currentEvent;
+ jlong lastWhen;
+ ::java::awt::EventDispatchThread * dispatchThread;
+ jboolean nativeLoopRunning;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_EventQueue__
diff --git a/gcc-4.8/libjava/java/awt/FileDialog.h b/gcc-4.8/libjava/java/awt/FileDialog.h
new file mode 100644
index 000000000..b64300df0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/FileDialog.h
@@ -0,0 +1,62 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_FileDialog__
+#define __java_awt_FileDialog__
+
+#pragma interface
+
+#include <java/awt/Dialog.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog;
+ class FileDialog;
+ class Frame;
+ }
+ }
+}
+
+class java::awt::FileDialog : public ::java::awt::Dialog
+{
+
+public:
+ FileDialog(::java::awt::Dialog *);
+ FileDialog(::java::awt::Dialog *, ::java::lang::String *);
+ FileDialog(::java::awt::Dialog *, ::java::lang::String *, jint);
+ FileDialog(::java::awt::Frame *);
+ FileDialog(::java::awt::Frame *, ::java::lang::String *);
+ FileDialog(::java::awt::Frame *, ::java::lang::String *, jint);
+ virtual jint getMode();
+ virtual void setMode(jint);
+ virtual ::java::lang::String * getDirectory();
+ virtual void setDirectory(::java::lang::String *);
+ virtual ::java::lang::String * getFile();
+ virtual void setFile(::java::lang::String *);
+ virtual ::java::io::FilenameFilter * getFilenameFilter();
+ virtual void setFilenameFilter(::java::io::FilenameFilter *);
+ virtual void addNotify();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ static const jint LOAD = 0;
+ static const jint SAVE = 1;
+private:
+ static const jlong serialVersionUID = 5035145889651310422LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::Dialog)))) dir;
+ ::java::lang::String * file;
+ ::java::io::FilenameFilter * filter;
+ jint mode;
+ static jlong next_file_dialog_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_FileDialog__
diff --git a/gcc-4.8/libjava/java/awt/FlowLayout.h b/gcc-4.8/libjava/java/awt/FlowLayout.h
new file mode 100644
index 000000000..202fe18bb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/FlowLayout.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_FlowLayout__
+#define __java_awt_FlowLayout__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class Dimension;
+ class FlowLayout;
+ }
+ }
+}
+
+class java::awt::FlowLayout : public ::java::lang::Object
+{
+
+public:
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *);
+ virtual jint getAlignment();
+ virtual jint getHgap();
+ virtual jint getVgap();
+ FlowLayout();
+ FlowLayout(jint);
+ FlowLayout(jint, jint, jint);
+ virtual void layoutContainer(::java::awt::Container *);
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *);
+ virtual void removeLayoutComponent(::java::awt::Component *);
+ virtual void setAlignment(jint);
+ virtual void setHgap(jint);
+ virtual void setVgap(jint);
+ virtual ::java::lang::String * toString();
+private:
+ ::java::awt::Dimension * getSize(::java::awt::Container *, jboolean);
+public:
+ static const jint LEFT = 0;
+ static const jint CENTER = 1;
+ static const jint RIGHT = 2;
+ static const jint LEADING = 3;
+ static const jint TRAILING = 4;
+private:
+ static const jlong serialVersionUID = -7262534875583282631LL;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) align;
+ jint hgap;
+ jint vgap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_FlowLayout__
diff --git a/gcc-4.8/libjava/java/awt/FocusTraversalPolicy.h b/gcc-4.8/libjava/java/awt/FocusTraversalPolicy.h
new file mode 100644
index 000000000..f4add235f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/FocusTraversalPolicy.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_FocusTraversalPolicy__
+#define __java_awt_FocusTraversalPolicy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class FocusTraversalPolicy;
+ class Window;
+ }
+ }
+}
+
+class java::awt::FocusTraversalPolicy : public ::java::lang::Object
+{
+
+public:
+ FocusTraversalPolicy();
+ virtual ::java::awt::Component * getComponentAfter(::java::awt::Container *, ::java::awt::Component *) = 0;
+ virtual ::java::awt::Component * getComponentBefore(::java::awt::Container *, ::java::awt::Component *) = 0;
+ virtual ::java::awt::Component * getFirstComponent(::java::awt::Container *) = 0;
+ virtual ::java::awt::Component * getLastComponent(::java::awt::Container *) = 0;
+ virtual ::java::awt::Component * getDefaultComponent(::java::awt::Container *) = 0;
+ virtual ::java::awt::Component * getInitialComponent(::java::awt::Window *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_FocusTraversalPolicy__
diff --git a/gcc-4.8/libjava/java/awt/Font.h b/gcc-4.8/libjava/java/awt/Font.h
new file mode 100644
index 000000000..46f81a1b8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Font.h
@@ -0,0 +1,164 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Font__
+#define __java_awt_Font__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ class ClasspathToolkit;
+ namespace peer
+ {
+ class ClasspathFontPeer;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ namespace font
+ {
+ class FontRenderContext;
+ class GlyphVector;
+ class LineMetrics;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ }
+ namespace peer
+ {
+ class FontPeer;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator$Attribute;
+ class CharacterIterator;
+ }
+ }
+}
+
+class java::awt::Font : public ::java::lang::Object
+{
+
+public:
+ static ::java::awt::Font * decode(::java::lang::String *);
+public: // actually package-private
+ static ::gnu::java::awt::ClasspathToolkit * tk();
+ static ::java::awt::Font * getFontFromToolkit(::java::lang::String *, ::java::util::Map *);
+ static ::gnu::java::awt::peer::ClasspathFontPeer * getPeerFromToolkit(::java::lang::String *, ::java::util::Map *);
+public:
+ static ::java::awt::Font * getFont(::java::lang::String *, ::java::awt::Font *);
+ static ::java::awt::Font * getFont(::java::lang::String *);
+public: // actually protected
+ Font(::java::awt::Font *);
+public:
+ Font(::java::lang::String *, jint, jint);
+ Font(::java::util::Map *);
+public: // actually package-private
+ Font(::java::lang::String *, ::java::util::Map *);
+public:
+ virtual ::java::lang::String * getName();
+ virtual jint getSize();
+ virtual jfloat getSize2D();
+ virtual jboolean isPlain();
+ virtual jboolean isBold();
+ virtual jboolean isItalic();
+ virtual ::java::lang::String * getFamily();
+ virtual jint getStyle();
+ virtual jboolean canDisplay(jchar);
+ virtual jboolean canDisplay(jint);
+ virtual jint canDisplayUpTo(::java::lang::String *);
+ virtual jint canDisplayUpTo(JArray< jchar > *, jint, jint);
+ virtual jint canDisplayUpTo(::java::text::CharacterIterator *, jint, jint);
+ static ::java::awt::Font * createFont(jint, ::java::io::InputStream *);
+ static ::java::awt::Font * createFont(jint, ::java::io::File *);
+ virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::font::FontRenderContext *, ::java::lang::String *);
+ virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *);
+ virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::font::FontRenderContext *, JArray< jchar > *);
+ virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::font::FontRenderContext *, JArray< jint > *);
+ virtual ::java::awt::Font * deriveFont(jint, jfloat);
+ virtual ::java::awt::Font * deriveFont(jfloat);
+ virtual ::java::awt::Font * deriveFont(jint);
+ virtual ::java::awt::Font * deriveFont(jint, ::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::Font * deriveFont(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::Font * deriveFont(::java::util::Map *);
+ virtual ::java::util::Map * getAttributes();
+ virtual JArray< ::java::text::AttributedCharacterIterator$Attribute * > * getAvailableAttributes();
+ virtual jbyte getBaselineFor(jchar);
+ virtual ::java::lang::String * getFamily(::java::util::Locale *);
+ static ::java::awt::Font * getFont(::java::util::Map *);
+ virtual ::java::lang::String * getFontName();
+ virtual ::java::lang::String * getFontName(::java::util::Locale *);
+ virtual jfloat getItalicAngle();
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::lang::String *, jint, jint, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(JArray< jchar > *, jint, jint, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::font::FontRenderContext *);
+ virtual jint getMissingGlyphCode();
+ virtual jint getNumGlyphs();
+ virtual ::java::lang::String * getPSName();
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *, jint, jint, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(JArray< jchar > *, jint, jint, ::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::geom::AffineTransform * getTransform();
+ virtual jboolean hasUniformLineMetrics();
+ virtual jboolean isTransformed();
+ virtual ::java::awt::font::GlyphVector * layoutGlyphVector(::java::awt::font::FontRenderContext *, JArray< jchar > *, jint, jint, jint);
+ virtual ::java::awt::peer::FontPeer * getPeer();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::lang::String *, ::java::awt::font::FontRenderContext *);
+ virtual jboolean hasLayoutAttributes();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ static const jint PLAIN = 0;
+ static const jint BOLD = 1;
+ static const jint ITALIC = 2;
+ static const jint ROMAN_BASELINE = 0;
+ static const jint CENTER_BASELINE = 1;
+ static const jint HANGING_BASELINE = 2;
+ static const jint TRUETYPE_FONT = 0;
+ static const jint TYPE1_FONT = 1;
+ static const jint LAYOUT_LEFT_TO_RIGHT = 0;
+ static const jint LAYOUT_RIGHT_TO_LEFT = 1;
+ static const jint LAYOUT_NO_START_CONTEXT = 2;
+ static const jint LAYOUT_NO_LIMIT_CONTEXT = 4;
+ static ::java::lang::String * DIALOG;
+ static ::java::lang::String * DIALOG_INPUT;
+ static ::java::lang::String * MONOSPACED;
+ static ::java::lang::String * SANS_SERIF;
+ static ::java::lang::String * SERIF;
+public: // actually protected
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ jint size;
+ jfloat pointSize;
+ jint style;
+private:
+ static const jlong serialVersionUID = -4206021311591459213LL;
+ ::gnu::java::awt::peer::ClasspathFontPeer * peer;
+ jint hashCode__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Font__
diff --git a/gcc-4.8/libjava/java/awt/FontFormatException.h b/gcc-4.8/libjava/java/awt/FontFormatException.h
new file mode 100644
index 000000000..9d9ffec9d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/FontFormatException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_FontFormatException__
+#define __java_awt_FontFormatException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class FontFormatException;
+ }
+ }
+}
+
+class java::awt::FontFormatException : public ::java::lang::Exception
+{
+
+public:
+ FontFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4481290147811361272LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_FontFormatException__
diff --git a/gcc-4.8/libjava/java/awt/FontMetrics.h b/gcc-4.8/libjava/java/awt/FontMetrics.h
new file mode 100644
index 000000000..67d8b6b4f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/FontMetrics.h
@@ -0,0 +1,83 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_FontMetrics__
+#define __java_awt_FontMetrics__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ namespace font
+ {
+ class FontRenderContext;
+ class LineMetrics;
+ }
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ }
+ namespace text
+ {
+ class CharacterIterator;
+ }
+ }
+}
+
+class java::awt::FontMetrics : public ::java::lang::Object
+{
+
+public: // actually protected
+ FontMetrics(::java::awt::Font *);
+public:
+ virtual ::java::awt::Font * getFont();
+ virtual jint getLeading();
+ virtual jint getAscent();
+ virtual jint getDescent();
+ virtual jint getHeight();
+ virtual jint getMaxAscent();
+ virtual jint getMaxDescent();
+ virtual jint getMaxDecent();
+ virtual jint getMaxAdvance();
+ virtual jint charWidth(jint);
+ virtual jint charWidth(jchar);
+ virtual jint stringWidth(::java::lang::String *);
+ virtual jint charsWidth(JArray< jchar > *, jint, jint);
+ virtual jint bytesWidth(JArray< jbyte > *, jint, jint);
+ virtual JArray< jint > * getWidths();
+ virtual ::java::lang::String * toString();
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::lang::String *, ::java::awt::Graphics *);
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::lang::String *, jint, jint, ::java::awt::Graphics *);
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(JArray< jchar > *, jint, jint, ::java::awt::Graphics *);
+ virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::Graphics *);
+ virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::text::CharacterIterator *, jint, jint, ::java::awt::Graphics *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *, ::java::awt::Graphics *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *, jint, jint, ::java::awt::Graphics *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(JArray< jchar > *, jint, jint, ::java::awt::Graphics *);
+ virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::text::CharacterIterator *, jint, jint, ::java::awt::Graphics *);
+private:
+ ::java::awt::font::FontRenderContext * getFontRenderContext(::java::awt::Graphics *);
+public:
+ virtual jboolean hasUniformLineMetrics();
+private:
+ static const jlong serialVersionUID = 1681126225205050147LL;
+public: // actually protected
+ ::java::awt::Font * __attribute__((aligned(__alignof__( ::java::lang::Object)))) font;
+private:
+ static ::java::awt::font::FontRenderContext * gRC;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_FontMetrics__
diff --git a/gcc-4.8/libjava/java/awt/Frame$AccessibleAWTFrame.h b/gcc-4.8/libjava/java/awt/Frame$AccessibleAWTFrame.h
new file mode 100644
index 000000000..62ed120a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Frame$AccessibleAWTFrame.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Frame$AccessibleAWTFrame__
+#define __java_awt_Frame$AccessibleAWTFrame__
+
+#pragma interface
+
+#include <java/awt/Window$AccessibleAWTWindow.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Frame;
+ class Frame$AccessibleAWTFrame;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::Frame$AccessibleAWTFrame : public ::java::awt::Window$AccessibleAWTWindow
+{
+
+public: // actually protected
+ Frame$AccessibleAWTFrame(::java::awt::Frame *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = -6172960752956030250LL;
+public: // actually package-private
+ ::java::awt::Frame * __attribute__((aligned(__alignof__( ::java::awt::Window$AccessibleAWTWindow)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Frame$AccessibleAWTFrame__
diff --git a/gcc-4.8/libjava/java/awt/Frame.h b/gcc-4.8/libjava/java/awt/Frame.h
new file mode 100644
index 000000000..5b1586631
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Frame.h
@@ -0,0 +1,120 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Frame__
+#define __java_awt_Frame__
+
+#pragma interface
+
+#include <java/awt/Window.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Frame;
+ class GraphicsConfiguration;
+ class Image;
+ class MenuBar;
+ class MenuComponent;
+ class Rectangle;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Frame : public ::java::awt::Window
+{
+
+public:
+ Frame();
+ Frame(::java::lang::String *);
+ Frame(::java::awt::GraphicsConfiguration *);
+ Frame(::java::lang::String *, ::java::awt::GraphicsConfiguration *);
+ virtual ::java::lang::String * getTitle();
+ virtual void setTitle(::java::lang::String *);
+ virtual ::java::awt::Image * getIconImage();
+ virtual void setIconImage(::java::awt::Image *);
+ virtual ::java::awt::MenuBar * getMenuBar();
+ virtual void setMenuBar(::java::awt::MenuBar *);
+ virtual jboolean isResizable();
+ virtual void setResizable(jboolean);
+ virtual jint getCursorType();
+ virtual void setCursor(jint);
+ virtual void remove(::java::awt::MenuComponent *);
+ virtual void addNotify();
+ virtual void removeNotify();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+private:
+ static void noteFrame(::java::awt::Frame *);
+public: // actually package-private
+ static jboolean hasDisplayableFrames();
+public:
+ static JArray< ::java::awt::Frame * > * getFrames();
+ virtual void setState(jint);
+ virtual jint getState();
+ virtual void setExtendedState(jint);
+ virtual jint getExtendedState();
+ virtual void setMaximizedBounds(::java::awt::Rectangle *);
+ virtual ::java::awt::Rectangle * getMaximizedBounds();
+ virtual jboolean isUndecorated();
+ virtual void setUndecorated(jboolean);
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+ static const jint DEFAULT_CURSOR = 0;
+ static const jint CROSSHAIR_CURSOR = 1;
+ static const jint TEXT_CURSOR = 2;
+ static const jint WAIT_CURSOR = 3;
+ static const jint SW_RESIZE_CURSOR = 4;
+ static const jint SE_RESIZE_CURSOR = 5;
+ static const jint NW_RESIZE_CURSOR = 6;
+ static const jint NE_RESIZE_CURSOR = 7;
+ static const jint N_RESIZE_CURSOR = 8;
+ static const jint S_RESIZE_CURSOR = 9;
+ static const jint E_RESIZE_CURSOR = 11;
+ static const jint W_RESIZE_CURSOR = 10;
+ static const jint HAND_CURSOR = 12;
+ static const jint MOVE_CURSOR = 13;
+ static const jint ICONIFIED = 1;
+ static const jint MAXIMIZED_BOTH = 6;
+ static const jint MAXIMIZED_HORIZ = 2;
+ static const jint MAXIMIZED_VERT = 4;
+ static const jint NORMAL = 0;
+private:
+ static const jlong serialVersionUID = 2673458971256075116LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::Window)))) frameSerializedDataVersion;
+ ::java::awt::Image * icon;
+ jboolean mbManagement;
+ ::java::awt::MenuBar * menuBar;
+public: // actually package-private
+ ::java::util::Vector * ownedWindows;
+private:
+ jboolean resizable;
+public: // actually package-private
+ jint state;
+private:
+ ::java::lang::String * title;
+ ::java::awt::Rectangle * maximizedBounds;
+ jboolean undecorated;
+ static jlong next_frame_number;
+ static ::java::util::ArrayList * weakFrames;
+ static ::java::lang::ref::ReferenceQueue * weakFramesQueue;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Frame__
diff --git a/gcc-4.8/libjava/java/awt/GradientPaint.h b/gcc-4.8/libjava/java/awt/GradientPaint.h
new file mode 100644
index 000000000..075e139d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GradientPaint.h
@@ -0,0 +1,62 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GradientPaint__
+#define __java_awt_GradientPaint__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class GradientPaint;
+ class PaintContext;
+ class Rectangle;
+ class RenderingHints;
+ namespace geom
+ {
+ class AffineTransform;
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::GradientPaint : public ::java::lang::Object
+{
+
+public:
+ GradientPaint(jfloat, jfloat, ::java::awt::Color *, jfloat, jfloat, ::java::awt::Color *);
+ GradientPaint(::java::awt::geom::Point2D *, ::java::awt::Color *, ::java::awt::geom::Point2D *, ::java::awt::Color *);
+ GradientPaint(jfloat, jfloat, ::java::awt::Color *, jfloat, jfloat, ::java::awt::Color *, jboolean);
+ GradientPaint(::java::awt::geom::Point2D *, ::java::awt::Color *, ::java::awt::geom::Point2D *, ::java::awt::Color *, jboolean);
+ virtual ::java::awt::geom::Point2D * getPoint1();
+ virtual ::java::awt::Color * getColor1();
+ virtual ::java::awt::geom::Point2D * getPoint2();
+ virtual ::java::awt::Color * getColor2();
+ virtual jboolean isCyclic();
+ virtual ::java::awt::PaintContext * createContext(::java::awt::image::ColorModel *, ::java::awt::Rectangle *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *);
+ virtual jint getTransparency();
+private:
+ jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) x1;
+ jfloat y1;
+ ::java::awt::Color * c1;
+ jfloat x2;
+ jfloat y2;
+ ::java::awt::Color * c2;
+ jboolean cyclic;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GradientPaint__
diff --git a/gcc-4.8/libjava/java/awt/Graphics.h b/gcc-4.8/libjava/java/awt/Graphics.h
new file mode 100644
index 000000000..504b30ec5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Graphics.h
@@ -0,0 +1,97 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Graphics__
+#define __java_awt_Graphics__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class Image;
+ class Polygon;
+ class Rectangle;
+ class Shape;
+ namespace image
+ {
+ class ImageObserver;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ }
+ }
+}
+
+class java::awt::Graphics : public ::java::lang::Object
+{
+
+public: // actually protected
+ Graphics();
+public:
+ virtual ::java::awt::Graphics * create() = 0;
+ virtual ::java::awt::Graphics * create(jint, jint, jint, jint);
+ virtual void translate(jint, jint) = 0;
+ virtual ::java::awt::Color * getColor() = 0;
+ virtual void setColor(::java::awt::Color *) = 0;
+ virtual void setPaintMode() = 0;
+ virtual void setXORMode(::java::awt::Color *) = 0;
+ virtual ::java::awt::Font * getFont() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics();
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Rectangle * getClipBounds() = 0;
+ virtual ::java::awt::Rectangle * getClipRect();
+ virtual void clipRect(jint, jint, jint, jint) = 0;
+ virtual void setClip(jint, jint, jint, jint) = 0;
+ virtual ::java::awt::Shape * getClip() = 0;
+ virtual void setClip(::java::awt::Shape *) = 0;
+ virtual void copyArea(jint, jint, jint, jint, jint, jint) = 0;
+ virtual void drawLine(jint, jint, jint, jint) = 0;
+ virtual void fillRect(jint, jint, jint, jint) = 0;
+ virtual void drawRect(jint, jint, jint, jint);
+ virtual void clearRect(jint, jint, jint, jint) = 0;
+ virtual void drawRoundRect(jint, jint, jint, jint, jint, jint) = 0;
+ virtual void fillRoundRect(jint, jint, jint, jint, jint, jint) = 0;
+ virtual void draw3DRect(jint, jint, jint, jint, jboolean);
+ virtual void fill3DRect(jint, jint, jint, jint, jboolean);
+ virtual void drawOval(jint, jint, jint, jint) = 0;
+ virtual void fillOval(jint, jint, jint, jint) = 0;
+ virtual void drawArc(jint, jint, jint, jint, jint, jint) = 0;
+ virtual void fillArc(jint, jint, jint, jint, jint, jint) = 0;
+ virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint) = 0;
+ virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint) = 0;
+ virtual void drawPolygon(::java::awt::Polygon *);
+ virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint) = 0;
+ virtual void fillPolygon(::java::awt::Polygon *);
+ virtual void drawString(::java::lang::String *, jint, jint) = 0;
+ virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint) = 0;
+ virtual void drawChars(JArray< jchar > *, jint, jint, jint, jint);
+ virtual void drawBytes(JArray< jbyte > *, jint, jint, jint, jint);
+ virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *) = 0;
+ virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *) = 0;
+ virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *) = 0;
+ virtual void dispose() = 0;
+ virtual void finalize();
+ virtual ::java::lang::String * toString();
+ virtual jboolean hitClip(jint, jint, jint, jint);
+ virtual ::java::awt::Rectangle * getClipBounds(::java::awt::Rectangle *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Graphics__
diff --git a/gcc-4.8/libjava/java/awt/Graphics2D.h b/gcc-4.8/libjava/java/awt/Graphics2D.h
new file mode 100644
index 000000000..9815434cf
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Graphics2D.h
@@ -0,0 +1,103 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Graphics2D__
+#define __java_awt_Graphics2D__
+
+#pragma interface
+
+#include <java/awt/Graphics.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class Composite;
+ class Graphics2D;
+ class GraphicsConfiguration;
+ class Image;
+ class Paint;
+ class Rectangle;
+ class RenderingHints;
+ class RenderingHints$Key;
+ class Shape;
+ class Stroke;
+ namespace font
+ {
+ class FontRenderContext;
+ class GlyphVector;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class BufferedImageOp;
+ class ImageObserver;
+ class RenderedImage;
+ namespace renderable
+ {
+ class RenderableImage;
+ }
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ }
+ }
+}
+
+class java::awt::Graphics2D : public ::java::awt::Graphics
+{
+
+public: // actually protected
+ Graphics2D();
+public:
+ virtual void draw3DRect(jint, jint, jint, jint, jboolean);
+ virtual void fill3DRect(jint, jint, jint, jint, jboolean);
+ virtual void draw(::java::awt::Shape *) = 0;
+ virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *) = 0;
+ virtual void drawImage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImageOp *, jint, jint) = 0;
+ virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *) = 0;
+ virtual void drawRenderableImage(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *) = 0;
+ virtual void drawString(::java::lang::String *, jint, jint) = 0;
+ virtual void drawString(::java::lang::String *, jfloat, jfloat) = 0;
+ virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint) = 0;
+ virtual void drawString(::java::text::AttributedCharacterIterator *, jfloat, jfloat) = 0;
+ virtual void fill(::java::awt::Shape *) = 0;
+ virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean) = 0;
+ virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration() = 0;
+ virtual void setComposite(::java::awt::Composite *) = 0;
+ virtual void setPaint(::java::awt::Paint *) = 0;
+ virtual void setStroke(::java::awt::Stroke *) = 0;
+ virtual void setRenderingHint(::java::awt::RenderingHints$Key *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getRenderingHint(::java::awt::RenderingHints$Key *) = 0;
+ virtual void setRenderingHints(::java::util::Map *) = 0;
+ virtual void addRenderingHints(::java::util::Map *) = 0;
+ virtual ::java::awt::RenderingHints * getRenderingHints() = 0;
+ virtual void translate(jint, jint) = 0;
+ virtual void translate(jdouble, jdouble) = 0;
+ virtual void rotate(jdouble) = 0;
+ virtual void rotate(jdouble, jdouble, jdouble) = 0;
+ virtual void scale(jdouble, jdouble) = 0;
+ virtual void shear(jdouble, jdouble) = 0;
+ virtual void transform(::java::awt::geom::AffineTransform *) = 0;
+ virtual void setTransform(::java::awt::geom::AffineTransform *) = 0;
+ virtual ::java::awt::geom::AffineTransform * getTransform() = 0;
+ virtual ::java::awt::Paint * getPaint() = 0;
+ virtual ::java::awt::Composite * getComposite() = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual ::java::awt::Color * getBackground() = 0;
+ virtual ::java::awt::Stroke * getStroke() = 0;
+ virtual void clip(::java::awt::Shape *) = 0;
+ virtual ::java::awt::font::FontRenderContext * getFontRenderContext() = 0;
+ virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Graphics2D__
diff --git a/gcc-4.8/libjava/java/awt/GraphicsConfigTemplate.h b/gcc-4.8/libjava/java/awt/GraphicsConfigTemplate.h
new file mode 100644
index 000000000..53bbece33
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GraphicsConfigTemplate.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GraphicsConfigTemplate__
+#define __java_awt_GraphicsConfigTemplate__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class GraphicsConfigTemplate;
+ class GraphicsConfiguration;
+ }
+ }
+}
+
+class java::awt::GraphicsConfigTemplate : public ::java::lang::Object
+{
+
+public:
+ GraphicsConfigTemplate();
+ virtual ::java::awt::GraphicsConfiguration * getBestConfiguration(JArray< ::java::awt::GraphicsConfiguration * > *) = 0;
+ virtual jboolean isGraphicsConfigSupported(::java::awt::GraphicsConfiguration *) = 0;
+private:
+ static const jlong serialVersionUID = -8061369279557787079LL;
+public:
+ static const jint REQUIRED = 1;
+ static const jint PREFERRED = 2;
+ static const jint UNNECESSARY = 3;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GraphicsConfigTemplate__
diff --git a/gcc-4.8/libjava/java/awt/GraphicsConfiguration.h b/gcc-4.8/libjava/java/awt/GraphicsConfiguration.h
new file mode 100644
index 000000000..603577ae4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GraphicsConfiguration.h
@@ -0,0 +1,62 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GraphicsConfiguration__
+#define __java_awt_GraphicsConfiguration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities;
+ class GraphicsConfiguration;
+ class GraphicsDevice;
+ class ImageCapabilities;
+ class Rectangle;
+ namespace geom
+ {
+ class AffineTransform;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class ColorModel;
+ class VolatileImage;
+ }
+ }
+ }
+}
+
+class java::awt::GraphicsConfiguration : public ::java::lang::Object
+{
+
+public: // actually protected
+ GraphicsConfiguration();
+public:
+ virtual ::java::awt::GraphicsDevice * getDevice() = 0;
+ virtual ::java::awt::image::BufferedImage * createCompatibleImage(jint, jint) = 0;
+ virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint) = 0;
+ virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, ::java::awt::ImageCapabilities *);
+ virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, jint) = 0;
+ virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, ::java::awt::ImageCapabilities *, jint);
+ virtual ::java::awt::image::BufferedImage * createCompatibleImage(jint, jint, jint) = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel(jint) = 0;
+ virtual ::java::awt::geom::AffineTransform * getDefaultTransform() = 0;
+ virtual ::java::awt::geom::AffineTransform * getNormalizingTransform() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual ::java::awt::BufferCapabilities * getBufferCapabilities();
+ virtual ::java::awt::ImageCapabilities * getImageCapabilities();
+private:
+ ::java::awt::ImageCapabilities * __attribute__((aligned(__alignof__( ::java::lang::Object)))) imageCapabilities;
+ ::java::awt::BufferCapabilities * bufferCapabilities;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GraphicsConfiguration__
diff --git a/gcc-4.8/libjava/java/awt/GraphicsDevice.h b/gcc-4.8/libjava/java/awt/GraphicsDevice.h
new file mode 100644
index 000000000..a10d93d86
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GraphicsDevice.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GraphicsDevice__
+#define __java_awt_GraphicsDevice__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class DisplayMode;
+ class GraphicsConfigTemplate;
+ class GraphicsConfiguration;
+ class GraphicsDevice;
+ class Rectangle;
+ class Window;
+ }
+ }
+}
+
+class java::awt::GraphicsDevice : public ::java::lang::Object
+{
+
+public: // actually protected
+ GraphicsDevice();
+public:
+ virtual jint getType() = 0;
+ virtual ::java::lang::String * getIDstring() = 0;
+ virtual JArray< ::java::awt::GraphicsConfiguration * > * getConfigurations() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getDefaultConfiguration() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getBestConfiguration(::java::awt::GraphicsConfigTemplate *);
+ virtual jboolean isFullScreenSupported();
+ virtual void setFullScreenWindow(::java::awt::Window *);
+ virtual ::java::awt::Window * getFullScreenWindow();
+ virtual jboolean isDisplayChangeSupported();
+ virtual void setDisplayMode(::java::awt::DisplayMode *);
+ virtual ::java::awt::DisplayMode * getDisplayMode();
+ virtual JArray< ::java::awt::DisplayMode * > * getDisplayModes();
+ virtual jint getAvailableAcceleratedMemory();
+ static const jint TYPE_RASTER_SCREEN = 0;
+ static const jint TYPE_PRINTER = 1;
+ static const jint TYPE_IMAGE_BUFFER = 2;
+private:
+ ::java::awt::Window * __attribute__((aligned(__alignof__( ::java::lang::Object)))) full_screen;
+ ::java::awt::Rectangle * fullScreenOldBounds;
+ ::java::awt::DisplayMode * mode;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GraphicsDevice__
diff --git a/gcc-4.8/libjava/java/awt/GraphicsEnvironment.h b/gcc-4.8/libjava/java/awt/GraphicsEnvironment.h
new file mode 100644
index 000000000..398e295bf
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GraphicsEnvironment.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GraphicsEnvironment__
+#define __java_awt_GraphicsEnvironment__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ class Graphics2D;
+ class GraphicsDevice;
+ class GraphicsEnvironment;
+ class Point;
+ class Rectangle;
+ namespace image
+ {
+ class BufferedImage;
+ }
+ }
+ }
+}
+
+class java::awt::GraphicsEnvironment : public ::java::lang::Object
+{
+
+public: // actually protected
+ GraphicsEnvironment();
+public:
+ static ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment();
+ static jboolean isHeadless();
+ virtual jboolean isHeadlessInstance();
+ virtual JArray< ::java::awt::GraphicsDevice * > * getScreenDevices() = 0;
+ virtual ::java::awt::GraphicsDevice * getDefaultScreenDevice() = 0;
+ virtual ::java::awt::Graphics2D * createGraphics(::java::awt::image::BufferedImage *) = 0;
+ virtual JArray< ::java::awt::Font * > * getAllFonts() = 0;
+ virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames() = 0;
+ virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *) = 0;
+ virtual ::java::awt::Point * getCenterPoint();
+ virtual ::java::awt::Rectangle * getMaximumWindowBounds();
+private:
+ static ::java::awt::GraphicsEnvironment * localGraphicsEnvironment;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GraphicsEnvironment__
diff --git a/gcc-4.8/libjava/java/awt/GridBagConstraints.h b/gcc-4.8/libjava/java/awt/GridBagConstraints.h
new file mode 100644
index 000000000..95d359e19
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GridBagConstraints.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GridBagConstraints__
+#define __java_awt_GridBagConstraints__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class GridBagConstraints;
+ class Insets;
+ }
+ }
+}
+
+class java::awt::GridBagConstraints : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone();
+ GridBagConstraints();
+ GridBagConstraints(jint, jint, jint, jint, jdouble, jdouble, jint, jint, ::java::awt::Insets *, jint, jint);
+public: // actually package-private
+ static const jlong serialVersionUID = -1000070633030801713LL;
+public:
+ static const jint NONE = 0;
+ static const jint BOTH = 1;
+ static const jint HORIZONTAL = 2;
+ static const jint VERTICAL = 3;
+ static const jint CENTER = 10;
+ static const jint NORTH = 11;
+ static const jint NORTHEAST = 12;
+ static const jint EAST = 13;
+ static const jint SOUTHEAST = 14;
+ static const jint SOUTH = 15;
+ static const jint SOUTHWEST = 16;
+ static const jint WEST = 17;
+ static const jint NORTHWEST = 18;
+ static const jint RELATIVE = -1;
+ static const jint REMAINDER = 0;
+ static const jint PAGE_START = 19;
+ static const jint PAGE_END = 20;
+ static const jint LINE_START = 21;
+ static const jint LINE_END = 22;
+ static const jint FIRST_LINE_START = 23;
+ static const jint FIRST_LINE_END = 24;
+ static const jint LAST_LINE_START = 25;
+ static const jint LAST_LINE_END = 26;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) anchor;
+ jint fill;
+ jint gridheight;
+ jint gridwidth;
+ jint gridx;
+ jint gridy;
+ ::java::awt::Insets * insets;
+ jint ipadx;
+ jint ipady;
+ jdouble weightx;
+ jdouble weighty;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GridBagConstraints__
diff --git a/gcc-4.8/libjava/java/awt/GridBagLayout.h b/gcc-4.8/libjava/java/awt/GridBagLayout.h
new file mode 100644
index 000000000..b553aff4e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GridBagLayout.h
@@ -0,0 +1,100 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GridBagLayout__
+#define __java_awt_GridBagLayout__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class Dimension;
+ class GridBagConstraints;
+ class GridBagLayout;
+ class GridBagLayoutInfo;
+ class Point;
+ class Rectangle;
+ }
+ }
+}
+
+class java::awt::GridBagLayout : public ::java::lang::Object
+{
+
+public:
+ GridBagLayout();
+private:
+ jint sumIntArray(JArray< jint > *, jint);
+ jint sumIntArray(JArray< jint > *);
+ jdouble sumDoubleArray(JArray< jdouble > *);
+public:
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *);
+ virtual void removeLayoutComponent(::java::awt::Component *);
+ virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *);
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * maximumLayoutSize(::java::awt::Container *);
+ virtual void layoutContainer(::java::awt::Container *);
+ virtual jfloat getLayoutAlignmentX(::java::awt::Container *);
+ virtual jfloat getLayoutAlignmentY(::java::awt::Container *);
+ virtual void invalidateLayout(::java::awt::Container *);
+ virtual void setConstraints(::java::awt::Component *, ::java::awt::GridBagConstraints *);
+ virtual ::java::awt::GridBagConstraints * getConstraints(::java::awt::Component *);
+public: // actually protected
+ virtual ::java::awt::GridBagConstraints * lookupConstraints(::java::awt::Component *);
+private:
+ ::java::awt::GridBagConstraints * lookupInternalConstraints(::java::awt::Component *);
+public:
+ virtual ::java::awt::Point * getLayoutOrigin();
+ virtual JArray< JArray< jint > * > * getLayoutDimensions();
+ virtual JArray< JArray< jdouble > * > * getLayoutWeights();
+ virtual ::java::awt::Point * location(jint, jint);
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ virtual void AdjustForGravity(::java::awt::GridBagConstraints *, ::java::awt::Rectangle *);
+ virtual void ArrangeGrid(::java::awt::Container *);
+ virtual ::java::awt::GridBagLayoutInfo * GetLayoutInfo(::java::awt::Container *, jint);
+ virtual ::java::awt::Dimension * GetMinSize(::java::awt::Container *, ::java::awt::GridBagLayoutInfo *);
+ virtual ::java::awt::Dimension * getMinSize(::java::awt::Container *, ::java::awt::GridBagLayoutInfo *);
+private:
+ void sortBySpan(::java::awt::Component *, jint, ::java::util::ArrayList *, jboolean);
+ void distributeSizeAndWeight(jint, jdouble, jint, jint, JArray< jint > *, JArray< jdouble > *);
+ void calcCellWeights(jdouble, JArray< jdouble > *, jint, jint);
+ void calcCellSizes(JArray< jint > *, JArray< jdouble > *, jint);
+ void dumpLayoutInfo(::java::awt::GridBagLayoutInfo *);
+ void dumpArray(JArray< jint > *);
+ void dumpArray(JArray< jdouble > *);
+public: // actually protected
+ virtual void arrangeGrid(::java::awt::Container *);
+ virtual ::java::awt::GridBagLayoutInfo * getLayoutInfo(::java::awt::Container *, jint);
+ virtual void adjustForGravity(::java::awt::GridBagConstraints *, ::java::awt::Rectangle *);
+private:
+ static const jlong serialVersionUID = 8838754796412211005LL;
+public: // actually protected
+ static const jint MINSIZE = 1;
+ static const jint PREFERREDSIZE = 2;
+ static const jint MAXGRIDSIZE = 512;
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) comptable;
+private:
+ ::java::util::Hashtable * internalcomptable;
+public: // actually protected
+ ::java::awt::GridBagLayoutInfo * layoutInfo;
+ ::java::awt::GridBagConstraints * defaultConstraints;
+public:
+ JArray< jdouble > * columnWeights;
+ JArray< jint > * columnWidths;
+ JArray< jdouble > * rowWeights;
+ JArray< jint > * rowHeights;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GridBagLayout__
diff --git a/gcc-4.8/libjava/java/awt/GridBagLayoutInfo.h b/gcc-4.8/libjava/java/awt/GridBagLayoutInfo.h
new file mode 100644
index 000000000..b83497ff9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GridBagLayoutInfo.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GridBagLayoutInfo__
+#define __java_awt_GridBagLayoutInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class GridBagLayoutInfo;
+ }
+ }
+}
+
+class java::awt::GridBagLayoutInfo : public ::java::lang::Object
+{
+
+public: // actually package-private
+ GridBagLayoutInfo(jint, jint);
+private:
+ static const jlong serialVersionUID = -4899416460737170217LL;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) pos_x;
+ jint pos_y;
+ jint cols;
+ jint rows;
+ JArray< jint > * colWidths;
+ JArray< jint > * rowHeights;
+ JArray< jdouble > * colWeights;
+ JArray< jdouble > * rowWeights;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GridBagLayoutInfo__
diff --git a/gcc-4.8/libjava/java/awt/GridLayout.h b/gcc-4.8/libjava/java/awt/GridLayout.h
new file mode 100644
index 000000000..84b01a27c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/GridLayout.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_GridLayout__
+#define __java_awt_GridLayout__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class Dimension;
+ class GridLayout;
+ }
+ }
+}
+
+class java::awt::GridLayout : public ::java::lang::Object
+{
+
+public:
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *);
+ virtual jint getColumns();
+ virtual jint getHgap();
+ virtual jint getRows();
+ virtual jint getVgap();
+ GridLayout();
+ GridLayout(jint, jint);
+ GridLayout(jint, jint, jint, jint);
+ virtual void layoutContainer(::java::awt::Container *);
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *);
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *);
+ virtual void removeLayoutComponent(::java::awt::Component *);
+ virtual void setColumns(jint);
+ virtual void setHgap(jint);
+ virtual void setRows(jint);
+ virtual void setVgap(jint);
+ virtual ::java::lang::String * toString();
+private:
+ ::java::awt::Dimension * getSize(::java::awt::Container *, jboolean);
+public: // actually package-private
+ static const jlong serialVersionUID = -7411804673224730901LL;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cols;
+ jint rows;
+ jint hgap;
+ jint vgap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_GridLayout__
diff --git a/gcc-4.8/libjava/java/awt/HeadlessException.h b/gcc-4.8/libjava/java/awt/HeadlessException.h
new file mode 100644
index 000000000..f57ea63fb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/HeadlessException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_HeadlessException__
+#define __java_awt_HeadlessException__
+
+#pragma interface
+
+#include <java/lang/UnsupportedOperationException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class HeadlessException;
+ }
+ }
+}
+
+class java::awt::HeadlessException : public ::java::lang::UnsupportedOperationException
+{
+
+public:
+ HeadlessException();
+ HeadlessException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 167183644944358563LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_HeadlessException__
diff --git a/gcc-4.8/libjava/java/awt/IllegalComponentStateException.h b/gcc-4.8/libjava/java/awt/IllegalComponentStateException.h
new file mode 100644
index 000000000..9743e59f0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/IllegalComponentStateException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_IllegalComponentStateException__
+#define __java_awt_IllegalComponentStateException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class IllegalComponentStateException;
+ }
+ }
+}
+
+class java::awt::IllegalComponentStateException : public ::java::lang::IllegalStateException
+{
+
+public:
+ IllegalComponentStateException();
+ IllegalComponentStateException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -1889339587208144238LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_IllegalComponentStateException__
diff --git a/gcc-4.8/libjava/java/awt/Image.h b/gcc-4.8/libjava/java/awt/Image.h
new file mode 100644
index 000000000..d49664a22
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Image.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Image__
+#define __java_awt_Image__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics;
+ class Image;
+ namespace image
+ {
+ class ImageObserver;
+ class ImageProducer;
+ }
+ }
+ }
+}
+
+class java::awt::Image : public ::java::lang::Object
+{
+
+public:
+ Image();
+ virtual jint getWidth(::java::awt::image::ImageObserver *) = 0;
+ virtual jint getHeight(::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::image::ImageProducer * getSource() = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * getScaledInstance(jint, jint, jint);
+ virtual void flush() = 0;
+ virtual void setAccelerationPriority(jfloat);
+ virtual jfloat getAccelerationPriority();
+ static ::java::lang::Object * UndefinedProperty;
+ static const jint SCALE_DEFAULT = 1;
+ static const jint SCALE_FAST = 2;
+ static const jint SCALE_SMOOTH = 4;
+ static const jint SCALE_REPLICATE = 8;
+ static const jint SCALE_AREA_AVERAGING = 16;
+public: // actually protected
+ jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) accelerationPriority;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Image__
diff --git a/gcc-4.8/libjava/java/awt/ImageCapabilities.h b/gcc-4.8/libjava/java/awt/ImageCapabilities.h
new file mode 100644
index 000000000..8a245f390
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ImageCapabilities.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ImageCapabilities__
+#define __java_awt_ImageCapabilities__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ImageCapabilities;
+ }
+ }
+}
+
+class java::awt::ImageCapabilities : public ::java::lang::Object
+{
+
+public:
+ ImageCapabilities(jboolean);
+ virtual jboolean isAccelerated();
+ virtual jboolean isTrueVolatile();
+ virtual ::java::lang::Object * clone();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) accelerated;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ImageCapabilities__
diff --git a/gcc-4.8/libjava/java/awt/Insets.h b/gcc-4.8/libjava/java/awt/Insets.h
new file mode 100644
index 000000000..14d70fed5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Insets.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Insets__
+#define __java_awt_Insets__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Insets;
+ }
+ }
+}
+
+class java::awt::Insets : public ::java::lang::Object
+{
+
+public:
+ Insets(jint, jint, jint, jint);
+ virtual void set(jint, jint, jint, jint);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::Object * clone();
+private:
+ static const jlong serialVersionUID = -2272572637695466749LL;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) top;
+ jint left;
+ jint bottom;
+ jint right;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Insets__
diff --git a/gcc-4.8/libjava/java/awt/ItemSelectable.h b/gcc-4.8/libjava/java/awt/ItemSelectable.h
new file mode 100644
index 000000000..3ff72d344
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ItemSelectable.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ItemSelectable__
+#define __java_awt_ItemSelectable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ItemSelectable;
+ namespace event
+ {
+ class ItemListener;
+ }
+ }
+ }
+}
+
+class java::awt::ItemSelectable : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::Object * > * getSelectedObjects() = 0;
+ virtual void addItemListener(::java::awt::event::ItemListener *) = 0;
+ virtual void removeItemListener(::java::awt::event::ItemListener *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_ItemSelectable__
diff --git a/gcc-4.8/libjava/java/awt/JobAttributes$DefaultSelectionType.h b/gcc-4.8/libjava/java/awt/JobAttributes$DefaultSelectionType.h
new file mode 100644
index 000000000..34779779d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/JobAttributes$DefaultSelectionType.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_JobAttributes$DefaultSelectionType__
+#define __java_awt_JobAttributes$DefaultSelectionType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class JobAttributes$DefaultSelectionType;
+ }
+ }
+}
+
+class java::awt::JobAttributes$DefaultSelectionType : public ::java::awt::AttributeValue
+{
+
+ JobAttributes$DefaultSelectionType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::JobAttributes$DefaultSelectionType * ALL;
+ static ::java::awt::JobAttributes$DefaultSelectionType * RANGE;
+ static ::java::awt::JobAttributes$DefaultSelectionType * SELECTION;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_JobAttributes$DefaultSelectionType__
diff --git a/gcc-4.8/libjava/java/awt/JobAttributes$DestinationType.h b/gcc-4.8/libjava/java/awt/JobAttributes$DestinationType.h
new file mode 100644
index 000000000..6c15bd59d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/JobAttributes$DestinationType.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_JobAttributes$DestinationType__
+#define __java_awt_JobAttributes$DestinationType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class JobAttributes$DestinationType;
+ }
+ }
+}
+
+class java::awt::JobAttributes$DestinationType : public ::java::awt::AttributeValue
+{
+
+ JobAttributes$DestinationType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::JobAttributes$DestinationType * FILE;
+ static ::java::awt::JobAttributes$DestinationType * PRINTER;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_JobAttributes$DestinationType__
diff --git a/gcc-4.8/libjava/java/awt/JobAttributes$DialogType.h b/gcc-4.8/libjava/java/awt/JobAttributes$DialogType.h
new file mode 100644
index 000000000..77ae7916d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/JobAttributes$DialogType.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_JobAttributes$DialogType__
+#define __java_awt_JobAttributes$DialogType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class JobAttributes$DialogType;
+ }
+ }
+}
+
+class java::awt::JobAttributes$DialogType : public ::java::awt::AttributeValue
+{
+
+ JobAttributes$DialogType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::JobAttributes$DialogType * COMMON;
+ static ::java::awt::JobAttributes$DialogType * NATIVE;
+ static ::java::awt::JobAttributes$DialogType * NONE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_JobAttributes$DialogType__
diff --git a/gcc-4.8/libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h b/gcc-4.8/libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h
new file mode 100644
index 000000000..a4b13448f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_JobAttributes$MultipleDocumentHandlingType__
+#define __java_awt_JobAttributes$MultipleDocumentHandlingType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class JobAttributes$MultipleDocumentHandlingType;
+ }
+ }
+}
+
+class java::awt::JobAttributes$MultipleDocumentHandlingType : public ::java::awt::AttributeValue
+{
+
+ JobAttributes$MultipleDocumentHandlingType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::JobAttributes$MultipleDocumentHandlingType * SEPARATE_DOCUMENTS_COLLATED_COPIES;
+ static ::java::awt::JobAttributes$MultipleDocumentHandlingType * SEPARATE_DOCUMENTS_UNCOLLATED_COPIES;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_JobAttributes$MultipleDocumentHandlingType__
diff --git a/gcc-4.8/libjava/java/awt/JobAttributes$SidesType.h b/gcc-4.8/libjava/java/awt/JobAttributes$SidesType.h
new file mode 100644
index 000000000..349c3c077
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/JobAttributes$SidesType.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_JobAttributes$SidesType__
+#define __java_awt_JobAttributes$SidesType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class JobAttributes$SidesType;
+ }
+ }
+}
+
+class java::awt::JobAttributes$SidesType : public ::java::awt::AttributeValue
+{
+
+ JobAttributes$SidesType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::JobAttributes$SidesType * ONE_SIDED;
+ static ::java::awt::JobAttributes$SidesType * TWO_SIDED_LONG_EDGE;
+ static ::java::awt::JobAttributes$SidesType * TWO_SIDED_SHORT_EDGE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_JobAttributes$SidesType__
diff --git a/gcc-4.8/libjava/java/awt/JobAttributes.h b/gcc-4.8/libjava/java/awt/JobAttributes.h
new file mode 100644
index 000000000..400bbcfc5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/JobAttributes.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_JobAttributes__
+#define __java_awt_JobAttributes__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class JobAttributes;
+ class JobAttributes$DefaultSelectionType;
+ class JobAttributes$DestinationType;
+ class JobAttributes$DialogType;
+ class JobAttributes$MultipleDocumentHandlingType;
+ class JobAttributes$SidesType;
+ }
+ }
+}
+
+class java::awt::JobAttributes : public ::java::lang::Object
+{
+
+public:
+ JobAttributes();
+ JobAttributes(::java::awt::JobAttributes *);
+ JobAttributes(jint, ::java::awt::JobAttributes$DefaultSelectionType *, ::java::awt::JobAttributes$DestinationType *, ::java::awt::JobAttributes$DialogType *, ::java::lang::String *, jint, jint, ::java::awt::JobAttributes$MultipleDocumentHandlingType *, JArray< JArray< jint > * > *, ::java::lang::String *, ::java::awt::JobAttributes$SidesType *);
+ ::java::lang::Object * clone();
+ void set(::java::awt::JobAttributes *);
+ jint getCopies();
+ void setCopies(jint);
+ void setCopiesToDefault();
+ ::java::awt::JobAttributes$DefaultSelectionType * getDefaultSelection();
+ void setDefaultSelection(::java::awt::JobAttributes$DefaultSelectionType *);
+ ::java::awt::JobAttributes$DestinationType * getDestination();
+ void setDestination(::java::awt::JobAttributes$DestinationType *);
+ ::java::awt::JobAttributes$DialogType * getDialog();
+ void setDialog(::java::awt::JobAttributes$DialogType *);
+ ::java::lang::String * getFileName();
+ void setFileName(::java::lang::String *);
+ jint getFromPage();
+ void setFromPage(jint);
+ jint getMaxPage();
+ void setMaxPage(jint);
+ jint getMinPage();
+ void setMinPage(jint);
+ ::java::awt::JobAttributes$MultipleDocumentHandlingType * getMultipleDocumentHandling();
+ void setMultipleDocumentHandling(::java::awt::JobAttributes$MultipleDocumentHandlingType *);
+ void setMultipleDocumentHandlingToDefault();
+ JArray< JArray< jint > * > * getPageRanges();
+ void setPageRanges(JArray< JArray< jint > * > *);
+ ::java::lang::String * getPrinter();
+ void setPrinter(::java::lang::String *);
+ ::java::awt::JobAttributes$SidesType * getSides();
+ void setSides(::java::awt::JobAttributes$SidesType *);
+ void setSidesToDefault();
+ jint getToPage();
+ void setToPage(jint);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) copies;
+ ::java::awt::JobAttributes$DefaultSelectionType * selection;
+ ::java::awt::JobAttributes$DestinationType * destination;
+ ::java::awt::JobAttributes$DialogType * dialog;
+ ::java::lang::String * filename;
+ jint maxPage;
+ jint minPage;
+ ::java::awt::JobAttributes$MultipleDocumentHandlingType * multiple;
+ JArray< JArray< jint > * > * pageRanges;
+ jint fromPage;
+ jint toPage;
+ ::java::lang::String * printer;
+ ::java::awt::JobAttributes$SidesType * sides;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_JobAttributes__
diff --git a/gcc-4.8/libjava/java/awt/KeyEventDispatcher.h b/gcc-4.8/libjava/java/awt/KeyEventDispatcher.h
new file mode 100644
index 000000000..fdb3195d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/KeyEventDispatcher.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_KeyEventDispatcher__
+#define __java_awt_KeyEventDispatcher__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class KeyEventDispatcher;
+ namespace event
+ {
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::KeyEventDispatcher : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean dispatchKeyEvent(::java::awt::event::KeyEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_KeyEventDispatcher__
diff --git a/gcc-4.8/libjava/java/awt/KeyEventPostProcessor.h b/gcc-4.8/libjava/java/awt/KeyEventPostProcessor.h
new file mode 100644
index 000000000..806e1450b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/KeyEventPostProcessor.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_KeyEventPostProcessor__
+#define __java_awt_KeyEventPostProcessor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class KeyEventPostProcessor;
+ namespace event
+ {
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::KeyEventPostProcessor : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean postProcessKeyEvent(::java::awt::event::KeyEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_KeyEventPostProcessor__
diff --git a/gcc-4.8/libjava/java/awt/KeyboardFocusManager.h b/gcc-4.8/libjava/java/awt/KeyboardFocusManager.h
new file mode 100644
index 000000000..9fd045c46
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/KeyboardFocusManager.h
@@ -0,0 +1,156 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_KeyboardFocusManager__
+#define __java_awt_KeyboardFocusManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Component;
+ class Container;
+ class FocusTraversalPolicy;
+ class KeyEventDispatcher;
+ class KeyEventPostProcessor;
+ class KeyboardFocusManager;
+ class Window;
+ namespace event
+ {
+ class KeyEvent;
+ }
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ class VetoableChangeListener;
+ class VetoableChangeSupport;
+ }
+ }
+}
+
+class java::awt::KeyboardFocusManager : public ::java::lang::Object
+{
+
+public:
+ KeyboardFocusManager();
+ static ::java::awt::KeyboardFocusManager * getCurrentKeyboardFocusManager();
+ static void setCurrentKeyboardFocusManager(::java::awt::KeyboardFocusManager *);
+ virtual ::java::awt::Component * getFocusOwner();
+public: // actually protected
+ virtual ::java::awt::Component * getGlobalFocusOwner();
+ virtual void setGlobalFocusOwner(::java::awt::Component *);
+public:
+ virtual void clearGlobalFocusOwner();
+ virtual ::java::awt::Component * getPermanentFocusOwner();
+public: // actually protected
+ virtual ::java::awt::Component * getGlobalPermanentFocusOwner();
+ virtual void setGlobalPermanentFocusOwner(::java::awt::Component *);
+public:
+ virtual ::java::awt::Window * getFocusedWindow();
+public: // actually protected
+ virtual ::java::awt::Window * getGlobalFocusedWindow();
+ virtual void setGlobalFocusedWindow(::java::awt::Window *);
+public:
+ virtual ::java::awt::Window * getActiveWindow();
+public: // actually protected
+ virtual ::java::awt::Window * getGlobalActiveWindow();
+ virtual void setGlobalActiveWindow(::java::awt::Window *);
+public:
+ virtual ::java::awt::FocusTraversalPolicy * getDefaultFocusTraversalPolicy();
+ virtual void setDefaultFocusTraversalPolicy(::java::awt::FocusTraversalPolicy *);
+ virtual void setDefaultFocusTraversalKeys(jint, ::java::util::Set *);
+ virtual ::java::util::Set * getDefaultFocusTraversalKeys(jint);
+ virtual ::java::awt::Container * getCurrentFocusCycleRoot();
+public: // actually protected
+ virtual ::java::awt::Container * getGlobalCurrentFocusCycleRoot();
+public:
+ virtual void setGlobalCurrentFocusCycleRoot(::java::awt::Container *);
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners();
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(::java::lang::String *);
+public: // actually protected
+ virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+public:
+ virtual void addVetoableChangeListener(::java::beans::VetoableChangeListener *);
+ virtual void removeVetoableChangeListener(::java::beans::VetoableChangeListener *);
+ virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners();
+ virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners(::java::lang::String *);
+public: // actually protected
+ virtual void fireVetoableChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+public:
+ virtual void addKeyEventDispatcher(::java::awt::KeyEventDispatcher *);
+ virtual void removeKeyEventDispatcher(::java::awt::KeyEventDispatcher *);
+public: // actually protected
+ virtual ::java::util::List * getKeyEventDispatchers();
+public:
+ virtual void addKeyEventPostProcessor(::java::awt::KeyEventPostProcessor *);
+ virtual void removeKeyEventPostProcessor(::java::awt::KeyEventPostProcessor *);
+public: // actually protected
+ virtual ::java::util::List * getKeyEventPostProcessors();
+public:
+ virtual jboolean dispatchEvent(::java::awt::AWTEvent *) = 0;
+ virtual void redispatchEvent(::java::awt::Component *, ::java::awt::AWTEvent *);
+ virtual jboolean dispatchKeyEvent(::java::awt::event::KeyEvent *) = 0;
+ virtual jboolean postProcessKeyEvent(::java::awt::event::KeyEvent *) = 0;
+ virtual void processKeyEvent(::java::awt::Component *, ::java::awt::event::KeyEvent *) = 0;
+public: // actually protected
+ virtual void enqueueKeyEvents(jlong, ::java::awt::Component *) = 0;
+ virtual void dequeueKeyEvents(jlong, ::java::awt::Component *) = 0;
+ virtual void discardKeyEvents(::java::awt::Component *) = 0;
+public:
+ virtual void focusNextComponent(::java::awt::Component *) = 0;
+ virtual void focusPreviousComponent(::java::awt::Component *) = 0;
+ virtual void upFocusCycle(::java::awt::Component *) = 0;
+ virtual void downFocusCycle(::java::awt::Container *) = 0;
+ virtual void focusNextComponent();
+ virtual void focusPreviousComponent();
+ virtual void upFocusCycle();
+ virtual void downFocusCycle();
+private:
+ ::java::lang::Object * getObject(::java::util::Map *);
+ ::java::lang::Object * getGlobalObject(::java::util::Map *, jboolean);
+ void setGlobalObject(::java::util::Map *, ::java::lang::Object *, ::java::lang::String *);
+public: // actually package-private
+ static ::java::awt::AWTEvent * retargetFocusEvent(::java::awt::AWTEvent *);
+ static void addLightweightFocusRequest(::java::awt::Component *, ::java::awt::Component *);
+public:
+ static const jint FORWARD_TRAVERSAL_KEYS = 0;
+ static const jint BACKWARD_TRAVERSAL_KEYS = 1;
+ static const jint UP_CYCLE_TRAVERSAL_KEYS = 2;
+ static const jint DOWN_CYCLE_TRAVERSAL_KEYS = 3;
+private:
+ static ::java::util::Set * DEFAULT_FORWARD_KEYS;
+ static ::java::util::Set * DEFAULT_BACKWARD_KEYS;
+ static ::java::util::Map * currentKeyboardFocusManagers;
+ static ::java::util::Map * currentFocusOwners;
+ static ::java::util::Map * currentPermanentFocusOwners;
+ static ::java::util::Map * currentFocusedWindows;
+ static ::java::util::Map * currentActiveWindows;
+ static ::java::util::Map * currentFocusCycleRoots;
+ ::java::awt::FocusTraversalPolicy * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultPolicy;
+ JArray< ::java::util::Set * > * defaultFocusKeys;
+ ::java::beans::PropertyChangeSupport * propertyChangeSupport;
+ ::java::beans::VetoableChangeSupport * vetoableChangeSupport;
+ ::java::util::ArrayList * keyEventDispatchers;
+ ::java::util::ArrayList * keyEventPostProcessors;
+ static ::java::util::HashMap * focusRequests;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_KeyboardFocusManager__
diff --git a/gcc-4.8/libjava/java/awt/Label$AccessibleAWTLabel.h b/gcc-4.8/libjava/java/awt/Label$AccessibleAWTLabel.h
new file mode 100644
index 000000000..7301841bc
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Label$AccessibleAWTLabel.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Label$AccessibleAWTLabel__
+#define __java_awt_Label$AccessibleAWTLabel__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Label;
+ class Label$AccessibleAWTLabel;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::Label$AccessibleAWTLabel : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public:
+ Label$AccessibleAWTLabel(::java::awt::Label *);
+ virtual ::java::lang::String * getAccessibleName();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = -3568967560160480438LL;
+public: // actually package-private
+ ::java::awt::Label * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Label$AccessibleAWTLabel__
diff --git a/gcc-4.8/libjava/java/awt/Label.h b/gcc-4.8/libjava/java/awt/Label.h
new file mode 100644
index 000000000..d3151604d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Label.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Label__
+#define __java_awt_Label__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Label;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Label : public ::java::awt::Component
+{
+
+public:
+ Label();
+ Label(::java::lang::String *);
+ Label(::java::lang::String *, jint);
+ virtual jint getAlignment();
+ virtual void setAlignment(jint);
+ virtual ::java::lang::String * getText();
+ virtual void setText(::java::lang::String *);
+ virtual void addNotify();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ static const jint LEFT = 0;
+ static const jint CENTER = 1;
+ static const jint RIGHT = 2;
+private:
+ static const jlong serialVersionUID = 3094126758329070636LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::Component)))) alignment;
+ ::java::lang::String * text;
+ static jlong nextLabelNumber;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Label__
diff --git a/gcc-4.8/libjava/java/awt/LayoutManager.h b/gcc-4.8/libjava/java/awt/LayoutManager.h
new file mode 100644
index 000000000..464871c04
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/LayoutManager.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_LayoutManager__
+#define __java_awt_LayoutManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class Dimension;
+ class LayoutManager;
+ }
+ }
+}
+
+class java::awt::LayoutManager : public ::java::lang::Object
+{
+
+public:
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *) = 0;
+ virtual void removeLayoutComponent(::java::awt::Component *) = 0;
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *) = 0;
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *) = 0;
+ virtual void layoutContainer(::java::awt::Container *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_LayoutManager__
diff --git a/gcc-4.8/libjava/java/awt/LayoutManager2.h b/gcc-4.8/libjava/java/awt/LayoutManager2.h
new file mode 100644
index 000000000..7c8331bd6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/LayoutManager2.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_LayoutManager2__
+#define __java_awt_LayoutManager2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ class Dimension;
+ class LayoutManager2;
+ }
+ }
+}
+
+class java::awt::LayoutManager2 : public ::java::lang::Object
+{
+
+public:
+ virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *) = 0;
+ virtual ::java::awt::Dimension * maximumLayoutSize(::java::awt::Container *) = 0;
+ virtual jfloat getLayoutAlignmentX(::java::awt::Container *) = 0;
+ virtual jfloat getLayoutAlignmentY(::java::awt::Container *) = 0;
+ virtual void invalidateLayout(::java::awt::Container *) = 0;
+ virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *) = 0;
+ virtual void removeLayoutComponent(::java::awt::Component *) = 0;
+ virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *) = 0;
+ virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *) = 0;
+ virtual void layoutContainer(::java::awt::Container *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_LayoutManager2__
diff --git a/gcc-4.8/libjava/java/awt/LightweightDispatcher.h b/gcc-4.8/libjava/java/awt/LightweightDispatcher.h
new file mode 100644
index 000000000..4fee8f8b4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/LightweightDispatcher.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_LightweightDispatcher__
+#define __java_awt_LightweightDispatcher__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Component;
+ class Container;
+ class LightweightDispatcher;
+ namespace event
+ {
+ class MouseEvent;
+ }
+ }
+ }
+}
+
+class java::awt::LightweightDispatcher : public ::java::lang::Object
+{
+
+public: // actually package-private
+ static ::java::awt::LightweightDispatcher * getInstance();
+private:
+ LightweightDispatcher();
+public:
+ jboolean dispatchEvent(::java::awt::AWTEvent *);
+private:
+ jboolean handleMouseEvent(::java::awt::event::MouseEvent *);
+ ::java::awt::Component * findTarget(::java::awt::Container *, jint, jint);
+ jboolean isMouseListening(::java::awt::Component *);
+ void trackEnterExit(::java::awt::Component *, ::java::awt::event::MouseEvent *);
+ void redispatch(::java::awt::event::MouseEvent *, ::java::awt::Component *, jint);
+ jboolean isDragging(::java::awt::event::MouseEvent *);
+ static ::java::util::WeakHashMap * instances;
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastTarget;
+ ::java::awt::Component * mouseEventTarget;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_LightweightDispatcher__
diff --git a/gcc-4.8/libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h b/gcc-4.8/libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h
new file mode 100644
index 000000000..7014fd930
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_List$AccessibleAWTList$AccessibleAWTListChild__
+#define __java_awt_List$AccessibleAWTList$AccessibleAWTListChild__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class List;
+ class List$AccessibleAWTList;
+ class List$AccessibleAWTList$AccessibleAWTListChild;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ class AccessibleRole;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::List$AccessibleAWTList$AccessibleAWTListChild : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public:
+ List$AccessibleAWTList$AccessibleAWTListChild(::java::awt::List$AccessibleAWTList *, ::java::awt::List *, jint);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+ virtual jint getAccessibleIndexInParent();
+private:
+ static const jlong serialVersionUID = 4412022926028300317LL;
+ ::java::awt::List * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) parent;
+ jint indexInParent;
+public: // actually package-private
+ ::java::awt::List$AccessibleAWTList * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_List$AccessibleAWTList$AccessibleAWTListChild__
diff --git a/gcc-4.8/libjava/java/awt/List$AccessibleAWTList.h b/gcc-4.8/libjava/java/awt/List$AccessibleAWTList.h
new file mode 100644
index 000000000..ca0dcaa5f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/List$AccessibleAWTList.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_List$AccessibleAWTList__
+#define __java_awt_List$AccessibleAWTList__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class List;
+ class List$AccessibleAWTList;
+ namespace event
+ {
+ class ActionEvent;
+ class ItemEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class Accessible;
+ class AccessibleRole;
+ class AccessibleSelection;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::List$AccessibleAWTList : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public:
+ List$AccessibleAWTList(::java::awt::List *);
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+ virtual jint getAccessibleChildrenCount();
+ virtual ::javax::accessibility::Accessible * getAccessibleChild(jint);
+ virtual jint getAccessibleSelectionCount();
+ virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection();
+ virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint);
+ virtual jboolean isAccessibleChildSelected(jint);
+ virtual void addAccessibleSelection(jint);
+ virtual void removeAccessibleSelection(jint);
+ virtual void clearAccessibleSelection();
+ virtual void selectAllAccessibleSelection();
+ virtual void itemStateChanged(::java::awt::event::ItemEvent *);
+ virtual void actionPerformed(::java::awt::event::ActionEvent *);
+public: // actually package-private
+ static ::java::awt::List * access$0(::java::awt::List$AccessibleAWTList *);
+private:
+ static const jlong serialVersionUID = 7924617370136012829LL;
+public: // actually package-private
+ ::java::awt::List * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_List$AccessibleAWTList__
diff --git a/gcc-4.8/libjava/java/awt/List.h b/gcc-4.8/libjava/java/awt/List.h
new file mode 100644
index 000000000..ba11b18d8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/List.h
@@ -0,0 +1,121 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_List__
+#define __java_awt_List__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Dimension;
+ class List;
+ namespace event
+ {
+ class ActionEvent;
+ class ActionListener;
+ class ItemEvent;
+ class ItemListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::List : public ::java::awt::Component
+{
+
+public:
+ List();
+ List(jint);
+ List(jint, jboolean);
+ virtual jint getItemCount();
+ virtual jint countItems();
+ virtual JArray< ::java::lang::String * > * getItems();
+ virtual ::java::lang::String * getItem(jint);
+ virtual jint getRows();
+ virtual jboolean isMultipleMode();
+ virtual jboolean allowsMultipleSelections();
+ virtual void setMultipleMode(jboolean);
+ virtual void setMultipleSelections(jboolean);
+ virtual ::java::awt::Dimension * getMinimumSize();
+ virtual ::java::awt::Dimension * minimumSize();
+ virtual ::java::awt::Dimension * getMinimumSize(jint);
+ virtual ::java::awt::Dimension * minimumSize(jint);
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual ::java::awt::Dimension * preferredSize();
+ virtual ::java::awt::Dimension * getPreferredSize(jint);
+ virtual ::java::awt::Dimension * preferredSize(jint);
+ virtual void add(::java::lang::String *);
+ virtual void addItem(::java::lang::String *);
+ virtual void add(::java::lang::String *, jint);
+ virtual void addItem(::java::lang::String *, jint);
+ virtual void delItem(jint);
+ virtual void remove(jint);
+ virtual void delItems(jint, jint);
+ virtual void remove(::java::lang::String *);
+ virtual void removeAll();
+ virtual void clear();
+ virtual void replaceItem(::java::lang::String *, jint);
+ virtual jint getSelectedIndex();
+ virtual JArray< jint > * getSelectedIndexes();
+ virtual ::java::lang::String * getSelectedItem();
+ virtual JArray< ::java::lang::String * > * getSelectedItems();
+ virtual JArray< ::java::lang::Object * > * getSelectedObjects();
+ virtual jboolean isIndexSelected(jint);
+ virtual jboolean isSelected(jint);
+ virtual void makeVisible(jint);
+ virtual jint getVisibleIndex();
+ virtual void select(jint);
+ virtual void deselect(jint);
+ virtual void addNotify();
+ virtual void removeNotify();
+ virtual void addActionListener(::java::awt::event::ActionListener *);
+ virtual void removeActionListener(::java::awt::event::ActionListener *);
+ virtual void addItemListener(::java::awt::event::ItemListener *);
+ virtual void removeItemListener(::java::awt::event::ItemListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processActionEvent(::java::awt::event::ActionEvent *);
+ virtual void processItemEvent(::java::awt::event::ItemEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners();
+ virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static jlong next_list_number;
+ static const jlong serialVersionUID = -3304312411574666869LL;
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::awt::Component)))) items;
+ jboolean multipleMode;
+ jint rows;
+ JArray< jint > * selected;
+ jint visibleIndex;
+ ::java::awt::event::ItemListener * item_listeners;
+ ::java::awt::event::ActionListener * action_listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_List__
diff --git a/gcc-4.8/libjava/java/awt/MediaTracker$MediaEntry.h b/gcc-4.8/libjava/java/awt/MediaTracker$MediaEntry.h
new file mode 100644
index 000000000..a21715b59
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MediaTracker$MediaEntry.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MediaTracker$MediaEntry__
+#define __java_awt_MediaTracker$MediaEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ class MediaTracker;
+ class MediaTracker$MediaEntry;
+ }
+ }
+}
+
+class java::awt::MediaTracker$MediaEntry : public ::java::lang::Object
+{
+
+public: // actually package-private
+ MediaTracker$MediaEntry(::java::awt::MediaTracker *);
+public:
+ virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) id;
+ ::java::awt::Image * image;
+ ::java::awt::MediaTracker$MediaEntry * next;
+ jint status;
+ jint width;
+ jint height;
+ ::java::awt::MediaTracker * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MediaTracker$MediaEntry__
diff --git a/gcc-4.8/libjava/java/awt/MediaTracker.h b/gcc-4.8/libjava/java/awt/MediaTracker.h
new file mode 100644
index 000000000..bc7286863
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MediaTracker.h
@@ -0,0 +1,62 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MediaTracker__
+#define __java_awt_MediaTracker__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Image;
+ class MediaTracker;
+ class MediaTracker$MediaEntry;
+ }
+ }
+}
+
+class java::awt::MediaTracker : public ::java::lang::Object
+{
+
+public:
+ MediaTracker(::java::awt::Component *);
+ virtual void addImage(::java::awt::Image *, jint);
+ virtual void addImage(::java::awt::Image *, jint, jint, jint);
+ virtual jboolean checkAll();
+ virtual jboolean checkAll(jboolean);
+ virtual jboolean isErrorAny();
+ virtual JArray< ::java::lang::Object * > * getErrorsAny();
+ virtual void waitForAll();
+ virtual jboolean waitForAll(jlong);
+ virtual jint statusAll(jboolean);
+ virtual jboolean checkID(jint);
+ virtual jboolean checkID(jint, jboolean);
+ virtual jboolean isErrorID(jint);
+ virtual JArray< ::java::lang::Object * > * getErrorsID(jint);
+ virtual void waitForID(jint);
+ virtual jboolean waitForID(jint, jlong);
+ virtual jint statusID(jint, jboolean);
+ virtual void removeImage(::java::awt::Image *);
+ virtual void removeImage(::java::awt::Image *, jint);
+ virtual void removeImage(::java::awt::Image *, jint, jint, jint);
+ static const jint LOADING = 1;
+ static const jint ABORTED = 2;
+ static const jint ERRORED = 4;
+ static const jint COMPLETE = 8;
+public: // actually package-private
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target;
+ ::java::awt::MediaTracker$MediaEntry * head;
+ static const jlong serialVersionUID = -483174189758638095LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MediaTracker__
diff --git a/gcc-4.8/libjava/java/awt/Menu$AccessibleAWTMenu.h b/gcc-4.8/libjava/java/awt/Menu$AccessibleAWTMenu.h
new file mode 100644
index 000000000..73c33a7b7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Menu$AccessibleAWTMenu.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Menu$AccessibleAWTMenu__
+#define __java_awt_Menu$AccessibleAWTMenu__
+
+#pragma interface
+
+#include <java/awt/MenuItem$AccessibleAWTMenuItem.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Menu;
+ class Menu$AccessibleAWTMenu;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::Menu$AccessibleAWTMenu : public ::java::awt::MenuItem$AccessibleAWTMenuItem
+{
+
+public: // actually protected
+ Menu$AccessibleAWTMenu(::java::awt::Menu *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = 5228160894980069094LL;
+public: // actually package-private
+ ::java::awt::Menu * __attribute__((aligned(__alignof__( ::java::awt::MenuItem$AccessibleAWTMenuItem)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Menu$AccessibleAWTMenu__
diff --git a/gcc-4.8/libjava/java/awt/Menu.h b/gcc-4.8/libjava/java/awt/Menu.h
new file mode 100644
index 000000000..7d2ab26d2
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Menu.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Menu__
+#define __java_awt_Menu__
+
+#pragma interface
+
+#include <java/awt/MenuItem.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Menu;
+ class MenuComponent;
+ class MenuItem;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Menu : public ::java::awt::MenuItem
+{
+
+public:
+ Menu();
+ Menu(::java::lang::String *);
+ Menu(::java::lang::String *, jboolean);
+ virtual jboolean isTearOff();
+ virtual jint getItemCount();
+ virtual jint countItems();
+ virtual ::java::awt::MenuItem * getItem(jint);
+ virtual ::java::awt::MenuItem * add(::java::awt::MenuItem *);
+ virtual void add(::java::lang::String *);
+ virtual void insert(::java::awt::MenuItem *, jint);
+ virtual void insert(::java::lang::String *, jint);
+ virtual void addSeparator();
+ virtual void insertSeparator(jint);
+ virtual void remove(jint);
+ virtual void remove(::java::awt::MenuComponent *);
+ virtual void removeAll();
+ virtual void addNotify();
+ virtual void removeNotify();
+ virtual ::java::lang::String * paramString();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static jlong next_menu_number;
+ static const jlong serialVersionUID = -8809584163345499784LL;
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::awt::MenuItem)))) items;
+ jboolean tearOff;
+ jboolean isHelpMenu;
+ jint menuSerializedDataVersion;
+public: // actually package-private
+ static ::java::lang::String * separatorLabel;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Menu__
diff --git a/gcc-4.8/libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h b/gcc-4.8/libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h
new file mode 100644
index 000000000..2f4050059
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuBar$AccessibleAWTMenuBar__
+#define __java_awt_MenuBar$AccessibleAWTMenuBar__
+
+#pragma interface
+
+#include <java/awt/MenuComponent$AccessibleAWTMenuComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class MenuBar;
+ class MenuBar$AccessibleAWTMenuBar;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::MenuBar$AccessibleAWTMenuBar : public ::java::awt::MenuComponent$AccessibleAWTMenuComponent
+{
+
+public: // actually protected
+ MenuBar$AccessibleAWTMenuBar(::java::awt::MenuBar *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = -8577604491830083815LL;
+public: // actually package-private
+ ::java::awt::MenuBar * __attribute__((aligned(__alignof__( ::java::awt::MenuComponent$AccessibleAWTMenuComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuBar$AccessibleAWTMenuBar__
diff --git a/gcc-4.8/libjava/java/awt/MenuBar.h b/gcc-4.8/libjava/java/awt/MenuBar.h
new file mode 100644
index 000000000..f9eded3de
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuBar.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuBar__
+#define __java_awt_MenuBar__
+
+#pragma interface
+
+#include <java/awt/MenuComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Menu;
+ class MenuBar;
+ class MenuComponent;
+ class MenuItem;
+ class MenuShortcut;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::MenuBar : public ::java::awt::MenuComponent
+{
+
+public:
+ MenuBar();
+ virtual ::java::awt::Menu * getHelpMenu();
+ virtual void setHelpMenu(::java::awt::Menu *);
+ virtual ::java::awt::Menu * add(::java::awt::Menu *);
+ virtual void remove(jint);
+ virtual void remove(::java::awt::MenuComponent *);
+ virtual jint getMenuCount();
+ virtual jint countMenus();
+ virtual ::java::awt::Menu * getMenu(jint);
+ virtual void addNotify();
+ virtual void removeNotify();
+ virtual ::java::util::Enumeration * shortcuts();
+ virtual ::java::awt::MenuItem * getShortcutMenuItem(::java::awt::MenuShortcut *);
+ virtual void deleteShortcut(::java::awt::MenuShortcut *);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = -4930327919388951260LL;
+ static jlong next_menubar_number;
+ ::java::awt::Menu * __attribute__((aligned(__alignof__( ::java::awt::MenuComponent)))) helpMenu;
+ ::java::util::Vector * menus;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuBar__
diff --git a/gcc-4.8/libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h b/gcc-4.8/libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h
new file mode 100644
index 000000000..05d724b70
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h
@@ -0,0 +1,103 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuComponent$AccessibleAWTMenuComponent__
+#define __java_awt_MenuComponent$AccessibleAWTMenuComponent__
+
+#pragma interface
+
+#include <javax/accessibility/AccessibleContext.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class MenuComponent;
+ class MenuComponent$AccessibleAWTMenuComponent;
+ class Point;
+ class Rectangle;
+ namespace event
+ {
+ class FocusListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class Accessible;
+ class AccessibleComponent;
+ class AccessibleRole;
+ class AccessibleSelection;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::MenuComponent$AccessibleAWTMenuComponent : public ::javax::accessibility::AccessibleContext
+{
+
+public: // actually protected
+ MenuComponent$AccessibleAWTMenuComponent(::java::awt::MenuComponent *);
+public:
+ virtual void addAccessibleSelection(jint);
+ virtual void addFocusListener(::java::awt::event::FocusListener *);
+ virtual void clearAccessibleSelection();
+ virtual jboolean contains(::java::awt::Point *);
+ virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *);
+ virtual ::javax::accessibility::Accessible * getAccessibleChild(jint);
+ virtual jint getAccessibleChildrenCount();
+ virtual ::javax::accessibility::AccessibleComponent * getAccessibleComponent();
+ virtual ::java::lang::String * getAccessibleDescription();
+ virtual jint getAccessibleIndexInParent();
+ virtual ::java::lang::String * getAccessibleName();
+ virtual ::javax::accessibility::Accessible * getAccessibleParent();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection();
+ virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint);
+ virtual jint getAccessibleSelectionCount();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+ virtual ::java::awt::Color * getBackground();
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::Cursor * getCursor();
+ virtual ::java::awt::Font * getFont();
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *);
+ virtual ::java::awt::Color * getForeground();
+ virtual ::java::util::Locale * getLocale();
+ virtual ::java::awt::Point * getLocation();
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual ::java::awt::Dimension * getSize();
+ virtual jboolean isAccessibleChildSelected(jint);
+ virtual jboolean isEnabled();
+ virtual jboolean isFocusTraversable();
+ virtual jboolean isShowing();
+ virtual jboolean isVisible();
+ virtual void removeAccessibleSelection(jint);
+ virtual void removeFocusListener(::java::awt::event::FocusListener *);
+ virtual void requestFocus();
+ virtual void selectAllAccessibleSelection();
+ virtual void setBackground(::java::awt::Color *);
+ virtual void setBounds(::java::awt::Rectangle *);
+ virtual void setCursor(::java::awt::Cursor *);
+ virtual void setEnabled(jboolean);
+ virtual void setFont(::java::awt::Font *);
+ virtual void setForeground(::java::awt::Color *);
+ virtual void setLocation(::java::awt::Point *);
+ virtual void setSize(::java::awt::Dimension *);
+ virtual void setVisible(jboolean);
+private:
+ static const jlong serialVersionUID = -4269533416223798698LL;
+public: // actually package-private
+ ::java::awt::MenuComponent * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuComponent$AccessibleAWTMenuComponent__
diff --git a/gcc-4.8/libjava/java/awt/MenuComponent.h b/gcc-4.8/libjava/java/awt/MenuComponent.h
new file mode 100644
index 000000000..d47e71853
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuComponent.h
@@ -0,0 +1,102 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuComponent__
+#define __java_awt_MenuComponent__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Event;
+ class Font;
+ class MenuComponent;
+ class MenuContainer;
+ class Toolkit;
+ namespace event
+ {
+ class FocusListener;
+ }
+ namespace peer
+ {
+ class MenuComponentPeer;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::MenuComponent : public ::java::lang::Object
+{
+
+public:
+ MenuComponent();
+ virtual ::java::awt::Font * getFont();
+ virtual void setFont(::java::awt::Font *);
+ virtual ::java::lang::String * getName();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+public:
+ virtual void setName(::java::lang::String *);
+ virtual ::java::awt::MenuContainer * getParent();
+public: // actually package-private
+ virtual void setParent(::java::awt::MenuContainer *);
+public:
+ virtual ::java::awt::peer::MenuComponentPeer * getPeer();
+public: // actually package-private
+ virtual void setPeer(::java::awt::peer::MenuComponentPeer *);
+public:
+ virtual void removeNotify();
+public: // actually package-private
+ virtual ::java::awt::Toolkit * getToolkit();
+public: // actually protected
+ virtual ::java::lang::Object * getTreeLock();
+public: // actually package-private
+ virtual void setTreeLock(::java::lang::Object *);
+public:
+ virtual jboolean postEvent(::java::awt::Event *);
+ virtual void dispatchEvent(::java::awt::AWTEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+public:
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+private:
+ static const jlong serialVersionUID = -4536902356223894379LL;
+ ::java::awt::Font * __attribute__((aligned(__alignof__( ::java::lang::Object)))) font;
+ ::java::lang::String * name;
+public: // actually package-private
+ ::java::awt::MenuContainer * parent;
+ ::java::awt::peer::MenuComponentPeer * peer;
+private:
+ ::java::lang::Object * tree_lock;
+ static ::java::awt::Toolkit * toolkit;
+public: // actually package-private
+ ::javax::accessibility::AccessibleContext * accessibleContext;
+private:
+ jboolean nameExplicitlySet;
+ jboolean newEventsOnly;
+public: // actually package-private
+ ::java::awt::event::FocusListener * focusListener;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuComponent__
diff --git a/gcc-4.8/libjava/java/awt/MenuContainer.h b/gcc-4.8/libjava/java/awt/MenuContainer.h
new file mode 100644
index 000000000..3f2a1cf91
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuContainer.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuContainer__
+#define __java_awt_MenuContainer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Event;
+ class Font;
+ class MenuComponent;
+ class MenuContainer;
+ }
+ }
+}
+
+class java::awt::MenuContainer : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Font * getFont() = 0;
+ virtual void remove(::java::awt::MenuComponent *) = 0;
+ virtual jboolean postEvent(::java::awt::Event *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_MenuContainer__
diff --git a/gcc-4.8/libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h b/gcc-4.8/libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h
new file mode 100644
index 000000000..5bc263866
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuItem$AccessibleAWTMenuItem__
+#define __java_awt_MenuItem$AccessibleAWTMenuItem__
+
+#pragma interface
+
+#include <java/awt/MenuComponent$AccessibleAWTMenuComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class MenuItem;
+ class MenuItem$AccessibleAWTMenuItem;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleAction;
+ class AccessibleRole;
+ class AccessibleValue;
+ }
+ }
+}
+
+class java::awt::MenuItem$AccessibleAWTMenuItem : public ::java::awt::MenuComponent$AccessibleAWTMenuComponent
+{
+
+public: // actually protected
+ MenuItem$AccessibleAWTMenuItem(::java::awt::MenuItem *);
+public:
+ virtual ::java::lang::String * getAccessibleName();
+ virtual ::javax::accessibility::AccessibleAction * getAccessibleAction();
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual jint getAccessibleActionCount();
+ virtual ::java::lang::String * getAccessibleActionDescription(jint);
+ virtual jboolean doAccessibleAction(jint);
+ virtual ::javax::accessibility::AccessibleValue * getAccessibleValue();
+ virtual ::java::lang::Number * getCurrentAccessibleValue();
+ virtual jboolean setCurrentAccessibleValue(::java::lang::Number *);
+ virtual ::java::lang::Number * getMinimumAccessibleValue();
+ virtual ::java::lang::Number * getMaximumAccessibleValue();
+private:
+ static const jlong serialVersionUID = -217847831945965825LL;
+public: // actually package-private
+ ::java::awt::MenuItem * __attribute__((aligned(__alignof__( ::java::awt::MenuComponent$AccessibleAWTMenuComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuItem$AccessibleAWTMenuItem__
diff --git a/gcc-4.8/libjava/java/awt/MenuItem.h b/gcc-4.8/libjava/java/awt/MenuItem.h
new file mode 100644
index 000000000..2b57ebf29
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuItem.h
@@ -0,0 +1,91 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuItem__
+#define __java_awt_MenuItem__
+
+#pragma interface
+
+#include <java/awt/MenuComponent.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class MenuItem;
+ class MenuShortcut;
+ namespace event
+ {
+ class ActionEvent;
+ class ActionListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::MenuItem : public ::java::awt::MenuComponent
+{
+
+public:
+ MenuItem();
+ MenuItem(::java::lang::String *);
+ MenuItem(::java::lang::String *, ::java::awt::MenuShortcut *);
+ virtual ::java::lang::String * getLabel();
+ virtual void setLabel(::java::lang::String *);
+ virtual jboolean isEnabled();
+ virtual void setEnabled(jboolean);
+ virtual void enable(jboolean);
+ virtual void enable();
+ virtual void disable();
+ virtual ::java::awt::MenuShortcut * getShortcut();
+ virtual void setShortcut(::java::awt::MenuShortcut *);
+ virtual void deleteShortcut();
+ virtual ::java::lang::String * getActionCommand();
+ virtual void setActionCommand(::java::lang::String *);
+public: // actually protected
+ virtual void enableEvents(jlong);
+ virtual void disableEvents(jlong);
+public:
+ virtual void addNotify();
+ virtual void addActionListener(::java::awt::event::ActionListener *);
+ virtual void removeActionListener(::java::awt::event::ActionListener *);
+ virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners();
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processActionEvent(::java::awt::event::ActionEvent *);
+public:
+ virtual ::java::lang::String * paramString();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static jlong next_menuitem_number;
+ static const jlong serialVersionUID = -21757335363267194LL;
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::MenuComponent)))) actionCommand;
+ jboolean enabled;
+ jlong eventMask;
+ ::java::lang::String * label;
+private:
+ ::java::awt::MenuShortcut * shortcut;
+ ::java::awt::event::ActionListener * action_listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuItem__
diff --git a/gcc-4.8/libjava/java/awt/MenuShortcut.h b/gcc-4.8/libjava/java/awt/MenuShortcut.h
new file mode 100644
index 000000000..89ae7a873
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MenuShortcut.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MenuShortcut__
+#define __java_awt_MenuShortcut__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class MenuShortcut;
+ }
+ }
+}
+
+class java::awt::MenuShortcut : public ::java::lang::Object
+{
+
+public:
+ MenuShortcut(jint);
+ MenuShortcut(jint, jboolean);
+ virtual jint getKey();
+ virtual jboolean usesShiftModifier();
+ virtual jboolean equals(::java::awt::MenuShortcut *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+ virtual jint hashCode();
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+private:
+ void setKeyName(jint);
+ static const jlong serialVersionUID = 143448358473180225LL;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ jboolean usesShift;
+ ::java::lang::String * keyName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MenuShortcut__
diff --git a/gcc-4.8/libjava/java/awt/MouseInfo.h b/gcc-4.8/libjava/java/awt/MouseInfo.h
new file mode 100644
index 000000000..20414cb31
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/MouseInfo.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_MouseInfo__
+#define __java_awt_MouseInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class MouseInfo;
+ class PointerInfo;
+ namespace peer
+ {
+ class MouseInfoPeer;
+ }
+ }
+ }
+}
+
+class java::awt::MouseInfo : public ::java::lang::Object
+{
+
+ MouseInfo();
+public:
+ static ::java::awt::PointerInfo * getPointerInfo();
+ static jint getNumberOfButtons();
+private:
+ static ::java::awt::peer::MouseInfoPeer * peer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_MouseInfo__
diff --git a/gcc-4.8/libjava/java/awt/PageAttributes$ColorType.h b/gcc-4.8/libjava/java/awt/PageAttributes$ColorType.h
new file mode 100644
index 000000000..ae67841f6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PageAttributes$ColorType.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PageAttributes$ColorType__
+#define __java_awt_PageAttributes$ColorType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PageAttributes$ColorType;
+ }
+ }
+}
+
+class java::awt::PageAttributes$ColorType : public ::java::awt::AttributeValue
+{
+
+ PageAttributes$ColorType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::PageAttributes$ColorType * COLOR;
+ static ::java::awt::PageAttributes$ColorType * MONOCHROME;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PageAttributes$ColorType__
diff --git a/gcc-4.8/libjava/java/awt/PageAttributes$MediaType.h b/gcc-4.8/libjava/java/awt/PageAttributes$MediaType.h
new file mode 100644
index 000000000..c085d0aa7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PageAttributes$MediaType.h
@@ -0,0 +1,179 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PageAttributes$MediaType__
+#define __java_awt_PageAttributes$MediaType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PageAttributes$MediaType;
+ }
+ }
+}
+
+class java::awt::PageAttributes$MediaType : public ::java::awt::AttributeValue
+{
+
+ PageAttributes$MediaType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::PageAttributes$MediaType * ISO_4A0;
+ static ::java::awt::PageAttributes$MediaType * ISO_2A0;
+ static ::java::awt::PageAttributes$MediaType * ISO_A0;
+ static ::java::awt::PageAttributes$MediaType * ISO_A1;
+ static ::java::awt::PageAttributes$MediaType * ISO_A2;
+ static ::java::awt::PageAttributes$MediaType * ISO_A3;
+ static ::java::awt::PageAttributes$MediaType * ISO_A4;
+ static ::java::awt::PageAttributes$MediaType * ISO_A5;
+ static ::java::awt::PageAttributes$MediaType * ISO_A6;
+ static ::java::awt::PageAttributes$MediaType * ISO_A7;
+ static ::java::awt::PageAttributes$MediaType * ISO_A8;
+ static ::java::awt::PageAttributes$MediaType * ISO_A9;
+ static ::java::awt::PageAttributes$MediaType * ISO_A10;
+ static ::java::awt::PageAttributes$MediaType * ISO_B0;
+ static ::java::awt::PageAttributes$MediaType * ISO_B1;
+ static ::java::awt::PageAttributes$MediaType * ISO_B2;
+ static ::java::awt::PageAttributes$MediaType * ISO_B3;
+ static ::java::awt::PageAttributes$MediaType * ISO_B4;
+ static ::java::awt::PageAttributes$MediaType * ISO_B5;
+ static ::java::awt::PageAttributes$MediaType * ISO_B6;
+ static ::java::awt::PageAttributes$MediaType * ISO_B7;
+ static ::java::awt::PageAttributes$MediaType * ISO_B8;
+ static ::java::awt::PageAttributes$MediaType * ISO_B9;
+ static ::java::awt::PageAttributes$MediaType * ISO_B10;
+ static ::java::awt::PageAttributes$MediaType * JIS_B0;
+ static ::java::awt::PageAttributes$MediaType * JIS_B1;
+ static ::java::awt::PageAttributes$MediaType * JIS_B2;
+ static ::java::awt::PageAttributes$MediaType * JIS_B3;
+ static ::java::awt::PageAttributes$MediaType * JIS_B4;
+ static ::java::awt::PageAttributes$MediaType * JIS_B5;
+ static ::java::awt::PageAttributes$MediaType * JIS_B6;
+ static ::java::awt::PageAttributes$MediaType * JIS_B7;
+ static ::java::awt::PageAttributes$MediaType * JIS_B8;
+ static ::java::awt::PageAttributes$MediaType * JIS_B9;
+ static ::java::awt::PageAttributes$MediaType * JIS_B10;
+ static ::java::awt::PageAttributes$MediaType * ISO_C0;
+ static ::java::awt::PageAttributes$MediaType * ISO_C1;
+ static ::java::awt::PageAttributes$MediaType * ISO_C2;
+ static ::java::awt::PageAttributes$MediaType * ISO_C3;
+ static ::java::awt::PageAttributes$MediaType * ISO_C4;
+ static ::java::awt::PageAttributes$MediaType * ISO_C5;
+ static ::java::awt::PageAttributes$MediaType * ISO_C6;
+ static ::java::awt::PageAttributes$MediaType * ISO_C7;
+ static ::java::awt::PageAttributes$MediaType * ISO_C8;
+ static ::java::awt::PageAttributes$MediaType * ISO_C9;
+ static ::java::awt::PageAttributes$MediaType * ISO_C10;
+ static ::java::awt::PageAttributes$MediaType * ISO_DESIGNATED_LONG;
+ static ::java::awt::PageAttributes$MediaType * EXECUTIVE;
+ static ::java::awt::PageAttributes$MediaType * FOLIO;
+ static ::java::awt::PageAttributes$MediaType * INVOICE;
+ static ::java::awt::PageAttributes$MediaType * LEDGER;
+ static ::java::awt::PageAttributes$MediaType * NA_LETTER;
+ static ::java::awt::PageAttributes$MediaType * NA_LEGAL;
+ static ::java::awt::PageAttributes$MediaType * QUARTO;
+ static ::java::awt::PageAttributes$MediaType * A;
+ static ::java::awt::PageAttributes$MediaType * B;
+ static ::java::awt::PageAttributes$MediaType * C;
+ static ::java::awt::PageAttributes$MediaType * D;
+ static ::java::awt::PageAttributes$MediaType * E;
+ static ::java::awt::PageAttributes$MediaType * NA_10X15_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_10X14_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_10X13_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_9X12_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_9X11_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_7X9_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_6X9_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_NUMBER_9_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_NUMBER_10_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_NUMBER_11_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_NUMBER_12_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * NA_NUMBER_14_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * INVITE_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * ITALY_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * MONARCH_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * PERSONAL_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * A0;
+ static ::java::awt::PageAttributes$MediaType * A1;
+ static ::java::awt::PageAttributes$MediaType * A2;
+ static ::java::awt::PageAttributes$MediaType * A3;
+ static ::java::awt::PageAttributes$MediaType * A4;
+ static ::java::awt::PageAttributes$MediaType * A5;
+ static ::java::awt::PageAttributes$MediaType * A6;
+ static ::java::awt::PageAttributes$MediaType * A7;
+ static ::java::awt::PageAttributes$MediaType * A8;
+ static ::java::awt::PageAttributes$MediaType * A9;
+ static ::java::awt::PageAttributes$MediaType * A10;
+ static ::java::awt::PageAttributes$MediaType * B0;
+ static ::java::awt::PageAttributes$MediaType * B1;
+ static ::java::awt::PageAttributes$MediaType * B2;
+ static ::java::awt::PageAttributes$MediaType * B3;
+ static ::java::awt::PageAttributes$MediaType * B4;
+ static ::java::awt::PageAttributes$MediaType * ISO_B4_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * B5;
+ static ::java::awt::PageAttributes$MediaType * ISO_B5_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * B6;
+ static ::java::awt::PageAttributes$MediaType * B7;
+ static ::java::awt::PageAttributes$MediaType * B8;
+ static ::java::awt::PageAttributes$MediaType * B9;
+ static ::java::awt::PageAttributes$MediaType * B10;
+ static ::java::awt::PageAttributes$MediaType * C0;
+ static ::java::awt::PageAttributes$MediaType * ISO_C0_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C1;
+ static ::java::awt::PageAttributes$MediaType * ISO_C1_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C2;
+ static ::java::awt::PageAttributes$MediaType * ISO_C2_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C3;
+ static ::java::awt::PageAttributes$MediaType * ISO_C3_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C4;
+ static ::java::awt::PageAttributes$MediaType * ISO_C4_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C5;
+ static ::java::awt::PageAttributes$MediaType * ISO_C5_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C6;
+ static ::java::awt::PageAttributes$MediaType * ISO_C6_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C7;
+ static ::java::awt::PageAttributes$MediaType * ISO_C7_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C8;
+ static ::java::awt::PageAttributes$MediaType * ISO_C8_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C9;
+ static ::java::awt::PageAttributes$MediaType * ISO_C9_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * C10;
+ static ::java::awt::PageAttributes$MediaType * ISO_C10_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * ISO_DESIGNATED_LONG_ENVELOPE;
+ static ::java::awt::PageAttributes$MediaType * STATEMENT;
+ static ::java::awt::PageAttributes$MediaType * TABLOID;
+ static ::java::awt::PageAttributes$MediaType * LETTER;
+ static ::java::awt::PageAttributes$MediaType * NOTE;
+ static ::java::awt::PageAttributes$MediaType * LEGAL;
+ static ::java::awt::PageAttributes$MediaType * ENV_10X15;
+ static ::java::awt::PageAttributes$MediaType * ENV_10X14;
+ static ::java::awt::PageAttributes$MediaType * ENV_10X13;
+ static ::java::awt::PageAttributes$MediaType * ENV_9X12;
+ static ::java::awt::PageAttributes$MediaType * ENV_9X11;
+ static ::java::awt::PageAttributes$MediaType * ENV_7X9;
+ static ::java::awt::PageAttributes$MediaType * ENV_6X9;
+ static ::java::awt::PageAttributes$MediaType * ENV_9;
+ static ::java::awt::PageAttributes$MediaType * ENV_10;
+ static ::java::awt::PageAttributes$MediaType * ENV_11;
+ static ::java::awt::PageAttributes$MediaType * ENV_12;
+ static ::java::awt::PageAttributes$MediaType * ENV_14;
+ static ::java::awt::PageAttributes$MediaType * ENV_INVITE;
+ static ::java::awt::PageAttributes$MediaType * ENV_ITALY;
+ static ::java::awt::PageAttributes$MediaType * ENV_MONARCH;
+ static ::java::awt::PageAttributes$MediaType * ENV_PERSONAL;
+ static ::java::awt::PageAttributes$MediaType * INVITE;
+ static ::java::awt::PageAttributes$MediaType * ITALY;
+ static ::java::awt::PageAttributes$MediaType * MONARCH;
+ static ::java::awt::PageAttributes$MediaType * PERSONAL;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PageAttributes$MediaType__
diff --git a/gcc-4.8/libjava/java/awt/PageAttributes$OrientationRequestedType.h b/gcc-4.8/libjava/java/awt/PageAttributes$OrientationRequestedType.h
new file mode 100644
index 000000000..79e1602d3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PageAttributes$OrientationRequestedType.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PageAttributes$OrientationRequestedType__
+#define __java_awt_PageAttributes$OrientationRequestedType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PageAttributes$OrientationRequestedType;
+ }
+ }
+}
+
+class java::awt::PageAttributes$OrientationRequestedType : public ::java::awt::AttributeValue
+{
+
+ PageAttributes$OrientationRequestedType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::PageAttributes$OrientationRequestedType * PORTRAIT;
+ static ::java::awt::PageAttributes$OrientationRequestedType * LANDSCAPE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PageAttributes$OrientationRequestedType__
diff --git a/gcc-4.8/libjava/java/awt/PageAttributes$OriginType.h b/gcc-4.8/libjava/java/awt/PageAttributes$OriginType.h
new file mode 100644
index 000000000..16e04f866
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PageAttributes$OriginType.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PageAttributes$OriginType__
+#define __java_awt_PageAttributes$OriginType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PageAttributes$OriginType;
+ }
+ }
+}
+
+class java::awt::PageAttributes$OriginType : public ::java::awt::AttributeValue
+{
+
+ PageAttributes$OriginType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::PageAttributes$OriginType * PHYSICAL;
+ static ::java::awt::PageAttributes$OriginType * PRINTABLE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PageAttributes$OriginType__
diff --git a/gcc-4.8/libjava/java/awt/PageAttributes$PrintQualityType.h b/gcc-4.8/libjava/java/awt/PageAttributes$PrintQualityType.h
new file mode 100644
index 000000000..3f2b68cab
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PageAttributes$PrintQualityType.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PageAttributes$PrintQualityType__
+#define __java_awt_PageAttributes$PrintQualityType__
+
+#pragma interface
+
+#include <java/awt/AttributeValue.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PageAttributes$PrintQualityType;
+ }
+ }
+}
+
+class java::awt::PageAttributes$PrintQualityType : public ::java::awt::AttributeValue
+{
+
+ PageAttributes$PrintQualityType(jint);
+ static JArray< ::java::lang::String * > * NAMES;
+public:
+ static ::java::awt::PageAttributes$PrintQualityType * HIGH;
+ static ::java::awt::PageAttributes$PrintQualityType * NORMAL;
+ static ::java::awt::PageAttributes$PrintQualityType * DRAFT;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PageAttributes$PrintQualityType__
diff --git a/gcc-4.8/libjava/java/awt/PageAttributes.h b/gcc-4.8/libjava/java/awt/PageAttributes.h
new file mode 100644
index 000000000..7ed2f7a42
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PageAttributes.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PageAttributes__
+#define __java_awt_PageAttributes__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PageAttributes;
+ class PageAttributes$ColorType;
+ class PageAttributes$MediaType;
+ class PageAttributes$OrientationRequestedType;
+ class PageAttributes$OriginType;
+ class PageAttributes$PrintQualityType;
+ }
+ }
+}
+
+class java::awt::PageAttributes : public ::java::lang::Object
+{
+
+public:
+ PageAttributes();
+ PageAttributes(::java::awt::PageAttributes *);
+ PageAttributes(::java::awt::PageAttributes$ColorType *, ::java::awt::PageAttributes$MediaType *, ::java::awt::PageAttributes$OrientationRequestedType *, ::java::awt::PageAttributes$OriginType *, ::java::awt::PageAttributes$PrintQualityType *, JArray< jint > *);
+ ::java::lang::Object * clone();
+ void set(::java::awt::PageAttributes *);
+ ::java::awt::PageAttributes$ColorType * getColor();
+ void setColor(::java::awt::PageAttributes$ColorType *);
+ ::java::awt::PageAttributes$MediaType * getMedia();
+ void setMedia(::java::awt::PageAttributes$MediaType *);
+ void setMediaToDefault();
+ ::java::awt::PageAttributes$OrientationRequestedType * getOrientationRequested();
+ void setOrientationRequested(::java::awt::PageAttributes$OrientationRequestedType *);
+ void setOrientationRequested(jint);
+ void setOrientationRequestedToDefault();
+ ::java::awt::PageAttributes$OriginType * getOrigin();
+ void setOrigin(::java::awt::PageAttributes$OriginType *);
+ ::java::awt::PageAttributes$PrintQualityType * getPrintQuality();
+ void setPrintQuality(::java::awt::PageAttributes$PrintQualityType *);
+ void setPrintQuality(jint);
+ void setPrintQualityToDefault();
+ JArray< jint > * getPrinterResolution();
+ void setPrinterResolution(JArray< jint > *);
+ void setPrinterResolution(jint);
+ void setPrinterResolutionToDefault();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+private:
+ ::java::awt::PageAttributes$ColorType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) color;
+ ::java::awt::PageAttributes$MediaType * media;
+ ::java::awt::PageAttributes$OrientationRequestedType * orientation;
+ ::java::awt::PageAttributes$OriginType * origin;
+ ::java::awt::PageAttributes$PrintQualityType * quality;
+ jint resolutionX;
+ jint resolutionY;
+ jint resolutionScale;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PageAttributes__
diff --git a/gcc-4.8/libjava/java/awt/Paint.h b/gcc-4.8/libjava/java/awt/Paint.h
new file mode 100644
index 000000000..85f7c9fce
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Paint.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Paint__
+#define __java_awt_Paint__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Paint;
+ class PaintContext;
+ class Rectangle;
+ class RenderingHints;
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::Paint : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::PaintContext * createContext(::java::awt::image::ColorModel *, ::java::awt::Rectangle *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *) = 0;
+ virtual jint getTransparency() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_Paint__
diff --git a/gcc-4.8/libjava/java/awt/PaintContext.h b/gcc-4.8/libjava/java/awt/PaintContext.h
new file mode 100644
index 000000000..7658a30e4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PaintContext.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PaintContext__
+#define __java_awt_PaintContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PaintContext;
+ namespace image
+ {
+ class ColorModel;
+ class Raster;
+ }
+ }
+ }
+}
+
+class java::awt::PaintContext : public ::java::lang::Object
+{
+
+public:
+ virtual void dispose() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::image::Raster * getRaster(jint, jint, jint, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_PaintContext__
diff --git a/gcc-4.8/libjava/java/awt/Panel$AccessibleAWTPanel.h b/gcc-4.8/libjava/java/awt/Panel$AccessibleAWTPanel.h
new file mode 100644
index 000000000..386cf0a2b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Panel$AccessibleAWTPanel.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Panel$AccessibleAWTPanel__
+#define __java_awt_Panel$AccessibleAWTPanel__
+
+#pragma interface
+
+#include <java/awt/Container$AccessibleAWTContainer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Panel;
+ class Panel$AccessibleAWTPanel;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::Panel$AccessibleAWTPanel : public ::java::awt::Container$AccessibleAWTContainer
+{
+
+public: // actually protected
+ Panel$AccessibleAWTPanel(::java::awt::Panel *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = -6409552226660031050LL;
+public: // actually package-private
+ ::java::awt::Panel * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Panel$AccessibleAWTPanel__
diff --git a/gcc-4.8/libjava/java/awt/Panel.h b/gcc-4.8/libjava/java/awt/Panel.h
new file mode 100644
index 000000000..23a788e4b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Panel.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Panel__
+#define __java_awt_Panel__
+
+#pragma interface
+
+#include <java/awt/Container.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class LayoutManager;
+ class Panel;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Panel : public ::java::awt::Container
+{
+
+public:
+ Panel();
+ Panel(::java::awt::LayoutManager *);
+ virtual void addNotify();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = -2728009084054400034LL;
+ ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Container)))) context;
+ jboolean initialSystemUpdateDone;
+ jboolean initialUpdateConsumed;
+ static jlong next_panel_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Panel__
diff --git a/gcc-4.8/libjava/java/awt/Point.h b/gcc-4.8/libjava/java/awt/Point.h
new file mode 100644
index 000000000..a161a00cd
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Point.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Point__
+#define __java_awt_Point__
+
+#pragma interface
+
+#include <java/awt/geom/Point2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ }
+ }
+}
+
+class java::awt::Point : public ::java::awt::geom::Point2D
+{
+
+public:
+ Point();
+ Point(::java::awt::Point *);
+ Point(jint, jint);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual ::java::awt::Point * getLocation();
+ virtual void setLocation(::java::awt::Point *);
+ virtual void setLocation(jint, jint);
+ virtual void setLocation(jdouble, jdouble);
+ virtual void move(jint, jint);
+ virtual void translate(jint, jint);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -5276940640259749850LL;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::awt::geom::Point2D)))) x;
+ jint y;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Point__
diff --git a/gcc-4.8/libjava/java/awt/PointerInfo.h b/gcc-4.8/libjava/java/awt/PointerInfo.h
new file mode 100644
index 000000000..fc149bbf0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PointerInfo.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PointerInfo__
+#define __java_awt_PointerInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class GraphicsDevice;
+ class Point;
+ class PointerInfo;
+ }
+ }
+}
+
+class java::awt::PointerInfo : public ::java::lang::Object
+{
+
+public: // actually package-private
+ PointerInfo(::java::awt::GraphicsDevice *, ::java::awt::Point *);
+public:
+ virtual ::java::awt::GraphicsDevice * getDevice();
+ virtual ::java::awt::Point * getLocation();
+private:
+ ::java::awt::GraphicsDevice * __attribute__((aligned(__alignof__( ::java::lang::Object)))) gd;
+ ::java::awt::Point * p;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PointerInfo__
diff --git a/gcc-4.8/libjava/java/awt/Polygon$1.h b/gcc-4.8/libjava/java/awt/Polygon$1.h
new file mode 100644
index 000000000..1073b6932
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Polygon$1.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Polygon$1__
+#define __java_awt_Polygon$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Polygon;
+ class Polygon$1;
+ namespace geom
+ {
+ class AffineTransform;
+ }
+ }
+ }
+}
+
+class java::awt::Polygon$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Polygon$1(::java::awt::Polygon *, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint currentSegment(JArray< jdouble > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) vertex;
+public: // actually package-private
+ ::java::awt::Polygon * this$0;
+private:
+ ::java::awt::geom::AffineTransform * val$transform;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Polygon$1__
diff --git a/gcc-4.8/libjava/java/awt/Polygon.h b/gcc-4.8/libjava/java/awt/Polygon.h
new file mode 100644
index 000000000..e692f132e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Polygon.h
@@ -0,0 +1,71 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Polygon__
+#define __java_awt_Polygon__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ class Polygon;
+ class Rectangle;
+ namespace geom
+ {
+ class AffineTransform;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::Polygon : public ::java::lang::Object
+{
+
+public:
+ Polygon();
+ Polygon(JArray< jint > *, JArray< jint > *, jint);
+ virtual void reset();
+ virtual void invalidate();
+ virtual void translate(jint, jint);
+ virtual void addPoint(jint, jint);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::Rectangle * getBoundingBox();
+ virtual jboolean contains(::java::awt::Point *);
+ virtual jboolean contains(jint, jint);
+ virtual jboolean inside(jint, jint);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Point2D *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+private:
+ jint evaluateCrossings(jdouble, jdouble, jboolean, jdouble);
+ static const jlong serialVersionUID = -6460061437900069969LL;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) npoints;
+ JArray< jint > * xpoints;
+ JArray< jint > * ypoints;
+public: // actually protected
+ ::java::awt::Rectangle * bounds;
+private:
+ static jdouble BIG_VALUE;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Polygon__
diff --git a/gcc-4.8/libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h b/gcc-4.8/libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h
new file mode 100644
index 000000000..f28ed4cac
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PopupMenu$AccessibleAWTPopupMenu__
+#define __java_awt_PopupMenu$AccessibleAWTPopupMenu__
+
+#pragma interface
+
+#include <java/awt/Menu$AccessibleAWTMenu.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PopupMenu;
+ class PopupMenu$AccessibleAWTPopupMenu;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::PopupMenu$AccessibleAWTPopupMenu : public ::java::awt::Menu$AccessibleAWTMenu
+{
+
+public: // actually protected
+ PopupMenu$AccessibleAWTPopupMenu(::java::awt::PopupMenu *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = -4282044795947239955LL;
+public: // actually package-private
+ ::java::awt::PopupMenu * __attribute__((aligned(__alignof__( ::java::awt::Menu$AccessibleAWTMenu)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PopupMenu$AccessibleAWTPopupMenu__
diff --git a/gcc-4.8/libjava/java/awt/PopupMenu.h b/gcc-4.8/libjava/java/awt/PopupMenu.h
new file mode 100644
index 000000000..855809bb0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PopupMenu.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PopupMenu__
+#define __java_awt_PopupMenu__
+
+#pragma interface
+
+#include <java/awt/Menu.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class PopupMenu;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::PopupMenu : public ::java::awt::Menu
+{
+
+public:
+ PopupMenu();
+ PopupMenu(::java::lang::String *);
+ virtual void addNotify();
+ virtual void show(::java::awt::Component *, jint, jint);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+ static jlong next_popup_number;
+ static const jlong serialVersionUID = -4620452533522760060LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PopupMenu__
diff --git a/gcc-4.8/libjava/java/awt/PrintGraphics.h b/gcc-4.8/libjava/java/awt/PrintGraphics.h
new file mode 100644
index 000000000..7027cb6b7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PrintGraphics.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PrintGraphics__
+#define __java_awt_PrintGraphics__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PrintGraphics;
+ class PrintJob;
+ }
+ }
+}
+
+class java::awt::PrintGraphics : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::PrintJob * getPrintJob() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_PrintGraphics__
diff --git a/gcc-4.8/libjava/java/awt/PrintJob.h b/gcc-4.8/libjava/java/awt/PrintJob.h
new file mode 100644
index 000000000..66c98e3e3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/PrintJob.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_PrintJob__
+#define __java_awt_PrintJob__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ class Graphics;
+ class PrintJob;
+ }
+ }
+}
+
+class java::awt::PrintJob : public ::java::lang::Object
+{
+
+public:
+ PrintJob();
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Dimension * getPageDimension() = 0;
+ virtual jint getPageResolution() = 0;
+ virtual jboolean lastPageFirst() = 0;
+ virtual void end() = 0;
+ virtual void finalize();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_PrintJob__
diff --git a/gcc-4.8/libjava/java/awt/Rectangle.h b/gcc-4.8/libjava/java/awt/Rectangle.h
new file mode 100644
index 000000000..6a098adb5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Rectangle.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Rectangle__
+#define __java_awt_Rectangle__
+
+#pragma interface
+
+#include <java/awt/geom/Rectangle2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ class Point;
+ class Rectangle;
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::Rectangle : public ::java::awt::geom::Rectangle2D
+{
+
+public:
+ Rectangle();
+ Rectangle(::java::awt::Rectangle *);
+ Rectangle(jint, jint, jint, jint);
+ Rectangle(jint, jint);
+ Rectangle(::java::awt::Point *, ::java::awt::Dimension *);
+ Rectangle(::java::awt::Point *);
+ Rectangle(::java::awt::Dimension *);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual void setBounds(::java::awt::Rectangle *);
+ virtual void setBounds(jint, jint, jint, jint);
+ virtual void setRect(jdouble, jdouble, jdouble, jdouble);
+ virtual void reshape(jint, jint, jint, jint);
+ virtual ::java::awt::Point * getLocation();
+ virtual void setLocation(::java::awt::Point *);
+ virtual void setLocation(jint, jint);
+ virtual void move(jint, jint);
+ virtual void translate(jint, jint);
+ virtual ::java::awt::Dimension * getSize();
+ virtual void setSize(::java::awt::Dimension *);
+ virtual void setSize(jint, jint);
+ virtual void resize(jint, jint);
+ virtual jboolean contains(::java::awt::Point *);
+ virtual jboolean contains(jint, jint);
+ virtual jboolean contains(::java::awt::Rectangle *);
+ virtual jboolean contains(jint, jint, jint, jint);
+ virtual jboolean inside(jint, jint);
+ virtual jboolean intersects(::java::awt::Rectangle *);
+ virtual ::java::awt::Rectangle * intersection(::java::awt::Rectangle *);
+ virtual ::java::awt::Rectangle * union$(::java::awt::Rectangle *);
+ virtual void add(jint, jint);
+ virtual void add(::java::awt::Point *);
+ virtual void add(::java::awt::Rectangle *);
+ virtual void grow(jint, jint);
+ virtual jboolean isEmpty();
+ virtual jint outcode(jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * createIntersection(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::Rectangle2D * createUnion(::java::awt::geom::Rectangle2D *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -4345857070255674764LL;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::awt::geom::Rectangle2D)))) x;
+ jint y;
+ jint width;
+ jint height;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Rectangle__
diff --git a/gcc-4.8/libjava/java/awt/RenderingHints$Key.h b/gcc-4.8/libjava/java/awt/RenderingHints$Key.h
new file mode 100644
index 000000000..7f4c9724c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/RenderingHints$Key.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_RenderingHints$Key__
+#define __java_awt_RenderingHints$Key__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints$Key;
+ }
+ }
+}
+
+class java::awt::RenderingHints$Key : public ::java::lang::Object
+{
+
+public: // actually protected
+ RenderingHints$Key(jint);
+public:
+ virtual jboolean isCompatibleValue(::java::lang::Object *) = 0;
+public: // actually protected
+ virtual jint intKey();
+public:
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_RenderingHints$Key__
diff --git a/gcc-4.8/libjava/java/awt/RenderingHints$KeyImpl.h b/gcc-4.8/libjava/java/awt/RenderingHints$KeyImpl.h
new file mode 100644
index 000000000..d81b7b9c1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/RenderingHints$KeyImpl.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_RenderingHints$KeyImpl__
+#define __java_awt_RenderingHints$KeyImpl__
+
+#pragma interface
+
+#include <java/awt/RenderingHints$Key.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints$KeyImpl;
+ }
+ }
+}
+
+class java::awt::RenderingHints$KeyImpl : public ::java::awt::RenderingHints$Key
+{
+
+public: // actually package-private
+ RenderingHints$KeyImpl(jint, ::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+public:
+ jboolean isCompatibleValue(::java::lang::Object *);
+ ::java::lang::String * toString();
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::RenderingHints$Key)))) description;
+ ::java::lang::Object * v1;
+ ::java::lang::Object * v2;
+ ::java::lang::Object * v3;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_RenderingHints$KeyImpl__
diff --git a/gcc-4.8/libjava/java/awt/RenderingHints.h b/gcc-4.8/libjava/java/awt/RenderingHints.h
new file mode 100644
index 000000000..6ceee1853
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/RenderingHints.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_RenderingHints__
+#define __java_awt_RenderingHints__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ class RenderingHints$Key;
+ }
+ }
+}
+
+class java::awt::RenderingHints : public ::java::lang::Object
+{
+
+public:
+ RenderingHints(::java::util::Map *);
+ RenderingHints(::java::awt::RenderingHints$Key *, ::java::lang::Object *);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void add(::java::awt::RenderingHints *);
+ virtual void clear();
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::util::Set * keySet();
+ virtual ::java::util::Collection * values();
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hintMap;
+public:
+ static ::java::awt::RenderingHints$Key * KEY_ANTIALIASING;
+ static ::java::lang::Object * VALUE_ANTIALIAS_ON;
+ static ::java::lang::Object * VALUE_ANTIALIAS_OFF;
+ static ::java::lang::Object * VALUE_ANTIALIAS_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_RENDERING;
+ static ::java::lang::Object * VALUE_RENDER_SPEED;
+ static ::java::lang::Object * VALUE_RENDER_QUALITY;
+ static ::java::lang::Object * VALUE_RENDER_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_DITHERING;
+ static ::java::lang::Object * VALUE_DITHER_DISABLE;
+ static ::java::lang::Object * VALUE_DITHER_ENABLE;
+ static ::java::lang::Object * VALUE_DITHER_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_TEXT_ANTIALIASING;
+ static ::java::lang::Object * VALUE_TEXT_ANTIALIAS_ON;
+ static ::java::lang::Object * VALUE_TEXT_ANTIALIAS_OFF;
+ static ::java::lang::Object * VALUE_TEXT_ANTIALIAS_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_FRACTIONALMETRICS;
+ static ::java::lang::Object * VALUE_FRACTIONALMETRICS_OFF;
+ static ::java::lang::Object * VALUE_FRACTIONALMETRICS_ON;
+ static ::java::lang::Object * VALUE_FRACTIONALMETRICS_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_INTERPOLATION;
+ static ::java::lang::Object * VALUE_INTERPOLATION_NEAREST_NEIGHBOR;
+ static ::java::lang::Object * VALUE_INTERPOLATION_BILINEAR;
+ static ::java::lang::Object * VALUE_INTERPOLATION_BICUBIC;
+ static ::java::awt::RenderingHints$Key * KEY_ALPHA_INTERPOLATION;
+ static ::java::lang::Object * VALUE_ALPHA_INTERPOLATION_SPEED;
+ static ::java::lang::Object * VALUE_ALPHA_INTERPOLATION_QUALITY;
+ static ::java::lang::Object * VALUE_ALPHA_INTERPOLATION_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_COLOR_RENDERING;
+ static ::java::lang::Object * VALUE_COLOR_RENDER_SPEED;
+ static ::java::lang::Object * VALUE_COLOR_RENDER_QUALITY;
+ static ::java::lang::Object * VALUE_COLOR_RENDER_DEFAULT;
+ static ::java::awt::RenderingHints$Key * KEY_STROKE_CONTROL;
+ static ::java::lang::Object * VALUE_STROKE_DEFAULT;
+ static ::java::lang::Object * VALUE_STROKE_NORMALIZE;
+ static ::java::lang::Object * VALUE_STROKE_PURE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_RenderingHints__
diff --git a/gcc-4.8/libjava/java/awt/Robot$1.h b/gcc-4.8/libjava/java/awt/Robot$1.h
new file mode 100644
index 000000000..2fe884ab7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Robot$1.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Robot$1__
+#define __java_awt_Robot$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Robot;
+ class Robot$1;
+ }
+ }
+}
+
+class java::awt::Robot$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Robot$1(::java::awt::Robot *);
+public:
+ virtual void run();
+public: // actually package-private
+ ::java::awt::Robot * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Robot$1__
diff --git a/gcc-4.8/libjava/java/awt/Robot.h b/gcc-4.8/libjava/java/awt/Robot.h
new file mode 100644
index 000000000..d283f7e97
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Robot.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Robot__
+#define __java_awt_Robot__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Color;
+ class GraphicsDevice;
+ class Rectangle;
+ class Robot;
+ namespace image
+ {
+ class BufferedImage;
+ }
+ namespace peer
+ {
+ class RobotPeer;
+ }
+ }
+ }
+}
+
+class java::awt::Robot : public ::java::lang::Object
+{
+
+public:
+ Robot();
+ Robot(::java::awt::GraphicsDevice *);
+ virtual void mouseMove(jint, jint);
+ virtual void mousePress(jint);
+ virtual void mouseRelease(jint);
+ virtual void mouseWheel(jint);
+ virtual void keyPress(jint);
+ virtual void keyRelease(jint);
+ virtual ::java::awt::Color * getPixelColor(jint, jint);
+ virtual ::java::awt::image::BufferedImage * createScreenCapture(::java::awt::Rectangle *);
+ virtual jboolean isAutoWaitForIdle();
+ virtual void setAutoWaitForIdle(jboolean);
+ virtual jint getAutoDelay();
+ virtual void setAutoDelay(jint);
+ virtual void delay(jint);
+ virtual void waitForIdle();
+ virtual ::java::lang::String * toString();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) waitForIdle__;
+ jint autoDelay;
+ ::java::awt::peer::RobotPeer * peer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Robot__
diff --git a/gcc-4.8/libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h b/gcc-4.8/libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h
new file mode 100644
index 000000000..dd103cde3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ScrollPane$AccessibleAWTScrollPane__
+#define __java_awt_ScrollPane$AccessibleAWTScrollPane__
+
+#pragma interface
+
+#include <java/awt/Container$AccessibleAWTContainer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ScrollPane;
+ class ScrollPane$AccessibleAWTScrollPane;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ }
+ }
+}
+
+class java::awt::ScrollPane$AccessibleAWTScrollPane : public ::java::awt::Container$AccessibleAWTContainer
+{
+
+public: // actually protected
+ ScrollPane$AccessibleAWTScrollPane(::java::awt::ScrollPane *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+private:
+ static const jlong serialVersionUID = 6100703663886637LL;
+public: // actually package-private
+ ::java::awt::ScrollPane * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ScrollPane$AccessibleAWTScrollPane__
diff --git a/gcc-4.8/libjava/java/awt/ScrollPane.h b/gcc-4.8/libjava/java/awt/ScrollPane.h
new file mode 100644
index 000000000..30110cf7e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ScrollPane.h
@@ -0,0 +1,89 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ScrollPane__
+#define __java_awt_ScrollPane__
+
+#pragma interface
+
+#include <java/awt/Container.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Adjustable;
+ class Component;
+ class Dimension;
+ class Graphics;
+ class LayoutManager;
+ class Point;
+ class ScrollPane;
+ class ScrollPaneAdjustable;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::ScrollPane : public ::java::awt::Container
+{
+
+public:
+ ScrollPane();
+ ScrollPane(jint);
+ virtual jint getScrollbarDisplayPolicy();
+ virtual ::java::awt::Adjustable * getHAdjustable();
+ virtual ::java::awt::Adjustable * getVAdjustable();
+ virtual ::java::awt::Dimension * getViewportSize();
+ virtual jint getHScrollbarHeight();
+ virtual jint getVScrollbarWidth();
+ virtual ::java::awt::Point * getScrollPosition();
+ virtual void setScrollPosition(::java::awt::Point *);
+ virtual void setScrollPosition(jint, jint);
+ virtual void addNotify();
+ virtual void removeNotify();
+public: // actually protected
+ virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint);
+public:
+ virtual void doLayout();
+ virtual void layout();
+ virtual void setLayout(::java::awt::LayoutManager *);
+ virtual void printComponents(::java::awt::Graphics *);
+ virtual ::java::lang::String * paramString();
+private:
+ ::java::lang::String * getScrollbarDisplayPolicyString();
+ ::java::lang::String * getIsValidString();
+public: // actually protected
+ virtual jboolean eventTypeEnabled(jint);
+public:
+ virtual jboolean isWheelScrollingEnabled();
+ virtual void setWheelScrollingEnabled(jboolean);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ static const jint SCROLLBARS_AS_NEEDED = 0;
+ static const jint SCROLLBARS_ALWAYS = 1;
+ static const jint SCROLLBARS_NEVER = 2;
+private:
+ static jlong next_scrollpane_number;
+ static const jlong serialVersionUID = 7956609840827222915LL;
+ ::java::awt::ScrollPaneAdjustable * __attribute__((aligned(__alignof__( ::java::awt::Container)))) hAdjustable;
+ ::java::awt::ScrollPaneAdjustable * vAdjustable;
+ jint scrollbarDisplayPolicy;
+ ::java::awt::Point * scrollPosition;
+ jboolean wheelScrollingEnabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ScrollPane__
diff --git a/gcc-4.8/libjava/java/awt/ScrollPaneAdjustable.h b/gcc-4.8/libjava/java/awt/ScrollPaneAdjustable.h
new file mode 100644
index 000000000..a07d48c0c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/ScrollPaneAdjustable.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_ScrollPaneAdjustable__
+#define __java_awt_ScrollPaneAdjustable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ScrollPane;
+ class ScrollPaneAdjustable;
+ namespace event
+ {
+ class AdjustmentListener;
+ }
+ }
+ }
+}
+
+class java::awt::ScrollPaneAdjustable : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ScrollPaneAdjustable(::java::awt::ScrollPane *, jint);
+ ScrollPaneAdjustable(::java::awt::ScrollPane *, jint, jint, jint, jint, jint, jint, jint);
+public:
+ virtual void addAdjustmentListener(::java::awt::event::AdjustmentListener *);
+ virtual void removeAdjustmentListener(::java::awt::event::AdjustmentListener *);
+ virtual JArray< ::java::awt::event::AdjustmentListener * > * getAdjustmentListeners();
+ virtual jint getBlockIncrement();
+ virtual jint getMaximum();
+ virtual jint getMinimum();
+ virtual jint getOrientation();
+ virtual jint getUnitIncrement();
+ virtual jint getValue();
+ virtual jint getVisibleAmount();
+ virtual void setBlockIncrement(jint);
+ virtual void setMaximum(jint);
+ virtual void setMinimum(jint);
+ virtual void setUnitIncrement(jint);
+ virtual void setValue(jint);
+ virtual void setVisibleAmount(jint);
+ virtual ::java::lang::String * paramString();
+private:
+ ::java::lang::String * paramStringHelper();
+public:
+ virtual ::java::lang::String * toString();
+ virtual jboolean getValueIsAdjusting();
+ virtual void setValueIsAdjusting(jboolean);
+private:
+ static const jlong serialVersionUID = -3359745691033257079LL;
+public: // actually package-private
+ ::java::awt::ScrollPane * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sp;
+ jint orientation;
+ jint value;
+ jint minimum;
+ jint maximum;
+ jint visibleAmount;
+ jint unitIncrement;
+ jint blockIncrement;
+ ::java::awt::event::AdjustmentListener * adjustmentListener;
+private:
+ jboolean valueIsAdjusting;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_ScrollPaneAdjustable__
diff --git a/gcc-4.8/libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h b/gcc-4.8/libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h
new file mode 100644
index 000000000..1549a6a24
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Scrollbar$AccessibleAWTScrollBar__
+#define __java_awt_Scrollbar$AccessibleAWTScrollBar__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Scrollbar;
+ class Scrollbar$AccessibleAWTScrollBar;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ class AccessibleStateSet;
+ class AccessibleValue;
+ }
+ }
+}
+
+class java::awt::Scrollbar$AccessibleAWTScrollBar : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public: // actually protected
+ Scrollbar$AccessibleAWTScrollBar(::java::awt::Scrollbar *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+ virtual ::javax::accessibility::AccessibleValue * getAccessibleValue();
+ virtual ::java::lang::Number * getCurrentAccessibleValue();
+ virtual jboolean setCurrentAccessibleValue(::java::lang::Number *);
+ virtual ::java::lang::Number * getMinimumAccessibleValue();
+ virtual ::java::lang::Number * getMaximumAccessibleValue();
+private:
+ static const jlong serialVersionUID = -344337268523697807LL;
+public: // actually package-private
+ ::java::awt::Scrollbar * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Scrollbar$AccessibleAWTScrollBar__
diff --git a/gcc-4.8/libjava/java/awt/Scrollbar.h b/gcc-4.8/libjava/java/awt/Scrollbar.h
new file mode 100644
index 000000000..d13f504e9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Scrollbar.h
@@ -0,0 +1,102 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Scrollbar__
+#define __java_awt_Scrollbar__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Scrollbar;
+ namespace event
+ {
+ class AdjustmentEvent;
+ class AdjustmentListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Scrollbar : public ::java::awt::Component
+{
+
+public:
+ Scrollbar();
+ Scrollbar(jint);
+ Scrollbar(jint, jint, jint, jint, jint);
+ virtual jint getOrientation();
+ virtual void setOrientation(jint);
+ virtual jint getValue();
+ virtual void setValue(jint);
+ virtual jint getMaximum();
+ virtual void setMaximum(jint);
+ virtual jint getMinimum();
+ virtual void setMinimum(jint);
+ virtual jint getVisibleAmount();
+ virtual jint getVisible();
+ virtual void setVisibleAmount(jint);
+ virtual void setValues(jint, jint, jint, jint);
+ virtual jint getUnitIncrement();
+ virtual jint getLineIncrement();
+ virtual void setUnitIncrement(jint);
+ virtual void setLineIncrement(jint);
+ virtual jint getBlockIncrement();
+ virtual jint getPageIncrement();
+ virtual void setBlockIncrement(jint);
+ virtual void setPageIncrement(jint);
+ virtual void addNotify();
+ virtual void addAdjustmentListener(::java::awt::event::AdjustmentListener *);
+ virtual void removeAdjustmentListener(::java::awt::event::AdjustmentListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processAdjustmentEvent(::java::awt::event::AdjustmentEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual JArray< ::java::awt::event::AdjustmentListener * > * getAdjustmentListeners();
+ virtual jboolean getValueIsAdjusting();
+ virtual void setValueIsAdjusting(jboolean);
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+ static const jint HORIZONTAL = 0;
+ static const jint VERTICAL = 1;
+private:
+ static const jlong serialVersionUID = 8451667562882310543LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::Component)))) lineIncrement;
+ jint pageIncrement;
+ jint maximum;
+ jint minimum;
+ jint orientation;
+ jint value;
+ jint visibleAmount;
+ ::java::awt::event::AdjustmentListener * adjustment_listeners;
+ jboolean valueIsAdjusting;
+ static jlong next_scrollbar_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Scrollbar__
diff --git a/gcc-4.8/libjava/java/awt/Shape.h b/gcc-4.8/libjava/java/awt/Shape.h
new file mode 100644
index 000000000..facef7503
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Shape.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Shape__
+#define __java_awt_Shape__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ class Shape;
+ namespace geom
+ {
+ class AffineTransform;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::Shape : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D() = 0;
+ virtual jboolean contains(jdouble, jdouble) = 0;
+ virtual jboolean contains(::java::awt::geom::Point2D *) = 0;
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *) = 0;
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *) = 0;
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *) = 0;
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_Shape__
diff --git a/gcc-4.8/libjava/java/awt/Stroke.h b/gcc-4.8/libjava/java/awt/Stroke.h
new file mode 100644
index 000000000..bb04e4886
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Stroke.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Stroke__
+#define __java_awt_Stroke__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Shape;
+ class Stroke;
+ }
+ }
+}
+
+class java::awt::Stroke : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Shape * createStrokedShape(::java::awt::Shape *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_Stroke__
diff --git a/gcc-4.8/libjava/java/awt/SystemColor.h b/gcc-4.8/libjava/java/awt/SystemColor.h
new file mode 100644
index 000000000..5e561faca
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/SystemColor.h
@@ -0,0 +1,105 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_SystemColor__
+#define __java_awt_SystemColor__
+
+#pragma interface
+
+#include <java/awt/Color.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PaintContext;
+ class Rectangle;
+ class RenderingHints;
+ class SystemColor;
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::SystemColor : public ::java::awt::Color
+{
+
+ SystemColor(jint);
+public:
+ jint getRGB();
+ ::java::awt::PaintContext * createContext(::java::awt::image::ColorModel *, ::java::awt::Rectangle *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *);
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 4503142729533789064LL;
+public:
+ static const jint DESKTOP = 0;
+ static const jint ACTIVE_CAPTION = 1;
+ static const jint ACTIVE_CAPTION_TEXT = 2;
+ static const jint ACTIVE_CAPTION_BORDER = 3;
+ static const jint INACTIVE_CAPTION = 4;
+ static const jint INACTIVE_CAPTION_TEXT = 5;
+ static const jint INACTIVE_CAPTION_BORDER = 6;
+ static const jint WINDOW = 7;
+ static const jint WINDOW_BORDER = 8;
+ static const jint WINDOW_TEXT = 9;
+ static const jint MENU = 10;
+ static const jint MENU_TEXT = 11;
+ static const jint TEXT = 12;
+ static const jint TEXT_TEXT = 13;
+ static const jint TEXT_HIGHLIGHT = 14;
+ static const jint TEXT_HIGHLIGHT_TEXT = 15;
+ static const jint TEXT_INACTIVE_TEXT = 16;
+ static const jint CONTROL = 17;
+ static const jint CONTROL_TEXT = 18;
+ static const jint CONTROL_HIGHLIGHT = 19;
+ static const jint CONTROL_LT_HIGHLIGHT = 20;
+ static const jint CONTROL_SHADOW = 21;
+ static const jint CONTROL_DK_SHADOW = 22;
+ static const jint SCROLLBAR = 23;
+ static const jint INFO = 24;
+ static const jint INFO_TEXT = 25;
+ static const jint NUM_COLORS = 26;
+private:
+ static JArray< jint > * colors;
+public:
+ static ::java::awt::SystemColor * desktop;
+ static ::java::awt::SystemColor * activeCaption;
+ static ::java::awt::SystemColor * activeCaptionText;
+ static ::java::awt::SystemColor * activeCaptionBorder;
+ static ::java::awt::SystemColor * inactiveCaption;
+ static ::java::awt::SystemColor * inactiveCaptionText;
+ static ::java::awt::SystemColor * inactiveCaptionBorder;
+ static ::java::awt::SystemColor * window;
+ static ::java::awt::SystemColor * windowBorder;
+ static ::java::awt::SystemColor * windowText;
+ static ::java::awt::SystemColor * menu;
+ static ::java::awt::SystemColor * menuText;
+ static ::java::awt::SystemColor * text;
+ static ::java::awt::SystemColor * textText;
+ static ::java::awt::SystemColor * textHighlight;
+ static ::java::awt::SystemColor * textHighlightText;
+ static ::java::awt::SystemColor * textInactiveText;
+ static ::java::awt::SystemColor * control;
+ static ::java::awt::SystemColor * controlText;
+ static ::java::awt::SystemColor * controlHighlight;
+ static ::java::awt::SystemColor * controlLtHighlight;
+ static ::java::awt::SystemColor * controlShadow;
+ static ::java::awt::SystemColor * controlDkShadow;
+ static ::java::awt::SystemColor * scrollbar;
+ static ::java::awt::SystemColor * info;
+ static ::java::awt::SystemColor * infoText;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_SystemColor__
diff --git a/gcc-4.8/libjava/java/awt/TextArea$AccessibleAWTTextArea.h b/gcc-4.8/libjava/java/awt/TextArea$AccessibleAWTTextArea.h
new file mode 100644
index 000000000..0803d6418
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TextArea$AccessibleAWTTextArea.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TextArea$AccessibleAWTTextArea__
+#define __java_awt_TextArea$AccessibleAWTTextArea__
+
+#pragma interface
+
+#include <java/awt/TextComponent$AccessibleAWTTextComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class TextArea;
+ class TextArea$AccessibleAWTTextArea;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::TextArea$AccessibleAWTTextArea : public ::java::awt::TextComponent$AccessibleAWTTextComponent
+{
+
+public: // actually protected
+ TextArea$AccessibleAWTTextArea(::java::awt::TextArea *);
+public:
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = 3472827823632144419LL;
+public: // actually package-private
+ ::java::awt::TextArea * __attribute__((aligned(__alignof__( ::java::awt::TextComponent$AccessibleAWTTextComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TextArea$AccessibleAWTTextArea__
diff --git a/gcc-4.8/libjava/java/awt/TextArea.h b/gcc-4.8/libjava/java/awt/TextArea.h
new file mode 100644
index 000000000..d1b0d66c8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TextArea.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TextArea__
+#define __java_awt_TextArea__
+
+#pragma interface
+
+#include <java/awt/TextComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ class TextArea;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::TextArea : public ::java::awt::TextComponent
+{
+
+public:
+ TextArea();
+ TextArea(::java::lang::String *);
+ TextArea(jint, jint);
+ TextArea(::java::lang::String *, jint, jint);
+ TextArea(::java::lang::String *, jint, jint, jint);
+ virtual jint getColumns();
+ virtual void setColumns(jint);
+ virtual jint getRows();
+ virtual void setRows(jint);
+ virtual ::java::awt::Dimension * getMinimumSize();
+ virtual ::java::awt::Dimension * getMinimumSize(jint, jint);
+ virtual ::java::awt::Dimension * minimumSize();
+ virtual ::java::awt::Dimension * minimumSize(jint, jint);
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual ::java::awt::Dimension * getPreferredSize(jint, jint);
+ virtual ::java::awt::Dimension * preferredSize();
+ virtual ::java::awt::Dimension * preferredSize(jint, jint);
+ virtual jint getScrollbarVisibility();
+ virtual void addNotify();
+ virtual void append(::java::lang::String *);
+ virtual void appendText(::java::lang::String *);
+ virtual void insert(::java::lang::String *, jint);
+ virtual void insertText(::java::lang::String *, jint);
+ virtual void replaceRange(::java::lang::String *, jint, jint);
+ virtual void replaceText(::java::lang::String *, jint, jint);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+ static const jint SCROLLBARS_BOTH = 0;
+ static const jint SCROLLBARS_VERTICAL_ONLY = 1;
+ static const jint SCROLLBARS_HORIZONTAL_ONLY = 2;
+ static const jint SCROLLBARS_NONE = 3;
+private:
+ static const jlong serialVersionUID = 3692302836626095722LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::TextComponent)))) columns;
+ jint rows;
+ jint scrollbarVisibility;
+ static jlong next_text_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TextArea__
diff --git a/gcc-4.8/libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h b/gcc-4.8/libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h
new file mode 100644
index 000000000..94d0031a3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TextComponent$AccessibleAWTTextComponent__
+#define __java_awt_TextComponent$AccessibleAWTTextComponent__
+
+#pragma interface
+
+#include <java/awt/Component$AccessibleAWTComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ class Rectangle;
+ class TextComponent;
+ class TextComponent$AccessibleAWTTextComponent;
+ namespace event
+ {
+ class TextEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ class AccessibleStateSet;
+ class AccessibleText;
+ }
+ namespace swing
+ {
+ namespace text
+ {
+ class AttributeSet;
+ }
+ }
+ }
+}
+
+class java::awt::TextComponent$AccessibleAWTTextComponent : public ::java::awt::Component$AccessibleAWTComponent
+{
+
+public:
+ TextComponent$AccessibleAWTTextComponent(::java::awt::TextComponent *);
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+ virtual ::javax::accessibility::AccessibleText * getAccessibleText();
+ virtual jint getIndexAtPoint(::java::awt::Point *);
+ virtual ::java::awt::Rectangle * getCharacterBounds(jint);
+ virtual jint getCharCount();
+ virtual jint getCaretPosition();
+ virtual ::java::lang::String * getAtIndex(jint, jint);
+ virtual ::java::lang::String * getAfterIndex(jint, jint);
+ virtual ::java::lang::String * getBeforeIndex(jint, jint);
+ virtual ::javax::swing::text::AttributeSet * getCharacterAttribute(jint);
+ virtual jint getSelectionStart();
+ virtual jint getSelectionEnd();
+ virtual ::java::lang::String * getSelectedText();
+ virtual void textValueChanged(::java::awt::event::TextEvent *);
+private:
+ static const jlong serialVersionUID = 3631432373506317811LL;
+public: // actually package-private
+ ::java::awt::TextComponent * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TextComponent$AccessibleAWTTextComponent__
diff --git a/gcc-4.8/libjava/java/awt/TextComponent.h b/gcc-4.8/libjava/java/awt/TextComponent.h
new file mode 100644
index 000000000..2b12f8b29
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TextComponent.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TextComponent__
+#define __java_awt_TextComponent__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Point;
+ class Rectangle;
+ class TextComponent;
+ namespace event
+ {
+ class TextEvent;
+ class TextListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::TextComponent : public ::java::awt::Component
+{
+
+public: // actually package-private
+ TextComponent(::java::lang::String *);
+public:
+ virtual ::java::lang::String * getText();
+ virtual void setText(::java::lang::String *);
+ virtual ::java::lang::String * getSelectedText();
+ virtual jint getSelectionStart();
+ virtual void setSelectionStart(jint);
+ virtual jint getSelectionEnd();
+ virtual void setSelectionEnd(jint);
+ virtual void select(jint, jint);
+ virtual void selectAll();
+ virtual jint getCaretPosition();
+ virtual void setCaretPosition(jint);
+ virtual jboolean isEditable();
+ virtual void setEditable(jboolean);
+ virtual void removeNotify();
+ virtual void addTextListener(::java::awt::event::TextListener *);
+ virtual void removeTextListener(::java::awt::event::TextListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processTextEvent(::java::awt::event::TextEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual JArray< ::java::awt::event::TextListener * > * getTextListeners();
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+public: // actually package-private
+ virtual jint getIndexAtPoint(::java::awt::Point *);
+ virtual ::java::awt::Rectangle * getCharacterBounds(jint);
+ static jboolean ignoreOldMouseEvents();
+private:
+ static const jlong serialVersionUID = -2214773872412987419LL;
+public: // actually package-private
+ jboolean __attribute__((aligned(__alignof__( ::java::awt::Component)))) editable;
+ jint selectionStart;
+ jint selectionEnd;
+ ::java::lang::String * text;
+public: // actually protected
+ ::java::awt::event::TextListener * textListener;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TextComponent__
diff --git a/gcc-4.8/libjava/java/awt/TextField$AccessibleAWTTextField.h b/gcc-4.8/libjava/java/awt/TextField$AccessibleAWTTextField.h
new file mode 100644
index 000000000..b49056a3f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TextField$AccessibleAWTTextField.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TextField$AccessibleAWTTextField__
+#define __java_awt_TextField$AccessibleAWTTextField__
+
+#pragma interface
+
+#include <java/awt/TextComponent$AccessibleAWTTextComponent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class TextField;
+ class TextField$AccessibleAWTTextField;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::TextField$AccessibleAWTTextField : public ::java::awt::TextComponent$AccessibleAWTTextComponent
+{
+
+public: // actually protected
+ TextField$AccessibleAWTTextField(::java::awt::TextField *);
+public:
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = 6219164359235943158LL;
+public: // actually package-private
+ ::java::awt::TextField * __attribute__((aligned(__alignof__( ::java::awt::TextComponent$AccessibleAWTTextComponent)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TextField$AccessibleAWTTextField__
diff --git a/gcc-4.8/libjava/java/awt/TextField.h b/gcc-4.8/libjava/java/awt/TextField.h
new file mode 100644
index 000000000..747fe3521
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TextField.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TextField__
+#define __java_awt_TextField__
+
+#pragma interface
+
+#include <java/awt/TextComponent.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Dimension;
+ class TextField;
+ namespace event
+ {
+ class ActionEvent;
+ class ActionListener;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::TextField : public ::java::awt::TextComponent
+{
+
+public:
+ TextField();
+ TextField(::java::lang::String *);
+ TextField(jint);
+ TextField(::java::lang::String *, jint);
+ virtual jint getColumns();
+ virtual void setColumns(jint);
+ virtual jchar getEchoChar();
+ virtual void setEchoChar(jchar);
+ virtual void setEchoCharacter(jchar);
+ virtual jboolean echoCharIsSet();
+ virtual ::java::awt::Dimension * getMinimumSize();
+ virtual ::java::awt::Dimension * getMinimumSize(jint);
+ virtual ::java::awt::Dimension * minimumSize();
+ virtual ::java::awt::Dimension * minimumSize(jint);
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual ::java::awt::Dimension * getPreferredSize(jint);
+ virtual ::java::awt::Dimension * preferredSize();
+ virtual ::java::awt::Dimension * preferredSize(jint);
+ virtual void addNotify();
+ virtual void addActionListener(::java::awt::event::ActionListener *);
+ virtual void removeActionListener(::java::awt::event::ActionListener *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processActionEvent(::java::awt::event::ActionEvent *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual ::java::lang::String * paramString();
+public:
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners();
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+private:
+ static jlong getUniqueLong();
+public:
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+private:
+ static jlong next_textfield_number;
+ static const jlong serialVersionUID = -2966288784432217853LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::TextComponent)))) columns;
+ jchar echoChar;
+ ::java::awt::event::ActionListener * action_listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TextField__
diff --git a/gcc-4.8/libjava/java/awt/TexturePaint.h b/gcc-4.8/libjava/java/awt/TexturePaint.h
new file mode 100644
index 000000000..a6711ad6b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/TexturePaint.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_TexturePaint__
+#define __java_awt_TexturePaint__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class PaintContext;
+ class Rectangle;
+ class RenderingHints;
+ class TexturePaint;
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::TexturePaint : public ::java::lang::Object
+{
+
+public:
+ TexturePaint(::java::awt::image::BufferedImage *, ::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::image::BufferedImage * getImage();
+ virtual ::java::awt::geom::Rectangle2D * getAnchorRect();
+ virtual ::java::awt::PaintContext * createContext(::java::awt::image::ColorModel *, ::java::awt::Rectangle *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *);
+ virtual jint getTransparency();
+private:
+ ::java::awt::image::BufferedImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) texture;
+ ::java::awt::geom::Rectangle2D * anchor;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_TexturePaint__
diff --git a/gcc-4.8/libjava/java/awt/Toolkit$1.h b/gcc-4.8/libjava/java/awt/Toolkit$1.h
new file mode 100644
index 000000000..2cf1986df
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Toolkit$1.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Toolkit$1__
+#define __java_awt_Toolkit$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Toolkit$1;
+ }
+ }
+}
+
+class java::awt::Toolkit$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Toolkit$1();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Toolkit$1__
diff --git a/gcc-4.8/libjava/java/awt/Toolkit$2.h b/gcc-4.8/libjava/java/awt/Toolkit$2.h
new file mode 100644
index 000000000..f6e80d2e6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Toolkit$2.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Toolkit$2__
+#define __java_awt_Toolkit$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Toolkit$2;
+ }
+ }
+}
+
+class java::awt::Toolkit$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Toolkit$2();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Toolkit$2__
diff --git a/gcc-4.8/libjava/java/awt/Toolkit.h b/gcc-4.8/libjava/java/awt/Toolkit.h
new file mode 100644
index 000000000..844ebe815
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Toolkit.h
@@ -0,0 +1,252 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Toolkit__
+#define __java_awt_Toolkit__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ class GLightweightPeer;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Button;
+ class Canvas;
+ class Checkbox;
+ class CheckboxMenuItem;
+ class Choice;
+ class Component;
+ class Container;
+ class Cursor;
+ class Desktop;
+ class Dialog;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
+ class Dimension;
+ class EventQueue;
+ class FileDialog;
+ class Font;
+ class FontMetrics;
+ class Frame;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class JobAttributes;
+ class Label;
+ class List;
+ class Menu;
+ class MenuBar;
+ class MenuItem;
+ class PageAttributes;
+ class Panel;
+ class Point;
+ class PopupMenu;
+ class PrintJob;
+ class ScrollPane;
+ class Scrollbar;
+ class TextArea;
+ class TextField;
+ class Toolkit;
+ class Window;
+ namespace datatransfer
+ {
+ class Clipboard;
+ }
+ namespace dnd
+ {
+ class DragGestureEvent;
+ class DragGestureListener;
+ class DragGestureRecognizer;
+ class DragSource;
+ namespace peer
+ {
+ class DragSourceContextPeer;
+ }
+ }
+ namespace event
+ {
+ class AWTEventListener;
+ class AWTEventListenerProxy;
+ }
+ namespace im
+ {
+ class InputMethodHighlight;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ }
+ namespace peer
+ {
+ class ButtonPeer;
+ class CanvasPeer;
+ class CheckboxMenuItemPeer;
+ class CheckboxPeer;
+ class ChoicePeer;
+ class DesktopPeer;
+ class DialogPeer;
+ class FileDialogPeer;
+ class FontPeer;
+ class FramePeer;
+ class LabelPeer;
+ class LightweightPeer;
+ class ListPeer;
+ class MenuBarPeer;
+ class MenuItemPeer;
+ class MenuPeer;
+ class MouseInfoPeer;
+ class PanelPeer;
+ class PopupMenuPeer;
+ class ScrollPanePeer;
+ class ScrollbarPeer;
+ class TextAreaPeer;
+ class TextFieldPeer;
+ class WindowPeer;
+ }
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::awt::Toolkit : public ::java::lang::Object
+{
+
+public:
+ Toolkit();
+public: // actually protected
+ virtual ::java::awt::peer::DesktopPeer * createDesktopPeer(::java::awt::Desktop *) = 0;
+ virtual ::java::awt::peer::ButtonPeer * createButton(::java::awt::Button *) = 0;
+ virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *) = 0;
+ virtual ::java::awt::peer::LabelPeer * createLabel(::java::awt::Label *) = 0;
+ virtual ::java::awt::peer::ListPeer * createList(::java::awt::List *) = 0;
+ virtual ::java::awt::peer::CheckboxPeer * createCheckbox(::java::awt::Checkbox *) = 0;
+ virtual ::java::awt::peer::ScrollbarPeer * createScrollbar(::java::awt::Scrollbar *) = 0;
+ virtual ::java::awt::peer::ScrollPanePeer * createScrollPane(::java::awt::ScrollPane *) = 0;
+ virtual ::java::awt::peer::TextAreaPeer * createTextArea(::java::awt::TextArea *) = 0;
+ virtual ::java::awt::peer::ChoicePeer * createChoice(::java::awt::Choice *) = 0;
+ virtual ::java::awt::peer::FramePeer * createFrame(::java::awt::Frame *) = 0;
+ virtual ::java::awt::peer::CanvasPeer * createCanvas(::java::awt::Canvas *) = 0;
+ virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *) = 0;
+ virtual ::java::awt::peer::WindowPeer * createWindow(::java::awt::Window *) = 0;
+ virtual ::java::awt::peer::DialogPeer * createDialog(::java::awt::Dialog *) = 0;
+ virtual ::java::awt::peer::MenuBarPeer * createMenuBar(::java::awt::MenuBar *) = 0;
+ virtual ::java::awt::peer::MenuPeer * createMenu(::java::awt::Menu *) = 0;
+ virtual ::java::awt::peer::PopupMenuPeer * createPopupMenu(::java::awt::PopupMenu *) = 0;
+ virtual ::java::awt::peer::MenuItemPeer * createMenuItem(::java::awt::MenuItem *) = 0;
+ virtual ::java::awt::peer::MouseInfoPeer * getMouseInfoPeer();
+ virtual ::java::awt::peer::FileDialogPeer * createFileDialog(::java::awt::FileDialog *) = 0;
+ virtual ::java::awt::peer::CheckboxMenuItemPeer * createCheckboxMenuItem(::java::awt::CheckboxMenuItem *) = 0;
+ virtual ::java::awt::peer::LightweightPeer * createComponent(::java::awt::Component *);
+ virtual ::java::awt::peer::FontPeer * getFontPeer(::java::lang::String *, jint) = 0;
+ virtual void loadSystemColors(JArray< jint > *);
+public:
+ virtual void setDynamicLayout(jboolean);
+public: // actually protected
+ virtual jboolean isDynamicLayoutSet();
+public:
+ virtual jboolean isDynamicLayoutActive();
+ virtual ::java::awt::Dimension * getScreenSize() = 0;
+ virtual jint getScreenResolution() = 0;
+ virtual ::java::awt::Insets * getScreenInsets(::java::awt::GraphicsConfiguration *);
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual JArray< ::java::lang::String * > * getFontList() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual void sync() = 0;
+ static ::java::awt::Toolkit * getDefaultToolkit();
+ virtual ::java::awt::Image * getImage(::java::lang::String *) = 0;
+ virtual ::java::awt::Image * getImage(::java::net::URL *) = 0;
+ virtual ::java::awt::Image * createImage(::java::lang::String *) = 0;
+ virtual ::java::awt::Image * createImage(::java::net::URL *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(JArray< jbyte > *);
+ virtual ::java::awt::Image * createImage(JArray< jbyte > *, jint, jint) = 0;
+ virtual ::java::awt::PrintJob * getPrintJob(::java::awt::Frame *, ::java::lang::String *, ::java::util::Properties *) = 0;
+ virtual ::java::awt::PrintJob * getPrintJob(::java::awt::Frame *, ::java::lang::String *, ::java::awt::JobAttributes *, ::java::awt::PageAttributes *);
+ virtual void beep() = 0;
+ virtual ::java::awt::datatransfer::Clipboard * getSystemClipboard() = 0;
+ virtual ::java::awt::datatransfer::Clipboard * getSystemSelection();
+ virtual jint getMenuShortcutKeyMask();
+ virtual jboolean getLockingKeyState(jint);
+ virtual void setLockingKeyState(jint, jboolean);
+public: // actually protected
+ static ::java::awt::Container * getNativeContainer(::java::awt::Component *);
+public:
+ virtual ::java::awt::Cursor * createCustomCursor(::java::awt::Image *, ::java::awt::Point *, ::java::lang::String *);
+ virtual ::java::awt::Dimension * getBestCursorSize(jint, jint);
+ virtual jint getMaximumCursorColors();
+ virtual jboolean isFrameStateSupported(jint);
+ static ::java::lang::String * getProperty(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::awt::EventQueue * getSystemEventQueue();
+public: // actually protected
+ virtual ::java::awt::EventQueue * getSystemEventQueueImpl() = 0;
+public:
+ virtual ::java::awt::dnd::peer::DragSourceContextPeer * createDragSourceContextPeer(::java::awt::dnd::DragGestureEvent *) = 0;
+ virtual ::java::awt::dnd::DragGestureRecognizer * createDragGestureRecognizer(::java::lang::Class *, ::java::awt::dnd::DragSource *, ::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *);
+ virtual ::java::lang::Object * getDesktopProperty(::java::lang::String *);
+public: // actually protected
+ virtual void setDesktopProperty(::java::lang::String *, ::java::lang::Object *);
+ virtual ::java::lang::Object * lazilyLoadDesktopProperty(::java::lang::String *);
+ virtual void initializeDesktopProperties();
+public:
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners();
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(::java::lang::String *);
+ virtual void addAWTEventListener(::java::awt::event::AWTEventListener *, jlong);
+ virtual void removeAWTEventListener(::java::awt::event::AWTEventListener *);
+ virtual JArray< ::java::awt::event::AWTEventListener * > * getAWTEventListeners();
+ virtual JArray< ::java::awt::event::AWTEventListener * > * getAWTEventListeners(jlong);
+public: // actually package-private
+ virtual void globalDispatchEvent(::java::awt::AWTEvent *);
+public:
+ virtual ::java::util::Map * mapInputMethodHighlight(::java::awt::im::InputMethodHighlight *) = 0;
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *) = 0;
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *) = 0;
+private:
+ static void initAccessibility();
+ static ::java::lang::String * default_toolkit_name;
+ static ::java::awt::Toolkit * toolkit;
+ static ::java::util::Properties * props;
+public: // actually protected
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) desktopProperties;
+ ::java::beans::PropertyChangeSupport * desktopPropsSupport;
+public: // actually package-private
+ JArray< ::java::awt::event::AWTEventListenerProxy * > * awtEventListeners;
+private:
+ ::gnu::java::awt::peer::GLightweightPeer * lightweightPeer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Toolkit__
diff --git a/gcc-4.8/libjava/java/awt/Transparency.h b/gcc-4.8/libjava/java/awt/Transparency.h
new file mode 100644
index 000000000..1304a4647
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Transparency.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Transparency__
+#define __java_awt_Transparency__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Transparency;
+ }
+ }
+}
+
+class java::awt::Transparency : public ::java::lang::Object
+{
+
+public:
+ virtual jint getTransparency() = 0;
+ static const jint OPAQUE = 1;
+ static const jint BITMASK = 2;
+ static const jint TRANSLUCENT = 3;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_Transparency__
diff --git a/gcc-4.8/libjava/java/awt/Window$AccessibleAWTWindow.h b/gcc-4.8/libjava/java/awt/Window$AccessibleAWTWindow.h
new file mode 100644
index 000000000..aa4d2ced1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Window$AccessibleAWTWindow.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Window$AccessibleAWTWindow__
+#define __java_awt_Window$AccessibleAWTWindow__
+
+#pragma interface
+
+#include <java/awt/Container$AccessibleAWTContainer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Window;
+ class Window$AccessibleAWTWindow;
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleRole;
+ class AccessibleStateSet;
+ }
+ }
+}
+
+class java::awt::Window$AccessibleAWTWindow : public ::java::awt::Container$AccessibleAWTContainer
+{
+
+public: // actually protected
+ Window$AccessibleAWTWindow(::java::awt::Window *);
+public:
+ virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
+ virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
+private:
+ static const jlong serialVersionUID = 4215068635060671780LL;
+public: // actually package-private
+ ::java::awt::Window * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Window$AccessibleAWTWindow__
diff --git a/gcc-4.8/libjava/java/awt/Window$WindowBltBufferStrategy.h b/gcc-4.8/libjava/java/awt/Window$WindowBltBufferStrategy.h
new file mode 100644
index 000000000..eb29e0597
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Window$WindowBltBufferStrategy.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Window$WindowBltBufferStrategy__
+#define __java_awt_Window$WindowBltBufferStrategy__
+
+#pragma interface
+
+#include <java/awt/Component$BltBufferStrategy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Window;
+ class Window$WindowBltBufferStrategy;
+ }
+ }
+}
+
+class java::awt::Window$WindowBltBufferStrategy : public ::java::awt::Component$BltBufferStrategy
+{
+
+public: // actually package-private
+ Window$WindowBltBufferStrategy(::java::awt::Window *, jint, jboolean);
+ ::java::awt::Window * __attribute__((aligned(__alignof__( ::java::awt::Component$BltBufferStrategy)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Window$WindowBltBufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/Window$WindowFlipBufferStrategy.h b/gcc-4.8/libjava/java/awt/Window$WindowFlipBufferStrategy.h
new file mode 100644
index 000000000..0fd395f3e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Window$WindowFlipBufferStrategy.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Window$WindowFlipBufferStrategy__
+#define __java_awt_Window$WindowFlipBufferStrategy__
+
+#pragma interface
+
+#include <java/awt/Component$FlipBufferStrategy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Window;
+ class Window$WindowFlipBufferStrategy;
+ }
+ }
+}
+
+class java::awt::Window$WindowFlipBufferStrategy : public ::java::awt::Component$FlipBufferStrategy
+{
+
+public: // actually package-private
+ Window$WindowFlipBufferStrategy(::java::awt::Window *, jint);
+ ::java::awt::Window * __attribute__((aligned(__alignof__( ::java::awt::Component$FlipBufferStrategy)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Window$WindowFlipBufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/Window.h b/gcc-4.8/libjava/java/awt/Window.h
new file mode 100644
index 000000000..c1c73992e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/Window.h
@@ -0,0 +1,142 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Window__
+#define __java_awt_Window__
+
+#pragma interface
+
+#include <java/awt/Container.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class Component;
+ class Container;
+ class Cursor;
+ class Event;
+ class Frame;
+ class GraphicsConfiguration;
+ class Toolkit;
+ class Window;
+ namespace event
+ {
+ class WindowEvent;
+ class WindowFocusListener;
+ class WindowListener;
+ class WindowStateListener;
+ }
+ namespace image
+ {
+ class BufferStrategy;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace accessibility
+ {
+ class AccessibleContext;
+ }
+ }
+}
+
+class java::awt::Window : public ::java::awt::Container
+{
+
+public: // actually package-private
+ Window();
+ Window(::java::awt::GraphicsConfiguration *);
+public:
+ Window(::java::awt::Frame *);
+ Window(::java::awt::Window *);
+ Window(::java::awt::Window *, ::java::awt::GraphicsConfiguration *);
+ virtual void addNotify();
+ virtual void pack();
+ virtual void show();
+ virtual void hide();
+ virtual void dispose();
+ virtual void toBack();
+ virtual void toFront();
+ virtual ::java::awt::Toolkit * getToolkit();
+ virtual ::java::lang::String * getWarningString();
+ virtual ::java::util::Locale * getLocale();
+ virtual void setCursor(::java::awt::Cursor *);
+ virtual ::java::awt::Window * getOwner();
+ virtual JArray< ::java::awt::Window * > * getOwnedWindows();
+ virtual void addWindowListener(::java::awt::event::WindowListener *);
+ virtual void removeWindowListener(::java::awt::event::WindowListener *);
+ virtual JArray< ::java::awt::event::WindowListener * > * getWindowListeners();
+ virtual JArray< ::java::awt::event::WindowFocusListener * > * getWindowFocusListeners();
+ virtual JArray< ::java::awt::event::WindowStateListener * > * getWindowStateListeners();
+ virtual void addWindowFocusListener(::java::awt::event::WindowFocusListener *);
+ virtual void addWindowStateListener(::java::awt::event::WindowStateListener *);
+ virtual void removeWindowFocusListener(::java::awt::event::WindowFocusListener *);
+ virtual void removeWindowStateListener(::java::awt::event::WindowStateListener *);
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+public: // actually package-private
+ virtual void dispatchEventImpl(::java::awt::AWTEvent *);
+public: // actually protected
+ virtual void processEvent(::java::awt::AWTEvent *);
+ virtual void processWindowEvent(::java::awt::event::WindowEvent *);
+public:
+ virtual jboolean isActive();
+ virtual jboolean isFocused();
+ virtual ::java::awt::Component * getFocusOwner();
+ virtual ::java::awt::Component * getMostRecentFocusOwner();
+public: // actually package-private
+ virtual void setFocusOwner(::java::awt::Component *);
+public:
+ virtual jboolean postEvent(::java::awt::Event *);
+ virtual jboolean isShowing();
+ virtual void setLocationRelativeTo(::java::awt::Component *);
+ virtual void createBufferStrategy(jint);
+ virtual void createBufferStrategy(jint, ::java::awt::BufferCapabilities *);
+ virtual ::java::awt::image::BufferStrategy * getBufferStrategy();
+ virtual void applyResourceBundle(::java::util::ResourceBundle *);
+ virtual void applyResourceBundle(::java::lang::String *);
+ virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration();
+public: // actually protected
+ virtual void processWindowFocusEvent(::java::awt::event::WindowEvent *);
+ virtual void processWindowStateEvent(::java::awt::event::WindowEvent *);
+public:
+ virtual jboolean isFocusableWindow();
+ virtual jboolean getFocusableWindowState();
+ virtual void setFocusableWindowState(jboolean);
+ virtual jboolean isFocusCycleRoot();
+ virtual void setFocusCycleRoot(jboolean);
+ virtual ::java::awt::Container * getFocusCycleRootAncestor();
+ virtual jboolean isAlwaysOnTop();
+ virtual void setAlwaysOnTop(jboolean);
+public: // actually package-private
+ virtual ::java::lang::String * generateName();
+ virtual jboolean eventTypeEnabled(jint);
+private:
+ static jlong getUniqueLong();
+ static const jlong serialVersionUID = 4497834738069338734LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::Container)))) warningString;
+ jint windowSerializedDataVersion;
+ jint state;
+ jboolean focusableWindowState;
+ jboolean alwaysOnTop;
+ ::java::util::Vector * ownedWindows;
+ ::java::awt::event::WindowListener * windowListener;
+ ::java::awt::event::WindowFocusListener * windowFocusListener;
+ ::java::awt::event::WindowStateListener * windowStateListener;
+ jboolean shown;
+public: // actually package-private
+ ::java::awt::Component * windowFocusOwner;
+private:
+ static jlong next_window_number;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Window__
diff --git a/gcc-4.8/libjava/java/awt/color/CMMException.h b/gcc-4.8/libjava/java/awt/color/CMMException.h
new file mode 100644
index 000000000..b6ee5337a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/CMMException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_CMMException__
+#define __java_awt_color_CMMException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class CMMException;
+ }
+ }
+ }
+}
+
+class java::awt::color::CMMException : public ::java::lang::RuntimeException
+{
+
+public:
+ CMMException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 5775558044142994965LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_CMMException__
diff --git a/gcc-4.8/libjava/java/awt/color/ColorSpace.h b/gcc-4.8/libjava/java/awt/color/ColorSpace.h
new file mode 100644
index 000000000..cb8ec13c3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/ColorSpace.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_ColorSpace__
+#define __java_awt_color_ColorSpace__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ColorSpace;
+ }
+ }
+ }
+}
+
+class java::awt::color::ColorSpace : public ::java::lang::Object
+{
+
+public: // actually protected
+ ColorSpace(jint, jint);
+public:
+ static ::java::awt::color::ColorSpace * getInstance(jint);
+ virtual jboolean isCS_sRGB();
+ virtual JArray< jfloat > * toRGB(JArray< jfloat > *) = 0;
+ virtual JArray< jfloat > * fromRGB(JArray< jfloat > *) = 0;
+ virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *) = 0;
+ virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *) = 0;
+ virtual jint getType();
+ virtual jint getNumComponents();
+ virtual ::java::lang::String * getName(jint);
+ virtual jfloat getMinValue(jint);
+ virtual jfloat getMaxValue(jint);
+private:
+ static const jlong serialVersionUID = -409452704308689724LL;
+public:
+ static const jint TYPE_XYZ = 0;
+ static const jint TYPE_Lab = 1;
+ static const jint TYPE_Luv = 2;
+ static const jint TYPE_YCbCr = 3;
+ static const jint TYPE_Yxy = 4;
+ static const jint TYPE_RGB = 5;
+ static const jint TYPE_GRAY = 6;
+ static const jint TYPE_HSV = 7;
+ static const jint TYPE_HLS = 8;
+ static const jint TYPE_CMYK = 9;
+ static const jint TYPE_CMY = 11;
+ static const jint TYPE_2CLR = 12;
+ static const jint TYPE_3CLR = 13;
+ static const jint TYPE_4CLR = 14;
+ static const jint TYPE_5CLR = 15;
+ static const jint TYPE_6CLR = 16;
+ static const jint TYPE_7CLR = 17;
+ static const jint TYPE_8CLR = 18;
+ static const jint TYPE_9CLR = 19;
+ static const jint TYPE_ACLR = 20;
+ static const jint TYPE_BCLR = 21;
+ static const jint TYPE_CCLR = 22;
+ static const jint TYPE_DCLR = 23;
+ static const jint TYPE_ECLR = 24;
+ static const jint TYPE_FCLR = 25;
+ static const jint CS_sRGB = 1000;
+ static const jint CS_LINEAR_RGB = 1004;
+ static const jint CS_CIEXYZ = 1001;
+ static const jint CS_PYCC = 1002;
+ static const jint CS_GRAY = 1003;
+private:
+ static const jint CS_BASE = 1000;
+ static const jint CS_END = 1005;
+ static const jint CS_COUNT = 5;
+ static JArray< ::java::awt::color::ColorSpace * > * INSTANCES;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ jint numComponents;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_ColorSpace__
diff --git a/gcc-4.8/libjava/java/awt/color/ICC_ColorSpace.h b/gcc-4.8/libjava/java/awt/color/ICC_ColorSpace.h
new file mode 100644
index 000000000..6dd211791
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/ICC_ColorSpace.h
@@ -0,0 +1,71 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_ICC_ColorSpace__
+#define __java_awt_color_ICC_ColorSpace__
+
+#pragma interface
+
+#include <java/awt/color/ColorSpace.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ColorSpaceConverter;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ICC_ColorSpace;
+ class ICC_Profile;
+ }
+ }
+ }
+}
+
+class java::awt::color::ICC_ColorSpace : public ::java::awt::color::ColorSpace
+{
+
+public:
+ ICC_ColorSpace(::java::awt::color::ICC_Profile *);
+ virtual ::java::awt::color::ICC_Profile * getProfile();
+ virtual JArray< jfloat > * toRGB(JArray< jfloat > *);
+ virtual JArray< jfloat > * fromRGB(JArray< jfloat > *);
+ virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *);
+ virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *);
+ virtual jboolean isCS_sRGB();
+ virtual jfloat getMinValue(jint);
+ virtual jfloat getMaxValue(jint);
+private:
+ ::gnu::java::awt::color::ColorSpaceConverter * getConverter(::java::awt::color::ICC_Profile *);
+ void makeArrays();
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 3455889114070431483LL;
+ ::java::awt::color::ICC_Profile * __attribute__((aligned(__alignof__( ::java::awt::color::ColorSpace)))) thisProfile;
+ JArray< jfloat > * minVal;
+ JArray< jfloat > * maxVal;
+ JArray< jfloat > * diffMinMax;
+ JArray< jfloat > * invDiffMinMax;
+ jboolean needScaleInit;
+ jint type;
+ jint nComponents;
+ ::gnu::java::awt::color::ColorSpaceConverter * converter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_ICC_ColorSpace__
diff --git a/gcc-4.8/libjava/java/awt/color/ICC_Profile.h b/gcc-4.8/libjava/java/awt/color/ICC_Profile.h
new file mode 100644
index 000000000..d6a406e03
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/ICC_Profile.h
@@ -0,0 +1,217 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_ICC_Profile__
+#define __java_awt_color_ICC_Profile__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ProfileHeader;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ICC_Profile;
+ }
+ }
+ }
+}
+
+class java::awt::color::ICC_Profile : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ICC_Profile(jint);
+ ICC_Profile(::gnu::java::awt::color::ProfileHeader *, ::java::util::Hashtable *);
+ ICC_Profile(JArray< jbyte > *);
+public: // actually protected
+ virtual void finalize();
+public:
+ static ::java::awt::color::ICC_Profile * getInstance(JArray< jbyte > *);
+ static ::java::awt::color::ICC_Profile * getInstance(jint);
+ static ::java::awt::color::ICC_Profile * getInstance(::java::lang::String *);
+ static ::java::awt::color::ICC_Profile * getInstance(::java::io::InputStream *);
+ virtual jint getMajorVersion();
+ virtual jint getMinorVersion();
+ virtual jint getProfileClass();
+ virtual jint getColorSpaceType();
+ virtual jint getPCSType();
+ virtual void write(::java::lang::String *);
+ virtual void write(::java::io::OutputStream *);
+ virtual JArray< jbyte > * getData();
+ virtual JArray< jbyte > * getData(jint);
+ virtual void setData(jint, JArray< jbyte > *);
+ virtual jint getNumComponents();
+public: // actually protected
+ virtual ::java::lang::Object * readResolve();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static ::java::util::Hashtable * createTagTable(JArray< jbyte > *);
+ jint getSize();
+ JArray< jbyte > * getTagTable();
+ static jboolean isRGBProfile(::gnu::java::awt::color::ProfileHeader *, ::java::util::Hashtable *);
+ static jboolean isGrayProfile(::gnu::java::awt::color::ProfileHeader *, ::java::util::Hashtable *);
+public: // actually package-private
+ virtual JArray< jshort > * getCurve(jint);
+ virtual JArray< jfloat > * getXYZData(jint);
+ virtual jint isPredefined();
+private:
+ JArray< jbyte > * makeXYZData(JArray< jfloat > *);
+ JArray< jbyte > * makeTextTag(::java::lang::String *);
+ JArray< jbyte > * makeDescTag(::java::lang::String *);
+ JArray< jbyte > * makeTRC();
+ JArray< jbyte > * makeTRC(jfloat);
+ JArray< jbyte > * makeTRC(JArray< jfloat > *);
+ JArray< jbyte > * makeIdentityClut();
+ void createProfile(jint);
+ void createRGBProfile();
+ void createLinearRGBProfile();
+ void createCIEProfile();
+ void createGrayProfile();
+ void createPyccProfile();
+ static const jlong serialVersionUID = -3938515861990936766LL;
+public:
+ static const jint CLASS_INPUT = 0;
+ static const jint CLASS_DISPLAY = 1;
+ static const jint CLASS_OUTPUT = 2;
+ static const jint CLASS_DEVICELINK = 3;
+ static const jint CLASS_COLORSPACECONVERSION = 4;
+ static const jint CLASS_ABSTRACT = 5;
+ static const jint CLASS_NAMEDCOLOR = 6;
+ static const jint icSigInputClass = 1935896178;
+ static const jint icSigDisplayClass = 1835955314;
+ static const jint icSigOutputClass = 1886549106;
+ static const jint icSigLinkClass = 1818848875;
+ static const jint icSigColorSpaceClass = 1936744803;
+ static const jint icSigAbstractClass = 1633842036;
+ static const jint icSigNamedColorClass = 1852662636;
+ static const jint icSigXYZData = 1482250784;
+ static const jint icSigLabData = 1281450528;
+ static const jint icSigLuvData = 1282766368;
+ static const jint icSigYCbCrData = 1497588338;
+ static const jint icSigYxyData = 1501067552;
+ static const jint icSigRgbData = 1380401696;
+ static const jint icSigGrayData = 1196573017;
+ static const jint icSigHsvData = 1213421088;
+ static const jint icSigHlsData = 1212961568;
+ static const jint icSigCmykData = 1129142603;
+ static const jint icSigCmyData = 1129142560;
+ static const jint icSigSpace2CLR = 843271250;
+ static const jint icSigSpace3CLR = 860048466;
+ static const jint icSigSpace4CLR = 876825682;
+ static const jint icSigSpace5CLR = 893602898;
+ static const jint icSigSpace6CLR = 910380114;
+ static const jint icSigSpace7CLR = 927157330;
+ static const jint icSigSpace8CLR = 943934546;
+ static const jint icSigSpace9CLR = 960711762;
+ static const jint icSigSpaceACLR = 1094929490;
+ static const jint icSigSpaceBCLR = 1111706706;
+ static const jint icSigSpaceCCLR = 1128483922;
+ static const jint icSigSpaceDCLR = 1145261138;
+ static const jint icSigSpaceECLR = 1162038354;
+ static const jint icSigSpaceFCLR = 1178815570;
+ static const jint icPerceptual = 0;
+ static const jint icRelativeColorimetric = 1;
+ static const jint icSaturation = 2;
+ static const jint icAbsoluteColorimetric = 3;
+ static const jint icSigAToB0Tag = 1093812784;
+ static const jint icSigAToB1Tag = 1093812785;
+ static const jint icSigAToB2Tag = 1093812786;
+ static const jint icSigBlueColorantTag = 1649957210;
+ static const jint icSigBlueTRCTag = 1649693251;
+ static const jint icSigBToA0Tag = 1110589744;
+ static const jint icSigBToA1Tag = 1110589745;
+ static const jint icSigBToA2Tag = 1110589746;
+ static const jint icSigCalibrationDateTimeTag = 1667329140;
+ static const jint icSigCharTargetTag = 1952543335;
+ static const jint icSigCopyrightTag = 1668313716;
+ static const jint icSigCrdInfoTag = 1668441193;
+ static const jint icSigDeviceMfgDescTag = 1684893284;
+ static const jint icSigDeviceModelDescTag = 1684890724;
+ static const jint icSigDeviceSettingsTag = 1684371059;
+ static const jint icSigGamutTag = 1734438260;
+ static const jint icSigGrayTRCTag = 1800688195;
+ static const jint icSigGreenColorantTag = 1733843290;
+ static const jint icSigGreenTRCTag = 1733579331;
+ static const jint icSigLuminanceTag = 1819635049;
+ static const jint icSigMeasurementTag = 1835360627;
+ static const jint icSigMediaBlackPointTag = 1651208308;
+ static const jint icSigMediaWhitePointTag = 2004119668;
+ static const jint icSigNamedColor2Tag = 1852009522;
+ static const jint icSigOutputResponseTag = 1919251312;
+ static const jint icSigPreview0Tag = 1886545200;
+ static const jint icSigPreview1Tag = 1886545201;
+ static const jint icSigPreview2Tag = 1886545202;
+ static const jint icSigProfileDescriptionTag = 1684370275;
+ static const jint icSigProfileSequenceDescTag = 1886610801;
+ static const jint icSigPs2CRD0Tag = 1886610480;
+ static const jint icSigPs2CRD1Tag = 1886610481;
+ static const jint icSigPs2CRD2Tag = 1886610482;
+ static const jint icSigPs2CRD3Tag = 1886610483;
+ static const jint icSigPs2CSATag = 1886597747;
+ static const jint icSigPs2RenderingIntentTag = 1886597737;
+ static const jint icSigRedColorantTag = 1918392666;
+ static const jint icSigRedTRCTag = 1918128707;
+ static const jint icSigScreeningDescTag = 1935897188;
+ static const jint icSigScreeningTag = 1935897198;
+ static const jint icSigTechnologyTag = 1952801640;
+ static const jint icSigUcrBgTag = 1650877472;
+ static const jint icSigViewingCondDescTag = 1987405156;
+ static const jint icSigViewingConditionsTag = 1986618743;
+ static const jint icSigChromaticityTag = 1667789421;
+ static const jint icSigHead = 1751474532;
+ static const jint icHdrSize = 0;
+ static const jint icHdrCmmId = 4;
+ static const jint icHdrVersion = 8;
+ static const jint icHdrDeviceClass = 12;
+ static const jint icHdrColorSpace = 16;
+ static const jint icHdrPcs = 20;
+ static const jint icHdrDate = 24;
+ static const jint icHdrMagic = 36;
+ static const jint icHdrPlatform = 40;
+ static const jint icHdrFlags = 44;
+ static const jint icHdrManufacturer = 48;
+ static const jint icHdrModel = 52;
+ static const jint icHdrAttributes = 56;
+ static const jint icHdrRenderingIntent = 64;
+ static const jint icHdrIlluminant = 68;
+ static const jint icHdrCreator = 80;
+ static const jint icTagType = 0;
+ static const jint icTagReserved = 4;
+ static const jint icCurveCount = 8;
+ static const jint icCurveData = 12;
+ static const jint icXYZNumberX = 8;
+private:
+ static const jint tagTableOffset = 128;
+ static const jint iccProfileSerializedDataVersion = 1;
+ static ::java::lang::String * copyrightNotice;
+ static const jint TRC_POINTS = 1024;
+ static JArray< jfloat > * D50;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) profileID;
+ ::gnu::java::awt::color::ProfileHeader * header;
+ ::java::util::Hashtable * tagTable;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_ICC_Profile__
diff --git a/gcc-4.8/libjava/java/awt/color/ICC_ProfileGray.h b/gcc-4.8/libjava/java/awt/color/ICC_ProfileGray.h
new file mode 100644
index 000000000..9ebeef8de
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/ICC_ProfileGray.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_ICC_ProfileGray__
+#define __java_awt_color_ICC_ProfileGray__
+
+#pragma interface
+
+#include <java/awt/color/ICC_Profile.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ICC_ProfileGray;
+ }
+ }
+ }
+}
+
+class java::awt::color::ICC_ProfileGray : public ::java::awt::color::ICC_Profile
+{
+
+public: // actually package-private
+ ICC_ProfileGray(jint);
+ ICC_ProfileGray(JArray< jbyte > *);
+public:
+ virtual JArray< jfloat > * getMediaWhitePoint();
+ virtual jfloat getGamma();
+ virtual JArray< jshort > * getTRC();
+private:
+ static const jlong serialVersionUID = -1124721290732002649LL;
+ JArray< jfloat > * __attribute__((aligned(__alignof__( ::java::awt::color::ICC_Profile)))) whitePoint;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_ICC_ProfileGray__
diff --git a/gcc-4.8/libjava/java/awt/color/ICC_ProfileRGB.h b/gcc-4.8/libjava/java/awt/color/ICC_ProfileRGB.h
new file mode 100644
index 000000000..7520d8af6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/ICC_ProfileRGB.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_ICC_ProfileRGB__
+#define __java_awt_color_ICC_ProfileRGB__
+
+#pragma interface
+
+#include <java/awt/color/ICC_Profile.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ICC_ProfileRGB;
+ }
+ }
+ }
+}
+
+class java::awt::color::ICC_ProfileRGB : public ::java::awt::color::ICC_Profile
+{
+
+public: // actually package-private
+ ICC_ProfileRGB(jint);
+ ICC_ProfileRGB(JArray< jbyte > *);
+public:
+ virtual JArray< jfloat > * getMediaWhitePoint();
+ virtual JArray< JArray< jfloat > * > * getMatrix();
+ virtual jfloat getGamma(jint);
+ virtual JArray< jshort > * getTRC(jint);
+private:
+ JArray< JArray< jfloat > * > * createMatrix();
+ static const jlong serialVersionUID = 8505067385152579334LL;
+public:
+ static const jint REDCOMPONENT = 0;
+ static const jint GREENCOMPONENT = 1;
+ static const jint BLUECOMPONENT = 2;
+private:
+ JArray< JArray< jfloat > * > * __attribute__((aligned(__alignof__( ::java::awt::color::ICC_Profile)))) matrix;
+ JArray< jfloat > * gamma;
+ JArray< jfloat > * whitePoint;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_ICC_ProfileRGB__
diff --git a/gcc-4.8/libjava/java/awt/color/ProfileDataException.h b/gcc-4.8/libjava/java/awt/color/ProfileDataException.h
new file mode 100644
index 000000000..593bf1326
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/color/ProfileDataException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_color_ProfileDataException__
+#define __java_awt_color_ProfileDataException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ProfileDataException;
+ }
+ }
+ }
+}
+
+class java::awt::color::ProfileDataException : public ::java::lang::RuntimeException
+{
+
+public:
+ ProfileDataException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7286140888240322498LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_color_ProfileDataException__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/Clipboard.h b/gcc-4.8/libjava/java/awt/datatransfer/Clipboard.h
new file mode 100644
index 000000000..5ae0769e1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/Clipboard.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_Clipboard__
+#define __java_awt_datatransfer_Clipboard__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class Clipboard;
+ class ClipboardOwner;
+ class DataFlavor;
+ class FlavorListener;
+ class Transferable;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::Clipboard : public ::java::lang::Object
+{
+
+public:
+ Clipboard(::java::lang::String *);
+ virtual ::java::lang::String * getName();
+ virtual ::java::awt::datatransfer::Transferable * getContents(::java::lang::Object *);
+ virtual void setContents(::java::awt::datatransfer::Transferable *, ::java::awt::datatransfer::ClipboardOwner *);
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getAvailableDataFlavors();
+ virtual jboolean isDataFlavorAvailable(::java::awt::datatransfer::DataFlavor *);
+ virtual ::java::lang::Object * getData(::java::awt::datatransfer::DataFlavor *);
+ virtual void addFlavorListener(::java::awt::datatransfer::FlavorListener *);
+ virtual void removeFlavorListener(::java::awt::datatransfer::FlavorListener *);
+ virtual JArray< ::java::awt::datatransfer::FlavorListener * > * getFlavorListeners();
+public: // actually protected
+ ::java::awt::datatransfer::Transferable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) contents;
+ ::java::awt::datatransfer::ClipboardOwner * owner;
+private:
+ ::java::lang::String * name;
+ ::java::util::ArrayList * listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_Clipboard__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/ClipboardOwner.h b/gcc-4.8/libjava/java/awt/datatransfer/ClipboardOwner.h
new file mode 100644
index 000000000..d20a514b3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/ClipboardOwner.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_ClipboardOwner__
+#define __java_awt_datatransfer_ClipboardOwner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class Clipboard;
+ class ClipboardOwner;
+ class Transferable;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::ClipboardOwner : public ::java::lang::Object
+{
+
+public:
+ virtual void lostOwnership(::java::awt::datatransfer::Clipboard *, ::java::awt::datatransfer::Transferable *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_datatransfer_ClipboardOwner__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/DataFlavor.h b/gcc-4.8/libjava/java/awt/datatransfer/DataFlavor.h
new file mode 100644
index 000000000..3a94cabef
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/DataFlavor.h
@@ -0,0 +1,100 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_DataFlavor__
+#define __java_awt_datatransfer_DataFlavor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class MimeType;
+ class Transferable;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::DataFlavor : public ::java::lang::Object
+{
+
+public: // actually protected
+ static ::java::lang::Class * tryToLoadClass(::java::lang::String *, ::java::lang::ClassLoader *);
+public:
+ static ::java::awt::datatransfer::DataFlavor * getTextPlainUnicodeFlavor();
+ static ::java::awt::datatransfer::DataFlavor * selectBestTextFlavor(JArray< ::java::awt::datatransfer::DataFlavor * > *);
+ DataFlavor();
+ DataFlavor(::java::lang::Class *, ::java::lang::String *);
+ DataFlavor(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *);
+ DataFlavor(::java::lang::String *, ::java::lang::String *);
+ DataFlavor(::java::lang::String *);
+private:
+ void init(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *);
+public:
+ virtual ::java::lang::String * getMimeType();
+ virtual ::java::lang::Class * getRepresentationClass();
+ virtual ::java::lang::String * getHumanPresentableName();
+ virtual ::java::lang::String * getPrimaryType();
+ virtual ::java::lang::String * getSubType();
+ virtual ::java::lang::String * getParameter(::java::lang::String *);
+ virtual void setHumanPresentableName(::java::lang::String *);
+ virtual jboolean isMimeTypeEqual(::java::lang::String *);
+ virtual jboolean isMimeTypeEqual(::java::awt::datatransfer::DataFlavor *);
+ virtual jboolean isMimeTypeSerializedObject();
+ virtual jboolean isRepresentationClassInputStream();
+ virtual jboolean isRepresentationClassSerializable();
+ virtual jboolean isRepresentationClassRemote();
+ virtual jboolean isFlavorSerializedObjectType();
+ virtual jboolean isFlavorRemoteObjectType();
+ virtual jboolean isFlavorJavaFileListType();
+ virtual ::java::lang::Object * clone();
+ virtual jboolean equals(::java::awt::datatransfer::DataFlavor *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jboolean equals(::java::lang::String *);
+ virtual jint hashCode();
+ virtual jboolean match(::java::awt::datatransfer::DataFlavor *);
+public: // actually protected
+ virtual ::java::lang::String * normalizeMimeTypeParameter(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * normalizeMimeType(::java::lang::String *);
+public:
+ virtual void writeExternal(::java::io::ObjectOutput *);
+ virtual void readExternal(::java::io::ObjectInput *);
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::Class * getDefaultRepresentationClass();
+ virtual ::java::lang::String * getDefaultRepresentationClassAsString();
+ virtual ::java::io::Reader * getReaderForText(::java::awt::datatransfer::Transferable *);
+ virtual jboolean isRepresentationClassByteBuffer();
+ virtual jboolean isRepresentationClassCharBuffer();
+ virtual jboolean isRepresentationClassReader();
+ virtual jboolean isFlavorTextType();
+public: // actually package-private
+ static const jlong serialVersionUID = 8367026044764648243LL;
+public:
+ static ::java::awt::datatransfer::DataFlavor * plainTextFlavor;
+ static ::java::awt::datatransfer::DataFlavor * stringFlavor;
+ static ::java::awt::datatransfer::DataFlavor * javaFileListFlavor;
+ static ::java::awt::datatransfer::DataFlavor * imageFlavor;
+ static ::java::lang::String * javaSerializedObjectMimeType;
+ static ::java::lang::String * javaJVMLocalObjectMimeType;
+ static ::java::lang::String * javaRemoteObjectMimeType;
+private:
+ ::java::awt::datatransfer::MimeType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mimeType;
+ ::java::lang::Class * representationClass;
+ ::java::lang::String * humanPresentableName;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_DataFlavor__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/FlavorEvent.h b/gcc-4.8/libjava/java/awt/datatransfer/FlavorEvent.h
new file mode 100644
index 000000000..00cfae1c0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/FlavorEvent.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_FlavorEvent__
+#define __java_awt_datatransfer_FlavorEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class Clipboard;
+ class FlavorEvent;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::FlavorEvent : public ::java::util::EventObject
+{
+
+public:
+ FlavorEvent(::java::awt::datatransfer::Clipboard *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_FlavorEvent__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/FlavorListener.h b/gcc-4.8/libjava/java/awt/datatransfer/FlavorListener.h
new file mode 100644
index 000000000..0e23dbb78
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/FlavorListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_FlavorListener__
+#define __java_awt_datatransfer_FlavorListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class FlavorEvent;
+ class FlavorListener;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::FlavorListener : public ::java::lang::Object
+{
+
+public:
+ virtual void flavorsChanged(::java::awt::datatransfer::FlavorEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_datatransfer_FlavorListener__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/FlavorMap.h b/gcc-4.8/libjava/java/awt/datatransfer/FlavorMap.h
new file mode 100644
index 000000000..688576910
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/FlavorMap.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_FlavorMap__
+#define __java_awt_datatransfer_FlavorMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class FlavorMap;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::FlavorMap : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Map * getNativesForFlavors(JArray< ::java::awt::datatransfer::DataFlavor * > *) = 0;
+ virtual ::java::util::Map * getFlavorsForNatives(JArray< ::java::lang::String * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_datatransfer_FlavorMap__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/FlavorTable.h b/gcc-4.8/libjava/java/awt/datatransfer/FlavorTable.h
new file mode 100644
index 000000000..cec940626
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/FlavorTable.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_FlavorTable__
+#define __java_awt_datatransfer_FlavorTable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class FlavorTable;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::FlavorTable : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::List * getNativesForFlavor(::java::awt::datatransfer::DataFlavor *) = 0;
+ virtual ::java::util::List * getFlavorsForNative(::java::lang::String *) = 0;
+ virtual ::java::util::Map * getNativesForFlavors(JArray< ::java::awt::datatransfer::DataFlavor * > *) = 0;
+ virtual ::java::util::Map * getFlavorsForNatives(JArray< ::java::lang::String * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_datatransfer_FlavorTable__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/MimeType.h b/gcc-4.8/libjava/java/awt/datatransfer/MimeType.h
new file mode 100644
index 000000000..9ccd153f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/MimeType.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_MimeType__
+#define __java_awt_datatransfer_MimeType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class MimeType;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::MimeType : public ::java::lang::Object
+{
+
+public:
+ MimeType();
+public: // actually package-private
+ MimeType(::java::lang::String *);
+ virtual void addParameter(::java::lang::String *, ::java::lang::String *);
+ virtual void removeParameter(::java::lang::String *);
+ virtual ::java::lang::String * getParameter(::java::lang::String *);
+ virtual ::java::lang::String * getPrimaryType();
+ virtual ::java::lang::String * getSubType();
+ virtual ::java::lang::String * getBaseType();
+ virtual jboolean matches(::java::awt::datatransfer::MimeType *);
+public:
+ virtual void readExternal(::java::io::ObjectInput *);
+ virtual void writeExternal(::java::io::ObjectOutput *);
+ virtual ::java::lang::String * toString();
+private:
+ void parse(::java::lang::String *);
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) primaryType;
+ ::java::lang::String * subType;
+ ::java::util::HashMap * parameters;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_MimeType__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/MimeTypeParseException.h b/gcc-4.8/libjava/java/awt/datatransfer/MimeTypeParseException.h
new file mode 100644
index 000000000..5ac3ff2d3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/MimeTypeParseException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_MimeTypeParseException__
+#define __java_awt_datatransfer_MimeTypeParseException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class MimeTypeParseException;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::MimeTypeParseException : public ::java::lang::Exception
+{
+
+public:
+ MimeTypeParseException();
+ MimeTypeParseException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -5604407764691570741LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_MimeTypeParseException__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/StringSelection.h b/gcc-4.8/libjava/java/awt/datatransfer/StringSelection.h
new file mode 100644
index 000000000..09429bba1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/StringSelection.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_StringSelection__
+#define __java_awt_datatransfer_StringSelection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class Clipboard;
+ class DataFlavor;
+ class StringSelection;
+ class Transferable;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::StringSelection : public ::java::lang::Object
+{
+
+public:
+ StringSelection(::java::lang::String *);
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *);
+ virtual void lostOwnership(::java::awt::datatransfer::Clipboard *, ::java::awt::datatransfer::Transferable *);
+public: // actually package-private
+ static JArray< ::java::awt::datatransfer::DataFlavor * > * supported_flavors;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_StringSelection__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap$1.h b/gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap$1.h
new file mode 100644
index 000000000..bfb3023aa
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap$1.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_SystemFlavorMap$1__
+#define __java_awt_datatransfer_SystemFlavorMap$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class SystemFlavorMap;
+ class SystemFlavorMap$1;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::SystemFlavorMap$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SystemFlavorMap$1(::java::awt::datatransfer::SystemFlavorMap *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::awt::datatransfer::SystemFlavorMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_SystemFlavorMap$1__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap.h b/gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap.h
new file mode 100644
index 000000000..de2495c8b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/SystemFlavorMap.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_SystemFlavorMap__
+#define __java_awt_datatransfer_SystemFlavorMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class FlavorMap;
+ class SystemFlavorMap;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::SystemFlavorMap : public ::java::lang::Object
+{
+
+ SystemFlavorMap();
+public: // actually package-private
+ void setupMapping(::java::util::Properties *);
+public:
+ ::java::util::Map * getNativesForFlavors(JArray< ::java::awt::datatransfer::DataFlavor * > *);
+ ::java::util::Map * getFlavorsForNatives(JArray< ::java::lang::String * > *);
+ static ::java::awt::datatransfer::FlavorMap * getDefaultFlavorMap();
+ static ::java::lang::String * encodeJavaMIMEType(::java::lang::String *);
+ static ::java::lang::String * encodeDataFlavor(::java::awt::datatransfer::DataFlavor *);
+ static jboolean isJavaMIMEType(::java::lang::String *);
+ static ::java::lang::String * decodeJavaMIMEType(::java::lang::String *);
+ static ::java::awt::datatransfer::DataFlavor * decodeDataFlavor(::java::lang::String *);
+ ::java::util::List * getFlavorsForNative(::java::lang::String *);
+ ::java::util::List * getNativesForFlavor(::java::awt::datatransfer::DataFlavor *);
+ void addFlavorForUnencodedNative(::java::lang::String *, ::java::awt::datatransfer::DataFlavor *);
+ void addUnencodedNativeForFlavor(::java::awt::datatransfer::DataFlavor *, ::java::lang::String *);
+ void setNativesForFlavor(::java::awt::datatransfer::DataFlavor *, JArray< ::java::lang::String * > *);
+ void setFlavorsForNative(::java::lang::String *, JArray< ::java::awt::datatransfer::DataFlavor * > *);
+private:
+ static ::java::util::Map * systemFlavorMaps;
+ static ::java::lang::String * GNU_JAVA_MIME_PREFIX;
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nativeToFlavorMap;
+ ::java::util::HashMap * flavorToNativeMap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_SystemFlavorMap__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/Transferable.h b/gcc-4.8/libjava/java/awt/datatransfer/Transferable.h
new file mode 100644
index 000000000..0930f87d0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/Transferable.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_Transferable__
+#define __java_awt_datatransfer_Transferable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class Transferable;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::Transferable : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors() = 0;
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *) = 0;
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_datatransfer_Transferable__
diff --git a/gcc-4.8/libjava/java/awt/datatransfer/UnsupportedFlavorException.h b/gcc-4.8/libjava/java/awt/datatransfer/UnsupportedFlavorException.h
new file mode 100644
index 000000000..fffc2ace0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/datatransfer/UnsupportedFlavorException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_datatransfer_UnsupportedFlavorException__
+#define __java_awt_datatransfer_UnsupportedFlavorException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class UnsupportedFlavorException;
+ }
+ }
+ }
+}
+
+class java::awt::datatransfer::UnsupportedFlavorException : public ::java::lang::Exception
+{
+
+public:
+ UnsupportedFlavorException(::java::awt::datatransfer::DataFlavor *);
+private:
+ static const jlong serialVersionUID = 5383814944251665601LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_datatransfer_UnsupportedFlavorException__
diff --git a/gcc-4.8/libjava/java/awt/dnd/Autoscroll.h b/gcc-4.8/libjava/java/awt/dnd/Autoscroll.h
new file mode 100644
index 000000000..4ab4c6a5c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/Autoscroll.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_Autoscroll__
+#define __java_awt_dnd_Autoscroll__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Insets;
+ class Point;
+ namespace dnd
+ {
+ class Autoscroll;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::Autoscroll : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Insets * getAutoscrollInsets() = 0;
+ virtual void autoscroll(::java::awt::Point *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_Autoscroll__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DnDConstants.h b/gcc-4.8/libjava/java/awt/dnd/DnDConstants.h
new file mode 100644
index 000000000..a3cfb089f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DnDConstants.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DnDConstants__
+#define __java_awt_dnd_DnDConstants__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DnDConstants;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DnDConstants : public ::java::lang::Object
+{
+
+ DnDConstants();
+public:
+ static const jint ACTION_NONE = 0;
+ static const jint ACTION_COPY = 1;
+ static const jint ACTION_MOVE = 2;
+ static const jint ACTION_COPY_OR_MOVE = 3;
+ static const jint ACTION_LINK = 1073741824;
+ static const jint ACTION_REFERENCE = 1073741824;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DnDConstants__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DnDEventMulticaster.h b/gcc-4.8/libjava/java/awt/dnd/DnDEventMulticaster.h
new file mode 100644
index 000000000..c70450f25
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DnDEventMulticaster.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DnDEventMulticaster__
+#define __java_awt_dnd_DnDEventMulticaster__
+
+#pragma interface
+
+#include <java/awt/AWTEventMulticaster.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DnDEventMulticaster;
+ class DragSourceListener;
+ class DragSourceMotionListener;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DnDEventMulticaster : public ::java::awt::AWTEventMulticaster
+{
+
+public: // actually protected
+ DnDEventMulticaster(::java::util::EventListener *, ::java::util::EventListener *);
+public:
+ static ::java::awt::dnd::DragSourceListener * add(::java::awt::dnd::DragSourceListener *, ::java::awt::dnd::DragSourceListener *);
+ static ::java::awt::dnd::DragSourceMotionListener * add(::java::awt::dnd::DragSourceMotionListener *, ::java::awt::dnd::DragSourceMotionListener *);
+ static ::java::awt::dnd::DragSourceListener * remove(::java::awt::dnd::DragSourceListener *, ::java::awt::dnd::DragSourceListener *);
+ static ::java::awt::dnd::DragSourceMotionListener * remove(::java::awt::dnd::DragSourceMotionListener *, ::java::awt::dnd::DragSourceMotionListener *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DnDEventMulticaster__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragGestureEvent.h b/gcc-4.8/libjava/java/awt/dnd/DragGestureEvent.h
new file mode 100644
index 000000000..7d34bc632
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragGestureEvent.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragGestureEvent__
+#define __java_awt_dnd_DragGestureEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Cursor;
+ class Image;
+ class Point;
+ namespace datatransfer
+ {
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DragGestureEvent;
+ class DragGestureRecognizer;
+ class DragSource;
+ class DragSourceListener;
+ }
+ namespace event
+ {
+ class InputEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragGestureEvent : public ::java::util::EventObject
+{
+
+public:
+ DragGestureEvent(::java::awt::dnd::DragGestureRecognizer *, jint, ::java::awt::Point *, ::java::util::List *);
+ virtual ::java::awt::dnd::DragGestureRecognizer * getSourceAsDragGestureRecognizer();
+ virtual ::java::awt::Component * getComponent();
+ virtual ::java::awt::dnd::DragSource * getDragSource();
+ virtual ::java::awt::Point * getDragOrigin();
+ virtual ::java::util::Iterator * iterator();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual jint getDragAction();
+ virtual ::java::awt::event::InputEvent * getTriggerEvent();
+ virtual void startDrag(::java::awt::Cursor *, ::java::awt::datatransfer::Transferable *);
+ virtual void startDrag(::java::awt::Cursor *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *);
+ virtual void startDrag(::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *);
+private:
+ static const jlong serialVersionUID = 9080172649166731306LL;
+ ::java::awt::dnd::DragSource * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) dragSource;
+ ::java::awt::Component * component;
+ ::java::awt::Point * origin;
+ jint action;
+ ::java::util::List * events;
+ ::java::awt::dnd::DragGestureRecognizer * dgr;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragGestureEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragGestureListener.h b/gcc-4.8/libjava/java/awt/dnd/DragGestureListener.h
new file mode 100644
index 000000000..044956739
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragGestureListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragGestureListener__
+#define __java_awt_dnd_DragGestureListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DragGestureEvent;
+ class DragGestureListener;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragGestureListener : public ::java::lang::Object
+{
+
+public:
+ virtual void dragGestureRecognized(::java::awt::dnd::DragGestureEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_DragGestureListener__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragGestureRecognizer.h b/gcc-4.8/libjava/java/awt/dnd/DragGestureRecognizer.h
new file mode 100644
index 000000000..22e856d60
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragGestureRecognizer.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragGestureRecognizer__
+#define __java_awt_dnd_DragGestureRecognizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Point;
+ namespace dnd
+ {
+ class DragGestureListener;
+ class DragGestureRecognizer;
+ class DragSource;
+ }
+ namespace event
+ {
+ class InputEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragGestureRecognizer : public ::java::lang::Object
+{
+
+public: // actually protected
+ DragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *);
+ DragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *, jint);
+ DragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *);
+ DragGestureRecognizer(::java::awt::dnd::DragSource *);
+ virtual void registerListeners() = 0;
+ virtual void unregisterListeners() = 0;
+public:
+ virtual ::java::awt::dnd::DragSource * getDragSource();
+ virtual ::java::awt::Component * getComponent();
+ virtual void setComponent(::java::awt::Component *);
+ virtual jint getSourceActions();
+ virtual void setSourceActions(jint);
+ virtual ::java::awt::event::InputEvent * getTriggerEvent();
+ virtual void resetRecognizer();
+ virtual void addDragGestureListener(::java::awt::dnd::DragGestureListener *);
+ virtual void removeDragGestureListener(::java::awt::dnd::DragGestureListener *);
+public: // actually protected
+ virtual void fireDragGestureRecognized(jint, ::java::awt::Point *);
+ virtual void appendEvent(::java::awt::event::InputEvent *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = 8996673345831063337LL;
+public: // actually protected
+ ::java::awt::dnd::DragSource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dragSource;
+ ::java::awt::Component * component;
+ ::java::awt::dnd::DragGestureListener * dragGestureListener;
+ jint sourceActions;
+ ::java::util::ArrayList * events;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragGestureRecognizer__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSource.h b/gcc-4.8/libjava/java/awt/dnd/DragSource.h
new file mode 100644
index 000000000..8f4246e1e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSource.h
@@ -0,0 +1,90 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSource__
+#define __java_awt_dnd_DragSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Cursor;
+ class Image;
+ class Point;
+ namespace datatransfer
+ {
+ class FlavorMap;
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DragGestureEvent;
+ class DragGestureListener;
+ class DragGestureRecognizer;
+ class DragSource;
+ class DragSourceContext;
+ class DragSourceListener;
+ class DragSourceMotionListener;
+ namespace peer
+ {
+ class DragSourceContextPeer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSource : public ::java::lang::Object
+{
+
+public:
+ DragSource();
+ static ::java::awt::dnd::DragSource * getDefaultDragSource();
+ static jboolean isDragImageSupported();
+ virtual void startDrag(::java::awt::dnd::DragGestureEvent *, ::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *, ::java::awt::datatransfer::FlavorMap *);
+ virtual void startDrag(::java::awt::dnd::DragGestureEvent *, ::java::awt::Cursor *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *, ::java::awt::datatransfer::FlavorMap *);
+ virtual void startDrag(::java::awt::dnd::DragGestureEvent *, ::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *);
+ virtual void startDrag(::java::awt::dnd::DragGestureEvent *, ::java::awt::Cursor *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *);
+public: // actually protected
+ virtual ::java::awt::dnd::DragSourceContext * createDragSourceContext(::java::awt::dnd::peer::DragSourceContextPeer *, ::java::awt::dnd::DragGestureEvent *, ::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *);
+public:
+ virtual ::java::awt::datatransfer::FlavorMap * getFlavorMap();
+ virtual ::java::awt::dnd::DragGestureRecognizer * createDragGestureRecognizer(::java::lang::Class *, ::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *);
+ virtual ::java::awt::dnd::DragGestureRecognizer * createDefaultDragGestureRecognizer(::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *);
+ virtual void addDragSourceListener(::java::awt::dnd::DragSourceListener *);
+ virtual void removeDragSourceListener(::java::awt::dnd::DragSourceListener *);
+ virtual JArray< ::java::awt::dnd::DragSourceListener * > * getDragSourceListeners();
+ virtual void addDragSourceMotionListener(::java::awt::dnd::DragSourceMotionListener *);
+ virtual void removeDragSourceMotionListener(::java::awt::dnd::DragSourceMotionListener *);
+ virtual JArray< ::java::awt::dnd::DragSourceMotionListener * > * getDragSourceMotionListeners();
+ virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *);
+ static jint getDragThreshold();
+private:
+ static const jlong serialVersionUID = 6236096958971414066LL;
+public:
+ static ::java::awt::Cursor * DefaultCopyDrop;
+ static ::java::awt::Cursor * DefaultMoveDrop;
+ static ::java::awt::Cursor * DefaultLinkDrop;
+ static ::java::awt::Cursor * DefaultCopyNoDrop;
+ static ::java::awt::Cursor * DefaultMoveNoDrop;
+ static ::java::awt::Cursor * DefaultLinkNoDrop;
+private:
+ ::java::awt::datatransfer::FlavorMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) flavorMap;
+ ::java::awt::dnd::DragSourceListener * dragSourceListener;
+ ::java::awt::dnd::DragSourceMotionListener * dragSourceMotionListener;
+ static ::java::awt::dnd::DragSource * ds;
+ ::java::awt::dnd::peer::DragSourceContextPeer * peer;
+ ::java::awt::dnd::DragSourceContext * context;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragSource__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceAdapter.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceAdapter.h
new file mode 100644
index 000000000..c3a4177e6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceAdapter.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceAdapter__
+#define __java_awt_dnd_DragSourceAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DragSourceAdapter;
+ class DragSourceDragEvent;
+ class DragSourceDropEvent;
+ class DragSourceEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceAdapter : public ::java::lang::Object
+{
+
+public:
+ DragSourceAdapter();
+ virtual void dragEnter(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dragOver(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dragMouseMoved(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dropActionChanged(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dragExit(::java::awt::dnd::DragSourceEvent *);
+ virtual void dragDropEnd(::java::awt::dnd::DragSourceDropEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragSourceAdapter__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceContext.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceContext.h
new file mode 100644
index 000000000..1e4646729
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceContext.h
@@ -0,0 +1,86 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceContext__
+#define __java_awt_dnd_DragSourceContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Cursor;
+ class Image;
+ class Point;
+ namespace datatransfer
+ {
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DragGestureEvent;
+ class DragSource;
+ class DragSourceContext;
+ class DragSourceDragEvent;
+ class DragSourceDropEvent;
+ class DragSourceEvent;
+ class DragSourceListener;
+ namespace peer
+ {
+ class DragSourceContextPeer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceContext : public ::java::lang::Object
+{
+
+public:
+ DragSourceContext(::java::awt::dnd::peer::DragSourceContextPeer *, ::java::awt::dnd::DragGestureEvent *, ::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *, ::java::awt::datatransfer::Transferable *, ::java::awt::dnd::DragSourceListener *);
+ virtual ::java::awt::dnd::DragSource * getDragSource();
+ virtual ::java::awt::Component * getComponent();
+ virtual ::java::awt::dnd::DragGestureEvent * getTrigger();
+ virtual jint getSourceActions();
+ virtual void setCursor(::java::awt::Cursor *);
+ virtual ::java::awt::Cursor * getCursor();
+ virtual void addDragSourceListener(::java::awt::dnd::DragSourceListener *);
+ virtual void removeDragSourceListener(::java::awt::dnd::DragSourceListener *);
+ virtual void transferablesFlavorsChanged();
+ virtual void dragEnter(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dragOver(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dragExit(::java::awt::dnd::DragSourceEvent *);
+ virtual void dropActionChanged(::java::awt::dnd::DragSourceDragEvent *);
+ virtual void dragDropEnd(::java::awt::dnd::DragSourceDropEvent *);
+ virtual void dragMouseMoved(::java::awt::dnd::DragSourceDragEvent *);
+ virtual ::java::awt::datatransfer::Transferable * getTransferable();
+public: // actually protected
+ virtual void updateCurrentCursor(jint, jint, jint);
+public: // actually package-private
+ static const jlong serialVersionUID = -115407898692194719LL;
+public: // actually protected
+ static const jint DEFAULT = 0;
+ static const jint ENTER = 1;
+ static const jint OVER = 2;
+ static const jint CHANGED = 3;
+private:
+ ::java::awt::dnd::peer::DragSourceContextPeer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) peer;
+ ::java::awt::Cursor * cursor;
+ ::java::awt::datatransfer::Transferable * transferable;
+ ::java::awt::dnd::DragGestureEvent * trigger;
+ ::java::awt::dnd::DragSourceListener * dragSourceListener;
+ jboolean useCustomCursor;
+ jint sourceActions;
+ ::java::awt::Image * image;
+ ::java::awt::Point * offset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragSourceContext__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceDragEvent.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceDragEvent.h
new file mode 100644
index 000000000..ec0c80eec
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceDragEvent.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceDragEvent__
+#define __java_awt_dnd_DragSourceDragEvent__
+
+#pragma interface
+
+#include <java/awt/dnd/DragSourceEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DragSourceContext;
+ class DragSourceDragEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceDragEvent : public ::java::awt::dnd::DragSourceEvent
+{
+
+public:
+ DragSourceDragEvent(::java::awt::dnd::DragSourceContext *, jint, jint, jint);
+ DragSourceDragEvent(::java::awt::dnd::DragSourceContext *, jint, jint, jint, jint, jint);
+ virtual jint getTargetActions();
+ virtual jint getGestureModifiers();
+ virtual jint getGestureModifiersEx();
+ virtual jint getUserAction();
+ virtual jint getDropAction();
+private:
+ static const jlong serialVersionUID = 481346297933902471LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::dnd::DragSourceEvent)))) dropAction;
+ jint targetActions;
+ jint gestureModifiers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragSourceDragEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceDropEvent.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceDropEvent.h
new file mode 100644
index 000000000..bc3341f02
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceDropEvent.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceDropEvent__
+#define __java_awt_dnd_DragSourceDropEvent__
+
+#pragma interface
+
+#include <java/awt/dnd/DragSourceEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DragSourceContext;
+ class DragSourceDropEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceDropEvent : public ::java::awt::dnd::DragSourceEvent
+{
+
+public:
+ DragSourceDropEvent(::java::awt::dnd::DragSourceContext *);
+ DragSourceDropEvent(::java::awt::dnd::DragSourceContext *, jint, jboolean);
+ DragSourceDropEvent(::java::awt::dnd::DragSourceContext *, jint, jboolean, jint, jint);
+ virtual jint getDropAction();
+ virtual jboolean getDropSuccess();
+private:
+ static const jlong serialVersionUID = -5571321229470821891LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::dnd::DragSourceEvent)))) dropAction;
+ jboolean dropSuccess;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragSourceDropEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceEvent.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceEvent.h
new file mode 100644
index 000000000..0d008a19c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceEvent.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceEvent__
+#define __java_awt_dnd_DragSourceEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ namespace dnd
+ {
+ class DragSourceContext;
+ class DragSourceEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceEvent : public ::java::util::EventObject
+{
+
+public:
+ DragSourceEvent(::java::awt::dnd::DragSourceContext *);
+ DragSourceEvent(::java::awt::dnd::DragSourceContext *, jint, jint);
+ virtual ::java::awt::dnd::DragSourceContext * getDragSourceContext();
+ virtual ::java::awt::Point * getLocation();
+ virtual jint getX();
+ virtual jint getY();
+private:
+ static const jlong serialVersionUID = -763287114604032641LL;
+ jboolean __attribute__((aligned(__alignof__( ::java::util::EventObject)))) locationSpecified;
+ jint x;
+ jint y;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DragSourceEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceListener.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceListener.h
new file mode 100644
index 000000000..fc845501a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceListener.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceListener__
+#define __java_awt_dnd_DragSourceListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DragSourceDragEvent;
+ class DragSourceDropEvent;
+ class DragSourceEvent;
+ class DragSourceListener;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceListener : public ::java::lang::Object
+{
+
+public:
+ virtual void dragEnter(::java::awt::dnd::DragSourceDragEvent *) = 0;
+ virtual void dragOver(::java::awt::dnd::DragSourceDragEvent *) = 0;
+ virtual void dropActionChanged(::java::awt::dnd::DragSourceDragEvent *) = 0;
+ virtual void dragExit(::java::awt::dnd::DragSourceEvent *) = 0;
+ virtual void dragDropEnd(::java::awt::dnd::DragSourceDropEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_DragSourceListener__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DragSourceMotionListener.h b/gcc-4.8/libjava/java/awt/dnd/DragSourceMotionListener.h
new file mode 100644
index 000000000..0db0603b2
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DragSourceMotionListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DragSourceMotionListener__
+#define __java_awt_dnd_DragSourceMotionListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DragSourceDragEvent;
+ class DragSourceMotionListener;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DragSourceMotionListener : public ::java::lang::Object
+{
+
+public:
+ virtual void dragMouseMoved(::java::awt::dnd::DragSourceDragEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_DragSourceMotionListener__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h b/gcc-4.8/libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h
new file mode 100644
index 000000000..cb72a909f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTarget$DropTargetAutoScroller__
+#define __java_awt_dnd_DropTarget$DropTargetAutoScroller__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Point;
+ class Rectangle;
+ namespace dnd
+ {
+ class DropTarget$DropTargetAutoScroller;
+ }
+ namespace event
+ {
+ class ActionEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace swing
+ {
+ class Timer;
+ }
+ }
+}
+
+class java::awt::dnd::DropTarget$DropTargetAutoScroller : public ::java::lang::Object
+{
+
+public: // actually protected
+ DropTarget$DropTargetAutoScroller(::java::awt::Component *, ::java::awt::Point *);
+ virtual void updateLocation(::java::awt::Point *);
+ virtual void stop();
+public:
+ virtual void actionPerformed(::java::awt::event::ActionEvent *);
+private:
+ static const jint HYSTERESIS = 10;
+ static const jint DELAY = 100;
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) component;
+ ::java::awt::Point * point;
+ ::javax::swing::Timer * timer;
+ ::java::awt::Rectangle * outer;
+ ::java::awt::Rectangle * inner;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTarget$DropTargetAutoScroller__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTarget.h b/gcc-4.8/libjava/java/awt/dnd/DropTarget.h
new file mode 100644
index 000000000..399889a95
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTarget.h
@@ -0,0 +1,91 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTarget__
+#define __java_awt_dnd_DropTarget__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Point;
+ namespace datatransfer
+ {
+ class FlavorMap;
+ }
+ namespace dnd
+ {
+ class DropTarget;
+ class DropTarget$DropTargetAutoScroller;
+ class DropTargetContext;
+ class DropTargetDragEvent;
+ class DropTargetDropEvent;
+ class DropTargetEvent;
+ class DropTargetListener;
+ namespace peer
+ {
+ class DropTargetPeer;
+ }
+ }
+ namespace peer
+ {
+ class ComponentPeer;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTarget : public ::java::lang::Object
+{
+
+public:
+ DropTarget();
+ DropTarget(::java::awt::Component *, ::java::awt::dnd::DropTargetListener *);
+ DropTarget(::java::awt::Component *, jint, ::java::awt::dnd::DropTargetListener *);
+ DropTarget(::java::awt::Component *, jint, ::java::awt::dnd::DropTargetListener *, jboolean);
+ DropTarget(::java::awt::Component *, jint, ::java::awt::dnd::DropTargetListener *, jboolean, ::java::awt::datatransfer::FlavorMap *);
+ virtual void setComponent(::java::awt::Component *);
+ virtual ::java::awt::Component * getComponent();
+ virtual void setDefaultActions(jint);
+ virtual jint getDefaultActions();
+ virtual void setActive(jboolean);
+ virtual jboolean isActive();
+ virtual void addDropTargetListener(::java::awt::dnd::DropTargetListener *);
+ virtual void removeDropTargetListener(::java::awt::dnd::DropTargetListener *);
+ virtual void dragEnter(::java::awt::dnd::DropTargetDragEvent *);
+ virtual void dragOver(::java::awt::dnd::DropTargetDragEvent *);
+ virtual void dropActionChanged(::java::awt::dnd::DropTargetDragEvent *);
+ virtual void dragExit(::java::awt::dnd::DropTargetEvent *);
+ virtual void drop(::java::awt::dnd::DropTargetDropEvent *);
+ virtual ::java::awt::datatransfer::FlavorMap * getFlavorMap();
+ virtual void setFlavorMap(::java::awt::datatransfer::FlavorMap *);
+ virtual void addNotify(::java::awt::peer::ComponentPeer *);
+ virtual void removeNotify(::java::awt::peer::ComponentPeer *);
+ virtual ::java::awt::dnd::DropTargetContext * getDropTargetContext();
+public: // actually protected
+ virtual ::java::awt::dnd::DropTargetContext * createDropTargetContext();
+ virtual ::java::awt::dnd::DropTarget$DropTargetAutoScroller * createDropTargetAutoScroller(::java::awt::Component *, ::java::awt::Point *);
+ virtual void initializeAutoscrolling(::java::awt::Point *);
+ virtual void updateAutoscroll(::java::awt::Point *);
+ virtual void clearAutoscroll();
+private:
+ static const jlong serialVersionUID = -6283860791671019047LL;
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) component;
+ ::java::awt::datatransfer::FlavorMap * flavorMap;
+ jint actions;
+ ::java::awt::dnd::peer::DropTargetPeer * peer;
+ ::java::awt::dnd::DropTargetContext * dropTargetContext;
+ ::java::awt::dnd::DropTargetListener * dropTargetListener;
+ ::java::awt::dnd::DropTarget$DropTargetAutoScroller * autoscroller;
+ jboolean active;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTarget__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetAdapter.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetAdapter.h
new file mode 100644
index 000000000..34f4f5b66
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetAdapter.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetAdapter__
+#define __java_awt_dnd_DropTargetAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DropTargetAdapter;
+ class DropTargetDragEvent;
+ class DropTargetDropEvent;
+ class DropTargetEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetAdapter : public ::java::lang::Object
+{
+
+public:
+ DropTargetAdapter();
+ virtual void dragEnter(::java::awt::dnd::DropTargetDragEvent *);
+ virtual void dragOver(::java::awt::dnd::DropTargetDragEvent *);
+ virtual void dropActionChanged(::java::awt::dnd::DropTargetDragEvent *);
+ virtual void dragExit(::java::awt::dnd::DropTargetEvent *);
+ virtual void drop(::java::awt::dnd::DropTargetDropEvent *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTargetAdapter__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h
new file mode 100644
index 000000000..e670c079d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetContext$TransferableProxy__
+#define __java_awt_dnd_DropTargetContext$TransferableProxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DropTargetContext;
+ class DropTargetContext$TransferableProxy;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetContext$TransferableProxy : public ::java::lang::Object
+{
+
+public: // actually package-private
+ DropTargetContext$TransferableProxy(::java::awt::dnd::DropTargetContext *, ::java::awt::datatransfer::Transferable *, jboolean);
+public:
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *);
+public: // actually protected
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) isLocal;
+ ::java::awt::datatransfer::Transferable * transferable;
+public: // actually package-private
+ ::java::awt::dnd::DropTargetContext * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTargetContext$TransferableProxy__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetContext.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetContext.h
new file mode 100644
index 000000000..f6ea29be3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetContext.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetContext__
+#define __java_awt_dnd_DropTargetContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DropTarget;
+ class DropTargetContext;
+ namespace peer
+ {
+ class DropTargetContextPeer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetContext : public ::java::lang::Object
+{
+
+public: // actually package-private
+ DropTargetContext(::java::awt::dnd::DropTarget *);
+public:
+ virtual ::java::awt::dnd::DropTarget * getDropTarget();
+ virtual ::java::awt::Component * getComponent();
+ virtual void addNotify(::java::awt::dnd::peer::DropTargetContextPeer *);
+ virtual void removeNotify();
+public: // actually protected
+ virtual void setTargetActions(jint);
+ virtual jint getTargetActions();
+public:
+ virtual void dropComplete(jboolean);
+public: // actually protected
+ virtual void acceptDrag(jint);
+ virtual void rejectDrag();
+ virtual void acceptDrop(jint);
+ virtual void rejectDrop();
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getCurrentDataFlavors();
+ virtual ::java::util::List * getCurrentDataFlavorsAsList();
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+ virtual ::java::awt::datatransfer::Transferable * getTransferable();
+ virtual ::java::awt::datatransfer::Transferable * createTransferableProxy(::java::awt::datatransfer::Transferable *, jboolean);
+public: // actually package-private
+ static const jlong serialVersionUID = -634158968993743371LL;
+private:
+ ::java::awt::dnd::DropTarget * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dropTarget;
+ jint targetActions;
+ ::java::awt::dnd::peer::DropTargetContextPeer * dtcp;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTargetContext__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetDragEvent.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetDragEvent.h
new file mode 100644
index 000000000..d25da6004
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetDragEvent.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetDragEvent__
+#define __java_awt_dnd_DropTargetDragEvent__
+
+#pragma interface
+
+#include <java/awt/dnd/DropTargetEvent.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DropTargetContext;
+ class DropTargetDragEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetDragEvent : public ::java::awt::dnd::DropTargetEvent
+{
+
+public:
+ DropTargetDragEvent(::java::awt::dnd::DropTargetContext *, ::java::awt::Point *, jint, jint);
+ virtual void acceptDrag(jint);
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getCurrentDataFlavors();
+ virtual ::java::util::List * getCurrentDataFlavorsAsList();
+ virtual jint getDropAction();
+ virtual ::java::awt::Point * getLocation();
+ virtual jint getSourceActions();
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+ virtual void rejectDrag();
+ virtual ::java::awt::datatransfer::Transferable * getTransferable();
+private:
+ static const jlong serialVersionUID = -8422265619058953682LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::dnd::DropTargetEvent)))) dropAction;
+ jint srcActions;
+ ::java::awt::Point * location;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTargetDragEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetDropEvent.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetDropEvent.h
new file mode 100644
index 000000000..08851b68c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetDropEvent.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetDropEvent__
+#define __java_awt_dnd_DropTargetDropEvent__
+
+#pragma interface
+
+#include <java/awt/dnd/DropTargetEvent.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DropTargetContext;
+ class DropTargetDropEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetDropEvent : public ::java::awt::dnd::DropTargetEvent
+{
+
+public:
+ DropTargetDropEvent(::java::awt::dnd::DropTargetContext *, ::java::awt::Point *, jint, jint);
+ DropTargetDropEvent(::java::awt::dnd::DropTargetContext *, ::java::awt::Point *, jint, jint, jboolean);
+ virtual ::java::awt::Point * getLocation();
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getCurrentDataFlavors();
+ virtual ::java::util::List * getCurrentDataFlavorsAsList();
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+ virtual jint getSourceActions();
+ virtual jint getDropAction();
+ virtual ::java::awt::datatransfer::Transferable * getTransferable();
+ virtual void acceptDrop(jint);
+ virtual void rejectDrop();
+ virtual void dropComplete(jboolean);
+ virtual jboolean isLocalTransfer();
+private:
+ static const jlong serialVersionUID = -1721911170440459322LL;
+ jint __attribute__((aligned(__alignof__( ::java::awt::dnd::DropTargetEvent)))) dropAction;
+ jint actions;
+ ::java::awt::Point * location;
+ jboolean isLocalTx;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTargetDropEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetEvent.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetEvent.h
new file mode 100644
index 000000000..e090e197c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetEvent.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetEvent__
+#define __java_awt_dnd_DropTargetEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DropTargetContext;
+ class DropTargetEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetEvent : public ::java::util::EventObject
+{
+
+public:
+ DropTargetEvent(::java::awt::dnd::DropTargetContext *);
+ virtual ::java::awt::dnd::DropTargetContext * getDropTargetContext();
+private:
+ static const jlong serialVersionUID = 2821229066521922993LL;
+public: // actually protected
+ ::java::awt::dnd::DropTargetContext * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) context;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_DropTargetEvent__
diff --git a/gcc-4.8/libjava/java/awt/dnd/DropTargetListener.h b/gcc-4.8/libjava/java/awt/dnd/DropTargetListener.h
new file mode 100644
index 000000000..83aba62d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/DropTargetListener.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_DropTargetListener__
+#define __java_awt_dnd_DropTargetListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DropTargetDragEvent;
+ class DropTargetDropEvent;
+ class DropTargetEvent;
+ class DropTargetListener;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::DropTargetListener : public ::java::lang::Object
+{
+
+public:
+ virtual void dragEnter(::java::awt::dnd::DropTargetDragEvent *) = 0;
+ virtual void dragOver(::java::awt::dnd::DropTargetDragEvent *) = 0;
+ virtual void dropActionChanged(::java::awt::dnd::DropTargetDragEvent *) = 0;
+ virtual void dragExit(::java::awt::dnd::DropTargetEvent *) = 0;
+ virtual void drop(::java::awt::dnd::DropTargetDropEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_DropTargetListener__
diff --git a/gcc-4.8/libjava/java/awt/dnd/InvalidDnDOperationException.h b/gcc-4.8/libjava/java/awt/dnd/InvalidDnDOperationException.h
new file mode 100644
index 000000000..674f7ce2d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/InvalidDnDOperationException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_InvalidDnDOperationException__
+#define __java_awt_dnd_InvalidDnDOperationException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class InvalidDnDOperationException;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::InvalidDnDOperationException : public ::java::lang::IllegalStateException
+{
+
+public:
+ InvalidDnDOperationException();
+ InvalidDnDOperationException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -6062568741193956678LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_InvalidDnDOperationException__
diff --git a/gcc-4.8/libjava/java/awt/dnd/MouseDragGestureRecognizer.h b/gcc-4.8/libjava/java/awt/dnd/MouseDragGestureRecognizer.h
new file mode 100644
index 000000000..00635da56
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/MouseDragGestureRecognizer.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_MouseDragGestureRecognizer__
+#define __java_awt_dnd_MouseDragGestureRecognizer__
+
+#pragma interface
+
+#include <java/awt/dnd/DragGestureRecognizer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace dnd
+ {
+ class DragGestureListener;
+ class DragSource;
+ class MouseDragGestureRecognizer;
+ }
+ namespace event
+ {
+ class MouseEvent;
+ }
+ }
+ }
+}
+
+class java::awt::dnd::MouseDragGestureRecognizer : public ::java::awt::dnd::DragGestureRecognizer
+{
+
+public: // actually protected
+ MouseDragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *);
+ MouseDragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *, jint);
+ MouseDragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *);
+ MouseDragGestureRecognizer(::java::awt::dnd::DragSource *);
+ virtual void registerListeners();
+ virtual void unregisterListeners();
+public:
+ virtual void mouseClicked(::java::awt::event::MouseEvent *);
+ virtual void mousePressed(::java::awt::event::MouseEvent *);
+ virtual void mouseReleased(::java::awt::event::MouseEvent *);
+ virtual void mouseEntered(::java::awt::event::MouseEvent *);
+ virtual void mouseExited(::java::awt::event::MouseEvent *);
+ virtual void mouseDragged(::java::awt::event::MouseEvent *);
+ virtual void mouseMoved(::java::awt::event::MouseEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_dnd_MouseDragGestureRecognizer__
diff --git a/gcc-4.8/libjava/java/awt/dnd/peer/DragSourceContextPeer.h b/gcc-4.8/libjava/java/awt/dnd/peer/DragSourceContextPeer.h
new file mode 100644
index 000000000..f5653f260
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/peer/DragSourceContextPeer.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_peer_DragSourceContextPeer__
+#define __java_awt_dnd_peer_DragSourceContextPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Cursor;
+ class Image;
+ class Point;
+ namespace dnd
+ {
+ class DragSourceContext;
+ namespace peer
+ {
+ class DragSourceContextPeer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::dnd::peer::DragSourceContextPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void startDrag(::java::awt::dnd::DragSourceContext *, ::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *) = 0;
+ virtual ::java::awt::Cursor * getCursor() = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void transferablesFlavorsChanged() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_peer_DragSourceContextPeer__
diff --git a/gcc-4.8/libjava/java/awt/dnd/peer/DropTargetContextPeer.h b/gcc-4.8/libjava/java/awt/dnd/peer/DropTargetContextPeer.h
new file mode 100644
index 000000000..cb7ae0d65
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/peer/DropTargetContextPeer.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_peer_DropTargetContextPeer__
+#define __java_awt_dnd_peer_DropTargetContextPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ class Transferable;
+ }
+ namespace dnd
+ {
+ class DropTarget;
+ namespace peer
+ {
+ class DropTargetContextPeer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::dnd::peer::DropTargetContextPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setTargetActions(jint) = 0;
+ virtual jint getTargetActions() = 0;
+ virtual ::java::awt::dnd::DropTarget * getDropTarget() = 0;
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors() = 0;
+ virtual ::java::awt::datatransfer::Transferable * getTransferable() = 0;
+ virtual jboolean isTransferableJVMLocal() = 0;
+ virtual void acceptDrag(jint) = 0;
+ virtual void rejectDrag() = 0;
+ virtual void acceptDrop(jint) = 0;
+ virtual void rejectDrop() = 0;
+ virtual void dropComplete(jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_peer_DropTargetContextPeer__
diff --git a/gcc-4.8/libjava/java/awt/dnd/peer/DropTargetPeer.h b/gcc-4.8/libjava/java/awt/dnd/peer/DropTargetPeer.h
new file mode 100644
index 000000000..d96222ba8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/dnd/peer/DropTargetPeer.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_dnd_peer_DropTargetPeer__
+#define __java_awt_dnd_peer_DropTargetPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace dnd
+ {
+ class DropTarget;
+ namespace peer
+ {
+ class DropTargetPeer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::dnd::peer::DropTargetPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void addDropTarget(::java::awt::dnd::DropTarget *) = 0;
+ virtual void removeDropTarget(::java::awt::dnd::DropTarget *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_dnd_peer_DropTargetPeer__
diff --git a/gcc-4.8/libjava/java/awt/event/AWTEventListener.h b/gcc-4.8/libjava/java/awt/event/AWTEventListener.h
new file mode 100644
index 000000000..e85da18c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/AWTEventListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_AWTEventListener__
+#define __java_awt_event_AWTEventListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ namespace event
+ {
+ class AWTEventListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::AWTEventListener : public ::java::lang::Object
+{
+
+public:
+ virtual void eventDispatched(::java::awt::AWTEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_AWTEventListener__
diff --git a/gcc-4.8/libjava/java/awt/event/AWTEventListenerProxy.h b/gcc-4.8/libjava/java/awt/event/AWTEventListenerProxy.h
new file mode 100644
index 000000000..90e1bc2d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/AWTEventListenerProxy.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_AWTEventListenerProxy__
+#define __java_awt_event_AWTEventListenerProxy__
+
+#pragma interface
+
+#include <java/util/EventListenerProxy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ namespace event
+ {
+ class AWTEventListener;
+ class AWTEventListenerProxy;
+ }
+ }
+ }
+}
+
+class java::awt::event::AWTEventListenerProxy : public ::java::util::EventListenerProxy
+{
+
+public:
+ AWTEventListenerProxy(jlong, ::java::awt::event::AWTEventListener *);
+ virtual void eventDispatched(::java::awt::AWTEvent *);
+ virtual jlong getEventMask();
+private:
+ jlong __attribute__((aligned(__alignof__( ::java::util::EventListenerProxy)))) mask;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_AWTEventListenerProxy__
diff --git a/gcc-4.8/libjava/java/awt/event/ActionEvent.h b/gcc-4.8/libjava/java/awt/event/ActionEvent.h
new file mode 100644
index 000000000..a1eff2632
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ActionEvent.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ActionEvent__
+#define __java_awt_event_ActionEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ActionEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::ActionEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ ActionEvent(::java::lang::Object *, jint, ::java::lang::String *);
+ ActionEvent(::java::lang::Object *, jint, ::java::lang::String *, jint);
+ ActionEvent(::java::lang::Object *, jint, ::java::lang::String *, jlong, jint);
+ virtual ::java::lang::String * getActionCommand();
+ virtual jlong getWhen();
+ virtual jint getModifiers();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = -7671078796273832149LL;
+public:
+ static const jint SHIFT_MASK = 1;
+ static const jint CTRL_MASK = 2;
+ static const jint META_MASK = 4;
+ static const jint ALT_MASK = 8;
+ static const jint ACTION_FIRST = 1001;
+ static const jint ACTION_LAST = 1001;
+ static const jint ACTION_PERFORMED = 1001;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) actionCommand;
+ jint modifiers;
+ jlong when;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_ActionEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/ActionListener.h b/gcc-4.8/libjava/java/awt/event/ActionListener.h
new file mode 100644
index 000000000..0560d7caf
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ActionListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ActionListener__
+#define __java_awt_event_ActionListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ActionEvent;
+ class ActionListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::ActionListener : public ::java::lang::Object
+{
+
+public:
+ virtual void actionPerformed(::java::awt::event::ActionEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_ActionListener__
diff --git a/gcc-4.8/libjava/java/awt/event/AdjustmentEvent.h b/gcc-4.8/libjava/java/awt/event/AdjustmentEvent.h
new file mode 100644
index 000000000..71bef4d39
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/AdjustmentEvent.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_AdjustmentEvent__
+#define __java_awt_event_AdjustmentEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Adjustable;
+ namespace event
+ {
+ class AdjustmentEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::AdjustmentEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ AdjustmentEvent(::java::awt::Adjustable *, jint, jint, jint);
+ AdjustmentEvent(::java::awt::Adjustable *, jint, jint, jint, jboolean);
+ virtual ::java::awt::Adjustable * getAdjustable();
+ virtual jint getValue();
+ virtual jint getAdjustmentType();
+ virtual jboolean getValueIsAdjusting();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 5700290645205279921LL;
+public:
+ static const jint ADJUSTMENT_FIRST = 601;
+ static const jint ADJUSTMENT_LAST = 601;
+ static const jint ADJUSTMENT_VALUE_CHANGED = 601;
+ static const jint UNIT_INCREMENT = 1;
+ static const jint UNIT_DECREMENT = 2;
+ static const jint BLOCK_DECREMENT = 3;
+ static const jint BLOCK_INCREMENT = 4;
+ static const jint TRACK = 5;
+private:
+ ::java::awt::Adjustable * __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) adjustable;
+ jint adjustmentType;
+ jint value;
+ jboolean isAdjusting;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_AdjustmentEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/AdjustmentListener.h b/gcc-4.8/libjava/java/awt/event/AdjustmentListener.h
new file mode 100644
index 000000000..75e67203b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/AdjustmentListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_AdjustmentListener__
+#define __java_awt_event_AdjustmentListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class AdjustmentEvent;
+ class AdjustmentListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::AdjustmentListener : public ::java::lang::Object
+{
+
+public:
+ virtual void adjustmentValueChanged(::java::awt::event::AdjustmentEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_AdjustmentListener__
diff --git a/gcc-4.8/libjava/java/awt/event/ComponentAdapter.h b/gcc-4.8/libjava/java/awt/event/ComponentAdapter.h
new file mode 100644
index 000000000..0121a0de5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ComponentAdapter.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ComponentAdapter__
+#define __java_awt_event_ComponentAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ComponentAdapter;
+ class ComponentEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::ComponentAdapter : public ::java::lang::Object
+{
+
+public:
+ ComponentAdapter();
+ virtual void componentResized(::java::awt::event::ComponentEvent *);
+ virtual void componentMoved(::java::awt::event::ComponentEvent *);
+ virtual void componentShown(::java::awt::event::ComponentEvent *);
+ virtual void componentHidden(::java::awt::event::ComponentEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_ComponentAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/ComponentEvent.h b/gcc-4.8/libjava/java/awt/event/ComponentEvent.h
new file mode 100644
index 000000000..667ceb7c2
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ComponentEvent.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ComponentEvent__
+#define __java_awt_event_ComponentEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace event
+ {
+ class ComponentEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::ComponentEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ ComponentEvent(::java::awt::Component *, jint);
+ virtual ::java::awt::Component * getComponent();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 8101406823902992965LL;
+public:
+ static const jint COMPONENT_FIRST = 100;
+ static const jint COMPONENT_LAST = 103;
+ static const jint COMPONENT_MOVED = 100;
+ static const jint COMPONENT_RESIZED = 101;
+ static const jint COMPONENT_SHOWN = 102;
+ static const jint COMPONENT_HIDDEN = 103;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_ComponentEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/ComponentListener.h b/gcc-4.8/libjava/java/awt/event/ComponentListener.h
new file mode 100644
index 000000000..961c9a9d3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ComponentListener.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ComponentListener__
+#define __java_awt_event_ComponentListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ComponentEvent;
+ class ComponentListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::ComponentListener : public ::java::lang::Object
+{
+
+public:
+ virtual void componentResized(::java::awt::event::ComponentEvent *) = 0;
+ virtual void componentMoved(::java::awt::event::ComponentEvent *) = 0;
+ virtual void componentShown(::java::awt::event::ComponentEvent *) = 0;
+ virtual void componentHidden(::java::awt::event::ComponentEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_ComponentListener__
diff --git a/gcc-4.8/libjava/java/awt/event/ContainerAdapter.h b/gcc-4.8/libjava/java/awt/event/ContainerAdapter.h
new file mode 100644
index 000000000..e483c5b0e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ContainerAdapter.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ContainerAdapter__
+#define __java_awt_event_ContainerAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ContainerAdapter;
+ class ContainerEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::ContainerAdapter : public ::java::lang::Object
+{
+
+public:
+ ContainerAdapter();
+ virtual void componentAdded(::java::awt::event::ContainerEvent *);
+ virtual void componentRemoved(::java::awt::event::ContainerEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_ContainerAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/ContainerEvent.h b/gcc-4.8/libjava/java/awt/event/ContainerEvent.h
new file mode 100644
index 000000000..f1d4680ef
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ContainerEvent.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ContainerEvent__
+#define __java_awt_event_ContainerEvent__
+
+#pragma interface
+
+#include <java/awt/event/ComponentEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ namespace event
+ {
+ class ContainerEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::ContainerEvent : public ::java::awt::event::ComponentEvent
+{
+
+public:
+ ContainerEvent(::java::awt::Component *, jint, ::java::awt::Component *);
+ virtual ::java::awt::Container * getContainer();
+ virtual ::java::awt::Component * getChild();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = -4114942250539772041LL;
+public:
+ static const jint CONTAINER_FIRST = 300;
+ static const jint CONTAINER_LAST = 301;
+ static const jint COMPONENT_ADDED = 300;
+ static const jint COMPONENT_REMOVED = 301;
+private:
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentEvent)))) child;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_ContainerEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/ContainerListener.h b/gcc-4.8/libjava/java/awt/event/ContainerListener.h
new file mode 100644
index 000000000..ac24d8ce0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ContainerListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ContainerListener__
+#define __java_awt_event_ContainerListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ContainerEvent;
+ class ContainerListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::ContainerListener : public ::java::lang::Object
+{
+
+public:
+ virtual void componentAdded(::java::awt::event::ContainerEvent *) = 0;
+ virtual void componentRemoved(::java::awt::event::ContainerEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_ContainerListener__
diff --git a/gcc-4.8/libjava/java/awt/event/FocusAdapter.h b/gcc-4.8/libjava/java/awt/event/FocusAdapter.h
new file mode 100644
index 000000000..f46f94e5c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/FocusAdapter.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_FocusAdapter__
+#define __java_awt_event_FocusAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class FocusAdapter;
+ class FocusEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::FocusAdapter : public ::java::lang::Object
+{
+
+public:
+ FocusAdapter();
+ virtual void focusGained(::java::awt::event::FocusEvent *);
+ virtual void focusLost(::java::awt::event::FocusEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_FocusAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/FocusEvent.h b/gcc-4.8/libjava/java/awt/event/FocusEvent.h
new file mode 100644
index 000000000..5c7315a9a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/FocusEvent.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_FocusEvent__
+#define __java_awt_event_FocusEvent__
+
+#pragma interface
+
+#include <java/awt/event/ComponentEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace event
+ {
+ class FocusEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::FocusEvent : public ::java::awt::event::ComponentEvent
+{
+
+public:
+ FocusEvent(::java::awt::Component *, jint, jboolean, ::java::awt::Component *);
+ FocusEvent(::java::awt::Component *, jint, jboolean);
+ FocusEvent(::java::awt::Component *, jint);
+ virtual jboolean isTemporary();
+ virtual ::java::awt::Component * getOppositeComponent();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 523753786457416396LL;
+public:
+ static const jint FOCUS_FIRST = 1004;
+ static const jint FOCUS_LAST = 1005;
+ static const jint FOCUS_GAINED = 1004;
+ static const jint FOCUS_LOST = 1005;
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::awt::event::ComponentEvent)))) temporary;
+ ::java::awt::Component * opposite;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_FocusEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/FocusListener.h b/gcc-4.8/libjava/java/awt/event/FocusListener.h
new file mode 100644
index 000000000..f47a924b3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/FocusListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_FocusListener__
+#define __java_awt_event_FocusListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class FocusEvent;
+ class FocusListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::FocusListener : public ::java::lang::Object
+{
+
+public:
+ virtual void focusGained(::java::awt::event::FocusEvent *) = 0;
+ virtual void focusLost(::java::awt::event::FocusEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_FocusListener__
diff --git a/gcc-4.8/libjava/java/awt/event/HierarchyBoundsAdapter.h b/gcc-4.8/libjava/java/awt/event/HierarchyBoundsAdapter.h
new file mode 100644
index 000000000..125cf864c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/HierarchyBoundsAdapter.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_HierarchyBoundsAdapter__
+#define __java_awt_event_HierarchyBoundsAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class HierarchyBoundsAdapter;
+ class HierarchyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::HierarchyBoundsAdapter : public ::java::lang::Object
+{
+
+public:
+ HierarchyBoundsAdapter();
+ virtual void ancestorMoved(::java::awt::event::HierarchyEvent *);
+ virtual void ancestorResized(::java::awt::event::HierarchyEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_HierarchyBoundsAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/HierarchyBoundsListener.h b/gcc-4.8/libjava/java/awt/event/HierarchyBoundsListener.h
new file mode 100644
index 000000000..2ae05003f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/HierarchyBoundsListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_HierarchyBoundsListener__
+#define __java_awt_event_HierarchyBoundsListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class HierarchyBoundsListener;
+ class HierarchyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::HierarchyBoundsListener : public ::java::lang::Object
+{
+
+public:
+ virtual void ancestorMoved(::java::awt::event::HierarchyEvent *) = 0;
+ virtual void ancestorResized(::java::awt::event::HierarchyEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_HierarchyBoundsListener__
diff --git a/gcc-4.8/libjava/java/awt/event/HierarchyEvent.h b/gcc-4.8/libjava/java/awt/event/HierarchyEvent.h
new file mode 100644
index 000000000..fe9585ae0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/HierarchyEvent.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_HierarchyEvent__
+#define __java_awt_event_HierarchyEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Container;
+ namespace event
+ {
+ class HierarchyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::HierarchyEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ HierarchyEvent(::java::awt::Component *, jint, ::java::awt::Component *, ::java::awt::Container *);
+ HierarchyEvent(::java::awt::Component *, jint, ::java::awt::Component *, ::java::awt::Container *, jlong);
+ virtual ::java::awt::Component * getComponent();
+ virtual ::java::awt::Component * getChanged();
+ virtual ::java::awt::Container * getChangedParent();
+ virtual jlong getChangeFlags();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = -5337576970038043990LL;
+public:
+ static const jint HIERARCHY_FIRST = 1400;
+ static const jint HIERARCHY_CHANGED = 1400;
+ static const jint ANCESTOR_MOVED = 1401;
+ static const jint ANCESTOR_RESIZED = 1402;
+ static const jint HIERARCHY_LAST = 1402;
+ static const jint PARENT_CHANGED = 1;
+ static const jint DISPLAYABILITY_CHANGED = 2;
+ static const jint SHOWING_CHANGED = 4;
+private:
+ ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) changed;
+ ::java::awt::Container * changedParent;
+ jlong changeFlags;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_HierarchyEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/HierarchyListener.h b/gcc-4.8/libjava/java/awt/event/HierarchyListener.h
new file mode 100644
index 000000000..e691edc27
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/HierarchyListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_HierarchyListener__
+#define __java_awt_event_HierarchyListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class HierarchyEvent;
+ class HierarchyListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::HierarchyListener : public ::java::lang::Object
+{
+
+public:
+ virtual void hierarchyChanged(::java::awt::event::HierarchyEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_HierarchyListener__
diff --git a/gcc-4.8/libjava/java/awt/event/InputEvent.h b/gcc-4.8/libjava/java/awt/event/InputEvent.h
new file mode 100644
index 000000000..863963ca0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/InputEvent.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_InputEvent__
+#define __java_awt_event_InputEvent__
+
+#pragma interface
+
+#include <java/awt/event/ComponentEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace event
+ {
+ class InputEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::InputEvent : public ::java::awt::event::ComponentEvent
+{
+
+public: // actually package-private
+ InputEvent(::java::awt::Component *, jint, jlong, jint);
+public:
+ virtual jboolean isShiftDown();
+ virtual jboolean isControlDown();
+ virtual jboolean isMetaDown();
+ virtual jboolean isAltDown();
+ virtual jboolean isAltGraphDown();
+ virtual jlong getWhen();
+ virtual jint getModifiers();
+ virtual jint getModifiersEx();
+ virtual void consume();
+ virtual jboolean isConsumed();
+ static ::java::lang::String * getModifiersExText(jint);
+private:
+ static const jlong serialVersionUID = -2482525981698309786LL;
+public:
+ static const jint SHIFT_MASK = 1;
+ static const jint CTRL_MASK = 2;
+ static const jint META_MASK = 4;
+ static const jint ALT_MASK = 8;
+ static const jint ALT_GRAPH_MASK = 32;
+ static const jint BUTTON1_MASK = 16;
+ static const jint BUTTON2_MASK = 8;
+ static const jint BUTTON3_MASK = 4;
+ static const jint SHIFT_DOWN_MASK = 64;
+ static const jint CTRL_DOWN_MASK = 128;
+ static const jint META_DOWN_MASK = 256;
+ static const jint ALT_DOWN_MASK = 512;
+ static const jint BUTTON1_DOWN_MASK = 1024;
+ static const jint BUTTON2_DOWN_MASK = 2048;
+ static const jint BUTTON3_DOWN_MASK = 4096;
+ static const jint ALT_GRAPH_DOWN_MASK = 8192;
+public: // actually package-private
+ static const jint CONVERT_MASK = 10176;
+private:
+ jlong __attribute__((aligned(__alignof__( ::java::awt::event::ComponentEvent)))) when;
+public: // actually package-private
+ jint modifiers;
+ jint modifiersEx;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_InputEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/InputMethodEvent.h b/gcc-4.8/libjava/java/awt/event/InputMethodEvent.h
new file mode 100644
index 000000000..0c0247045
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/InputMethodEvent.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_InputMethodEvent__
+#define __java_awt_event_InputMethodEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace event
+ {
+ class InputMethodEvent;
+ }
+ namespace font
+ {
+ class TextHitInfo;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ }
+ }
+}
+
+class java::awt::event::InputMethodEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ InputMethodEvent(::java::awt::Component *, jint, jlong, ::java::text::AttributedCharacterIterator *, jint, ::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
+ InputMethodEvent(::java::awt::Component *, jint, ::java::text::AttributedCharacterIterator *, jint, ::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
+ InputMethodEvent(::java::awt::Component *, jint, ::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
+ virtual ::java::text::AttributedCharacterIterator * getText();
+ virtual jint getCommittedCharacterCount();
+ virtual ::java::awt::font::TextHitInfo * getCaret();
+ virtual ::java::awt::font::TextHitInfo * getVisiblePosition();
+ virtual void consume();
+ virtual jboolean isConsumed();
+ virtual jlong getWhen();
+ virtual ::java::lang::String * paramString();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 4727190874778922661LL;
+public:
+ static const jint INPUT_METHOD_FIRST = 1100;
+ static const jint INPUT_METHOD_TEXT_CHANGED = 1100;
+ static const jint CARET_POSITION_CHANGED = 1101;
+ static const jint INPUT_METHOD_LAST = 1101;
+private:
+ jlong __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) when;
+ ::java::text::AttributedCharacterIterator * text;
+ jint committedCharacterCount;
+ ::java::awt::font::TextHitInfo * caret;
+ ::java::awt::font::TextHitInfo * visiblePosition;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_InputMethodEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/InputMethodListener.h b/gcc-4.8/libjava/java/awt/event/InputMethodListener.h
new file mode 100644
index 000000000..4bb03de2b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/InputMethodListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_InputMethodListener__
+#define __java_awt_event_InputMethodListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class InputMethodEvent;
+ class InputMethodListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::InputMethodListener : public ::java::lang::Object
+{
+
+public:
+ virtual void inputMethodTextChanged(::java::awt::event::InputMethodEvent *) = 0;
+ virtual void caretPositionChanged(::java::awt::event::InputMethodEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_InputMethodListener__
diff --git a/gcc-4.8/libjava/java/awt/event/InvocationEvent.h b/gcc-4.8/libjava/java/awt/event/InvocationEvent.h
new file mode 100644
index 000000000..2dde3a421
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/InvocationEvent.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_InvocationEvent__
+#define __java_awt_event_InvocationEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class InvocationEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::InvocationEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ InvocationEvent(::java::lang::Object *, ::java::lang::Runnable *);
+ InvocationEvent(::java::lang::Object *, ::java::lang::Runnable *, ::java::lang::Object *, jboolean);
+public: // actually protected
+ InvocationEvent(::java::lang::Object *, jint, ::java::lang::Runnable *, ::java::lang::Object *, jboolean);
+public:
+ virtual void dispatch();
+ virtual ::java::lang::Exception * getException();
+ virtual ::java::lang::Throwable * getThrowable();
+ virtual jlong getWhen();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 436056344909459450LL;
+public:
+ static const jint INVOCATION_FIRST = 1200;
+ static const jint INVOCATION_DEFAULT = 1200;
+ static const jint INVOCATION_LAST = 1200;
+public: // actually protected
+ ::java::lang::Runnable * __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) runnable;
+ ::java::lang::Object * notifier;
+ jboolean catchExceptions;
+private:
+ ::java::lang::Exception * exception;
+ ::java::lang::Throwable * throwable;
+ jlong when;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_InvocationEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/ItemEvent.h b/gcc-4.8/libjava/java/awt/event/ItemEvent.h
new file mode 100644
index 000000000..61f483646
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ItemEvent.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ItemEvent__
+#define __java_awt_event_ItemEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class ItemSelectable;
+ namespace event
+ {
+ class ItemEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::ItemEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ ItemEvent(::java::awt::ItemSelectable *, jint, ::java::lang::Object *, jint);
+ virtual ::java::awt::ItemSelectable * getItemSelectable();
+ virtual ::java::lang::Object * getItem();
+ virtual jint getStateChange();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = -608708132447206933LL;
+public:
+ static const jint ITEM_FIRST = 701;
+ static const jint ITEM_LAST = 701;
+ static const jint ITEM_STATE_CHANGED = 701;
+ static const jint SELECTED = 1;
+ static const jint DESELECTED = 2;
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) item;
+ jint stateChange;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_ItemEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/ItemListener.h b/gcc-4.8/libjava/java/awt/event/ItemListener.h
new file mode 100644
index 000000000..eee09ce9d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/ItemListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_ItemListener__
+#define __java_awt_event_ItemListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class ItemEvent;
+ class ItemListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::ItemListener : public ::java::lang::Object
+{
+
+public:
+ virtual void itemStateChanged(::java::awt::event::ItemEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_ItemListener__
diff --git a/gcc-4.8/libjava/java/awt/event/KeyAdapter.h b/gcc-4.8/libjava/java/awt/event/KeyAdapter.h
new file mode 100644
index 000000000..b63023e66
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/KeyAdapter.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_KeyAdapter__
+#define __java_awt_event_KeyAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class KeyAdapter;
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::KeyAdapter : public ::java::lang::Object
+{
+
+public:
+ KeyAdapter();
+ virtual void keyTyped(::java::awt::event::KeyEvent *);
+ virtual void keyPressed(::java::awt::event::KeyEvent *);
+ virtual void keyReleased(::java::awt::event::KeyEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_KeyAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/KeyEvent.h b/gcc-4.8/libjava/java/awt/event/KeyEvent.h
new file mode 100644
index 000000000..6b3258677
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/KeyEvent.h
@@ -0,0 +1,255 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_KeyEvent__
+#define __java_awt_event_KeyEvent__
+
+#pragma interface
+
+#include <java/awt/event/InputEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace event
+ {
+ class KeyEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::KeyEvent : public ::java::awt::event::InputEvent
+{
+
+public:
+ KeyEvent(::java::awt::Component *, jint, jlong, jint, jint, jchar, jint);
+ KeyEvent(::java::awt::Component *, jint, jlong, jint, jint, jchar);
+ KeyEvent(::java::awt::Component *, jint, jlong, jint, jint);
+ virtual jint getKeyCode();
+ virtual void setKeyCode(jint);
+ virtual jchar getKeyChar();
+ virtual void setKeyChar(jchar);
+ virtual void setModifiers(jint);
+ virtual jint getKeyLocation();
+ static ::java::lang::String * getKeyText(jint);
+ static ::java::lang::String * getKeyModifiersText(jint);
+ virtual jboolean isActionKey();
+ virtual ::java::lang::String * paramString();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -2352130953028126954LL;
+public:
+ static const jint KEY_FIRST = 400;
+ static const jint KEY_LAST = 402;
+ static const jint KEY_TYPED = 400;
+ static const jint KEY_PRESSED = 401;
+ static const jint KEY_RELEASED = 402;
+ static const jint VK_ENTER = 10;
+ static const jint VK_BACK_SPACE = 8;
+ static const jint VK_TAB = 9;
+ static const jint VK_CANCEL = 3;
+ static const jint VK_CLEAR = 12;
+ static const jint VK_SHIFT = 16;
+ static const jint VK_CONTROL = 17;
+ static const jint VK_ALT = 18;
+ static const jint VK_PAUSE = 19;
+ static const jint VK_CAPS_LOCK = 20;
+ static const jint VK_ESCAPE = 27;
+ static const jint VK_SPACE = 32;
+ static const jint VK_PAGE_UP = 33;
+ static const jint VK_PAGE_DOWN = 34;
+ static const jint VK_END = 35;
+ static const jint VK_HOME = 36;
+ static const jint VK_LEFT = 37;
+ static const jint VK_UP = 38;
+ static const jint VK_RIGHT = 39;
+ static const jint VK_DOWN = 40;
+ static const jint VK_COMMA = 44;
+ static const jint VK_MINUS = 45;
+ static const jint VK_PERIOD = 46;
+ static const jint VK_SLASH = 47;
+ static const jint VK_0 = 48;
+ static const jint VK_1 = 49;
+ static const jint VK_2 = 50;
+ static const jint VK_3 = 51;
+ static const jint VK_4 = 52;
+ static const jint VK_5 = 53;
+ static const jint VK_6 = 54;
+ static const jint VK_7 = 55;
+ static const jint VK_8 = 56;
+ static const jint VK_9 = 57;
+ static const jint VK_SEMICOLON = 59;
+ static const jint VK_EQUALS = 61;
+ static const jint VK_A = 65;
+ static const jint VK_B = 66;
+ static const jint VK_C = 67;
+ static const jint VK_D = 68;
+ static const jint VK_E = 69;
+ static const jint VK_F = 70;
+ static const jint VK_G = 71;
+ static const jint VK_H = 72;
+ static const jint VK_I = 73;
+ static const jint VK_J = 74;
+ static const jint VK_K = 75;
+ static const jint VK_L = 76;
+ static const jint VK_M = 77;
+ static const jint VK_N = 78;
+ static const jint VK_O = 79;
+ static const jint VK_P = 80;
+ static const jint VK_Q = 81;
+ static const jint VK_R = 82;
+ static const jint VK_S = 83;
+ static const jint VK_T = 84;
+ static const jint VK_U = 85;
+ static const jint VK_V = 86;
+ static const jint VK_W = 87;
+ static const jint VK_X = 88;
+ static const jint VK_Y = 89;
+ static const jint VK_Z = 90;
+ static const jint VK_OPEN_BRACKET = 91;
+ static const jint VK_BACK_SLASH = 92;
+ static const jint VK_CLOSE_BRACKET = 93;
+ static const jint VK_NUMPAD0 = 96;
+ static const jint VK_NUMPAD1 = 97;
+ static const jint VK_NUMPAD2 = 98;
+ static const jint VK_NUMPAD3 = 99;
+ static const jint VK_NUMPAD4 = 100;
+ static const jint VK_NUMPAD5 = 101;
+ static const jint VK_NUMPAD6 = 102;
+ static const jint VK_NUMPAD7 = 103;
+ static const jint VK_NUMPAD8 = 104;
+ static const jint VK_NUMPAD9 = 105;
+ static const jint VK_MULTIPLY = 106;
+ static const jint VK_ADD = 107;
+ static const jint VK_SEPARATER = 108;
+ static const jint VK_SEPARATOR = 108;
+ static const jint VK_SUBTRACT = 109;
+ static const jint VK_DECIMAL = 110;
+ static const jint VK_DIVIDE = 111;
+ static const jint VK_DELETE = 127;
+ static const jint VK_NUM_LOCK = 144;
+ static const jint VK_SCROLL_LOCK = 145;
+ static const jint VK_F1 = 112;
+ static const jint VK_F2 = 113;
+ static const jint VK_F3 = 114;
+ static const jint VK_F4 = 115;
+ static const jint VK_F5 = 116;
+ static const jint VK_F6 = 117;
+ static const jint VK_F7 = 118;
+ static const jint VK_F8 = 119;
+ static const jint VK_F9 = 120;
+ static const jint VK_F10 = 121;
+ static const jint VK_F11 = 122;
+ static const jint VK_F12 = 123;
+ static const jint VK_F13 = 61440;
+ static const jint VK_F14 = 61441;
+ static const jint VK_F15 = 61442;
+ static const jint VK_F16 = 61443;
+ static const jint VK_F17 = 61444;
+ static const jint VK_F18 = 61445;
+ static const jint VK_F19 = 61446;
+ static const jint VK_F20 = 61447;
+ static const jint VK_F21 = 61448;
+ static const jint VK_F22 = 61449;
+ static const jint VK_F23 = 61450;
+ static const jint VK_F24 = 61451;
+ static const jint VK_PRINTSCREEN = 154;
+ static const jint VK_INSERT = 155;
+ static const jint VK_HELP = 156;
+ static const jint VK_META = 157;
+ static const jint VK_BACK_QUOTE = 192;
+ static const jint VK_QUOTE = 222;
+ static const jint VK_KP_UP = 224;
+ static const jint VK_KP_DOWN = 225;
+ static const jint VK_KP_LEFT = 226;
+ static const jint VK_KP_RIGHT = 227;
+ static const jint VK_DEAD_GRAVE = 128;
+ static const jint VK_DEAD_ACUTE = 129;
+ static const jint VK_DEAD_CIRCUMFLEX = 130;
+ static const jint VK_DEAD_TILDE = 131;
+ static const jint VK_DEAD_MACRON = 132;
+ static const jint VK_DEAD_BREVE = 133;
+ static const jint VK_DEAD_ABOVEDOT = 134;
+ static const jint VK_DEAD_DIAERESIS = 135;
+ static const jint VK_DEAD_ABOVERING = 136;
+ static const jint VK_DEAD_DOUBLEACUTE = 137;
+ static const jint VK_DEAD_CARON = 138;
+ static const jint VK_DEAD_CEDILLA = 139;
+ static const jint VK_DEAD_OGONEK = 140;
+ static const jint VK_DEAD_IOTA = 141;
+ static const jint VK_DEAD_VOICED_SOUND = 142;
+ static const jint VK_DEAD_SEMIVOICED_SOUND = 143;
+ static const jint VK_AMPERSAND = 150;
+ static const jint VK_ASTERISK = 151;
+ static const jint VK_QUOTEDBL = 152;
+ static const jint VK_LESS = 153;
+ static const jint VK_GREATER = 160;
+ static const jint VK_BRACELEFT = 161;
+ static const jint VK_BRACERIGHT = 162;
+ static const jint VK_AT = 512;
+ static const jint VK_COLON = 513;
+ static const jint VK_CIRCUMFLEX = 514;
+ static const jint VK_DOLLAR = 515;
+ static const jint VK_EURO_SIGN = 516;
+ static const jint VK_EXCLAMATION_MARK = 517;
+ static const jint VK_INVERTED_EXCLAMATION_MARK = 518;
+ static const jint VK_LEFT_PARENTHESIS = 519;
+ static const jint VK_NUMBER_SIGN = 520;
+ static const jint VK_PLUS = 521;
+ static const jint VK_RIGHT_PARENTHESIS = 522;
+ static const jint VK_UNDERSCORE = 523;
+ static const jint VK_FINAL = 24;
+ static const jint VK_CONVERT = 28;
+ static const jint VK_NONCONVERT = 29;
+ static const jint VK_ACCEPT = 30;
+ static const jint VK_MODECHANGE = 31;
+ static const jint VK_KANA = 21;
+ static const jint VK_KANJI = 25;
+ static const jint VK_ALPHANUMERIC = 240;
+ static const jint VK_KATAKANA = 241;
+ static const jint VK_HIRAGANA = 242;
+ static const jint VK_FULL_WIDTH = 243;
+ static const jint VK_HALF_WIDTH = 244;
+ static const jint VK_ROMAN_CHARACTERS = 245;
+ static const jint VK_ALL_CANDIDATES = 256;
+ static const jint VK_PREVIOUS_CANDIDATE = 257;
+ static const jint VK_CODE_INPUT = 258;
+ static const jint VK_JAPANESE_KATAKANA = 259;
+ static const jint VK_JAPANESE_HIRAGANA = 260;
+ static const jint VK_JAPANESE_ROMAN = 261;
+ static const jint VK_KANA_LOCK = 262;
+ static const jint VK_INPUT_METHOD_ON_OFF = 263;
+ static const jint VK_CUT = 65489;
+ static const jint VK_COPY = 65485;
+ static const jint VK_PASTE = 65487;
+ static const jint VK_UNDO = 65483;
+ static const jint VK_AGAIN = 65481;
+ static const jint VK_FIND = 65488;
+ static const jint VK_PROPS = 65482;
+ static const jint VK_STOP = 65480;
+ static const jint VK_COMPOSE = 65312;
+ static const jint VK_ALT_GRAPH = 65406;
+ static const jint VK_BEGIN = 65368;
+ static const jint VK_CONTEXT_MENU = 525;
+ static const jint VK_WINDOWS = 524;
+ static const jint VK_UNDEFINED = 0;
+ static const jchar CHAR_UNDEFINED = 65535;
+ static const jint KEY_LOCATION_UNKNOWN = 0;
+ static const jint KEY_LOCATION_STANDARD = 1;
+ static const jint KEY_LOCATION_LEFT = 2;
+ static const jint KEY_LOCATION_RIGHT = 3;
+ static const jint KEY_LOCATION_NUMPAD = 4;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::awt::event::InputEvent)))) keyCode;
+ jchar keyChar;
+ jint keyLocation;
+ jboolean isProxyActive;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_KeyEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/KeyListener.h b/gcc-4.8/libjava/java/awt/event/KeyListener.h
new file mode 100644
index 000000000..a25e5b83e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/KeyListener.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_KeyListener__
+#define __java_awt_event_KeyListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class KeyEvent;
+ class KeyListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::KeyListener : public ::java::lang::Object
+{
+
+public:
+ virtual void keyTyped(::java::awt::event::KeyEvent *) = 0;
+ virtual void keyPressed(::java::awt::event::KeyEvent *) = 0;
+ virtual void keyReleased(::java::awt::event::KeyEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_KeyListener__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseAdapter.h b/gcc-4.8/libjava/java/awt/event/MouseAdapter.h
new file mode 100644
index 000000000..d0ee27ee7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseAdapter.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseAdapter__
+#define __java_awt_event_MouseAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class MouseAdapter;
+ class MouseEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseAdapter : public ::java::lang::Object
+{
+
+public:
+ MouseAdapter();
+ virtual void mouseClicked(::java::awt::event::MouseEvent *);
+ virtual void mousePressed(::java::awt::event::MouseEvent *);
+ virtual void mouseReleased(::java::awt::event::MouseEvent *);
+ virtual void mouseEntered(::java::awt::event::MouseEvent *);
+ virtual void mouseExited(::java::awt::event::MouseEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_MouseAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseEvent.h b/gcc-4.8/libjava/java/awt/event/MouseEvent.h
new file mode 100644
index 000000000..82ef6c22d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseEvent.h
@@ -0,0 +1,75 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseEvent__
+#define __java_awt_event_MouseEvent__
+
+#pragma interface
+
+#include <java/awt/event/InputEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Point;
+ namespace event
+ {
+ class MouseEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseEvent : public ::java::awt::event::InputEvent
+{
+
+public:
+ MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean, jint);
+ MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean);
+ MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jint, jint, jboolean, jint);
+ virtual jint getX();
+ virtual jint getY();
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual jint getXOnScreen();
+ virtual jint getYOnScreen();
+ virtual ::java::awt::Point * getPoint();
+ virtual void translatePoint(jint, jint);
+ virtual jint getClickCount();
+ virtual jint getButton();
+ virtual jboolean isPopupTrigger();
+ static ::java::lang::String * getMouseModifiersText(jint);
+ virtual ::java::lang::String * paramString();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -991214153494842848LL;
+public:
+ static const jint MOUSE_FIRST = 500;
+ static const jint MOUSE_LAST = 507;
+ static const jint MOUSE_CLICKED = 500;
+ static const jint MOUSE_PRESSED = 501;
+ static const jint MOUSE_RELEASED = 502;
+ static const jint MOUSE_MOVED = 503;
+ static const jint MOUSE_ENTERED = 504;
+ static const jint MOUSE_EXITED = 505;
+ static const jint NOBUTTON = 0;
+ static const jint BUTTON1 = 1;
+ static const jint BUTTON2 = 2;
+ static const jint BUTTON3 = 3;
+ static const jint MOUSE_DRAGGED = 506;
+ static const jint MOUSE_WHEEL = 507;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::awt::event::InputEvent)))) x;
+ jint y;
+ jint absX;
+ jint absY;
+ jint clickCount;
+ jint button;
+ jboolean popupTrigger;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_MouseEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseListener.h b/gcc-4.8/libjava/java/awt/event/MouseListener.h
new file mode 100644
index 000000000..d3263ab8e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseListener.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseListener__
+#define __java_awt_event_MouseListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class MouseEvent;
+ class MouseListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseListener : public ::java::lang::Object
+{
+
+public:
+ virtual void mouseClicked(::java::awt::event::MouseEvent *) = 0;
+ virtual void mousePressed(::java::awt::event::MouseEvent *) = 0;
+ virtual void mouseReleased(::java::awt::event::MouseEvent *) = 0;
+ virtual void mouseEntered(::java::awt::event::MouseEvent *) = 0;
+ virtual void mouseExited(::java::awt::event::MouseEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_MouseListener__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseMotionAdapter.h b/gcc-4.8/libjava/java/awt/event/MouseMotionAdapter.h
new file mode 100644
index 000000000..2c29cdd9d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseMotionAdapter.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseMotionAdapter__
+#define __java_awt_event_MouseMotionAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class MouseEvent;
+ class MouseMotionAdapter;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseMotionAdapter : public ::java::lang::Object
+{
+
+public:
+ MouseMotionAdapter();
+ virtual void mouseDragged(::java::awt::event::MouseEvent *);
+ virtual void mouseMoved(::java::awt::event::MouseEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_MouseMotionAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseMotionListener.h b/gcc-4.8/libjava/java/awt/event/MouseMotionListener.h
new file mode 100644
index 000000000..84087bbf0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseMotionListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseMotionListener__
+#define __java_awt_event_MouseMotionListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class MouseEvent;
+ class MouseMotionListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseMotionListener : public ::java::lang::Object
+{
+
+public:
+ virtual void mouseDragged(::java::awt::event::MouseEvent *) = 0;
+ virtual void mouseMoved(::java::awt::event::MouseEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_MouseMotionListener__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseWheelEvent.h b/gcc-4.8/libjava/java/awt/event/MouseWheelEvent.h
new file mode 100644
index 000000000..fd804a126
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseWheelEvent.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseWheelEvent__
+#define __java_awt_event_MouseWheelEvent__
+
+#pragma interface
+
+#include <java/awt/event/MouseEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ namespace event
+ {
+ class MouseWheelEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseWheelEvent : public ::java::awt::event::MouseEvent
+{
+
+public:
+ MouseWheelEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean, jint, jint, jint);
+ virtual jint getScrollType();
+ virtual jint getScrollAmount();
+ virtual jint getWheelRotation();
+ virtual jint getUnitsToScroll();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 6459879390515399677LL;
+public:
+ static const jint WHEEL_UNIT_SCROLL = 0;
+ static const jint WHEEL_BLOCK_SCROLL = 1;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::awt::event::MouseEvent)))) scrollType;
+ jint scrollAmount;
+ jint wheelRotation;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_MouseWheelEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/MouseWheelListener.h b/gcc-4.8/libjava/java/awt/event/MouseWheelListener.h
new file mode 100644
index 000000000..525b427e4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/MouseWheelListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_MouseWheelListener__
+#define __java_awt_event_MouseWheelListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class MouseWheelEvent;
+ class MouseWheelListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::MouseWheelListener : public ::java::lang::Object
+{
+
+public:
+ virtual void mouseWheelMoved(::java::awt::event::MouseWheelEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_MouseWheelListener__
diff --git a/gcc-4.8/libjava/java/awt/event/PaintEvent.h b/gcc-4.8/libjava/java/awt/event/PaintEvent.h
new file mode 100644
index 000000000..4d1802729
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/PaintEvent.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_PaintEvent__
+#define __java_awt_event_PaintEvent__
+
+#pragma interface
+
+#include <java/awt/event/ComponentEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Rectangle;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::PaintEvent : public ::java::awt::event::ComponentEvent
+{
+
+public:
+ PaintEvent(::java::awt::Component *, jint, ::java::awt::Rectangle *);
+ virtual ::java::awt::Rectangle * getUpdateRect();
+ virtual void setUpdateRect(::java::awt::Rectangle *);
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 1267492026433337593LL;
+public:
+ static const jint PAINT_FIRST = 800;
+ static const jint PAINT_LAST = 801;
+ static const jint PAINT = 800;
+ static const jint UPDATE = 801;
+private:
+ ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentEvent)))) updateRect;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_PaintEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/TextEvent.h b/gcc-4.8/libjava/java/awt/event/TextEvent.h
new file mode 100644
index 000000000..bd673f73c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/TextEvent.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_TextEvent__
+#define __java_awt_event_TextEvent__
+
+#pragma interface
+
+#include <java/awt/AWTEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class TextEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::TextEvent : public ::java::awt::AWTEvent
+{
+
+public:
+ TextEvent(::java::lang::Object *, jint);
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = 6269902291250941179LL;
+public:
+ static const jint TEXT_FIRST = 900;
+ static const jint TEXT_LAST = 900;
+ static const jint TEXT_VALUE_CHANGED = 900;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_TextEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/TextListener.h b/gcc-4.8/libjava/java/awt/event/TextListener.h
new file mode 100644
index 000000000..cb3ad2c91
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/TextListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_TextListener__
+#define __java_awt_event_TextListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class TextEvent;
+ class TextListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::TextListener : public ::java::lang::Object
+{
+
+public:
+ virtual void textValueChanged(::java::awt::event::TextEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_TextListener__
diff --git a/gcc-4.8/libjava/java/awt/event/WindowAdapter.h b/gcc-4.8/libjava/java/awt/event/WindowAdapter.h
new file mode 100644
index 000000000..fda064b21
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/WindowAdapter.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_WindowAdapter__
+#define __java_awt_event_WindowAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class WindowAdapter;
+ class WindowEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::WindowAdapter : public ::java::lang::Object
+{
+
+public:
+ WindowAdapter();
+ virtual void windowOpened(::java::awt::event::WindowEvent *);
+ virtual void windowClosing(::java::awt::event::WindowEvent *);
+ virtual void windowClosed(::java::awt::event::WindowEvent *);
+ virtual void windowIconified(::java::awt::event::WindowEvent *);
+ virtual void windowDeiconified(::java::awt::event::WindowEvent *);
+ virtual void windowActivated(::java::awt::event::WindowEvent *);
+ virtual void windowDeactivated(::java::awt::event::WindowEvent *);
+ virtual void windowStateChanged(::java::awt::event::WindowEvent *);
+ virtual void windowGainedFocus(::java::awt::event::WindowEvent *);
+ virtual void windowLostFocus(::java::awt::event::WindowEvent *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_WindowAdapter__
diff --git a/gcc-4.8/libjava/java/awt/event/WindowEvent.h b/gcc-4.8/libjava/java/awt/event/WindowEvent.h
new file mode 100644
index 000000000..886927787
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/WindowEvent.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_WindowEvent__
+#define __java_awt_event_WindowEvent__
+
+#pragma interface
+
+#include <java/awt/event/ComponentEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Window;
+ namespace event
+ {
+ class WindowEvent;
+ }
+ }
+ }
+}
+
+class java::awt::event::WindowEvent : public ::java::awt::event::ComponentEvent
+{
+
+public:
+ WindowEvent(::java::awt::Window *, jint, ::java::awt::Window *, jint, jint);
+ WindowEvent(::java::awt::Window *, jint, ::java::awt::Window *);
+ WindowEvent(::java::awt::Window *, jint, jint, jint);
+ WindowEvent(::java::awt::Window *, jint);
+ virtual ::java::awt::Window * getWindow();
+ virtual ::java::awt::Window * getOppositeWindow();
+ virtual jint getOldState();
+ virtual jint getNewState();
+ virtual ::java::lang::String * paramString();
+private:
+ static const jlong serialVersionUID = -1567959133147912127LL;
+public:
+ static const jint WINDOW_FIRST = 200;
+ static const jint WINDOW_OPENED = 200;
+ static const jint WINDOW_CLOSING = 201;
+ static const jint WINDOW_CLOSED = 202;
+ static const jint WINDOW_ICONIFIED = 203;
+ static const jint WINDOW_DEICONIFIED = 204;
+ static const jint WINDOW_ACTIVATED = 205;
+ static const jint WINDOW_DEACTIVATED = 206;
+ static const jint WINDOW_GAINED_FOCUS = 207;
+ static const jint WINDOW_LOST_FOCUS = 208;
+ static const jint WINDOW_STATE_CHANGED = 209;
+ static const jint WINDOW_LAST = 209;
+private:
+ ::java::awt::Window * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentEvent)))) opposite;
+ jint oldState;
+ jint newState;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_event_WindowEvent__
diff --git a/gcc-4.8/libjava/java/awt/event/WindowFocusListener.h b/gcc-4.8/libjava/java/awt/event/WindowFocusListener.h
new file mode 100644
index 000000000..5ff8d3ac1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/WindowFocusListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_WindowFocusListener__
+#define __java_awt_event_WindowFocusListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class WindowEvent;
+ class WindowFocusListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::WindowFocusListener : public ::java::lang::Object
+{
+
+public:
+ virtual void windowGainedFocus(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowLostFocus(::java::awt::event::WindowEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_WindowFocusListener__
diff --git a/gcc-4.8/libjava/java/awt/event/WindowListener.h b/gcc-4.8/libjava/java/awt/event/WindowListener.h
new file mode 100644
index 000000000..b1b3109fc
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/WindowListener.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_WindowListener__
+#define __java_awt_event_WindowListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class WindowEvent;
+ class WindowListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::WindowListener : public ::java::lang::Object
+{
+
+public:
+ virtual void windowOpened(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowClosing(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowClosed(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowIconified(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowDeiconified(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowActivated(::java::awt::event::WindowEvent *) = 0;
+ virtual void windowDeactivated(::java::awt::event::WindowEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_WindowListener__
diff --git a/gcc-4.8/libjava/java/awt/event/WindowStateListener.h b/gcc-4.8/libjava/java/awt/event/WindowStateListener.h
new file mode 100644
index 000000000..459ad6926
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/event/WindowStateListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_event_WindowStateListener__
+#define __java_awt_event_WindowStateListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace event
+ {
+ class WindowEvent;
+ class WindowStateListener;
+ }
+ }
+ }
+}
+
+class java::awt::event::WindowStateListener : public ::java::lang::Object
+{
+
+public:
+ virtual void windowStateChanged(::java::awt::event::WindowEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_event_WindowStateListener__
diff --git a/gcc-4.8/libjava/java/awt/font/FontRenderContext.h b/gcc-4.8/libjava/java/awt/font/FontRenderContext.h
new file mode 100644
index 000000000..30fb5973a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/FontRenderContext.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_FontRenderContext__
+#define __java_awt_font_FontRenderContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class FontRenderContext;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ }
+ }
+ }
+}
+
+class java::awt::font::FontRenderContext : public ::java::lang::Object
+{
+
+public: // actually protected
+ FontRenderContext();
+public:
+ FontRenderContext(::java::awt::geom::AffineTransform *, jboolean, jboolean);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jboolean equals(::java::awt::font::FontRenderContext *);
+ virtual ::java::awt::geom::AffineTransform * getTransform();
+ virtual jint hashCode();
+ virtual jboolean isAntiAliased();
+ virtual jboolean usesFractionalMetrics();
+private:
+ ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::lang::Object)))) affineTransform;
+ jboolean isAntiAliased__;
+ jboolean usesFractionalMetrics__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_FontRenderContext__
diff --git a/gcc-4.8/libjava/java/awt/font/GlyphJustificationInfo.h b/gcc-4.8/libjava/java/awt/font/GlyphJustificationInfo.h
new file mode 100644
index 000000000..eb8806680
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/GlyphJustificationInfo.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_GlyphJustificationInfo__
+#define __java_awt_font_GlyphJustificationInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class GlyphJustificationInfo;
+ }
+ }
+ }
+}
+
+class java::awt::font::GlyphJustificationInfo : public ::java::lang::Object
+{
+
+public:
+ GlyphJustificationInfo(jfloat, jboolean, jint, jfloat, jfloat, jboolean, jint, jfloat, jfloat);
+ static const jint PRIORITY_KASHIDA = 0;
+ static const jint PRIORITY_WHITESPACE = 1;
+ static const jint PRIORITY_INTERCHAR = 2;
+ static const jint PRIORITY_NONE = 3;
+ jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) weight;
+ jint growPriority;
+ jboolean growAbsorb;
+ jfloat growLeftLimit;
+ jfloat growRightLimit;
+ jint shrinkPriority;
+ jboolean shrinkAbsorb;
+ jfloat shrinkLeftLimit;
+ jfloat shrinkRightLimit;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_GlyphJustificationInfo__
diff --git a/gcc-4.8/libjava/java/awt/font/GlyphMetrics.h b/gcc-4.8/libjava/java/awt/font/GlyphMetrics.h
new file mode 100644
index 000000000..7c44a20f2
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/GlyphMetrics.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_GlyphMetrics__
+#define __java_awt_font_GlyphMetrics__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class GlyphMetrics;
+ }
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::font::GlyphMetrics : public ::java::lang::Object
+{
+
+public:
+ GlyphMetrics(jboolean, jfloat, jfloat, ::java::awt::geom::Rectangle2D *, jbyte);
+ GlyphMetrics(jfloat, ::java::awt::geom::Rectangle2D *, jbyte);
+ jfloat getAdvance();
+ jfloat getAdvanceX();
+ jfloat getAdvanceY();
+ ::java::awt::geom::Rectangle2D * getBounds2D();
+ jfloat getLSB();
+ jfloat getRSB();
+ jint getType();
+ jboolean isCombining();
+ jboolean isComponent();
+ jboolean isLigature();
+ jboolean isStandard();
+ jboolean isWhitespace();
+ static const jbyte COMBINING = 2;
+ static const jbyte COMPONENT = 3;
+ static const jbyte LIGATURE = 1;
+ static const jbyte STANDARD = 0;
+ static const jbyte WHITESPACE = 4;
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) horizontal;
+ jfloat advanceX;
+ jfloat advanceY;
+ ::java::awt::geom::Rectangle2D * bounds;
+ jbyte glyphType;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_GlyphMetrics__
diff --git a/gcc-4.8/libjava/java/awt/font/GlyphVector.h b/gcc-4.8/libjava/java/awt/font/GlyphVector.h
new file mode 100644
index 000000000..67826afa8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/GlyphVector.h
@@ -0,0 +1,78 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_GlyphVector__
+#define __java_awt_font_GlyphVector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ class Rectangle;
+ class Shape;
+ namespace font
+ {
+ class FontRenderContext;
+ class GlyphJustificationInfo;
+ class GlyphMetrics;
+ class GlyphVector;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::font::GlyphVector : public ::java::lang::Object
+{
+
+public:
+ GlyphVector();
+ virtual jboolean equals(::java::awt::font::GlyphVector *) = 0;
+ virtual ::java::awt::Font * getFont() = 0;
+ virtual ::java::awt::font::FontRenderContext * getFontRenderContext() = 0;
+ virtual jint getGlyphCharIndex(jint);
+ virtual JArray< jint > * getGlyphCharIndices(jint, jint, JArray< jint > *);
+ virtual jint getGlyphCode(jint) = 0;
+ virtual JArray< jint > * getGlyphCodes(jint, jint, JArray< jint > *) = 0;
+ virtual ::java::awt::font::GlyphJustificationInfo * getGlyphJustificationInfo(jint) = 0;
+ virtual ::java::awt::Shape * getGlyphLogicalBounds(jint) = 0;
+ virtual ::java::awt::font::GlyphMetrics * getGlyphMetrics(jint) = 0;
+ virtual ::java::awt::Shape * getGlyphOutline(jint) = 0;
+ virtual ::java::awt::Shape * getGlyphOutline(jint, jfloat, jfloat);
+ virtual ::java::awt::Rectangle * getGlyphPixelBounds(jint, ::java::awt::font::FontRenderContext *, jfloat, jfloat);
+ virtual ::java::awt::geom::Point2D * getGlyphPosition(jint) = 0;
+ virtual JArray< jfloat > * getGlyphPositions(jint, jint, JArray< jfloat > *) = 0;
+ virtual ::java::awt::geom::AffineTransform * getGlyphTransform(jint) = 0;
+ virtual ::java::awt::Shape * getGlyphVisualBounds(jint) = 0;
+ virtual jint getLayoutFlags();
+ virtual ::java::awt::geom::Rectangle2D * getLogicalBounds() = 0;
+ virtual jint getNumGlyphs() = 0;
+ virtual ::java::awt::Shape * getOutline() = 0;
+ virtual ::java::awt::Shape * getOutline(jfloat, jfloat) = 0;
+ virtual ::java::awt::Rectangle * getPixelBounds(::java::awt::font::FontRenderContext *, jfloat, jfloat);
+ virtual ::java::awt::geom::Rectangle2D * getVisualBounds() = 0;
+ virtual void performDefaultLayout() = 0;
+ virtual void setGlyphPosition(jint, ::java::awt::geom::Point2D *) = 0;
+ virtual void setGlyphTransform(jint, ::java::awt::geom::AffineTransform *) = 0;
+ static const jint FLAG_COMPLEX_GLYPHS = 8;
+ static const jint FLAG_HAS_POSITION_ADJUSTMENTS = 2;
+ static const jint FLAG_HAS_TRANSFORMS = 1;
+ static const jint FLAG_MASK = 15;
+ static const jint FLAG_RUN_RTL = 4;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_GlyphVector__
diff --git a/gcc-4.8/libjava/java/awt/font/GraphicAttribute.h b/gcc-4.8/libjava/java/awt/font/GraphicAttribute.h
new file mode 100644
index 000000000..622cbed7b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/GraphicAttribute.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_GraphicAttribute__
+#define __java_awt_font_GraphicAttribute__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics2D;
+ namespace font
+ {
+ class GlyphJustificationInfo;
+ class GraphicAttribute;
+ }
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::font::GraphicAttribute : public ::java::lang::Object
+{
+
+public: // actually protected
+ GraphicAttribute(jint);
+public:
+ virtual void draw(::java::awt::Graphics2D *, jfloat, jfloat) = 0;
+ virtual jfloat getAdvance() = 0;
+ virtual jfloat getAscent() = 0;
+ virtual jfloat getDescent() = 0;
+ virtual jint getAlignment();
+ virtual ::java::awt::geom::Rectangle2D * getBounds();
+ virtual ::java::awt::font::GlyphJustificationInfo * getJustificationInfo();
+ static const jint BOTTOM_ALIGNMENT = -2;
+ static const jint CENTER_BASELINE = 1;
+ static const jint HANGING_BASELINE = 2;
+ static const jint ROMAN_BASELINE = 0;
+ static const jint TOP_ALIGNMENT = -1;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) alignment;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_GraphicAttribute__
diff --git a/gcc-4.8/libjava/java/awt/font/ImageGraphicAttribute.h b/gcc-4.8/libjava/java/awt/font/ImageGraphicAttribute.h
new file mode 100644
index 000000000..086fc3d1b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/ImageGraphicAttribute.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_ImageGraphicAttribute__
+#define __java_awt_font_ImageGraphicAttribute__
+
+#pragma interface
+
+#include <java/awt/font/GraphicAttribute.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics2D;
+ class Image;
+ namespace font
+ {
+ class ImageGraphicAttribute;
+ }
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::font::ImageGraphicAttribute : public ::java::awt::font::GraphicAttribute
+{
+
+public:
+ ImageGraphicAttribute(::java::awt::Image *, jint);
+ ImageGraphicAttribute(::java::awt::Image *, jint, jfloat, jfloat);
+ void draw(::java::awt::Graphics2D *, jfloat, jfloat);
+ jboolean equals(::java::lang::Object *);
+ jboolean equals(::java::awt::font::ImageGraphicAttribute *);
+ jfloat getAdvance();
+ jfloat getAscent();
+ ::java::awt::geom::Rectangle2D * getBounds();
+ jfloat getDescent();
+ jint hashCode();
+private:
+ ::java::awt::Image * __attribute__((aligned(__alignof__( ::java::awt::font::GraphicAttribute)))) image;
+ jfloat originX;
+ jfloat originY;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_ImageGraphicAttribute__
diff --git a/gcc-4.8/libjava/java/awt/font/LineBreakMeasurer.h b/gcc-4.8/libjava/java/awt/font/LineBreakMeasurer.h
new file mode 100644
index 000000000..3d862e748
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/LineBreakMeasurer.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_LineBreakMeasurer__
+#define __java_awt_font_LineBreakMeasurer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class FontRenderContext;
+ class LineBreakMeasurer;
+ class TextLayout;
+ class TextMeasurer;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class BreakIterator;
+ }
+ }
+}
+
+class java::awt::font::LineBreakMeasurer : public ::java::lang::Object
+{
+
+public:
+ LineBreakMeasurer(::java::text::AttributedCharacterIterator *, ::java::text::BreakIterator *, ::java::awt::font::FontRenderContext *);
+ LineBreakMeasurer(::java::text::AttributedCharacterIterator *, ::java::awt::font::FontRenderContext *);
+ void deleteChar(::java::text::AttributedCharacterIterator *, jint);
+ void insertChar(::java::text::AttributedCharacterIterator *, jint);
+ ::java::awt::font::TextLayout * nextLayout(jfloat);
+ ::java::awt::font::TextLayout * nextLayout(jfloat, jint, jboolean);
+ jint nextOffset(jfloat);
+ jint nextOffset(jfloat, jint, jboolean);
+ void setPosition(jint);
+ jint getPosition();
+private:
+ ::java::text::AttributedCharacterIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text;
+ jint position;
+ ::java::awt::font::TextMeasurer * tm;
+ jint numChars;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_LineBreakMeasurer__
diff --git a/gcc-4.8/libjava/java/awt/font/LineMetrics.h b/gcc-4.8/libjava/java/awt/font/LineMetrics.h
new file mode 100644
index 000000000..35b8594dc
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/LineMetrics.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_LineMetrics__
+#define __java_awt_font_LineMetrics__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class LineMetrics;
+ }
+ }
+ }
+}
+
+class java::awt::font::LineMetrics : public ::java::lang::Object
+{
+
+public:
+ LineMetrics();
+ virtual jfloat getAscent() = 0;
+ virtual jint getBaselineIndex() = 0;
+ virtual JArray< jfloat > * getBaselineOffsets() = 0;
+ virtual jfloat getDescent() = 0;
+ virtual jfloat getHeight() = 0;
+ virtual jfloat getLeading() = 0;
+ virtual jint getNumChars() = 0;
+ virtual jfloat getStrikethroughOffset() = 0;
+ virtual jfloat getStrikethroughThickness() = 0;
+ virtual jfloat getUnderlineOffset() = 0;
+ virtual jfloat getUnderlineThickness() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_LineMetrics__
diff --git a/gcc-4.8/libjava/java/awt/font/MultipleMaster.h b/gcc-4.8/libjava/java/awt/font/MultipleMaster.h
new file mode 100644
index 000000000..99e4580ae
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/MultipleMaster.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_MultipleMaster__
+#define __java_awt_font_MultipleMaster__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ namespace font
+ {
+ class MultipleMaster;
+ }
+ }
+ }
+}
+
+class java::awt::font::MultipleMaster : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Font * deriveMMFont(JArray< jfloat > *) = 0;
+ virtual ::java::awt::Font * deriveMMFont(JArray< jfloat > *, jfloat, jfloat, jfloat, jfloat) = 0;
+ virtual JArray< jfloat > * getDesignAxisDefaults() = 0;
+ virtual JArray< ::java::lang::String * > * getDesignAxisNames() = 0;
+ virtual JArray< jfloat > * getDesignAxisRanges() = 0;
+ virtual jint getNumDesignAxes() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_font_MultipleMaster__
diff --git a/gcc-4.8/libjava/java/awt/font/NumericShaper.h b/gcc-4.8/libjava/java/awt/font/NumericShaper.h
new file mode 100644
index 000000000..85f0d4c31
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/NumericShaper.h
@@ -0,0 +1,75 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_NumericShaper__
+#define __java_awt_font_NumericShaper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class NumericShaper;
+ }
+ }
+ }
+}
+
+class java::awt::font::NumericShaper : public ::java::lang::Object
+{
+
+ NumericShaper(jint, jint);
+public:
+ jint getRanges();
+ jboolean isContextual();
+ void shape(JArray< jchar > *, jint, jint);
+private:
+ jint classify(::java::lang::Character$UnicodeBlock *);
+public:
+ void shape(JArray< jchar > *, jint, jint, jint);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+ static ::java::awt::font::NumericShaper * getShaper(jint);
+ static ::java::awt::font::NumericShaper * getContextualShaper(jint);
+ static ::java::awt::font::NumericShaper * getContextualShaper(jint, jint);
+private:
+ static const jlong serialVersionUID = -8022764705923730308LL;
+public:
+ static const jint ALL_RANGES = 524287;
+ static const jint ARABIC = 2;
+ static const jint BENGALI = 16;
+ static const jint DEVANAGARI = 8;
+ static const jint EASTERN_ARABIC = 4;
+ static const jint ETHIOPIC = 65536;
+ static const jint EUROPEAN = 1;
+ static const jint GUJARATI = 64;
+ static const jint GURMUKHI = 32;
+ static const jint KANNADA = 1024;
+ static const jint KHMER = 131072;
+ static const jint LAO = 8192;
+ static const jint MALAYALAM = 2048;
+ static const jint MONGOLIAN = 262144;
+ static const jint MYANMAR = 32768;
+ static const jint ORIYA = 128;
+ static const jint TAMIL = 256;
+ static const jint TELUGU = 512;
+ static const jint THAI = 4096;
+ static const jint TIBETAN = 16384;
+private:
+ static JArray< jchar > * zeroDigits;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ jint mask;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_NumericShaper__
diff --git a/gcc-4.8/libjava/java/awt/font/OpenType.h b/gcc-4.8/libjava/java/awt/font/OpenType.h
new file mode 100644
index 000000000..bd1c0a622
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/OpenType.h
@@ -0,0 +1,91 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_OpenType__
+#define __java_awt_font_OpenType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class OpenType;
+ }
+ }
+ }
+}
+
+class java::awt::font::OpenType : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< jbyte > * getFontTable(jint) = 0;
+ virtual JArray< jbyte > * getFontTable(jint, jint, jint) = 0;
+ virtual JArray< jbyte > * getFontTable(::java::lang::String *) = 0;
+ virtual JArray< jbyte > * getFontTable(::java::lang::String *, jint, jint) = 0;
+ virtual jint getFontTableSize(jint) = 0;
+ virtual jint getFontTableSize(::java::lang::String *) = 0;
+ virtual jint getVersion() = 0;
+ static const jint TAG_ACNT = 1633906292;
+ static const jint TAG_AVAR = 1635148146;
+ static const jint TAG_BASE = 1111577413;
+ static const jint TAG_BDAT = 1650745716;
+ static const jint TAG_BLOC = 1651273571;
+ static const jint TAG_BSLN = 1651731566;
+ static const jint TAG_CFF = 1128678944;
+ static const jint TAG_CMAP = 1668112752;
+ static const jint TAG_CVAR = 1668702578;
+ static const jint TAG_CVT = 1668707360;
+ static const jint TAG_DSIG = 1146308935;
+ static const jint TAG_EBDT = 1161970772;
+ static const jint TAG_EBLC = 1161972803;
+ static const jint TAG_EBSC = 1161974595;
+ static const jint TAG_FDSC = 1717859171;
+ static const jint TAG_FEAT = 1717920116;
+ static const jint TAG_FMTX = 1718449272;
+ static const jint TAG_FPGM = 1718642541;
+ static const jint TAG_FVAR = 1719034226;
+ static const jint TAG_GASP = 1734439792;
+ static const jint TAG_GDEF = 1195656518;
+ static const jint TAG_GLYF = 1735162214;
+ static const jint TAG_GPOS = 1196445523;
+ static const jint TAG_GSUB = 1196643650;
+ static const jint TAG_GVAR = 1735811442;
+ static const jint TAG_HDMX = 1751412088;
+ static const jint TAG_HEAD = 1751474532;
+ static const jint TAG_HHEA = 1751672161;
+ static const jint TAG_HMTX = 1752003704;
+ static const jint TAG_JSTF = 1246975046;
+ static const jint TAG_JUST = 1786082164;
+ static const jint TAG_KERN = 1801810542;
+ static const jint TAG_LCAR = 1818452338;
+ static const jint TAG_LOCA = 1819239265;
+ static const jint TAG_LTSH = 1280594760;
+ static const jint TAG_MAXP = 1835104368;
+ static const jint TAG_MMFX = 1296909912;
+ static const jint TAG_MMSD = 1296913220;
+ static const jint TAG_MORT = 1836020340;
+ static const jint TAG_NAME = 1851878757;
+ static const jint TAG_OPBD = 1836020340;
+ static const jint TAG_OS2 = 1330851634;
+ static const jint TAG_PCLT = 1346587732;
+ static const jint TAG_POST = 1886352244;
+ static const jint TAG_PREP = 1886545264;
+ static const jint TAG_PROP = 1886547824;
+ static const jint TAG_TRAK = 1953653099;
+ static const jint TAG_TYP1 = 1954115633;
+ static const jint TAG_VDMX = 1447316824;
+ static const jint TAG_VHEA = 1986553185;
+ static const jint TAG_VMTX = 1986884728;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_font_OpenType__
diff --git a/gcc-4.8/libjava/java/awt/font/ShapeGraphicAttribute.h b/gcc-4.8/libjava/java/awt/font/ShapeGraphicAttribute.h
new file mode 100644
index 000000000..fd8d1be57
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/ShapeGraphicAttribute.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_ShapeGraphicAttribute__
+#define __java_awt_font_ShapeGraphicAttribute__
+
+#pragma interface
+
+#include <java/awt/font/GraphicAttribute.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics2D;
+ class Shape;
+ namespace font
+ {
+ class ShapeGraphicAttribute;
+ }
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::font::ShapeGraphicAttribute : public ::java::awt::font::GraphicAttribute
+{
+
+public:
+ ShapeGraphicAttribute(::java::awt::Shape *, jint, jboolean);
+ void draw(::java::awt::Graphics2D *, jfloat, jfloat);
+ jboolean equals(::java::lang::Object *);
+ jboolean equals(::java::awt::font::ShapeGraphicAttribute *);
+ jfloat getAdvance();
+ jfloat getAscent();
+ jfloat getDescent();
+ ::java::awt::geom::Rectangle2D * getBounds();
+ jint hashCode();
+ static const jboolean FILL = 0;
+ static const jboolean STROKE = 1;
+private:
+ ::java::awt::Shape * __attribute__((aligned(__alignof__( ::java::awt::font::GraphicAttribute)))) shape;
+ jboolean stroke;
+ ::java::awt::geom::Rectangle2D * bounds;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_ShapeGraphicAttribute__
diff --git a/gcc-4.8/libjava/java/awt/font/TextAttribute.h b/gcc-4.8/libjava/java/awt/font/TextAttribute.h
new file mode 100644
index 000000000..050d71491
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TextAttribute.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TextAttribute__
+#define __java_awt_font_TextAttribute__
+
+#pragma interface
+
+#include <java/text/AttributedCharacterIterator$Attribute.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class TextAttribute;
+ }
+ }
+ }
+}
+
+class java::awt::font::TextAttribute : public ::java::text::AttributedCharacterIterator$Attribute
+{
+
+public: // actually protected
+ TextAttribute(::java::lang::String *);
+ ::java::lang::Object * readResolve();
+private:
+ static const jlong serialVersionUID = 7744112784117861702LL;
+public:
+ static ::java::awt::font::TextAttribute * BACKGROUND;
+ static ::java::awt::font::TextAttribute * BIDI_EMBEDDING;
+ static ::java::awt::font::TextAttribute * CHAR_REPLACEMENT;
+ static ::java::awt::font::TextAttribute * FAMILY;
+ static ::java::awt::font::TextAttribute * FONT;
+ static ::java::awt::font::TextAttribute * FOREGROUND;
+ static ::java::awt::font::TextAttribute * INPUT_METHOD_HIGHLIGHT;
+ static ::java::awt::font::TextAttribute * INPUT_METHOD_UNDERLINE;
+ static ::java::awt::font::TextAttribute * JUSTIFICATION;
+ static ::java::lang::Float * JUSTIFICATION_FULL;
+ static ::java::lang::Float * JUSTIFICATION_NONE;
+ static ::java::awt::font::TextAttribute * NUMERIC_SHAPING;
+ static ::java::awt::font::TextAttribute * POSTURE;
+ static ::java::lang::Float * POSTURE_OBLIQUE;
+ static ::java::lang::Float * POSTURE_REGULAR;
+ static ::java::awt::font::TextAttribute * RUN_DIRECTION;
+ static ::java::lang::Boolean * RUN_DIRECTION_LTR;
+ static ::java::lang::Boolean * RUN_DIRECTION_RTL;
+ static ::java::awt::font::TextAttribute * SIZE;
+ static ::java::awt::font::TextAttribute * STRIKETHROUGH;
+ static ::java::lang::Boolean * STRIKETHROUGH_ON;
+ static ::java::awt::font::TextAttribute * SUPERSCRIPT;
+ static ::java::lang::Integer * SUPERSCRIPT_SUB;
+ static ::java::lang::Integer * SUPERSCRIPT_SUPER;
+ static ::java::awt::font::TextAttribute * SWAP_COLORS;
+ static ::java::lang::Boolean * SWAP_COLORS_ON;
+ static ::java::awt::font::TextAttribute * TRANSFORM;
+ static ::java::awt::font::TextAttribute * UNDERLINE;
+ static ::java::lang::Integer * UNDERLINE_LOW_DASHED;
+ static ::java::lang::Integer * UNDERLINE_LOW_DOTTED;
+ static ::java::lang::Integer * UNDERLINE_LOW_GRAY;
+ static ::java::lang::Integer * UNDERLINE_LOW_ONE_PIXEL;
+ static ::java::lang::Integer * UNDERLINE_LOW_TWO_PIXEL;
+ static ::java::lang::Integer * UNDERLINE_ON;
+ static ::java::awt::font::TextAttribute * WEIGHT;
+ static ::java::lang::Float * WEIGHT_BOLD;
+ static ::java::lang::Float * WEIGHT_DEMIBOLD;
+ static ::java::lang::Float * WEIGHT_DEMILIGHT;
+ static ::java::lang::Float * WEIGHT_EXTRA_LIGHT;
+ static ::java::lang::Float * WEIGHT_EXTRABOLD;
+ static ::java::lang::Float * WEIGHT_HEAVY;
+ static ::java::lang::Float * WEIGHT_LIGHT;
+ static ::java::lang::Float * WEIGHT_MEDIUM;
+ static ::java::lang::Float * WEIGHT_REGULAR;
+ static ::java::lang::Float * WEIGHT_SEMIBOLD;
+ static ::java::lang::Float * WEIGHT_ULTRABOLD;
+ static ::java::awt::font::TextAttribute * WIDTH;
+ static ::java::lang::Float * WIDTH_CONDENSED;
+ static ::java::lang::Float * WIDTH_EXTENDED;
+ static ::java::lang::Float * WIDTH_REGULAR;
+ static ::java::lang::Float * WIDTH_SEMI_CONDENSED;
+ static ::java::lang::Float * WIDTH_SEMI_EXTENDED;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TextAttribute__
diff --git a/gcc-4.8/libjava/java/awt/font/TextHitInfo.h b/gcc-4.8/libjava/java/awt/font/TextHitInfo.h
new file mode 100644
index 000000000..a38745895
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TextHitInfo.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TextHitInfo__
+#define __java_awt_font_TextHitInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class TextHitInfo;
+ }
+ }
+ }
+}
+
+class java::awt::font::TextHitInfo : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TextHitInfo(jint, jboolean);
+public:
+ jint getCharIndex();
+ jboolean isLeadingEdge();
+ jint getInsertionIndex();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ jboolean equals(::java::awt::font::TextHitInfo *);
+ static ::java::awt::font::TextHitInfo * leading(jint);
+ static ::java::awt::font::TextHitInfo * trailing(jint);
+ static ::java::awt::font::TextHitInfo * beforeOffset(jint);
+ static ::java::awt::font::TextHitInfo * afterOffset(jint);
+ ::java::awt::font::TextHitInfo * getOtherHit();
+ ::java::awt::font::TextHitInfo * getOffsetHit(jint);
+ ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) charIndex;
+ jboolean leadingEdge;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TextHitInfo__
diff --git a/gcc-4.8/libjava/java/awt/font/TextLayout$CaretPolicy.h b/gcc-4.8/libjava/java/awt/font/TextLayout$CaretPolicy.h
new file mode 100644
index 000000000..adb7b0d1f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TextLayout$CaretPolicy.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TextLayout$CaretPolicy__
+#define __java_awt_font_TextLayout$CaretPolicy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class TextHitInfo;
+ class TextLayout;
+ class TextLayout$CaretPolicy;
+ }
+ }
+ }
+}
+
+class java::awt::font::TextLayout$CaretPolicy : public ::java::lang::Object
+{
+
+public:
+ TextLayout$CaretPolicy();
+ virtual ::java::awt::font::TextHitInfo * getStrongCaret(::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *, ::java::awt::font::TextLayout *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TextLayout$CaretPolicy__
diff --git a/gcc-4.8/libjava/java/awt/font/TextLayout$Run.h b/gcc-4.8/libjava/java/awt/font/TextLayout$Run.h
new file mode 100644
index 000000000..3760b6eef
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TextLayout$Run.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TextLayout$Run__
+#define __java_awt_font_TextLayout$Run__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ namespace font
+ {
+ class GlyphVector;
+ class TextLayout;
+ class TextLayout$Run;
+ }
+ }
+ }
+}
+
+class java::awt::font::TextLayout$Run : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TextLayout$Run(::java::awt::font::TextLayout *, ::java::awt::font::GlyphVector *, ::java::awt::Font *, jint, jint);
+ virtual jboolean isLeftToRight();
+ ::java::awt::font::GlyphVector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) glyphVector;
+ ::java::awt::Font * font;
+ jint runStart;
+ jint runEnd;
+ jfloat location;
+ ::java::awt::font::TextLayout * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TextLayout$Run__
diff --git a/gcc-4.8/libjava/java/awt/font/TextLayout.h b/gcc-4.8/libjava/java/awt/font/TextLayout.h
new file mode 100644
index 000000000..f5c02bafd
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TextLayout.h
@@ -0,0 +1,140 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TextLayout__
+#define __java_awt_font_TextLayout__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ class Graphics2D;
+ class Shape;
+ namespace font
+ {
+ class FontRenderContext;
+ class LineMetrics;
+ class TextHitInfo;
+ class TextLayout;
+ class TextLayout$CaretPolicy;
+ class TextLayout$Run;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class Bidi;
+ }
+ }
+}
+
+class java::awt::font::TextLayout : public ::java::lang::Object
+{
+
+public:
+ TextLayout(::java::lang::String *, ::java::awt::Font *, ::java::awt::font::FontRenderContext *);
+ TextLayout(::java::lang::String *, ::java::util::Map *, ::java::awt::font::FontRenderContext *);
+ TextLayout(::java::text::AttributedCharacterIterator *, ::java::awt::font::FontRenderContext *);
+public: // actually package-private
+ TextLayout(::java::awt::font::TextLayout *, jint, jint);
+private:
+ void setCharIndices();
+ void setupMappings();
+ static ::java::lang::String * getText(::java::text::AttributedCharacterIterator *);
+ static ::java::awt::Font * getFont(::java::text::AttributedCharacterIterator *);
+ void getStringProperties();
+ void determineWhiteSpace();
+public: // actually protected
+ ::java::lang::Object * clone();
+public:
+ void draw(::java::awt::Graphics2D *, jfloat, jfloat);
+ jboolean equals(::java::lang::Object *);
+ jboolean equals(::java::awt::font::TextLayout *);
+ jfloat getAdvance();
+ jfloat getAscent();
+ jbyte getBaseline();
+ JArray< jfloat > * getBaselineOffsets();
+ ::java::awt::Shape * getBlackBoxBounds(jint, jint);
+ ::java::awt::geom::Rectangle2D * getBounds();
+ JArray< jfloat > * getCaretInfo(::java::awt::font::TextHitInfo *);
+ JArray< jfloat > * getCaretInfo(::java::awt::font::TextHitInfo *, ::java::awt::geom::Rectangle2D *);
+ ::java::awt::Shape * getCaretShape(::java::awt::font::TextHitInfo *);
+ ::java::awt::Shape * getCaretShape(::java::awt::font::TextHitInfo *, ::java::awt::geom::Rectangle2D *);
+ JArray< ::java::awt::Shape * > * getCaretShapes(jint);
+ JArray< ::java::awt::Shape * > * getCaretShapes(jint, ::java::awt::geom::Rectangle2D *);
+ JArray< ::java::awt::Shape * > * getCaretShapes(jint, ::java::awt::geom::Rectangle2D *, ::java::awt::font::TextLayout$CaretPolicy *);
+ jint getCharacterCount();
+ jbyte getCharacterLevel(jint);
+ jfloat getDescent();
+ ::java::awt::font::TextLayout * getJustifiedLayout(jfloat);
+ jfloat getLeading();
+ ::java::awt::Shape * getLogicalHighlightShape(jint, jint);
+ ::java::awt::Shape * getLogicalHighlightShape(jint, jint, ::java::awt::geom::Rectangle2D *);
+ JArray< jint > * getLogicalRangesForVisualSelection(::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
+ ::java::awt::font::TextHitInfo * getNextLeftHit(jint);
+ ::java::awt::font::TextHitInfo * getNextLeftHit(jint, ::java::awt::font::TextLayout$CaretPolicy *);
+ ::java::awt::font::TextHitInfo * getNextLeftHit(::java::awt::font::TextHitInfo *);
+ ::java::awt::font::TextHitInfo * getNextRightHit(jint);
+ ::java::awt::font::TextHitInfo * getNextRightHit(jint, ::java::awt::font::TextLayout$CaretPolicy *);
+ ::java::awt::font::TextHitInfo * getNextRightHit(::java::awt::font::TextHitInfo *);
+ ::java::awt::Shape * getOutline(::java::awt::geom::AffineTransform *);
+ jfloat getVisibleAdvance();
+ ::java::awt::Shape * getVisualHighlightShape(::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
+ ::java::awt::Shape * getVisualHighlightShape(::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *, ::java::awt::geom::Rectangle2D *);
+private:
+ ::java::awt::Shape * left(::java::awt::geom::Rectangle2D *);
+ ::java::awt::Shape * right(::java::awt::geom::Rectangle2D *);
+public:
+ ::java::awt::font::TextHitInfo * getVisualOtherHit(::java::awt::font::TextHitInfo *);
+public: // actually protected
+ void handleJustify(jfloat);
+public:
+ ::java::awt::font::TextHitInfo * hitTestChar(jfloat, jfloat);
+ ::java::awt::font::TextHitInfo * hitTestChar(jfloat, jfloat, ::java::awt::geom::Rectangle2D *);
+ jboolean isLeftToRight();
+ jboolean isVertical();
+ jint hashCode();
+ ::java::lang::String * toString();
+private:
+ ::java::awt::geom::Rectangle2D * getNaturalBounds();
+ void checkHitInfo(::java::awt::font::TextHitInfo *);
+ jint hitToCaret(::java::awt::font::TextHitInfo *);
+ ::java::awt::font::TextHitInfo * caretToHit(jint);
+ jboolean isCharacterLTR(jint);
+ ::java::awt::font::TextLayout$Run * findRunAtIndex(jint);
+ void layoutRuns();
+ JArray< ::java::awt::font::TextLayout$Run * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) runs;
+ ::java::awt::font::FontRenderContext * frc;
+ JArray< jchar > * string;
+ jint offset;
+ jint length;
+ ::java::awt::geom::Rectangle2D * boundsCache;
+ ::java::awt::font::LineMetrics * lm;
+ jfloat totalAdvance;
+ ::java::awt::geom::Rectangle2D * naturalBounds;
+ JArray< JArray< jint > * > * charIndices;
+ jboolean leftToRight;
+ jboolean hasWhitespace;
+ ::java::text::Bidi * bidi;
+ JArray< jint > * logicalToVisual;
+ JArray< jint > * visualToLogical;
+ jint hash;
+public:
+ static ::java::awt::font::TextLayout$CaretPolicy * DEFAULT_CARET_POLICY;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TextLayout__
diff --git a/gcc-4.8/libjava/java/awt/font/TextMeasurer.h b/gcc-4.8/libjava/java/awt/font/TextMeasurer.h
new file mode 100644
index 000000000..31ca7b27f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TextMeasurer.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TextMeasurer__
+#define __java_awt_font_TextMeasurer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class FontRenderContext;
+ class TextLayout;
+ class TextMeasurer;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ }
+ }
+}
+
+class java::awt::font::TextMeasurer : public ::java::lang::Object
+{
+
+public:
+ TextMeasurer(::java::text::AttributedCharacterIterator *, ::java::awt::font::FontRenderContext *);
+public: // actually protected
+ ::java::lang::Object * clone();
+public:
+ void deleteChar(::java::text::AttributedCharacterIterator *, jint);
+ void insertChar(::java::text::AttributedCharacterIterator *, jint);
+ jfloat getAdvanceBetween(jint, jint);
+ ::java::awt::font::TextLayout * getLayout(jint, jint);
+ jint getLineBreakIndex(jint, jfloat);
+private:
+ ::java::text::AttributedCharacterIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text;
+ ::java::awt::font::FontRenderContext * frc;
+ ::java::awt::font::TextLayout * totalLayout;
+ jint numChars;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TextMeasurer__
diff --git a/gcc-4.8/libjava/java/awt/font/TransformAttribute.h b/gcc-4.8/libjava/java/awt/font/TransformAttribute.h
new file mode 100644
index 000000000..16875a23d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/font/TransformAttribute.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_font_TransformAttribute__
+#define __java_awt_font_TransformAttribute__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace font
+ {
+ class TransformAttribute;
+ }
+ namespace geom
+ {
+ class AffineTransform;
+ }
+ }
+ }
+}
+
+class java::awt::font::TransformAttribute : public ::java::lang::Object
+{
+
+public:
+ TransformAttribute(::java::awt::geom::AffineTransform *);
+ ::java::awt::geom::AffineTransform * getTransform();
+ jboolean isIdentity();
+private:
+ static const jlong serialVersionUID = 3356247357827709530LL;
+ ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::lang::Object)))) affineTransform;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_font_TransformAttribute__
diff --git a/gcc-4.8/libjava/java/awt/geom/AffineTransform.h b/gcc-4.8/libjava/java/awt/geom/AffineTransform.h
new file mode 100644
index 000000000..4c5efc8bb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/AffineTransform.h
@@ -0,0 +1,111 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_AffineTransform__
+#define __java_awt_geom_AffineTransform__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Shape;
+ namespace geom
+ {
+ class AffineTransform;
+ class Point2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::AffineTransform : public ::java::lang::Object
+{
+
+public:
+ AffineTransform();
+ AffineTransform(::java::awt::geom::AffineTransform *);
+ AffineTransform(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ AffineTransform(JArray< jfloat > *);
+ AffineTransform(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ AffineTransform(JArray< jdouble > *);
+ static ::java::awt::geom::AffineTransform * getTranslateInstance(jdouble, jdouble);
+ static ::java::awt::geom::AffineTransform * getRotateInstance(jdouble);
+ static ::java::awt::geom::AffineTransform * getRotateInstance(jdouble, jdouble, jdouble);
+ static ::java::awt::geom::AffineTransform * getScaleInstance(jdouble, jdouble);
+ static ::java::awt::geom::AffineTransform * getShearInstance(jdouble, jdouble);
+ virtual jint getType();
+ virtual jdouble getDeterminant();
+ virtual void getMatrix(JArray< jdouble > *);
+ virtual jdouble getScaleX();
+ virtual jdouble getScaleY();
+ virtual jdouble getShearX();
+ virtual jdouble getShearY();
+ virtual jdouble getTranslateX();
+ virtual jdouble getTranslateY();
+ virtual void translate(jdouble, jdouble);
+ virtual void rotate(jdouble);
+ virtual void rotate(jdouble, jdouble, jdouble);
+ virtual void scale(jdouble, jdouble);
+ virtual void shear(jdouble, jdouble);
+ virtual void setToIdentity();
+ virtual void setToTranslation(jdouble, jdouble);
+ virtual void setToRotation(jdouble);
+ virtual void setToRotation(jdouble, jdouble, jdouble);
+ virtual void setToScale(jdouble, jdouble);
+ virtual void setToShear(jdouble, jdouble);
+ virtual void setTransform(::java::awt::geom::AffineTransform *);
+ virtual void setTransform(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual void concatenate(::java::awt::geom::AffineTransform *);
+ virtual void preConcatenate(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::AffineTransform * createInverse();
+ virtual ::java::awt::geom::Point2D * transform(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void transform(JArray< ::java::awt::geom::Point2D * > *, jint, JArray< ::java::awt::geom::Point2D * > *, jint, jint);
+ virtual void transform(JArray< jfloat > *, jint, JArray< jfloat > *, jint, jint);
+ virtual void transform(JArray< jdouble > *, jint, JArray< jdouble > *, jint, jint);
+ virtual void transform(JArray< jfloat > *, jint, JArray< jdouble > *, jint, jint);
+ virtual void transform(JArray< jdouble > *, jint, JArray< jfloat > *, jint, jint);
+ virtual ::java::awt::geom::Point2D * inverseTransform(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void inverseTransform(JArray< jdouble > *, jint, JArray< jdouble > *, jint, jint);
+ virtual ::java::awt::geom::Point2D * deltaTransform(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void deltaTransform(JArray< jdouble > *, jint, JArray< jdouble > *, jint, jint);
+ virtual ::java::awt::Shape * createTransformedShape(::java::awt::Shape *);
+ virtual ::java::lang::String * toString();
+ virtual jboolean isIdentity();
+ virtual ::java::lang::Object * clone();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ void updateType();
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 1330973210523860834LL;
+public:
+ static const jint TYPE_IDENTITY = 0;
+ static const jint TYPE_TRANSLATION = 1;
+ static const jint TYPE_UNIFORM_SCALE = 2;
+ static const jint TYPE_GENERAL_SCALE = 4;
+ static const jint TYPE_MASK_SCALE = 6;
+ static const jint TYPE_FLIP = 64;
+ static const jint TYPE_QUADRANT_ROTATION = 8;
+ static const jint TYPE_GENERAL_ROTATION = 16;
+ static const jint TYPE_MASK_ROTATION = 24;
+ static const jint TYPE_GENERAL_TRANSFORM = 32;
+private:
+ jdouble __attribute__((aligned(__alignof__( ::java::lang::Object)))) m00;
+ jdouble m10;
+ jdouble m01;
+ jdouble m11;
+ jdouble m02;
+ jdouble m12;
+ jint type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_AffineTransform__
diff --git a/gcc-4.8/libjava/java/awt/geom/Arc2D$ArcIterator.h b/gcc-4.8/libjava/java/awt/geom/Arc2D$ArcIterator.h
new file mode 100644
index 000000000..4fdf0e15c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Arc2D$ArcIterator.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Arc2D$ArcIterator__
+#define __java_awt_geom_Arc2D$ArcIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Arc2D;
+ class Arc2D$ArcIterator;
+ class Ellipse2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Arc2D$ArcIterator : public ::java::lang::Object
+{
+
+public:
+ Arc2D$ArcIterator(::java::awt::geom::Arc2D *, ::java::awt::geom::AffineTransform *);
+ Arc2D$ArcIterator(::java::awt::geom::Ellipse2D *, ::java::awt::geom::AffineTransform *);
+ jint getWindingRule();
+ jboolean isDone();
+ void next();
+ jint currentSegment(JArray< jfloat > *);
+ jint currentSegment(JArray< jdouble > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+ jint limit;
+ ::java::awt::geom::AffineTransform * xform;
+ jdouble x;
+ jdouble y;
+ jdouble w;
+ jdouble h;
+ jdouble start;
+ jdouble extent;
+ jint type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Arc2D$ArcIterator__
diff --git a/gcc-4.8/libjava/java/awt/geom/Arc2D$Double.h b/gcc-4.8/libjava/java/awt/geom/Arc2D$Double.h
new file mode 100644
index 000000000..d39148b70
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Arc2D$Double.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Arc2D$Double__
+#define __java_awt_geom_Arc2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/Arc2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Arc2D$Double;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Arc2D$Double : public ::java::awt::geom::Arc2D
+{
+
+public:
+ Arc2D$Double();
+ Arc2D$Double(jint);
+ Arc2D$Double(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jint);
+ Arc2D$Double(::java::awt::geom::Rectangle2D *, jdouble, jdouble, jint);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jdouble getAngleStart();
+ virtual jdouble getAngleExtent();
+ virtual jboolean isEmpty();
+ virtual void setArc(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jint);
+ virtual void setAngleStart(jdouble);
+ virtual void setAngleExtent(jdouble);
+public: // actually protected
+ virtual ::java::awt::geom::Rectangle2D * makeBounds(jdouble, jdouble, jdouble, jdouble);
+public:
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::Arc2D)))) x;
+ jdouble y;
+ jdouble width;
+ jdouble height;
+ jdouble start;
+ jdouble extent;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Arc2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/Arc2D$Float.h b/gcc-4.8/libjava/java/awt/geom/Arc2D$Float.h
new file mode 100644
index 000000000..925c425ac
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Arc2D$Float.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Arc2D$Float__
+#define __java_awt_geom_Arc2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/Arc2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Arc2D$Float;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Arc2D$Float : public ::java::awt::geom::Arc2D
+{
+
+public:
+ Arc2D$Float();
+ Arc2D$Float(jint);
+ Arc2D$Float(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat, jint);
+ Arc2D$Float(::java::awt::geom::Rectangle2D *, jfloat, jfloat, jint);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jdouble getAngleStart();
+ virtual jdouble getAngleExtent();
+ virtual jboolean isEmpty();
+ virtual void setArc(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jint);
+ virtual void setAngleStart(jdouble);
+ virtual void setAngleExtent(jdouble);
+public: // actually protected
+ virtual ::java::awt::geom::Rectangle2D * makeBounds(jdouble, jdouble, jdouble, jdouble);
+public:
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::Arc2D)))) x;
+ jfloat y;
+ jfloat width;
+ jfloat height;
+ jfloat start;
+ jfloat extent;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Arc2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/Arc2D.h b/gcc-4.8/libjava/java/awt/geom/Arc2D.h
new file mode 100644
index 000000000..d2bfc7527
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Arc2D.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Arc2D__
+#define __java_awt_geom_Arc2D__
+
+#pragma interface
+
+#include <java/awt/geom/RectangularShape.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Arc2D;
+ class Dimension2D;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Arc2D : public ::java::awt::geom::RectangularShape
+{
+
+public: // actually protected
+ Arc2D(jint);
+public:
+ virtual jdouble getAngleStart() = 0;
+ virtual jdouble getAngleExtent() = 0;
+ virtual jint getArcType();
+ virtual ::java::awt::geom::Point2D * getStartPoint();
+ virtual ::java::awt::geom::Point2D * getEndPoint();
+ virtual void setArc(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jint) = 0;
+ virtual void setArc(::java::awt::geom::Point2D *, ::java::awt::geom::Dimension2D *, jdouble, jdouble, jint);
+ virtual void setArc(::java::awt::geom::Rectangle2D *, jdouble, jdouble, jint);
+ virtual void setArc(::java::awt::geom::Arc2D *);
+ virtual void setArcByCenter(jdouble, jdouble, jdouble, jdouble, jdouble, jint);
+ virtual void setArcByTangent(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, jdouble);
+ virtual void setAngleStart(jdouble) = 0;
+ virtual void setAngleExtent(jdouble) = 0;
+ virtual void setAngleStart(::java::awt::geom::Point2D *);
+ virtual void setAngles(jdouble, jdouble, jdouble, jdouble);
+ virtual void setAngles(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void setArcType(jint);
+ virtual void setFrame(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+public: // actually protected
+ virtual ::java::awt::geom::Rectangle2D * makeBounds(jdouble, jdouble, jdouble, jdouble) = 0;
+public:
+ virtual jboolean containsAngle(jdouble);
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ static const jint OPEN = 0;
+ static const jint CHORD = 1;
+ static const jint PIE = 2;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::awt::geom::RectangularShape)))) type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Arc2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h b/gcc-4.8/libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h
new file mode 100644
index 000000000..2dfcf311e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$AreaIterator$IteratorSegment__
+#define __java_awt_geom_Area$AreaIterator$IteratorSegment__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Area$AreaIterator;
+ class Area$AreaIterator$IteratorSegment;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$AreaIterator$IteratorSegment : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Area$AreaIterator$IteratorSegment(::java::awt::geom::Area$AreaIterator *);
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ JArray< jdouble > * coords;
+ ::java::awt::geom::Area$AreaIterator * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$AreaIterator$IteratorSegment__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$AreaIterator.h b/gcc-4.8/libjava/java/awt/geom/Area$AreaIterator.h
new file mode 100644
index 000000000..86824256a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$AreaIterator.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$AreaIterator__
+#define __java_awt_geom_Area$AreaIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Area;
+ class Area$AreaIterator;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$AreaIterator : public ::java::lang::Object
+{
+
+public:
+ Area$AreaIterator(::java::awt::geom::Area *, ::java::awt::geom::AffineTransform *);
+ virtual jint currentSegment(JArray< jdouble > *);
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+private:
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) segments;
+ jint index;
+ ::java::awt::geom::AffineTransform * at;
+public: // actually package-private
+ ::java::awt::geom::Area * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$AreaIterator__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$CubicSegment.h b/gcc-4.8/libjava/java/awt/geom/Area$CubicSegment.h
new file mode 100644
index 000000000..f5a31385e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$CubicSegment.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$CubicSegment__
+#define __java_awt_geom_Area$CubicSegment__
+
+#pragma interface
+
+#include <java/awt/geom/Area$Segment.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Area;
+ class Area$CubicSegment;
+ class Area$Segment;
+ class CubicCurve2D;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$CubicSegment : public ::java::awt::geom::Area$Segment
+{
+
+public:
+ Area$CubicSegment(::java::awt::geom::Area *, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::lang::Object * clone();
+public: // actually package-private
+ virtual jdouble curveArea();
+ virtual jboolean equals(::java::awt::geom::Area$Segment *);
+ virtual ::java::awt::geom::Point2D * evaluatePoint(jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds();
+ virtual ::java::awt::geom::CubicCurve2D * getCubicCurve2D();
+ virtual JArray< jdouble > * getLoop();
+ virtual ::java::awt::geom::Point2D * getMidPoint();
+ virtual jint getType();
+ virtual jint pathIteratorFormat(JArray< jdouble > *);
+ virtual jint rayCrossing(jdouble, jdouble);
+ virtual void reverseCoords();
+ virtual jint splitIntersections(::java::awt::geom::Area$Segment *);
+ virtual void subdivideInsert(jdouble);
+ virtual void transform(::java::awt::geom::AffineTransform *);
+ ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::awt::geom::Area$Segment)))) cp1;
+ ::java::awt::geom::Point2D * cp2;
+ ::java::awt::geom::Area * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$CubicSegment__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$Intersection.h b/gcc-4.8/libjava/java/awt/geom/Area$Intersection.h
new file mode 100644
index 000000000..c4c716286
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$Intersection.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$Intersection__
+#define __java_awt_geom_Area$Intersection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Area;
+ class Area$Intersection;
+ class Area$Segment;
+ class Point2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$Intersection : public ::java::lang::Object
+{
+
+public:
+ Area$Intersection(::java::awt::geom::Area *, ::java::awt::geom::Point2D *, jdouble, jdouble);
+public: // actually package-private
+ ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p;
+ jdouble ta;
+ jdouble tb;
+ ::java::awt::geom::Area$Segment * seg;
+ ::java::awt::geom::Area * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$Intersection__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$LineSegment.h b/gcc-4.8/libjava/java/awt/geom/Area$LineSegment.h
new file mode 100644
index 000000000..2eb0692a8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$LineSegment.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$LineSegment__
+#define __java_awt_geom_Area$LineSegment__
+
+#pragma interface
+
+#include <java/awt/geom/Area$Segment.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Area;
+ class Area$LineSegment;
+ class Area$Segment;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$LineSegment : public ::java::awt::geom::Area$Segment
+{
+
+public:
+ Area$LineSegment(::java::awt::geom::Area *, jdouble, jdouble, jdouble, jdouble);
+ Area$LineSegment(::java::awt::geom::Area *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual ::java::lang::Object * clone();
+public: // actually package-private
+ virtual void transform(::java::awt::geom::AffineTransform *);
+ virtual void reverseCoords();
+ virtual ::java::awt::geom::Point2D * getMidPoint();
+ virtual jdouble curveArea();
+ virtual jint getType();
+ virtual void subdivideInsert(jdouble);
+ virtual jboolean isCoLinear(::java::awt::geom::Area$LineSegment *);
+ virtual ::java::awt::geom::Area$Segment * lastCoLinear();
+ virtual jboolean equals(::java::awt::geom::Area$Segment *);
+ virtual jint pathIteratorFormat(JArray< jdouble > *);
+ virtual jboolean hasIntersections(::java::awt::geom::Area$Segment *);
+ virtual jint splitIntersections(::java::awt::geom::Area$Segment *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds();
+ virtual jint rayCrossing(jdouble, jdouble);
+ ::java::awt::geom::Area * __attribute__((aligned(__alignof__( ::java::awt::geom::Area$Segment)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$LineSegment__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$QuadSegment.h b/gcc-4.8/libjava/java/awt/geom/Area$QuadSegment.h
new file mode 100644
index 000000000..ca6dc99c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$QuadSegment.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$QuadSegment__
+#define __java_awt_geom_Area$QuadSegment__
+
+#pragma interface
+
+#include <java/awt/geom/Area$Segment.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Area;
+ class Area$CubicSegment;
+ class Area$QuadSegment;
+ class Area$Segment;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$QuadSegment : public ::java::awt::geom::Area$Segment
+{
+
+public: // actually package-private
+ Area$QuadSegment(::java::awt::geom::Area *, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+public:
+ virtual ::java::lang::Object * clone();
+public: // actually package-private
+ virtual jdouble curveArea();
+ virtual jboolean equals(::java::awt::geom::Area$Segment *);
+ virtual ::java::awt::geom::Point2D * evaluatePoint(jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds();
+ virtual ::java::awt::geom::Area$CubicSegment * getCubicSegment();
+ virtual ::java::awt::geom::Point2D * getMidPoint();
+ virtual jint getType();
+ virtual jint pathIteratorFormat(JArray< jdouble > *);
+ virtual jint rayCrossing(jdouble, jdouble);
+ virtual void reverseCoords();
+ virtual jint splitIntersections(::java::awt::geom::Area$Segment *);
+ virtual void subdivideInsert(jdouble);
+ virtual void transform(::java::awt::geom::AffineTransform *);
+ ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::awt::geom::Area$Segment)))) cp;
+ ::java::awt::geom::Area * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$QuadSegment__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area$Segment.h b/gcc-4.8/libjava/java/awt/geom/Area$Segment.h
new file mode 100644
index 000000000..866ecefdd
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area$Segment.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area$Segment__
+#define __java_awt_geom_Area$Segment__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Shape;
+ namespace geom
+ {
+ class AffineTransform;
+ class Area;
+ class Area$Intersection;
+ class Area$Segment;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area$Segment : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Area$Segment(::java::awt::geom::Area *);
+ virtual void reverseCoords() = 0;
+ virtual ::java::awt::geom::Point2D * getMidPoint() = 0;
+ virtual ::java::awt::geom::Rectangle2D * getBounds() = 0;
+ virtual void transform(::java::awt::geom::AffineTransform *) = 0;
+ virtual jint getType() = 0;
+ virtual jint splitIntersections(::java::awt::geom::Area$Segment *) = 0;
+ virtual jint pathIteratorFormat(JArray< jdouble > *) = 0;
+ virtual jint rayCrossing(jdouble, jdouble) = 0;
+ virtual void subdivideInsert(jdouble) = 0;
+ virtual jdouble curveArea() = 0;
+ virtual jboolean equals(::java::awt::geom::Area$Segment *) = 0;
+ virtual jboolean contains(jdouble, jdouble);
+ virtual void nullNodes();
+ virtual void transformSegmentList(::java::awt::geom::AffineTransform *);
+ virtual jboolean hasClockwiseOrientation();
+public:
+ virtual ::java::awt::geom::Rectangle2D * getPathBounds();
+public: // actually package-private
+ virtual jdouble getSignedArea();
+ virtual void reverseAll();
+ virtual void insert(::java::awt::geom::Area$Segment *);
+ virtual jboolean isPolygonal();
+ virtual ::java::awt::geom::Area$Segment * cloneSegmentList();
+ virtual jint createNode(::java::awt::geom::Area$Segment *, ::java::awt::geom::Area$Intersection *);
+public: // actually protected
+ virtual jint createNodes(::java::awt::geom::Area$Segment *, JArray< ::java::awt::geom::Area$Intersection * > *);
+public: // actually package-private
+ virtual jboolean pathEquals(::java::awt::geom::Area$Segment *);
+ virtual ::java::awt::geom::Area$Segment * getTopLeft();
+ virtual jboolean isSegmentOutside(::java::awt::Shape *);
+ ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::lang::Object)))) P1;
+ ::java::awt::geom::Point2D * P2;
+ ::java::awt::geom::Area$Segment * next;
+ ::java::awt::geom::Area$Segment * node;
+ ::java::awt::geom::Area * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area$Segment__
diff --git a/gcc-4.8/libjava/java/awt/geom/Area.h b/gcc-4.8/libjava/java/awt/geom/Area.h
new file mode 100644
index 000000000..6a127dced
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Area.h
@@ -0,0 +1,96 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Area__
+#define __java_awt_geom_Area__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ class Shape;
+ namespace geom
+ {
+ class AffineTransform;
+ class Area;
+ class Area$CubicSegment;
+ class Area$Intersection;
+ class Area$LineSegment;
+ class Area$QuadSegment;
+ class Area$Segment;
+ class CubicCurve2D;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Area : public ::java::lang::Object
+{
+
+public:
+ Area();
+ Area(::java::awt::Shape *);
+ virtual void add(::java::awt::geom::Area *);
+ virtual void subtract(::java::awt::geom::Area *);
+ virtual void intersect(::java::awt::geom::Area *);
+ virtual void exclusiveOr(::java::awt::geom::Area *);
+ virtual void reset();
+ virtual jboolean isEmpty();
+ virtual jboolean isPolygonal();
+ virtual jboolean isRectangular();
+ virtual jboolean isSingular();
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::lang::Object * clone();
+ virtual jboolean equals(::java::awt::geom::Area *);
+ virtual void transform(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::Area * createTransformedArea(::java::awt::geom::AffineTransform *);
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Point2D *);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+private:
+ ::java::util::Vector * weilerAtherton(::java::util::Vector *);
+ jint getRecursionDepth(::java::awt::geom::Area$CubicSegment *);
+ void recursiveSubdivide(::java::awt::geom::CubicCurve2D *, ::java::awt::geom::CubicCurve2D *, jint, jint, jdouble, jdouble, jdouble, jdouble);
+public: // actually package-private
+ virtual JArray< ::java::awt::geom::Area$Intersection * > * cubicCubicIntersect(::java::awt::geom::Area$CubicSegment *, ::java::awt::geom::Area$CubicSegment *);
+ virtual JArray< ::java::awt::geom::Area$Intersection * > * lineQuadIntersect(::java::awt::geom::Area$LineSegment *, ::java::awt::geom::Area$QuadSegment *);
+ virtual JArray< ::java::awt::geom::Area$Intersection * > * lineCubicIntersect(::java::awt::geom::Area$LineSegment *, ::java::awt::geom::Area$CubicSegment *);
+ virtual ::java::awt::geom::Area$Intersection * linesIntersect(::java::awt::geom::Area$LineSegment *, ::java::awt::geom::Area$LineSegment *);
+ virtual jboolean pointEquals(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+private:
+ ::java::util::Vector * makeSegment(::java::awt::Shape *);
+ jint createNodes(::java::awt::geom::Area$Segment *, ::java::awt::geom::Area$Segment *);
+ jint createNodesSelf(::java::awt::geom::Area$Segment *);
+ void deleteRedundantPaths(::java::util::Vector *);
+ void setDirection(::java::util::Vector *, jboolean);
+ static jdouble EPSILON;
+ static jdouble RS_EPSILON;
+ static jdouble PE_EPSILON;
+public: // actually package-private
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) solids;
+ ::java::util::Vector * holes;
+private:
+ ::java::util::Vector * ccIntersections;
+ jint windingRule;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Area__
diff --git a/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$1.h b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$1.h
new file mode 100644
index 000000000..960807e7d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$1.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_CubicCurve2D$1__
+#define __java_awt_geom_CubicCurve2D$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class CubicCurve2D;
+ class CubicCurve2D$1;
+ }
+ }
+ }
+}
+
+class java::awt::geom::CubicCurve2D$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CubicCurve2D$1(::java::awt::geom::CubicCurve2D *, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint currentSegment(JArray< jdouble > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+public: // actually package-private
+ ::java::awt::geom::CubicCurve2D * this$0;
+private:
+ ::java::awt::geom::AffineTransform * val$at;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_CubicCurve2D$1__
diff --git a/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Double.h b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Double.h
new file mode 100644
index 000000000..d3d47429c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Double.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_CubicCurve2D$Double__
+#define __java_awt_geom_CubicCurve2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/CubicCurve2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class CubicCurve2D$Double;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::CubicCurve2D$Double : public ::java::awt::geom::CubicCurve2D
+{
+
+public:
+ CubicCurve2D$Double();
+ CubicCurve2D$Double(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble getX1();
+ virtual jdouble getY1();
+ virtual ::java::awt::geom::Point2D * getP1();
+ virtual jdouble getCtrlX1();
+ virtual jdouble getCtrlY1();
+ virtual ::java::awt::geom::Point2D * getCtrlP1();
+ virtual jdouble getCtrlX2();
+ virtual jdouble getCtrlY2();
+ virtual ::java::awt::geom::Point2D * getCtrlP2();
+ virtual jdouble getX2();
+ virtual jdouble getY2();
+ virtual ::java::awt::geom::Point2D * getP2();
+ virtual void setCurve(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::CubicCurve2D)))) x1;
+ jdouble y1;
+ jdouble ctrlx1;
+ jdouble ctrly1;
+ jdouble ctrlx2;
+ jdouble ctrly2;
+ jdouble x2;
+ jdouble y2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_CubicCurve2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Float.h b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Float.h
new file mode 100644
index 000000000..6e6cd4d2c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D$Float.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_CubicCurve2D$Float__
+#define __java_awt_geom_CubicCurve2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/CubicCurve2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class CubicCurve2D$Float;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::CubicCurve2D$Float : public ::java::awt::geom::CubicCurve2D
+{
+
+public:
+ CubicCurve2D$Float();
+ CubicCurve2D$Float(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ virtual jdouble getX1();
+ virtual jdouble getY1();
+ virtual ::java::awt::geom::Point2D * getP1();
+ virtual jdouble getCtrlX1();
+ virtual jdouble getCtrlY1();
+ virtual ::java::awt::geom::Point2D * getCtrlP1();
+ virtual jdouble getCtrlX2();
+ virtual jdouble getCtrlY2();
+ virtual ::java::awt::geom::Point2D * getCtrlP2();
+ virtual jdouble getX2();
+ virtual jdouble getY2();
+ virtual ::java::awt::geom::Point2D * getP2();
+ virtual void setCurve(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual void setCurve(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::CubicCurve2D)))) x1;
+ jfloat y1;
+ jfloat ctrlx1;
+ jfloat ctrly1;
+ jfloat ctrlx2;
+ jfloat ctrly2;
+ jfloat x2;
+ jfloat y2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_CubicCurve2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/CubicCurve2D.h b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D.h
new file mode 100644
index 000000000..f9f82b894
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/CubicCurve2D.h
@@ -0,0 +1,86 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_CubicCurve2D__
+#define __java_awt_geom_CubicCurve2D__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace geom
+ {
+ class AffineTransform;
+ class CubicCurve2D;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::CubicCurve2D : public ::java::lang::Object
+{
+
+public: // actually protected
+ CubicCurve2D();
+public:
+ virtual jdouble getX1() = 0;
+ virtual jdouble getY1() = 0;
+ virtual ::java::awt::geom::Point2D * getP1() = 0;
+ virtual jdouble getCtrlX1() = 0;
+ virtual jdouble getCtrlY1() = 0;
+ virtual ::java::awt::geom::Point2D * getCtrlP1() = 0;
+ virtual jdouble getCtrlX2() = 0;
+ virtual jdouble getCtrlY2() = 0;
+ virtual ::java::awt::geom::Point2D * getCtrlP2() = 0;
+ virtual jdouble getX2() = 0;
+ virtual jdouble getY2() = 0;
+ virtual ::java::awt::geom::Point2D * getP2() = 0;
+ virtual void setCurve(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual void setCurve(JArray< jdouble > *, jint);
+ virtual void setCurve(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void setCurve(JArray< ::java::awt::geom::Point2D * > *, jint);
+ virtual void setCurve(::java::awt::geom::CubicCurve2D *);
+ static jdouble getFlatnessSq(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jdouble getFlatness(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jdouble getFlatnessSq(JArray< jdouble > *, jint);
+ static jdouble getFlatness(JArray< jdouble > *, jint);
+ virtual jdouble getFlatnessSq();
+ virtual jdouble getFlatness();
+ virtual void subdivide(::java::awt::geom::CubicCurve2D *, ::java::awt::geom::CubicCurve2D *);
+ static void subdivide(::java::awt::geom::CubicCurve2D *, ::java::awt::geom::CubicCurve2D *, ::java::awt::geom::CubicCurve2D *);
+ static void subdivide(JArray< jdouble > *, jint, JArray< jdouble > *, jint, JArray< jdouble > *, jint);
+ static jint solveCubic(JArray< jdouble > *);
+ static jint solveCubic(JArray< jdouble > *, JArray< jdouble > *);
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Point2D *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+ virtual ::java::lang::Object * clone();
+private:
+ jint getAxisIntersections(jdouble, jdouble, jboolean, jdouble);
+public:
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D() = 0;
+private:
+ static jdouble BIG_VALUE;
+ static jdouble EPSILON;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_CubicCurve2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/Dimension2D.h b/gcc-4.8/libjava/java/awt/geom/Dimension2D.h
new file mode 100644
index 000000000..d201d7a5f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Dimension2D.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Dimension2D__
+#define __java_awt_geom_Dimension2D__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Dimension2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Dimension2D : public ::java::lang::Object
+{
+
+public: // actually protected
+ Dimension2D();
+public:
+ virtual jdouble getWidth() = 0;
+ virtual jdouble getHeight() = 0;
+ virtual void setSize(jdouble, jdouble) = 0;
+ virtual void setSize(::java::awt::geom::Dimension2D *);
+ virtual ::java::lang::Object * clone();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Dimension2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/Ellipse2D$Double.h b/gcc-4.8/libjava/java/awt/geom/Ellipse2D$Double.h
new file mode 100644
index 000000000..06b28e6f3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Ellipse2D$Double.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Ellipse2D$Double__
+#define __java_awt_geom_Ellipse2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/Ellipse2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Ellipse2D$Double;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Ellipse2D$Double : public ::java::awt::geom::Ellipse2D
+{
+
+public:
+ Ellipse2D$Double();
+ Ellipse2D$Double(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual jdouble getHeight();
+ virtual jdouble getWidth();
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jboolean isEmpty();
+ virtual void setFrame(jdouble, jdouble, jdouble, jdouble);
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::Ellipse2D)))) height;
+ jdouble width;
+ jdouble x;
+ jdouble y;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Ellipse2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/Ellipse2D$Float.h b/gcc-4.8/libjava/java/awt/geom/Ellipse2D$Float.h
new file mode 100644
index 000000000..52177dc02
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Ellipse2D$Float.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Ellipse2D$Float__
+#define __java_awt_geom_Ellipse2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/Ellipse2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Ellipse2D$Float;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Ellipse2D$Float : public ::java::awt::geom::Ellipse2D
+{
+
+public:
+ Ellipse2D$Float();
+ Ellipse2D$Float(jfloat, jfloat, jfloat, jfloat);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual jdouble getHeight();
+ virtual jdouble getWidth();
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jboolean isEmpty();
+ virtual void setFrame(jfloat, jfloat, jfloat, jfloat);
+ virtual void setFrame(jdouble, jdouble, jdouble, jdouble);
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::Ellipse2D)))) height;
+ jfloat width;
+ jfloat x;
+ jfloat y;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Ellipse2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/Ellipse2D.h b/gcc-4.8/libjava/java/awt/geom/Ellipse2D.h
new file mode 100644
index 000000000..a78c318d8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Ellipse2D.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Ellipse2D__
+#define __java_awt_geom_Ellipse2D__
+
+#pragma interface
+
+#include <java/awt/geom/RectangularShape.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Ellipse2D;
+ class PathIterator;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Ellipse2D : public ::java::awt::geom::RectangularShape
+{
+
+public: // actually protected
+ Ellipse2D();
+public:
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Ellipse2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/FlatteningPathIterator.h b/gcc-4.8/libjava/java/awt/geom/FlatteningPathIterator.h
new file mode 100644
index 000000000..7936286da
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/FlatteningPathIterator.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_FlatteningPathIterator__
+#define __java_awt_geom_FlatteningPathIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class FlatteningPathIterator;
+ class PathIterator;
+ }
+ }
+ }
+}
+
+class java::awt::geom::FlatteningPathIterator : public ::java::lang::Object
+{
+
+public:
+ FlatteningPathIterator(::java::awt::geom::PathIterator *, jdouble);
+ FlatteningPathIterator(::java::awt::geom::PathIterator *, jdouble, jint);
+ virtual jdouble getFlatness();
+ virtual jint getRecursionLimit();
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jdouble > *);
+ virtual jint currentSegment(JArray< jfloat > *);
+private:
+ void fetchSegment();
+ void subdivideQuadratic();
+ void subdivideCubic();
+ ::java::awt::geom::PathIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) srcIter;
+ jdouble flatnessSq;
+ jint recursionLimit;
+ JArray< jdouble > * stack;
+ jint stackSize;
+ JArray< jint > * recLevel;
+ JArray< jdouble > * scratch;
+ jint srcSegType;
+ jdouble srcPosX;
+ jdouble srcPosY;
+ jboolean done;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_FlatteningPathIterator__
diff --git a/gcc-4.8/libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h b/gcc-4.8/libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h
new file mode 100644
index 000000000..9bf63bd5f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_GeneralPath$GeneralPathIterator__
+#define __java_awt_geom_GeneralPath$GeneralPathIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class GeneralPath;
+ class GeneralPath$GeneralPathIterator;
+ }
+ }
+ }
+}
+
+class java::awt::geom::GeneralPath$GeneralPathIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ GeneralPath$GeneralPathIterator(::java::awt::geom::GeneralPath *, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint currentSegment(JArray< jdouble > *);
+private:
+ static JArray< jint > * NUM_COORDS;
+public: // actually package-private
+ ::java::awt::geom::GeneralPath * __attribute__((aligned(__alignof__( ::java::lang::Object)))) path;
+private:
+ ::java::awt::geom::AffineTransform * transform;
+ jint pos;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_GeneralPath$GeneralPathIterator__
diff --git a/gcc-4.8/libjava/java/awt/geom/GeneralPath.h b/gcc-4.8/libjava/java/awt/geom/GeneralPath.h
new file mode 100644
index 000000000..a2d37c73f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/GeneralPath.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_GeneralPath__
+#define __java_awt_geom_GeneralPath__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ class Shape;
+ namespace geom
+ {
+ class AffineTransform;
+ class GeneralPath;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::GeneralPath : public ::java::lang::Object
+{
+
+public:
+ GeneralPath();
+ GeneralPath(jint);
+ GeneralPath(jint, jint);
+ GeneralPath(::java::awt::Shape *);
+ void moveTo(jfloat, jfloat);
+ void lineTo(jfloat, jfloat);
+ void quadTo(jfloat, jfloat, jfloat, jfloat);
+ void curveTo(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ void closePath();
+ void append(::java::awt::Shape *, jboolean);
+ void append(::java::awt::geom::PathIterator *, jboolean);
+ jint getWindingRule();
+ void setWindingRule(jint);
+ ::java::awt::geom::Point2D * getCurrentPoint();
+ void reset();
+ void transform(::java::awt::geom::AffineTransform *);
+ ::java::awt::Shape * createTransformedShape(::java::awt::geom::AffineTransform *);
+ ::java::awt::Rectangle * getBounds();
+ ::java::awt::geom::Rectangle2D * getBounds2D();
+ jboolean contains(jdouble, jdouble);
+ jboolean contains(::java::awt::geom::Point2D *);
+ jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ jboolean contains(::java::awt::geom::Rectangle2D *);
+ jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ jboolean intersects(::java::awt::geom::Rectangle2D *);
+ ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+ ::java::lang::Object * clone();
+private:
+ void ensureSize(jint);
+ jint getAxisIntersections(jdouble, jdouble, jboolean, jdouble);
+ jint getWindingNumber(jdouble, jdouble);
+ jint evaluateCrossings(jdouble, jdouble, jboolean, jboolean, jdouble);
+public:
+ static const jint WIND_EVEN_ODD = 0;
+ static const jint WIND_NON_ZERO = 1;
+private:
+ static const jint INIT_SIZE = 10;
+ static jdouble BIG_VALUE;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) rule;
+ JArray< jbyte > * types;
+ JArray< jfloat > * xpoints;
+ JArray< jfloat > * ypoints;
+private:
+ jint subpath;
+public: // actually package-private
+ jint index;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_GeneralPath__
diff --git a/gcc-4.8/libjava/java/awt/geom/IllegalPathStateException.h b/gcc-4.8/libjava/java/awt/geom/IllegalPathStateException.h
new file mode 100644
index 000000000..4147334fd
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/IllegalPathStateException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_IllegalPathStateException__
+#define __java_awt_geom_IllegalPathStateException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class IllegalPathStateException;
+ }
+ }
+ }
+}
+
+class java::awt::geom::IllegalPathStateException : public ::java::lang::RuntimeException
+{
+
+public:
+ IllegalPathStateException();
+ IllegalPathStateException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -5158084205220481094LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_IllegalPathStateException__
diff --git a/gcc-4.8/libjava/java/awt/geom/Line2D$1.h b/gcc-4.8/libjava/java/awt/geom/Line2D$1.h
new file mode 100644
index 000000000..236ed0c96
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Line2D$1.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Line2D$1__
+#define __java_awt_geom_Line2D$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Line2D;
+ class Line2D$1;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Line2D$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Line2D$1(::java::awt::geom::Line2D *, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint currentSegment(JArray< jdouble > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+public: // actually package-private
+ ::java::awt::geom::Line2D * this$0;
+private:
+ ::java::awt::geom::AffineTransform * val$at;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Line2D$1__
diff --git a/gcc-4.8/libjava/java/awt/geom/Line2D$Double.h b/gcc-4.8/libjava/java/awt/geom/Line2D$Double.h
new file mode 100644
index 000000000..a9915b73d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Line2D$Double.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Line2D$Double__
+#define __java_awt_geom_Line2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/Line2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Line2D$Double;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Line2D$Double : public ::java::awt::geom::Line2D
+{
+
+public:
+ Line2D$Double();
+ Line2D$Double(jdouble, jdouble, jdouble, jdouble);
+ Line2D$Double(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual jdouble getX1();
+ virtual jdouble getY1();
+ virtual ::java::awt::geom::Point2D * getP1();
+ virtual jdouble getX2();
+ virtual jdouble getY2();
+ virtual ::java::awt::geom::Point2D * getP2();
+ virtual void setLine(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::Line2D)))) x1;
+ jdouble y1;
+ jdouble x2;
+ jdouble y2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Line2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/Line2D$Float.h b/gcc-4.8/libjava/java/awt/geom/Line2D$Float.h
new file mode 100644
index 000000000..1a829e2c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Line2D$Float.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Line2D$Float__
+#define __java_awt_geom_Line2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/Line2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Line2D$Float;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Line2D$Float : public ::java::awt::geom::Line2D
+{
+
+public:
+ Line2D$Float();
+ Line2D$Float(jfloat, jfloat, jfloat, jfloat);
+ Line2D$Float(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual jdouble getX1();
+ virtual jdouble getY1();
+ virtual ::java::awt::geom::Point2D * getP1();
+ virtual jdouble getX2();
+ virtual jdouble getY2();
+ virtual ::java::awt::geom::Point2D * getP2();
+ virtual void setLine(jdouble, jdouble, jdouble, jdouble);
+ virtual void setLine(jfloat, jfloat, jfloat, jfloat);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::Line2D)))) x1;
+ jfloat y1;
+ jfloat x2;
+ jfloat y2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Line2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/Line2D.h b/gcc-4.8/libjava/java/awt/geom/Line2D.h
new file mode 100644
index 000000000..5310eadc7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Line2D.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Line2D__
+#define __java_awt_geom_Line2D__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace geom
+ {
+ class AffineTransform;
+ class Line2D;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Line2D : public ::java::lang::Object
+{
+
+public: // actually protected
+ Line2D();
+public:
+ virtual jdouble getX1() = 0;
+ virtual jdouble getY1() = 0;
+ virtual ::java::awt::geom::Point2D * getP1() = 0;
+ virtual jdouble getX2() = 0;
+ virtual jdouble getY2() = 0;
+ virtual ::java::awt::geom::Point2D * getP2() = 0;
+ virtual void setLine(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual void setLine(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void setLine(::java::awt::geom::Line2D *);
+ static jint relativeCCW(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jint relativeCCW(jdouble, jdouble);
+ virtual jint relativeCCW(::java::awt::geom::Point2D *);
+private:
+ static jdouble area2(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jboolean between(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+public:
+ static jboolean linesIntersect(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersectsLine(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersectsLine(::java::awt::geom::Line2D *);
+ static jdouble ptSegDistSq(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jdouble ptSegDist(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble ptSegDistSq(jdouble, jdouble);
+ virtual jdouble ptSegDistSq(::java::awt::geom::Point2D *);
+ virtual jdouble ptSegDist(jdouble, jdouble);
+ virtual jdouble ptSegDist(::java::awt::geom::Point2D *);
+ static jdouble ptLineDistSq(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jdouble ptLineDist(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble ptLineDistSq(jdouble, jdouble);
+ virtual jdouble ptLineDistSq(::java::awt::geom::Point2D *);
+ virtual jdouble ptLineDist(jdouble, jdouble);
+ virtual jdouble ptLineDist(::java::awt::geom::Point2D *);
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Point2D *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Line2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/NoninvertibleTransformException.h b/gcc-4.8/libjava/java/awt/geom/NoninvertibleTransformException.h
new file mode 100644
index 000000000..1e7b71249
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/NoninvertibleTransformException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_NoninvertibleTransformException__
+#define __java_awt_geom_NoninvertibleTransformException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class NoninvertibleTransformException;
+ }
+ }
+ }
+}
+
+class java::awt::geom::NoninvertibleTransformException : public ::java::lang::Exception
+{
+
+public:
+ NoninvertibleTransformException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 6137225240503990466LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_NoninvertibleTransformException__
diff --git a/gcc-4.8/libjava/java/awt/geom/PathIterator.h b/gcc-4.8/libjava/java/awt/geom/PathIterator.h
new file mode 100644
index 000000000..a201f5604
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/PathIterator.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_PathIterator__
+#define __java_awt_geom_PathIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class PathIterator;
+ }
+ }
+ }
+}
+
+class java::awt::geom::PathIterator : public ::java::lang::Object
+{
+
+public:
+ virtual jint getWindingRule() = 0;
+ virtual jboolean isDone() = 0;
+ virtual void next() = 0;
+ virtual jint currentSegment(JArray< jfloat > *) = 0;
+ virtual jint currentSegment(JArray< jdouble > *) = 0;
+ static const jint WIND_EVEN_ODD = 0;
+ static const jint WIND_NON_ZERO = 1;
+ static const jint SEG_MOVETO = 0;
+ static const jint SEG_LINETO = 1;
+ static const jint SEG_QUADTO = 2;
+ static const jint SEG_CUBICTO = 3;
+ static const jint SEG_CLOSE = 4;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_geom_PathIterator__
diff --git a/gcc-4.8/libjava/java/awt/geom/Point2D$Double.h b/gcc-4.8/libjava/java/awt/geom/Point2D$Double.h
new file mode 100644
index 000000000..b03db3fa7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Point2D$Double.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Point2D$Double__
+#define __java_awt_geom_Point2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/Point2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Point2D$Double;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Point2D$Double : public ::java::awt::geom::Point2D
+{
+
+public:
+ Point2D$Double();
+ Point2D$Double(jdouble, jdouble);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual void setLocation(jdouble, jdouble);
+ virtual ::java::lang::String * toString();
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::Point2D)))) x;
+ jdouble y;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Point2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/Point2D$Float.h b/gcc-4.8/libjava/java/awt/geom/Point2D$Float.h
new file mode 100644
index 000000000..f9da3d1be
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Point2D$Float.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Point2D$Float__
+#define __java_awt_geom_Point2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/Point2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Point2D$Float;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Point2D$Float : public ::java::awt::geom::Point2D
+{
+
+public:
+ Point2D$Float();
+ Point2D$Float(jfloat, jfloat);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual void setLocation(jdouble, jdouble);
+ virtual void setLocation(jfloat, jfloat);
+ virtual ::java::lang::String * toString();
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::Point2D)))) x;
+ jfloat y;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Point2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/Point2D.h b/gcc-4.8/libjava/java/awt/geom/Point2D.h
new file mode 100644
index 000000000..bddd3ab87
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Point2D.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Point2D__
+#define __java_awt_geom_Point2D__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Point2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Point2D : public ::java::lang::Object
+{
+
+public: // actually protected
+ Point2D();
+public:
+ virtual jdouble getX() = 0;
+ virtual jdouble getY() = 0;
+ virtual void setLocation(jdouble, jdouble) = 0;
+ virtual void setLocation(::java::awt::geom::Point2D *);
+ static jdouble distanceSq(jdouble, jdouble, jdouble, jdouble);
+ static jdouble distance(jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble distanceSq(jdouble, jdouble);
+ virtual jdouble distanceSq(::java::awt::geom::Point2D *);
+ virtual jdouble distance(jdouble, jdouble);
+ virtual jdouble distance(::java::awt::geom::Point2D *);
+ virtual ::java::lang::Object * clone();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Point2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$1.h b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$1.h
new file mode 100644
index 000000000..e653cc388
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$1.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_QuadCurve2D$1__
+#define __java_awt_geom_QuadCurve2D$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class QuadCurve2D;
+ class QuadCurve2D$1;
+ }
+ }
+ }
+}
+
+class java::awt::geom::QuadCurve2D$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ QuadCurve2D$1(::java::awt::geom::QuadCurve2D *, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint currentSegment(JArray< jdouble > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+public: // actually package-private
+ ::java::awt::geom::QuadCurve2D * this$0;
+private:
+ ::java::awt::geom::AffineTransform * val$at;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_QuadCurve2D$1__
diff --git a/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Double.h b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Double.h
new file mode 100644
index 000000000..91a524b0d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Double.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_QuadCurve2D$Double__
+#define __java_awt_geom_QuadCurve2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/QuadCurve2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Point2D;
+ class QuadCurve2D$Double;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::QuadCurve2D$Double : public ::java::awt::geom::QuadCurve2D
+{
+
+public:
+ QuadCurve2D$Double();
+ QuadCurve2D$Double(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble getX1();
+ virtual jdouble getY1();
+ virtual ::java::awt::geom::Point2D * getP1();
+ virtual jdouble getCtrlX();
+ virtual jdouble getCtrlY();
+ virtual ::java::awt::geom::Point2D * getCtrlPt();
+ virtual jdouble getX2();
+ virtual jdouble getY2();
+ virtual ::java::awt::geom::Point2D * getP2();
+ virtual void setCurve(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::QuadCurve2D)))) x1;
+ jdouble y1;
+ jdouble ctrlx;
+ jdouble ctrly;
+ jdouble x2;
+ jdouble y2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_QuadCurve2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Float.h b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Float.h
new file mode 100644
index 000000000..b2f36d624
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D$Float.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_QuadCurve2D$Float__
+#define __java_awt_geom_QuadCurve2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/QuadCurve2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Point2D;
+ class QuadCurve2D$Float;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::QuadCurve2D$Float : public ::java::awt::geom::QuadCurve2D
+{
+
+public:
+ QuadCurve2D$Float();
+ QuadCurve2D$Float(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ virtual jdouble getX1();
+ virtual jdouble getY1();
+ virtual ::java::awt::geom::Point2D * getP1();
+ virtual jdouble getCtrlX();
+ virtual jdouble getCtrlY();
+ virtual ::java::awt::geom::Point2D * getCtrlPt();
+ virtual jdouble getX2();
+ virtual jdouble getY2();
+ virtual ::java::awt::geom::Point2D * getP2();
+ virtual void setCurve(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual void setCurve(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::QuadCurve2D)))) x1;
+ jfloat y1;
+ jfloat ctrlx;
+ jfloat ctrly;
+ jfloat x2;
+ jfloat y2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_QuadCurve2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/QuadCurve2D.h b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D.h
new file mode 100644
index 000000000..f9adea41b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/QuadCurve2D.h
@@ -0,0 +1,83 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_QuadCurve2D__
+#define __java_awt_geom_QuadCurve2D__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace geom
+ {
+ class AffineTransform;
+ class PathIterator;
+ class Point2D;
+ class QuadCurve2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::QuadCurve2D : public ::java::lang::Object
+{
+
+public: // actually protected
+ QuadCurve2D();
+public:
+ virtual jdouble getX1() = 0;
+ virtual jdouble getY1() = 0;
+ virtual ::java::awt::geom::Point2D * getP1() = 0;
+ virtual jdouble getCtrlX() = 0;
+ virtual jdouble getCtrlY() = 0;
+ virtual ::java::awt::geom::Point2D * getCtrlPt() = 0;
+ virtual jdouble getX2() = 0;
+ virtual jdouble getY2() = 0;
+ virtual ::java::awt::geom::Point2D * getP2() = 0;
+ virtual void setCurve(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual void setCurve(JArray< jdouble > *, jint);
+ virtual void setCurve(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void setCurve(JArray< ::java::awt::geom::Point2D * > *, jint);
+ virtual void setCurve(::java::awt::geom::QuadCurve2D *);
+ static jdouble getFlatnessSq(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jdouble getFlatness(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ static jdouble getFlatnessSq(JArray< jdouble > *, jint);
+ static jdouble getFlatness(JArray< jdouble > *, jint);
+ virtual jdouble getFlatnessSq();
+ virtual jdouble getFlatness();
+ virtual void subdivide(::java::awt::geom::QuadCurve2D *, ::java::awt::geom::QuadCurve2D *);
+ static void subdivide(::java::awt::geom::QuadCurve2D *, ::java::awt::geom::QuadCurve2D *, ::java::awt::geom::QuadCurve2D *);
+ static void subdivide(JArray< jdouble > *, jint, JArray< jdouble > *, jint, JArray< jdouble > *, jint);
+ static jint solveQuadratic(JArray< jdouble > *);
+ static jint solveQuadratic(JArray< jdouble > *, JArray< jdouble > *);
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Point2D *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+ virtual ::java::lang::Object * clone();
+private:
+ jint getAxisIntersections(jdouble, jdouble, jboolean, jdouble);
+public:
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D() = 0;
+private:
+ static jdouble BIG_VALUE;
+ static jdouble EPSILON;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_QuadCurve2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/Rectangle2D$1.h b/gcc-4.8/libjava/java/awt/geom/Rectangle2D$1.h
new file mode 100644
index 000000000..d1b99d210
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Rectangle2D$1.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Rectangle2D$1__
+#define __java_awt_geom_Rectangle2D$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Rectangle2D;
+ class Rectangle2D$1;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Rectangle2D$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Rectangle2D$1(::java::awt::geom::Rectangle2D *, jdouble, jdouble, jdouble, jdouble, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint currentSegment(JArray< jdouble > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+public: // actually package-private
+ ::java::awt::geom::Rectangle2D * this$0;
+private:
+ jdouble val$maxx;
+ jdouble val$miny;
+ jdouble val$maxy;
+ jdouble val$minx;
+ ::java::awt::geom::AffineTransform * val$at;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Rectangle2D$1__
diff --git a/gcc-4.8/libjava/java/awt/geom/Rectangle2D$Double.h b/gcc-4.8/libjava/java/awt/geom/Rectangle2D$Double.h
new file mode 100644
index 000000000..20105f932
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Rectangle2D$Double.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Rectangle2D$Double__
+#define __java_awt_geom_Rectangle2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/Rectangle2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Rectangle2D;
+ class Rectangle2D$Double;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Rectangle2D$Double : public ::java::awt::geom::Rectangle2D
+{
+
+public:
+ Rectangle2D$Double();
+ Rectangle2D$Double(jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jboolean isEmpty();
+ virtual void setRect(jdouble, jdouble, jdouble, jdouble);
+ virtual void setRect(::java::awt::geom::Rectangle2D *);
+ virtual jint outcode(jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual ::java::awt::geom::Rectangle2D * createIntersection(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::Rectangle2D * createUnion(::java::awt::geom::Rectangle2D *);
+ virtual ::java::lang::String * toString();
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::Rectangle2D)))) x;
+ jdouble y;
+ jdouble width;
+ jdouble height;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Rectangle2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/Rectangle2D$Float.h b/gcc-4.8/libjava/java/awt/geom/Rectangle2D$Float.h
new file mode 100644
index 000000000..61dbf373c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Rectangle2D$Float.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Rectangle2D$Float__
+#define __java_awt_geom_Rectangle2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/Rectangle2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Rectangle2D;
+ class Rectangle2D$Float;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Rectangle2D$Float : public ::java::awt::geom::Rectangle2D
+{
+
+public:
+ Rectangle2D$Float();
+ Rectangle2D$Float(jfloat, jfloat, jfloat, jfloat);
+public: // actually package-private
+ Rectangle2D$Float(jdouble, jdouble, jdouble, jdouble);
+public:
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jboolean isEmpty();
+ virtual void setRect(jfloat, jfloat, jfloat, jfloat);
+ virtual void setRect(jdouble, jdouble, jdouble, jdouble);
+ virtual void setRect(::java::awt::geom::Rectangle2D *);
+ virtual jint outcode(jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual ::java::awt::geom::Rectangle2D * createIntersection(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::Rectangle2D * createUnion(::java::awt::geom::Rectangle2D *);
+ virtual ::java::lang::String * toString();
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::Rectangle2D)))) x;
+ jfloat y;
+ jfloat width;
+ jfloat height;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Rectangle2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/Rectangle2D.h b/gcc-4.8/libjava/java/awt/geom/Rectangle2D.h
new file mode 100644
index 000000000..e81e0a8e1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/Rectangle2D.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_Rectangle2D__
+#define __java_awt_geom_Rectangle2D__
+
+#pragma interface
+
+#include <java/awt/geom/RectangularShape.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Line2D;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::Rectangle2D : public ::java::awt::geom::RectangularShape
+{
+
+public: // actually protected
+ Rectangle2D();
+public:
+ virtual void setRect(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual void setRect(::java::awt::geom::Rectangle2D *);
+ virtual jboolean intersectsLine(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean intersectsLine(::java::awt::geom::Line2D *);
+ virtual jint outcode(jdouble, jdouble) = 0;
+ virtual jint outcode(::java::awt::geom::Point2D *);
+ virtual void setFrame(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::Rectangle2D * createIntersection(::java::awt::geom::Rectangle2D *) = 0;
+ static void intersect(::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::Rectangle2D * createUnion(::java::awt::geom::Rectangle2D *) = 0;
+ static void union$(::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *);
+ virtual void add(jdouble, jdouble);
+ virtual void add(::java::awt::geom::Point2D *);
+ virtual void add(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ static const jint OUT_LEFT = 1;
+ static const jint OUT_TOP = 2;
+ static const jint OUT_RIGHT = 4;
+ static const jint OUT_BOTTOM = 8;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_Rectangle2D__
diff --git a/gcc-4.8/libjava/java/awt/geom/RectangularShape.h b/gcc-4.8/libjava/java/awt/geom/RectangularShape.h
new file mode 100644
index 000000000..18e1360fa
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/RectangularShape.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_RectangularShape__
+#define __java_awt_geom_RectangularShape__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace geom
+ {
+ class AffineTransform;
+ class Dimension2D;
+ class PathIterator;
+ class Point2D;
+ class Rectangle2D;
+ class RectangularShape;
+ }
+ }
+ }
+}
+
+class java::awt::geom::RectangularShape : public ::java::lang::Object
+{
+
+public: // actually protected
+ RectangularShape();
+public:
+ virtual jdouble getX() = 0;
+ virtual jdouble getY() = 0;
+ virtual jdouble getWidth() = 0;
+ virtual jdouble getHeight() = 0;
+ virtual jdouble getMinX();
+ virtual jdouble getMinY();
+ virtual jdouble getMaxX();
+ virtual jdouble getMaxY();
+ virtual jdouble getCenterX();
+ virtual jdouble getCenterY();
+ virtual ::java::awt::geom::Rectangle2D * getFrame();
+ virtual jboolean isEmpty() = 0;
+ virtual void setFrame(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual void setFrame(::java::awt::geom::Point2D *, ::java::awt::geom::Dimension2D *);
+ virtual void setFrame(::java::awt::geom::Rectangle2D *);
+ virtual void setFrameFromDiagonal(jdouble, jdouble, jdouble, jdouble);
+ virtual void setFrameFromDiagonal(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual void setFrameFromCenter(jdouble, jdouble, jdouble, jdouble);
+ virtual void setFrameFromCenter(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual jboolean contains(::java::awt::geom::Point2D *);
+ virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+ virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D() = 0;
+ virtual jboolean contains(jdouble, jdouble) = 0;
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble) = 0;
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_RectangularShape__
diff --git a/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$1.h b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$1.h
new file mode 100644
index 000000000..76a82e871
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$1.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_RoundRectangle2D$1__
+#define __java_awt_geom_RoundRectangle2D$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class Arc2D$Double;
+ class PathIterator;
+ class RoundRectangle2D;
+ class RoundRectangle2D$1;
+ }
+ }
+ }
+}
+
+class java::awt::geom::RoundRectangle2D$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ RoundRectangle2D$1(::java::awt::geom::RoundRectangle2D *, ::java::awt::geom::AffineTransform *);
+public:
+ virtual jint currentSegment(JArray< jdouble > *);
+ virtual jint currentSegment(JArray< jfloat > *);
+ virtual jint getWindingRule();
+ virtual jboolean isDone();
+ virtual void next();
+public: // actually package-private
+ jdouble __attribute__((aligned(__alignof__( ::java::lang::Object)))) x;
+ jdouble y;
+ jdouble w;
+ jdouble h;
+ jdouble arcW;
+ jdouble arcH;
+ ::java::awt::geom::Arc2D$Double * arc;
+ ::java::awt::geom::PathIterator * corner;
+ jint step;
+ ::java::awt::geom::RoundRectangle2D * this$0;
+private:
+ ::java::awt::geom::AffineTransform * val$at;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_RoundRectangle2D$1__
diff --git a/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Double.h b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Double.h
new file mode 100644
index 000000000..08010fd41
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Double.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_RoundRectangle2D$Double__
+#define __java_awt_geom_RoundRectangle2D$Double__
+
+#pragma interface
+
+#include <java/awt/geom/RoundRectangle2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Rectangle2D;
+ class RoundRectangle2D$Double;
+ }
+ }
+ }
+}
+
+class java::awt::geom::RoundRectangle2D$Double : public ::java::awt::geom::RoundRectangle2D
+{
+
+public:
+ RoundRectangle2D$Double();
+ RoundRectangle2D$Double(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ virtual jdouble getArcHeight();
+ virtual jdouble getArcWidth();
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jboolean isEmpty();
+ virtual void setRoundRect(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::RoundRectangle2D)))) archeight;
+ jdouble arcwidth;
+ jdouble x;
+ jdouble y;
+ jdouble width;
+ jdouble height;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_RoundRectangle2D$Double__
diff --git a/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Float.h b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Float.h
new file mode 100644
index 000000000..184c5f4b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D$Float.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_RoundRectangle2D$Float__
+#define __java_awt_geom_RoundRectangle2D$Float__
+
+#pragma interface
+
+#include <java/awt/geom/RoundRectangle2D.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class Rectangle2D;
+ class RoundRectangle2D$Float;
+ }
+ }
+ }
+}
+
+class java::awt::geom::RoundRectangle2D$Float : public ::java::awt::geom::RoundRectangle2D
+{
+
+public:
+ RoundRectangle2D$Float();
+ RoundRectangle2D$Float(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ virtual jdouble getArcHeight();
+ virtual jdouble getArcWidth();
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+ virtual jdouble getX();
+ virtual jdouble getY();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jboolean isEmpty();
+ virtual void setRoundRect(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
+ virtual void setRoundRect(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
+ jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::RoundRectangle2D)))) archeight;
+ jfloat arcwidth;
+ jfloat x;
+ jfloat y;
+ jfloat width;
+ jfloat height;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_RoundRectangle2D$Float__
diff --git a/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D.h b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D.h
new file mode 100644
index 000000000..a9092ca5c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/geom/RoundRectangle2D.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_geom_RoundRectangle2D__
+#define __java_awt_geom_RoundRectangle2D__
+
+#pragma interface
+
+#include <java/awt/geom/RectangularShape.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace geom
+ {
+ class AffineTransform;
+ class PathIterator;
+ class RoundRectangle2D;
+ }
+ }
+ }
+}
+
+class java::awt::geom::RoundRectangle2D : public ::java::awt::geom::RectangularShape
+{
+
+public:
+ virtual jdouble getArcHeight() = 0;
+ virtual jdouble getArcWidth() = 0;
+ virtual void setRoundRect(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble) = 0;
+public: // actually protected
+ RoundRectangle2D();
+public:
+ virtual jboolean contains(jdouble, jdouble);
+ virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+ virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+ virtual void setFrame(jdouble, jdouble, jdouble, jdouble);
+ virtual void setRoundRect(::java::awt::geom::RoundRectangle2D *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_geom_RoundRectangle2D__
diff --git a/gcc-4.8/libjava/java/awt/im/InputContext.h b/gcc-4.8/libjava/java/awt/im/InputContext.h
new file mode 100644
index 000000000..59c02044a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/InputContext.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_InputContext__
+#define __java_awt_im_InputContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Component;
+ namespace im
+ {
+ class InputContext;
+ namespace spi
+ {
+ class InputMethod;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::im::InputContext : public ::java::lang::Object
+{
+
+public: // actually protected
+ InputContext();
+public:
+ static ::java::awt::im::InputContext * getInstance();
+ virtual jboolean selectInputMethod(::java::util::Locale *);
+ virtual ::java::util::Locale * getLocale();
+ virtual void setCharacterSubsets(JArray< ::java::lang::Character$Subset * > *);
+ virtual void setCompositionEnabled(jboolean);
+ virtual jboolean isCompositionEnabled();
+ virtual void reconvert();
+ virtual void dispatchEvent(::java::awt::AWTEvent *);
+ virtual void removeNotify(::java::awt::Component *);
+ virtual void endComposition();
+ virtual void dispose();
+ virtual ::java::lang::Object * getInputMethodControlObject();
+private:
+ static ::java::util::ArrayList * descriptors;
+ ::java::awt::im::spi::InputMethod * __attribute__((aligned(__alignof__( ::java::lang::Object)))) im;
+ ::java::util::HashMap * recent;
+ JArray< ::java::lang::Character$Subset * > * subsets;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_im_InputContext__
diff --git a/gcc-4.8/libjava/java/awt/im/InputMethodHighlight.h b/gcc-4.8/libjava/java/awt/im/InputMethodHighlight.h
new file mode 100644
index 000000000..72eb74521
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/InputMethodHighlight.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_InputMethodHighlight__
+#define __java_awt_im_InputMethodHighlight__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace im
+ {
+ class InputMethodHighlight;
+ }
+ }
+ }
+}
+
+class java::awt::im::InputMethodHighlight : public ::java::lang::Object
+{
+
+public:
+ InputMethodHighlight(jboolean, jint);
+ InputMethodHighlight(jboolean, jint, jint);
+ InputMethodHighlight(jboolean, jint, jint, ::java::util::Map *);
+ virtual jboolean isSelected();
+ virtual jint getState();
+ virtual jint getVariation();
+ virtual ::java::util::Map * getStyle();
+ static const jint RAW_TEXT = 0;
+ static const jint CONVERTED_TEXT = 1;
+ static ::java::awt::im::InputMethodHighlight * UNSELECTED_RAW_TEXT_HIGHLIGHT;
+ static ::java::awt::im::InputMethodHighlight * SELECTED_RAW_TEXT_HIGHLIGHT;
+ static ::java::awt::im::InputMethodHighlight * UNSELECTED_CONVERTED_TEXT_HIGHLIGHT;
+ static ::java::awt::im::InputMethodHighlight * SELECTED_CONVERTED_TEXT_HIGHLIGHT;
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) selected;
+ jint state;
+ jint variation;
+ ::java::util::Map * style;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_im_InputMethodHighlight__
diff --git a/gcc-4.8/libjava/java/awt/im/InputMethodRequests.h b/gcc-4.8/libjava/java/awt/im/InputMethodRequests.h
new file mode 100644
index 000000000..4552bc954
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/InputMethodRequests.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_InputMethodRequests__
+#define __java_awt_im_InputMethodRequests__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace font
+ {
+ class TextHitInfo;
+ }
+ namespace im
+ {
+ class InputMethodRequests;
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class AttributedCharacterIterator$Attribute;
+ }
+ }
+}
+
+class java::awt::im::InputMethodRequests : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Rectangle * getTextLocation(::java::awt::font::TextHitInfo *) = 0;
+ virtual ::java::awt::font::TextHitInfo * getLocationOffset(jint, jint) = 0;
+ virtual jint getInsertPositionOffset() = 0;
+ virtual ::java::text::AttributedCharacterIterator * getCommittedText(jint, jint, JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
+ virtual jint getCommittedTextLength() = 0;
+ virtual ::java::text::AttributedCharacterIterator * cancelLatestCommittedText(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
+ virtual ::java::text::AttributedCharacterIterator * getSelectedText(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_im_InputMethodRequests__
diff --git a/gcc-4.8/libjava/java/awt/im/InputSubset.h b/gcc-4.8/libjava/java/awt/im/InputSubset.h
new file mode 100644
index 000000000..181a6af95
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/InputSubset.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_InputSubset__
+#define __java_awt_im_InputSubset__
+
+#pragma interface
+
+#include <java/lang/Character$Subset.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace im
+ {
+ class InputSubset;
+ }
+ }
+ }
+}
+
+class java::awt::im::InputSubset : public ::java::lang::Character$Subset
+{
+
+ InputSubset(::java::lang::String *);
+public:
+ static ::java::awt::im::InputSubset * LATIN;
+ static ::java::awt::im::InputSubset * LATIN_DIGITS;
+ static ::java::awt::im::InputSubset * TRADITIONAL_HANZI;
+ static ::java::awt::im::InputSubset * SIMPLIFIED_HANZI;
+ static ::java::awt::im::InputSubset * KANJI;
+ static ::java::awt::im::InputSubset * HANJA;
+ static ::java::awt::im::InputSubset * HALFWIDTH_KATAKANA;
+ static ::java::awt::im::InputSubset * FULLWIDTH_LATIN;
+ static ::java::awt::im::InputSubset * FULLWIDTH_DIGITS;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_im_InputSubset__
diff --git a/gcc-4.8/libjava/java/awt/im/spi/InputMethod.h b/gcc-4.8/libjava/java/awt/im/spi/InputMethod.h
new file mode 100644
index 000000000..d48fc67a4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/spi/InputMethod.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_spi_InputMethod__
+#define __java_awt_im_spi_InputMethod__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Rectangle;
+ namespace im
+ {
+ namespace spi
+ {
+ class InputMethod;
+ class InputMethodContext;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::im::spi::InputMethod : public ::java::lang::Object
+{
+
+public:
+ virtual void setInputMethodContext(::java::awt::im::spi::InputMethodContext *) = 0;
+ virtual jboolean setLocale(::java::util::Locale *) = 0;
+ virtual ::java::util::Locale * getLocale() = 0;
+ virtual void setCharacterSubsets(JArray< ::java::lang::Character$Subset * > *) = 0;
+ virtual void setCompositionEnabled(jboolean) = 0;
+ virtual jboolean isCompositionEnabled() = 0;
+ virtual void reconvert() = 0;
+ virtual void dispatchEvent(::java::awt::AWTEvent *) = 0;
+ virtual void notifyClientWindowChange(::java::awt::Rectangle *) = 0;
+ virtual void activate() = 0;
+ virtual void deactivate(jboolean) = 0;
+ virtual void hideWindows() = 0;
+ virtual void removeNotify() = 0;
+ virtual void endComposition() = 0;
+ virtual void dispose() = 0;
+ virtual ::java::lang::Object * getControlObject() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_im_spi_InputMethod__
diff --git a/gcc-4.8/libjava/java/awt/im/spi/InputMethodContext.h b/gcc-4.8/libjava/java/awt/im/spi/InputMethodContext.h
new file mode 100644
index 000000000..8dcef0e08
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/spi/InputMethodContext.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_spi_InputMethodContext__
+#define __java_awt_im_spi_InputMethodContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ class Window;
+ namespace font
+ {
+ class TextHitInfo;
+ }
+ namespace im
+ {
+ namespace spi
+ {
+ class InputMethod;
+ class InputMethodContext;
+ }
+ }
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class AttributedCharacterIterator$Attribute;
+ }
+ }
+ namespace javax
+ {
+ namespace swing
+ {
+ class JFrame;
+ }
+ }
+}
+
+class java::awt::im::spi::InputMethodContext : public ::java::lang::Object
+{
+
+public:
+ virtual void dispatchInputMethodEvent(jint, ::java::text::AttributedCharacterIterator *, jint, ::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *) = 0;
+ virtual ::java::awt::Window * createInputMethodWindow(::java::lang::String *, jboolean) = 0;
+ virtual ::javax::swing::JFrame * createInputMethodJFrame(::java::lang::String *, jboolean) = 0;
+ virtual void enableClientWindowNotification(::java::awt::im::spi::InputMethod *, jboolean) = 0;
+ virtual ::java::awt::Rectangle * getTextLocation(::java::awt::font::TextHitInfo *) = 0;
+ virtual ::java::awt::font::TextHitInfo * getLocationOffset(jint, jint) = 0;
+ virtual jint getInsertPositionOffset() = 0;
+ virtual ::java::text::AttributedCharacterIterator * getCommittedText(jint, jint, JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
+ virtual jint getCommittedTextLength() = 0;
+ virtual ::java::text::AttributedCharacterIterator * cancelLatestCommittedText(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
+ virtual ::java::text::AttributedCharacterIterator * getSelectedText(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_im_spi_InputMethodContext__
diff --git a/gcc-4.8/libjava/java/awt/im/spi/InputMethodDescriptor.h b/gcc-4.8/libjava/java/awt/im/spi/InputMethodDescriptor.h
new file mode 100644
index 000000000..60d0829fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/im/spi/InputMethodDescriptor.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_im_spi_InputMethodDescriptor__
+#define __java_awt_im_spi_InputMethodDescriptor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ namespace im
+ {
+ namespace spi
+ {
+ class InputMethod;
+ class InputMethodDescriptor;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::im::spi::InputMethodDescriptor : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::util::Locale * > * getAvailableLocales() = 0;
+ virtual jboolean hasDynamicLocaleList() = 0;
+ virtual ::java::lang::String * getInputMethodDisplayName(::java::util::Locale *, ::java::util::Locale *) = 0;
+ virtual ::java::awt::Image * getInputMethodIcon(::java::util::Locale *) = 0;
+ virtual ::java::awt::im::spi::InputMethod * createInputMethod() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_im_spi_InputMethodDescriptor__
diff --git a/gcc-4.8/libjava/java/awt/image/AffineTransformOp.h b/gcc-4.8/libjava/java/awt/image/AffineTransformOp.h
new file mode 100644
index 000000000..be0dee40b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/AffineTransformOp.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_AffineTransformOp__
+#define __java_awt_image_AffineTransformOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class AffineTransform;
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class AffineTransformOp;
+ class BufferedImage;
+ class ColorModel;
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::AffineTransformOp : public ::java::lang::Object
+{
+
+public:
+ AffineTransformOp(::java::awt::geom::AffineTransform *, jint);
+ AffineTransformOp(::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *);
+ virtual ::java::awt::image::BufferedImage * createCompatibleDestImage(::java::awt::image::BufferedImage *, ::java::awt::image::ColorModel *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *);
+ virtual ::java::awt::image::BufferedImage * filter(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *);
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::BufferedImage *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *);
+ virtual jint getInterpolationType();
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual ::java::awt::geom::AffineTransform * getTransform();
+private:
+ void filterNearest(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *, JArray< jdouble > *, JArray< jdouble > *);
+ void filterBilinear(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *, JArray< jdouble > *, JArray< jdouble > *);
+ void filterBicubic(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *, JArray< jdouble > *, JArray< jdouble > *);
+public:
+ static const jint TYPE_NEAREST_NEIGHBOR = 1;
+ static const jint TYPE_BILINEAR = 2;
+ static const jint TYPE_BICUBIC = 3;
+private:
+ ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::lang::Object)))) transform;
+ ::java::awt::RenderingHints * hints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_AffineTransformOp__
diff --git a/gcc-4.8/libjava/java/awt/image/AreaAveragingScaleFilter.h b/gcc-4.8/libjava/java/awt/image/AreaAveragingScaleFilter.h
new file mode 100644
index 000000000..694ae79a7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/AreaAveragingScaleFilter.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_AreaAveragingScaleFilter__
+#define __java_awt_image_AreaAveragingScaleFilter__
+
+#pragma interface
+
+#include <java/awt/image/ReplicateScaleFilter.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class AreaAveragingScaleFilter;
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::AreaAveragingScaleFilter : public ::java::awt::image::ReplicateScaleFilter
+{
+
+public:
+ AreaAveragingScaleFilter(jint, jint);
+ virtual void setHints(jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+private:
+ JArray< jbyte > * averagePixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint, jdouble, jdouble, jint);
+ JArray< jint > * averagePixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint, jdouble, jdouble, jint);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_AreaAveragingScaleFilter__
diff --git a/gcc-4.8/libjava/java/awt/image/BandCombineOp.h b/gcc-4.8/libjava/java/awt/image/BandCombineOp.h
new file mode 100644
index 000000000..0233ef4d3
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BandCombineOp.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BandCombineOp__
+#define __java_awt_image_BandCombineOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BandCombineOp;
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::BandCombineOp : public ::java::lang::Object
+{
+
+public:
+ BandCombineOp(JArray< JArray< jfloat > * > *, ::java::awt::RenderingHints *);
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *);
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual JArray< JArray< jfloat > * > * getMatrix();
+private:
+ ::java::awt::RenderingHints * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hints;
+ JArray< JArray< jfloat > * > * matrix;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_BandCombineOp__
diff --git a/gcc-4.8/libjava/java/awt/image/BandedSampleModel.h b/gcc-4.8/libjava/java/awt/image/BandedSampleModel.h
new file mode 100644
index 000000000..5eca8194b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BandedSampleModel.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BandedSampleModel__
+#define __java_awt_image_BandedSampleModel__
+
+#pragma interface
+
+#include <java/awt/image/ComponentSampleModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class BandedSampleModel;
+ class DataBuffer;
+ class SampleModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::BandedSampleModel : public ::java::awt::image::ComponentSampleModel
+{
+
+ static JArray< jint > * createBankArray(jint);
+public:
+ BandedSampleModel(jint, jint, jint, jint);
+ BandedSampleModel(jint, jint, jint, jint, JArray< jint > *, JArray< jint > *);
+ ::java::awt::image::DataBuffer * createDataBuffer();
+ ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ ::java::awt::image::SampleModel * createSubsetSampleModel(JArray< jint > *);
+ ::java::lang::Object * getDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ JArray< jint > * getPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ JArray< jint > * getPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ jint getSample(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ jfloat getSampleFloat(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ jdouble getSampleDouble(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ JArray< jint > * getSamples(jint, jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ void setDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ void setPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ void setPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ void setSample(jint, jint, jint, jint, ::java::awt::image::DataBuffer *);
+ void setSample(jint, jint, jint, jfloat, ::java::awt::image::DataBuffer *);
+ void setSample(jint, jint, jint, jdouble, ::java::awt::image::DataBuffer *);
+ void setSamples(jint, jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ ::java::lang::String * toString();
+private:
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::awt::image::ComponentSampleModel)))) bitMasks;
+ JArray< jint > * bitOffsets;
+ JArray< jint > * sampleSize;
+ jint dataBitOffset;
+ jint elemBits;
+ jint numberOfBits;
+ jint numElems;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_BandedSampleModel__
diff --git a/gcc-4.8/libjava/java/awt/image/BufferStrategy.h b/gcc-4.8/libjava/java/awt/image/BufferStrategy.h
new file mode 100644
index 000000000..682e73e07
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BufferStrategy.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BufferStrategy__
+#define __java_awt_image_BufferStrategy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class BufferCapabilities;
+ class Graphics;
+ namespace image
+ {
+ class BufferStrategy;
+ }
+ }
+ }
+}
+
+class java::awt::image::BufferStrategy : public ::java::lang::Object
+{
+
+public:
+ BufferStrategy();
+ virtual ::java::awt::BufferCapabilities * getCapabilities() = 0;
+ virtual ::java::awt::Graphics * getDrawGraphics() = 0;
+ virtual jboolean contentsLost() = 0;
+ virtual jboolean contentsRestored() = 0;
+ virtual void show() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_BufferStrategy__
diff --git a/gcc-4.8/libjava/java/awt/image/BufferedImage$1.h b/gcc-4.8/libjava/java/awt/image/BufferedImage$1.h
new file mode 100644
index 000000000..d14d34ea8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BufferedImage$1.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BufferedImage$1__
+#define __java_awt_image_BufferedImage$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class BufferedImage;
+ class BufferedImage$1;
+ class ImageConsumer;
+ }
+ }
+ }
+}
+
+class java::awt::image::BufferedImage$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ BufferedImage$1(::java::awt::image::BufferedImage *);
+public:
+ virtual void addConsumer(::java::awt::image::ImageConsumer *);
+ virtual jboolean isConsumer(::java::awt::image::ImageConsumer *);
+ virtual void removeConsumer(::java::awt::image::ImageConsumer *);
+ virtual void startProduction(::java::awt::image::ImageConsumer *);
+ virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *);
+public: // actually package-private
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) consumers;
+ ::java::awt::image::BufferedImage * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_BufferedImage$1__
diff --git a/gcc-4.8/libjava/java/awt/image/BufferedImage.h b/gcc-4.8/libjava/java/awt/image/BufferedImage.h
new file mode 100644
index 000000000..9c54907a7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BufferedImage.h
@@ -0,0 +1,124 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BufferedImage__
+#define __java_awt_image_BufferedImage__
+
+#pragma interface
+
+#include <java/awt/Image.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics;
+ class Graphics2D;
+ class Point;
+ class Rectangle;
+ namespace image
+ {
+ class BufferedImage;
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class IndexColorModel;
+ class Raster;
+ class SampleModel;
+ class TileObserver;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::BufferedImage : public ::java::awt::Image
+{
+
+public:
+ BufferedImage(jint, jint, jint);
+ BufferedImage(jint, jint, jint, ::java::awt::image::IndexColorModel *);
+ BufferedImage(::java::awt::image::ColorModel *, ::java::awt::image::WritableRaster *, jboolean, ::java::util::Hashtable *);
+private:
+ void init(::java::awt::image::ColorModel *, ::java::awt::image::WritableRaster *, jboolean, ::java::util::Hashtable *, jint);
+ ::java::awt::image::IndexColorModel * createDefaultIndexedColorModel(jboolean);
+public:
+ virtual void coerceData(jboolean);
+ virtual ::java::awt::image::WritableRaster * copyData(::java::awt::image::WritableRaster *);
+ virtual ::java::awt::Graphics2D * createGraphics();
+ virtual void flush();
+ virtual ::java::awt::image::WritableRaster * getAlphaRaster();
+ virtual ::java::awt::image::ColorModel * getColorModel();
+ virtual ::java::awt::image::Raster * getData();
+ virtual ::java::awt::image::Raster * getData(::java::awt::Rectangle *);
+ virtual ::java::awt::Graphics * getGraphics();
+ virtual jint getHeight();
+ virtual jint getHeight(::java::awt::image::ImageObserver *);
+ virtual jint getMinTileX();
+ virtual jint getMinTileY();
+ virtual jint getMinX();
+ virtual jint getMinY();
+ virtual jint getNumXTiles();
+ virtual jint getNumYTiles();
+ virtual ::java::lang::Object * getProperty(::java::lang::String *);
+ virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *);
+ virtual JArray< ::java::lang::String * > * getPropertyNames();
+ virtual jint getRGB(jint, jint);
+ virtual JArray< jint > * getRGB(jint, jint, jint, jint, JArray< jint > *, jint, jint);
+ virtual ::java::awt::image::WritableRaster * getRaster();
+ virtual ::java::awt::image::SampleModel * getSampleModel();
+ virtual ::java::awt::image::ImageProducer * getSource();
+ virtual ::java::util::Vector * getSources();
+ virtual ::java::awt::image::BufferedImage * getSubimage(jint, jint, jint, jint);
+ virtual ::java::awt::image::Raster * getTile(jint, jint);
+ virtual jint getTileGridXOffset();
+ virtual jint getTileGridYOffset();
+ virtual jint getTileHeight();
+ virtual jint getTileWidth();
+ virtual jint getType();
+ virtual jint getWidth();
+ virtual jint getWidth(::java::awt::image::ImageObserver *);
+ virtual ::java::awt::image::WritableRaster * getWritableTile(jint, jint);
+ virtual JArray< ::java::awt::Point * > * getWritableTileIndices();
+ virtual jboolean hasTileWriters();
+ virtual jboolean isAlphaPremultiplied();
+ virtual jboolean isTileWritable(jint, jint);
+ virtual void releaseWritableTile(jint, jint);
+ virtual void setData(::java::awt::image::Raster *);
+ virtual void setRGB(jint, jint, jint);
+ virtual void setRGB(jint, jint, jint, jint, JArray< jint > *, jint, jint);
+ virtual ::java::lang::String * toString();
+ virtual void addTileObserver(::java::awt::image::TileObserver *);
+ virtual void removeTileObserver(::java::awt::image::TileObserver *);
+ virtual jint getTransparency();
+ static const jint TYPE_CUSTOM = 0;
+ static const jint TYPE_INT_RGB = 1;
+ static const jint TYPE_INT_ARGB = 2;
+ static const jint TYPE_INT_ARGB_PRE = 3;
+ static const jint TYPE_INT_BGR = 4;
+ static const jint TYPE_3BYTE_BGR = 5;
+ static const jint TYPE_4BYTE_ABGR = 6;
+ static const jint TYPE_4BYTE_ABGR_PRE = 7;
+ static const jint TYPE_USHORT_565_RGB = 8;
+ static const jint TYPE_USHORT_555_RGB = 9;
+ static const jint TYPE_BYTE_GRAY = 10;
+ static const jint TYPE_USHORT_GRAY = 11;
+ static const jint TYPE_BYTE_BINARY = 12;
+ static const jint TYPE_BYTE_INDEXED = 13;
+public: // actually package-private
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::awt::Image)))) tileObservers;
+ ::java::awt::image::WritableRaster * raster;
+ ::java::awt::image::ColorModel * colorModel;
+ ::java::util::Hashtable * properties;
+ jboolean isPremultiplied;
+ jint type;
+private:
+ static JArray< ::java::awt::Point * > * tileIndices;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_BufferedImage__
diff --git a/gcc-4.8/libjava/java/awt/image/BufferedImageFilter.h b/gcc-4.8/libjava/java/awt/image/BufferedImageFilter.h
new file mode 100644
index 000000000..08da9be71
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BufferedImageFilter.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BufferedImageFilter__
+#define __java_awt_image_BufferedImageFilter__
+
+#pragma interface
+
+#include <java/awt/image/ImageFilter.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class BufferedImageFilter;
+ class BufferedImageOp;
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::BufferedImageFilter : public ::java::awt::image::ImageFilter
+{
+
+public:
+ BufferedImageFilter(::java::awt::image::BufferedImageOp *);
+ virtual ::java::awt::image::BufferedImageOp * getBufferedImageOp();
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+private:
+ ::java::awt::image::BufferedImageOp * __attribute__((aligned(__alignof__( ::java::awt::image::ImageFilter)))) op;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_BufferedImageFilter__
diff --git a/gcc-4.8/libjava/java/awt/image/BufferedImageOp.h b/gcc-4.8/libjava/java/awt/image/BufferedImageOp.h
new file mode 100644
index 000000000..1af69aa02
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/BufferedImageOp.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_BufferedImageOp__
+#define __java_awt_image_BufferedImageOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class BufferedImageOp;
+ class ColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::BufferedImageOp : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::image::BufferedImage * filter(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *) = 0;
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::BufferedImage *) = 0;
+ virtual ::java::awt::image::BufferedImage * createCompatibleDestImage(::java::awt::image::BufferedImage *, ::java::awt::image::ColorModel *) = 0;
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *) = 0;
+ virtual ::java::awt::RenderingHints * getRenderingHints() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_BufferedImageOp__
diff --git a/gcc-4.8/libjava/java/awt/image/ByteLookupTable.h b/gcc-4.8/libjava/java/awt/image/ByteLookupTable.h
new file mode 100644
index 000000000..d34b385b2
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ByteLookupTable.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ByteLookupTable__
+#define __java_awt_image_ByteLookupTable__
+
+#pragma interface
+
+#include <java/awt/image/LookupTable.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ByteLookupTable;
+ }
+ }
+ }
+}
+
+class java::awt::image::ByteLookupTable : public ::java::awt::image::LookupTable
+{
+
+public:
+ ByteLookupTable(jint, JArray< JArray< jbyte > * > *);
+ ByteLookupTable(jint, JArray< jbyte > *);
+ virtual JArray< JArray< jbyte > * > * getTable();
+ virtual JArray< jint > * lookupPixel(JArray< jint > *, JArray< jint > *);
+ virtual JArray< jbyte > * lookupPixel(JArray< jbyte > *, JArray< jbyte > *);
+private:
+ JArray< JArray< jbyte > * > * __attribute__((aligned(__alignof__( ::java::awt::image::LookupTable)))) data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ByteLookupTable__
diff --git a/gcc-4.8/libjava/java/awt/image/ColorConvertOp.h b/gcc-4.8/libjava/java/awt/image/ColorConvertOp.h
new file mode 100644
index 000000000..6455b46bb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ColorConvertOp.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ColorConvertOp__
+#define __java_awt_image_ColorConvertOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace color
+ {
+ class ColorSpace;
+ class ICC_Profile;
+ }
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class ColorConvertOp;
+ class ColorModel;
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::ColorConvertOp : public ::java::lang::Object
+{
+
+public:
+ ColorConvertOp(::java::awt::color::ColorSpace *, ::java::awt::RenderingHints *);
+ ColorConvertOp(::java::awt::color::ColorSpace *, ::java::awt::color::ColorSpace *, ::java::awt::RenderingHints *);
+ ColorConvertOp(JArray< ::java::awt::color::ICC_Profile * > *, ::java::awt::RenderingHints *);
+ ColorConvertOp(::java::awt::RenderingHints *);
+ virtual ::java::awt::image::BufferedImage * filter(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *);
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *);
+ virtual ::java::awt::image::BufferedImage * createCompatibleDestImage(::java::awt::image::BufferedImage *, ::java::awt::image::ColorModel *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *);
+ virtual JArray< ::java::awt::color::ICC_Profile * > * getICC_Profiles();
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::BufferedImage *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *);
+private:
+ void copyimage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *);
+ void copyraster(::java::awt::image::Raster *, ::java::awt::color::ColorSpace *, ::java::awt::image::WritableRaster *, ::java::awt::color::ColorSpace *);
+ ::java::awt::image::ColorModel * createCompatibleColorModel(::java::awt::image::BufferedImage *, ::java::awt::color::ColorSpace *);
+ ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *, ::java::awt::color::ColorSpace *, jboolean, jint);
+ ::java::awt::RenderingHints * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hints;
+ JArray< ::java::awt::color::ICC_Profile * > * profiles;
+ JArray< ::java::awt::color::ColorSpace * > * spaces;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ColorConvertOp__
diff --git a/gcc-4.8/libjava/java/awt/image/ColorModel$SRGBColorModel.h b/gcc-4.8/libjava/java/awt/image/ColorModel$SRGBColorModel.h
new file mode 100644
index 000000000..90428c429
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ColorModel$SRGBColorModel.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ColorModel$SRGBColorModel__
+#define __java_awt_image_ColorModel$SRGBColorModel__
+
+#pragma interface
+
+#include <java/awt/image/DirectColorModel.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel$SRGBColorModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::ColorModel$SRGBColorModel : public ::java::awt::image::DirectColorModel
+{
+
+public: // actually package-private
+ ColorModel$SRGBColorModel();
+public:
+ virtual jint getAlpha(::java::lang::Object *);
+ virtual jint getBlue(::java::lang::Object *);
+ virtual jint getGreen(::java::lang::Object *);
+ virtual jint getRed(::java::lang::Object *);
+ virtual jint getRGB(::java::lang::Object *);
+ virtual ::java::lang::Object * getDataElements(jint, ::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ColorModel$SRGBColorModel__
diff --git a/gcc-4.8/libjava/java/awt/image/ColorModel.h b/gcc-4.8/libjava/java/awt/image/ColorModel.h
new file mode 100644
index 000000000..1eccdc583
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ColorModel.h
@@ -0,0 +1,108 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ColorModel__
+#define __java_awt_image_ColorModel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ColorSpace;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class Raster;
+ class SampleModel;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::ColorModel : public ::java::lang::Object
+{
+
+public: // actually package-private
+ static JArray< jint > * nArray(jint, jint);
+ static JArray< jbyte > * nArray(jbyte, jint);
+public:
+ ColorModel(jint);
+public: // actually protected
+ ColorModel(jint, JArray< jint > *, ::java::awt::color::ColorSpace *, jboolean, jboolean, jint, jint);
+public:
+ virtual void finalize();
+ static ::java::awt::image::ColorModel * getRGBdefault();
+ virtual jboolean hasAlpha();
+ virtual jboolean isAlphaPremultiplied();
+ virtual jint getPixelSize();
+ virtual jint getComponentSize(jint);
+ virtual JArray< jint > * getComponentSize();
+ virtual jint getTransparency();
+ virtual jint getNumComponents();
+ virtual jint getNumColorComponents();
+ virtual jint getRed(jint) = 0;
+ virtual jint getGreen(jint) = 0;
+ virtual jint getBlue(jint) = 0;
+ virtual jint getAlpha(jint) = 0;
+ virtual jint getRGB(jint);
+public: // actually package-private
+ virtual jint getPixelFromArray(::java::lang::Object *);
+public:
+ virtual jint getRed(::java::lang::Object *);
+ virtual jint getGreen(::java::lang::Object *);
+ virtual jint getBlue(::java::lang::Object *);
+ virtual jint getAlpha(::java::lang::Object *);
+ virtual jint getRGB(::java::lang::Object *);
+ virtual ::java::lang::Object * getDataElements(jint, ::java::lang::Object *);
+ virtual JArray< jint > * getComponents(jint, JArray< jint > *, jint);
+ virtual JArray< jint > * getComponents(::java::lang::Object *, JArray< jint > *, jint);
+ virtual JArray< jint > * getUnnormalizedComponents(JArray< jfloat > *, jint, JArray< jint > *, jint);
+ virtual JArray< jfloat > * getNormalizedComponents(JArray< jint > *, jint, JArray< jfloat > *, jint);
+ virtual JArray< jfloat > * getNormalizedComponents(::java::lang::Object *, JArray< jfloat > *, jint);
+ virtual jint getDataElement(JArray< jint > *, jint);
+ virtual jint getDataElement(JArray< jfloat > *, jint);
+ virtual ::java::lang::Object * getDataElements(JArray< jint > *, jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * getDataElements(JArray< jfloat > *, jint, ::java::lang::Object *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::awt::color::ColorSpace * getColorSpace();
+ virtual ::java::awt::image::ColorModel * coerceData(::java::awt::image::WritableRaster *, jboolean);
+public: // actually package-private
+ virtual void coerceDataWorker(::java::awt::image::WritableRaster *, jboolean);
+public:
+ virtual jboolean isCompatibleRaster(::java::awt::image::Raster *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster(jint, jint);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual jboolean isCompatibleSampleModel(::java::awt::image::SampleModel *);
+ virtual jint getTransferType();
+ virtual ::java::awt::image::WritableRaster * getAlphaRaster(::java::awt::image::WritableRaster *);
+public: // actually package-private
+ virtual ::java::lang::String * stringParam();
+public:
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) pixel_bits;
+ jint transferType;
+public: // actually package-private
+ JArray< jint > * bits;
+ ::java::awt::color::ColorSpace * cspace;
+ jint transparency;
+ jboolean hasAlpha__;
+ jboolean isAlphaPremultiplied__;
+private:
+ static ::java::awt::image::ColorModel * S_RGB_MODEL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ColorModel__
diff --git a/gcc-4.8/libjava/java/awt/image/ComponentColorModel.h b/gcc-4.8/libjava/java/awt/image/ComponentColorModel.h
new file mode 100644
index 000000000..e40ab1d2d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ComponentColorModel.h
@@ -0,0 +1,74 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ComponentColorModel__
+#define __java_awt_image_ComponentColorModel__
+
+#pragma interface
+
+#include <java/awt/image/ColorModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ColorSpace;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ComponentColorModel;
+ class Raster;
+ class SampleModel;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::ComponentColorModel : public ::java::awt::image::ColorModel
+{
+
+ static jint sum(JArray< jint > *);
+ static JArray< jint > * findBits(::java::awt::color::ColorSpace *, jint, jboolean);
+public:
+ ComponentColorModel(::java::awt::color::ColorSpace *, JArray< jint > *, jboolean, jboolean, jint, jint);
+ ComponentColorModel(::java::awt::color::ColorSpace *, jboolean, jboolean, jint, jint);
+ virtual jint getRed(jint);
+ virtual jint getGreen(jint);
+ virtual jint getBlue(jint);
+ virtual jint getAlpha(jint);
+ virtual jint getRGB(jint);
+private:
+ JArray< jfloat > * getRGBFloat(jint);
+ JArray< jfloat > * getRGBFloat(::java::lang::Object *);
+public:
+ virtual jint getRed(::java::lang::Object *);
+ virtual jint getGreen(::java::lang::Object *);
+ virtual jint getBlue(::java::lang::Object *);
+ virtual jint getAlpha(::java::lang::Object *);
+private:
+ jint getRGB(JArray< jfloat > *);
+public:
+ virtual jint getRGB(::java::lang::Object *);
+ virtual ::java::lang::Object * getDataElements(jint, ::java::lang::Object *);
+ virtual JArray< jint > * getComponents(jint, JArray< jint > *, jint);
+ virtual JArray< jint > * getComponents(::java::lang::Object *, JArray< jint > *, jint);
+ virtual jint getDataElement(JArray< jint > *, jint);
+ virtual ::java::lang::Object * getDataElements(JArray< jint > *, jint, ::java::lang::Object *);
+ virtual ::java::awt::image::ColorModel * coerceData(::java::awt::image::WritableRaster *, jboolean);
+ virtual jboolean isCompatibleRaster(::java::awt::image::Raster *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster(jint, jint);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual jboolean isCompatibleSampleModel(::java::awt::image::SampleModel *);
+ virtual ::java::awt::image::WritableRaster * getAlphaRaster(::java::awt::image::WritableRaster *);
+ virtual jboolean equals(::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ComponentColorModel__
diff --git a/gcc-4.8/libjava/java/awt/image/ComponentSampleModel.h b/gcc-4.8/libjava/java/awt/image/ComponentSampleModel.h
new file mode 100644
index 000000000..39fe6cdf7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ComponentSampleModel.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ComponentSampleModel__
+#define __java_awt_image_ComponentSampleModel__
+
+#pragma interface
+
+#include <java/awt/image/SampleModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ComponentSampleModel;
+ class DataBuffer;
+ class SampleModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::ComponentSampleModel : public ::java::awt::image::SampleModel
+{
+
+public:
+ ComponentSampleModel(jint, jint, jint, jint, jint, JArray< jint > *);
+ ComponentSampleModel(jint, jint, jint, jint, jint, JArray< jint > *, JArray< jint > *);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual ::java::awt::image::SampleModel * createSubsetSampleModel(JArray< jint > *);
+ virtual ::java::awt::image::DataBuffer * createDataBuffer();
+ virtual jint getOffset(jint, jint);
+ virtual jint getOffset(jint, jint, jint);
+ virtual JArray< jint > * getSampleSize();
+ virtual jint getSampleSize(jint);
+ virtual JArray< jint > * getBankIndices();
+ virtual JArray< jint > * getBandOffsets();
+ virtual jint getScanlineStride();
+ virtual jint getPixelStride();
+ virtual jint getNumDataElements();
+ virtual ::java::lang::Object * getDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual jint getSample(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual void setDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual void setPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setSample(jint, jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+public: // actually protected
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::awt::image::SampleModel)))) bandOffsets;
+ JArray< jint > * bankIndices;
+ jint numBands;
+ jint numBanks;
+ jint scanlineStride;
+ jint pixelStride;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ComponentSampleModel__
diff --git a/gcc-4.8/libjava/java/awt/image/ConvolveOp.h b/gcc-4.8/libjava/java/awt/image/ConvolveOp.h
new file mode 100644
index 000000000..e72a7033e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ConvolveOp.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ConvolveOp__
+#define __java_awt_image_ConvolveOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class ColorModel;
+ class ConvolveOp;
+ class Kernel;
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::ConvolveOp : public ::java::lang::Object
+{
+
+public:
+ ConvolveOp(::java::awt::image::Kernel *, jint, ::java::awt::RenderingHints *);
+ ConvolveOp(::java::awt::image::Kernel *);
+ virtual ::java::awt::image::BufferedImage * filter(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *);
+ virtual ::java::awt::image::BufferedImage * createCompatibleDestImage(::java::awt::image::BufferedImage *, ::java::awt::image::ColorModel *);
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual jint getEdgeCondition();
+ virtual ::java::awt::image::Kernel * getKernel();
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *);
+private:
+ void fillEdge(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *, jint, jint, jint, jint, jint);
+public:
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::BufferedImage *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *);
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ static const jint EDGE_ZERO_FILL = 0;
+ static const jint EDGE_NO_OP = 1;
+private:
+ ::java::awt::image::Kernel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) kernel;
+ jint edge;
+ ::java::awt::RenderingHints * hints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ConvolveOp__
diff --git a/gcc-4.8/libjava/java/awt/image/CropImageFilter.h b/gcc-4.8/libjava/java/awt/image/CropImageFilter.h
new file mode 100644
index 000000000..23720dbdc
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/CropImageFilter.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_CropImageFilter__
+#define __java_awt_image_CropImageFilter__
+
+#pragma interface
+
+#include <java/awt/image/ImageFilter.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel;
+ class CropImageFilter;
+ }
+ }
+ }
+}
+
+class java::awt::image::CropImageFilter : public ::java::awt::image::ImageFilter
+{
+
+public:
+ CropImageFilter(jint, jint, jint, jint);
+ virtual void setDimensions(jint, jint);
+ virtual void setProperties(::java::util::Hashtable *);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::awt::image::ImageFilter)))) x;
+ jint y;
+ jint width;
+ jint height;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_CropImageFilter__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBuffer.h b/gcc-4.8/libjava/java/awt/image/DataBuffer.h
new file mode 100644
index 000000000..5bb4ac293
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBuffer.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBuffer__
+#define __java_awt_image_DataBuffer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBuffer;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBuffer : public ::java::lang::Object
+{
+
+public: // actually protected
+ DataBuffer(jint, jint);
+ DataBuffer(jint, jint, jint);
+ DataBuffer(jint, jint, jint, jint);
+ DataBuffer(jint, jint, jint, JArray< jint > *);
+public:
+ static jint getDataTypeSize(jint);
+ virtual jint getDataType();
+ virtual jint getSize();
+ virtual jint getOffset();
+ virtual JArray< jint > * getOffsets();
+ virtual jint getNumBanks();
+ virtual jint getElem(jint);
+ virtual jint getElem(jint, jint) = 0;
+ virtual void setElem(jint, jint);
+ virtual void setElem(jint, jint, jint) = 0;
+ virtual jfloat getElemFloat(jint);
+ virtual jfloat getElemFloat(jint, jint);
+ virtual void setElemFloat(jint, jfloat);
+ virtual void setElemFloat(jint, jint, jfloat);
+ virtual jdouble getElemDouble(jint);
+ virtual jdouble getElemDouble(jint, jint);
+ virtual void setElemDouble(jint, jdouble);
+ virtual void setElemDouble(jint, jint, jdouble);
+ static const jint TYPE_BYTE = 0;
+ static const jint TYPE_USHORT = 1;
+ static const jint TYPE_SHORT = 2;
+ static const jint TYPE_INT = 3;
+ static const jint TYPE_FLOAT = 4;
+ static const jint TYPE_DOUBLE = 5;
+ static const jint TYPE_UNDEFINED = 32;
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataType;
+ jint banks;
+ jint offset;
+ jint size;
+ JArray< jint > * offsets;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBuffer__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBufferByte.h b/gcc-4.8/libjava/java/awt/image/DataBufferByte.h
new file mode 100644
index 000000000..224be27ce
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBufferByte.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBufferByte__
+#define __java_awt_image_DataBufferByte__
+
+#pragma interface
+
+#include <java/awt/image/DataBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBufferByte;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBufferByte : public ::java::awt::image::DataBuffer
+{
+
+public:
+ DataBufferByte(jint);
+ DataBufferByte(jint, jint);
+ DataBufferByte(JArray< jbyte > *, jint);
+ DataBufferByte(JArray< jbyte > *, jint, jint);
+ DataBufferByte(JArray< JArray< jbyte > * > *, jint);
+ DataBufferByte(JArray< JArray< jbyte > * > *, jint, JArray< jint > *);
+ JArray< jbyte > * getData();
+ JArray< jbyte > * getData(jint);
+ JArray< JArray< jbyte > * > * getBankData();
+ jint getElem(jint);
+ jint getElem(jint, jint);
+ void setElem(jint, jint);
+ void setElem(jint, jint, jint);
+private:
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) data;
+ JArray< JArray< jbyte > * > * bankData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBufferByte__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBufferDouble.h b/gcc-4.8/libjava/java/awt/image/DataBufferDouble.h
new file mode 100644
index 000000000..056c5e4bb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBufferDouble.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBufferDouble__
+#define __java_awt_image_DataBufferDouble__
+
+#pragma interface
+
+#include <java/awt/image/DataBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBufferDouble;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBufferDouble : public ::java::awt::image::DataBuffer
+{
+
+public:
+ DataBufferDouble(jint);
+ DataBufferDouble(jint, jint);
+ DataBufferDouble(JArray< jdouble > *, jint);
+ DataBufferDouble(JArray< jdouble > *, jint, jint);
+ DataBufferDouble(JArray< JArray< jdouble > * > *, jint);
+ DataBufferDouble(JArray< JArray< jdouble > * > *, jint, JArray< jint > *);
+ JArray< jdouble > * getData();
+ JArray< jdouble > * getData(jint);
+ JArray< JArray< jdouble > * > * getBankData();
+ jint getElem(jint);
+ jint getElem(jint, jint);
+ void setElem(jint, jint);
+ void setElem(jint, jint, jint);
+ jfloat getElemFloat(jint);
+ jfloat getElemFloat(jint, jint);
+ void setElemFloat(jint, jfloat);
+ void setElemFloat(jint, jint, jfloat);
+ jdouble getElemDouble(jint);
+ jdouble getElemDouble(jint, jint);
+ void setElemDouble(jint, jdouble);
+ void setElemDouble(jint, jint, jdouble);
+private:
+ JArray< jdouble > * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) data;
+ JArray< JArray< jdouble > * > * bankData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBufferDouble__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBufferFloat.h b/gcc-4.8/libjava/java/awt/image/DataBufferFloat.h
new file mode 100644
index 000000000..621e3593f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBufferFloat.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBufferFloat__
+#define __java_awt_image_DataBufferFloat__
+
+#pragma interface
+
+#include <java/awt/image/DataBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBufferFloat;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBufferFloat : public ::java::awt::image::DataBuffer
+{
+
+public:
+ DataBufferFloat(jint);
+ DataBufferFloat(jint, jint);
+ DataBufferFloat(JArray< jfloat > *, jint);
+ DataBufferFloat(JArray< jfloat > *, jint, jint);
+ DataBufferFloat(JArray< JArray< jfloat > * > *, jint);
+ DataBufferFloat(JArray< JArray< jfloat > * > *, jint, JArray< jint > *);
+ JArray< jfloat > * getData();
+ JArray< jfloat > * getData(jint);
+ JArray< JArray< jfloat > * > * getBankData();
+ jint getElem(jint);
+ jint getElem(jint, jint);
+ void setElem(jint, jint);
+ void setElem(jint, jint, jint);
+ jfloat getElemFloat(jint);
+ jfloat getElemFloat(jint, jint);
+ void setElemFloat(jint, jfloat);
+ void setElemFloat(jint, jint, jfloat);
+ jdouble getElemDouble(jint);
+ jdouble getElemDouble(jint, jint);
+ void setElemDouble(jint, jdouble);
+ void setElemDouble(jint, jint, jdouble);
+private:
+ JArray< jfloat > * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) data;
+ JArray< JArray< jfloat > * > * bankData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBufferFloat__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBufferInt.h b/gcc-4.8/libjava/java/awt/image/DataBufferInt.h
new file mode 100644
index 000000000..0526f607f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBufferInt.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBufferInt__
+#define __java_awt_image_DataBufferInt__
+
+#pragma interface
+
+#include <java/awt/image/DataBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBufferInt;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBufferInt : public ::java::awt::image::DataBuffer
+{
+
+public:
+ DataBufferInt(jint);
+ DataBufferInt(jint, jint);
+ DataBufferInt(JArray< jint > *, jint);
+ DataBufferInt(JArray< jint > *, jint, jint);
+ DataBufferInt(JArray< JArray< jint > * > *, jint);
+ DataBufferInt(JArray< JArray< jint > * > *, jint, JArray< jint > *);
+ JArray< jint > * getData();
+ JArray< jint > * getData(jint);
+ JArray< JArray< jint > * > * getBankData();
+ jint getElem(jint);
+ jint getElem(jint, jint);
+ void setElem(jint, jint);
+ void setElem(jint, jint, jint);
+private:
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) data;
+ JArray< JArray< jint > * > * bankData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBufferInt__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBufferShort.h b/gcc-4.8/libjava/java/awt/image/DataBufferShort.h
new file mode 100644
index 000000000..c66067109
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBufferShort.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBufferShort__
+#define __java_awt_image_DataBufferShort__
+
+#pragma interface
+
+#include <java/awt/image/DataBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBufferShort;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBufferShort : public ::java::awt::image::DataBuffer
+{
+
+public:
+ DataBufferShort(jint);
+ DataBufferShort(jint, jint);
+ DataBufferShort(JArray< jshort > *, jint);
+ DataBufferShort(JArray< jshort > *, jint, jint);
+ DataBufferShort(JArray< JArray< jshort > * > *, jint);
+ DataBufferShort(JArray< JArray< jshort > * > *, jint, JArray< jint > *);
+ JArray< jshort > * getData();
+ JArray< jshort > * getData(jint);
+ JArray< JArray< jshort > * > * getBankData();
+ jint getElem(jint);
+ jint getElem(jint, jint);
+ void setElem(jint, jint);
+ void setElem(jint, jint, jint);
+private:
+ JArray< jshort > * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) data;
+ JArray< JArray< jshort > * > * bankData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBufferShort__
diff --git a/gcc-4.8/libjava/java/awt/image/DataBufferUShort.h b/gcc-4.8/libjava/java/awt/image/DataBufferUShort.h
new file mode 100644
index 000000000..e67d26b1b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DataBufferUShort.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DataBufferUShort__
+#define __java_awt_image_DataBufferUShort__
+
+#pragma interface
+
+#include <java/awt/image/DataBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBufferUShort;
+ }
+ }
+ }
+}
+
+class java::awt::image::DataBufferUShort : public ::java::awt::image::DataBuffer
+{
+
+public:
+ DataBufferUShort(jint);
+ DataBufferUShort(jint, jint);
+ DataBufferUShort(JArray< jshort > *, jint);
+ DataBufferUShort(JArray< jshort > *, jint, jint);
+ DataBufferUShort(JArray< JArray< jshort > * > *, jint);
+ DataBufferUShort(JArray< JArray< jshort > * > *, jint, JArray< jint > *);
+ JArray< jshort > * getData();
+ JArray< jshort > * getData(jint);
+ JArray< JArray< jshort > * > * getBankData();
+ jint getElem(jint);
+ jint getElem(jint, jint);
+ void setElem(jint, jint);
+ void setElem(jint, jint, jint);
+private:
+ JArray< jshort > * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) data;
+ JArray< JArray< jshort > * > * bankData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DataBufferUShort__
diff --git a/gcc-4.8/libjava/java/awt/image/DirectColorModel.h b/gcc-4.8/libjava/java/awt/image/DirectColorModel.h
new file mode 100644
index 000000000..476ab073d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/DirectColorModel.h
@@ -0,0 +1,77 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_DirectColorModel__
+#define __java_awt_image_DirectColorModel__
+
+#pragma interface
+
+#include <java/awt/image/PackedColorModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ColorSpace;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class DirectColorModel;
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::DirectColorModel : public ::java::awt::image::PackedColorModel
+{
+
+public:
+ DirectColorModel(jint, jint, jint, jint);
+ DirectColorModel(jint, jint, jint, jint, jint);
+ DirectColorModel(::java::awt::color::ColorSpace *, jint, jint, jint, jint, jint, jboolean, jint);
+ virtual jint getRedMask();
+ virtual jint getGreenMask();
+ virtual jint getBlueMask();
+ virtual jint getAlphaMask();
+ virtual jint getRed(jint);
+ virtual jint getGreen(jint);
+ virtual jint getBlue(jint);
+ virtual jint getAlpha(jint);
+private:
+ jint extractAndNormalizeSample(jint, jint);
+ jint extractAndScaleSample(jint, jint);
+public:
+ virtual jint getRGB(jint);
+ virtual jint getRed(::java::lang::Object *);
+ virtual jint getGreen(::java::lang::Object *);
+ virtual jint getBlue(::java::lang::Object *);
+ virtual jint getAlpha(::java::lang::Object *);
+ virtual jint getRGB(::java::lang::Object *);
+ virtual ::java::lang::Object * getDataElements(jint, ::java::lang::Object *);
+private:
+ jint valueToField(jint, jint, jint);
+ jint value16ToField(jint, jint);
+public:
+ virtual JArray< jint > * getComponents(jint, JArray< jint > *, jint);
+ virtual JArray< jint > * getComponents(::java::lang::Object *, JArray< jint > *, jint);
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster(jint, jint);
+ virtual jint getDataElement(JArray< jint > *, jint);
+ virtual ::java::lang::Object * getDataElements(JArray< jint > *, jint, ::java::lang::Object *);
+ virtual ::java::awt::image::ColorModel * coerceData(::java::awt::image::WritableRaster *, jboolean);
+ virtual jboolean isCompatibleRaster(::java::awt::image::Raster *);
+public: // actually package-private
+ virtual ::java::lang::String * stringParam();
+public:
+ virtual ::java::lang::String * toString();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_DirectColorModel__
diff --git a/gcc-4.8/libjava/java/awt/image/FilteredImageSource.h b/gcc-4.8/libjava/java/awt/image/FilteredImageSource.h
new file mode 100644
index 000000000..93174c44f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/FilteredImageSource.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_FilteredImageSource__
+#define __java_awt_image_FilteredImageSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class FilteredImageSource;
+ class ImageConsumer;
+ class ImageFilter;
+ class ImageProducer;
+ }
+ }
+ }
+}
+
+class java::awt::image::FilteredImageSource : public ::java::lang::Object
+{
+
+public:
+ FilteredImageSource(::java::awt::image::ImageProducer *, ::java::awt::image::ImageFilter *);
+ virtual void addConsumer(::java::awt::image::ImageConsumer *);
+ virtual jboolean isConsumer(::java::awt::image::ImageConsumer *);
+ virtual void removeConsumer(::java::awt::image::ImageConsumer *);
+ virtual void startProduction(::java::awt::image::ImageConsumer *);
+ virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *);
+public: // actually package-private
+ ::java::awt::image::ImageProducer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ip;
+ ::java::awt::image::ImageFilter * filter;
+ ::java::util::Hashtable * consumers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_FilteredImageSource__
diff --git a/gcc-4.8/libjava/java/awt/image/ImageConsumer.h b/gcc-4.8/libjava/java/awt/image/ImageConsumer.h
new file mode 100644
index 000000000..ffca9fc3c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ImageConsumer.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ImageConsumer__
+#define __java_awt_image_ImageConsumer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel;
+ class ImageConsumer;
+ }
+ }
+ }
+}
+
+class java::awt::image::ImageConsumer : public ::java::lang::Object
+{
+
+public:
+ virtual void setDimensions(jint, jint) = 0;
+ virtual void setProperties(::java::util::Hashtable *) = 0;
+ virtual void setColorModel(::java::awt::image::ColorModel *) = 0;
+ virtual void setHints(jint) = 0;
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint) = 0;
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint) = 0;
+ virtual void imageComplete(jint) = 0;
+ static const jint RANDOMPIXELORDER = 1;
+ static const jint TOPDOWNLEFTRIGHT = 2;
+ static const jint COMPLETESCANLINES = 4;
+ static const jint SINGLEPASS = 8;
+ static const jint SINGLEFRAME = 16;
+ static const jint IMAGEERROR = 1;
+ static const jint SINGLEFRAMEDONE = 2;
+ static const jint STATICIMAGEDONE = 3;
+ static const jint IMAGEABORTED = 4;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_ImageConsumer__
diff --git a/gcc-4.8/libjava/java/awt/image/ImageFilter.h b/gcc-4.8/libjava/java/awt/image/ImageFilter.h
new file mode 100644
index 000000000..84b6f53b0
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ImageFilter.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ImageFilter__
+#define __java_awt_image_ImageFilter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel;
+ class ImageConsumer;
+ class ImageFilter;
+ class ImageProducer;
+ }
+ }
+ }
+}
+
+class java::awt::image::ImageFilter : public ::java::lang::Object
+{
+
+public:
+ ImageFilter();
+ virtual void resendTopDownLeftRight(::java::awt::image::ImageProducer *);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::awt::image::ImageFilter * getFilterInstance(::java::awt::image::ImageConsumer *);
+ virtual void setDimensions(jint, jint);
+ virtual void setProperties(::java::util::Hashtable *);
+ virtual void setColorModel(::java::awt::image::ColorModel *);
+ virtual void setHints(jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+ virtual void imageComplete(jint);
+public: // actually protected
+ ::java::awt::image::ImageConsumer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) consumer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ImageFilter__
diff --git a/gcc-4.8/libjava/java/awt/image/ImageObserver.h b/gcc-4.8/libjava/java/awt/image/ImageObserver.h
new file mode 100644
index 000000000..563666a1a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ImageObserver.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ImageObserver__
+#define __java_awt_image_ImageObserver__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ namespace image
+ {
+ class ImageObserver;
+ }
+ }
+ }
+}
+
+class java::awt::image::ImageObserver : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint) = 0;
+ static const jint WIDTH = 1;
+ static const jint HEIGHT = 2;
+ static const jint PROPERTIES = 4;
+ static const jint SOMEBITS = 8;
+ static const jint FRAMEBITS = 16;
+ static const jint ALLBITS = 32;
+ static const jint ERROR = 64;
+ static const jint ABORT = 128;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_ImageObserver__
diff --git a/gcc-4.8/libjava/java/awt/image/ImageProducer.h b/gcc-4.8/libjava/java/awt/image/ImageProducer.h
new file mode 100644
index 000000000..108f61f49
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ImageProducer.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ImageProducer__
+#define __java_awt_image_ImageProducer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ImageConsumer;
+ class ImageProducer;
+ }
+ }
+ }
+}
+
+class java::awt::image::ImageProducer : public ::java::lang::Object
+{
+
+public:
+ virtual void addConsumer(::java::awt::image::ImageConsumer *) = 0;
+ virtual jboolean isConsumer(::java::awt::image::ImageConsumer *) = 0;
+ virtual void removeConsumer(::java::awt::image::ImageConsumer *) = 0;
+ virtual void startProduction(::java::awt::image::ImageConsumer *) = 0;
+ virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_ImageProducer__
diff --git a/gcc-4.8/libjava/java/awt/image/ImagingOpException.h b/gcc-4.8/libjava/java/awt/image/ImagingOpException.h
new file mode 100644
index 000000000..9ce51161f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ImagingOpException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ImagingOpException__
+#define __java_awt_image_ImagingOpException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ImagingOpException;
+ }
+ }
+ }
+}
+
+class java::awt::image::ImagingOpException : public ::java::lang::RuntimeException
+{
+
+public:
+ ImagingOpException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8026288481846276658LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ImagingOpException__
diff --git a/gcc-4.8/libjava/java/awt/image/IndexColorModel.h b/gcc-4.8/libjava/java/awt/image/IndexColorModel.h
new file mode 100644
index 000000000..a79a5312f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/IndexColorModel.h
@@ -0,0 +1,73 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_IndexColorModel__
+#define __java_awt_image_IndexColorModel__
+
+#pragma interface
+
+#include <java/awt/image/ColorModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class BufferedImage;
+ class IndexColorModel;
+ class Raster;
+ class SampleModel;
+ }
+ }
+ namespace math
+ {
+ class BigInteger;
+ }
+ }
+}
+
+class java::awt::image::IndexColorModel : public ::java::awt::image::ColorModel
+{
+
+public:
+ IndexColorModel(jint, jint, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *);
+ IndexColorModel(jint, jint, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, jint);
+ IndexColorModel(jint, jint, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *);
+ IndexColorModel(jint, jint, JArray< jbyte > *, jint, jboolean);
+ IndexColorModel(jint, jint, JArray< jbyte > *, jint, jboolean, jint);
+ IndexColorModel(jint, jint, JArray< jint > *, jint, jboolean, jint, jint);
+ IndexColorModel(jint, jint, JArray< jint > *, jint, jint, ::java::math::BigInteger *);
+ virtual jint getMapSize();
+ virtual jint getTransparentPixel();
+ virtual void getReds(JArray< jbyte > *);
+ virtual void getGreens(JArray< jbyte > *);
+ virtual void getBlues(JArray< jbyte > *);
+ virtual void getAlphas(JArray< jbyte > *);
+ virtual jint getRed(jint);
+ virtual jint getGreen(jint);
+ virtual jint getBlue(jint);
+ virtual jint getAlpha(jint);
+ virtual jint getRGB(jint);
+ virtual void getRGBs(JArray< jint > *);
+ virtual jboolean isValid(jint);
+ virtual jboolean isValid();
+ virtual ::java::math::BigInteger * getValidPixels();
+ virtual ::java::awt::image::BufferedImage * convertToIntDiscrete(::java::awt::image::Raster *, jboolean);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+private:
+ void setTransparentPixel(jint);
+ JArray< jint > * createColorMap(jint, jint);
+ jint __attribute__((aligned(__alignof__( ::java::awt::image::ColorModel)))) map_size;
+ jboolean opaque;
+ jint trans;
+ JArray< jint > * rgb;
+ ::java::math::BigInteger * validBits;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_IndexColorModel__
diff --git a/gcc-4.8/libjava/java/awt/image/Kernel.h b/gcc-4.8/libjava/java/awt/image/Kernel.h
new file mode 100644
index 000000000..f0bacc123
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/Kernel.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_Kernel__
+#define __java_awt_image_Kernel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class Kernel;
+ }
+ }
+ }
+}
+
+class java::awt::image::Kernel : public ::java::lang::Object
+{
+
+public:
+ Kernel(jint, jint, JArray< jfloat > *);
+ virtual jint getXOrigin();
+ virtual jint getYOrigin();
+ virtual jint getWidth();
+ virtual jint getHeight();
+ virtual JArray< jfloat > * getKernelData(JArray< jfloat > *);
+ virtual ::java::lang::Object * clone();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) width;
+ jint height;
+ JArray< jfloat > * data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_Kernel__
diff --git a/gcc-4.8/libjava/java/awt/image/LookupOp.h b/gcc-4.8/libjava/java/awt/image/LookupOp.h
new file mode 100644
index 000000000..07546043f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/LookupOp.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_LookupOp__
+#define __java_awt_image_LookupOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class ColorModel;
+ class LookupOp;
+ class LookupTable;
+ class Raster;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::LookupOp : public ::java::lang::Object
+{
+
+public:
+ LookupOp(::java::awt::image::LookupTable *, ::java::awt::RenderingHints *);
+ virtual ::java::awt::image::BufferedImage * filter(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::BufferedImage *);
+ virtual ::java::awt::image::BufferedImage * createCompatibleDestImage(::java::awt::image::BufferedImage *, ::java::awt::image::ColorModel *);
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+ virtual ::java::awt::image::LookupTable * getTable();
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *);
+private:
+ ::java::awt::image::LookupTable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lut;
+ ::java::awt::RenderingHints * hints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_LookupOp__
diff --git a/gcc-4.8/libjava/java/awt/image/LookupTable.h b/gcc-4.8/libjava/java/awt/image/LookupTable.h
new file mode 100644
index 000000000..2fcd64592
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/LookupTable.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_LookupTable__
+#define __java_awt_image_LookupTable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class LookupTable;
+ }
+ }
+ }
+}
+
+class java::awt::image::LookupTable : public ::java::lang::Object
+{
+
+public: // actually protected
+ LookupTable(jint, jint);
+public:
+ virtual jint getNumComponents();
+ virtual jint getOffset();
+ virtual JArray< jint > * lookupPixel(JArray< jint > *, JArray< jint > *) = 0;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) offset;
+ jint numComponents;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_LookupTable__
diff --git a/gcc-4.8/libjava/java/awt/image/MemoryImageSource.h b/gcc-4.8/libjava/java/awt/image/MemoryImageSource.h
new file mode 100644
index 000000000..e717ee87c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/MemoryImageSource.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_MemoryImageSource__
+#define __java_awt_image_MemoryImageSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel;
+ class ImageConsumer;
+ class MemoryImageSource;
+ }
+ }
+ }
+}
+
+class java::awt::image::MemoryImageSource : public ::java::lang::Object
+{
+
+public:
+ MemoryImageSource(jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ MemoryImageSource(jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint, ::java::util::Hashtable *);
+ MemoryImageSource(jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+ MemoryImageSource(jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint, ::java::util::Hashtable *);
+ MemoryImageSource(jint, jint, JArray< jint > *, jint, jint, ::java::util::Hashtable *);
+ MemoryImageSource(jint, jint, JArray< jint > *, jint, jint);
+ virtual void addConsumer(::java::awt::image::ImageConsumer *);
+ virtual jboolean isConsumer(::java::awt::image::ImageConsumer *);
+ virtual void removeConsumer(::java::awt::image::ImageConsumer *);
+ virtual void startProduction(::java::awt::image::ImageConsumer *);
+ virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *);
+ virtual void setAnimated(jboolean);
+ virtual void setFullBufferUpdates(jboolean);
+ virtual void newPixels();
+private:
+ void sendPicture(::java::awt::image::ImageConsumer *);
+public:
+ virtual void newPixels(jint, jint, jint, jint);
+ virtual void newPixels(jint, jint, jint, jint, jboolean);
+ virtual void newPixels(JArray< jbyte > *, ::java::awt::image::ColorModel *, jint, jint);
+ virtual void newPixels(JArray< jint > *, ::java::awt::image::ColorModel *, jint, jint);
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) animated;
+ jboolean fullbuffers;
+ JArray< jint > * pixeli;
+ jint width;
+ jint height;
+ jint offset;
+ jint scansize;
+ JArray< jbyte > * pixelb;
+ ::java::awt::image::ColorModel * cm;
+ ::java::util::Hashtable * props;
+ ::java::util::Vector * consumers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_MemoryImageSource__
diff --git a/gcc-4.8/libjava/java/awt/image/MultiPixelPackedSampleModel.h b/gcc-4.8/libjava/java/awt/image/MultiPixelPackedSampleModel.h
new file mode 100644
index 000000000..377ceaf1e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/MultiPixelPackedSampleModel.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_MultiPixelPackedSampleModel__
+#define __java_awt_image_MultiPixelPackedSampleModel__
+
+#pragma interface
+
+#include <java/awt/image/SampleModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBuffer;
+ class MultiPixelPackedSampleModel;
+ class SampleModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::MultiPixelPackedSampleModel : public ::java::awt::image::SampleModel
+{
+
+public:
+ MultiPixelPackedSampleModel(jint, jint, jint, jint);
+ MultiPixelPackedSampleModel(jint, jint, jint, jint, jint, jint);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual ::java::awt::image::DataBuffer * createDataBuffer();
+ virtual jint getNumDataElements();
+ virtual JArray< jint > * getSampleSize();
+ virtual jint getSampleSize(jint);
+ virtual jint getOffset(jint, jint);
+ virtual jint getBitOffset(jint);
+ virtual jint getDataBitOffset();
+ virtual jint getScanlineStride();
+ virtual jint getPixelBitStride();
+ virtual jint getTransferType();
+ virtual ::java::awt::image::SampleModel * createSubsetSampleModel(JArray< jint > *);
+ virtual ::java::lang::Object * getDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual jint getSample(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual void setDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual void setPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setSample(jint, jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::awt::image::SampleModel)))) scanlineStride;
+ JArray< jint > * bitMasks;
+ JArray< jint > * bitOffsets;
+ JArray< jint > * sampleSize;
+ jint dataBitOffset;
+ jint elemBits;
+ jint numberOfBits;
+ jint numElems;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_MultiPixelPackedSampleModel__
diff --git a/gcc-4.8/libjava/java/awt/image/PackedColorModel.h b/gcc-4.8/libjava/java/awt/image/PackedColorModel.h
new file mode 100644
index 000000000..2d98aa9e8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/PackedColorModel.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_PackedColorModel__
+#define __java_awt_image_PackedColorModel__
+
+#pragma interface
+
+#include <java/awt/image/ColorModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace color
+ {
+ class ColorSpace;
+ }
+ namespace image
+ {
+ class PackedColorModel;
+ class SampleModel;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::PackedColorModel : public ::java::awt::image::ColorModel
+{
+
+public:
+ PackedColorModel(::java::awt::color::ColorSpace *, jint, JArray< jint > *, jint, jboolean, jint, jint);
+private:
+ static JArray< jint > * calcBitsPerComponent(JArray< jint > *, jint);
+ void initMasks(JArray< jint > *, jint);
+public:
+ PackedColorModel(::java::awt::color::ColorSpace *, jint, jint, jint, jint, jint, jboolean, jint, jint);
+private:
+ static JArray< jint > * makeColorMaskArray(jint, jint, jint);
+public:
+ virtual jint getMask(jint);
+ virtual JArray< jint > * getMasks();
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual jboolean isCompatibleSampleModel(::java::awt::image::SampleModel *);
+ virtual ::java::awt::image::WritableRaster * getAlphaRaster(::java::awt::image::WritableRaster *);
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::awt::image::ColorModel)))) masks;
+public: // actually package-private
+ JArray< jint > * shifts;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_PackedColorModel__
diff --git a/gcc-4.8/libjava/java/awt/image/PixelGrabber$1.h b/gcc-4.8/libjava/java/awt/image/PixelGrabber$1.h
new file mode 100644
index 000000000..e6271042c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/PixelGrabber$1.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_PixelGrabber$1__
+#define __java_awt_image_PixelGrabber$1__
+
+#pragma interface
+
+#include <java/lang/Thread.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class PixelGrabber;
+ class PixelGrabber$1;
+ }
+ }
+ }
+}
+
+class java::awt::image::PixelGrabber$1 : public ::java::lang::Thread
+{
+
+public: // actually package-private
+ PixelGrabber$1(::java::awt::image::PixelGrabber *);
+public:
+ virtual void run();
+public: // actually package-private
+ ::java::awt::image::PixelGrabber * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_PixelGrabber$1__
diff --git a/gcc-4.8/libjava/java/awt/image/PixelGrabber.h b/gcc-4.8/libjava/java/awt/image/PixelGrabber.h
new file mode 100644
index 000000000..f530f3431
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/PixelGrabber.h
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_PixelGrabber__
+#define __java_awt_image_PixelGrabber__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ namespace image
+ {
+ class ColorModel;
+ class ImageProducer;
+ class PixelGrabber;
+ }
+ }
+ }
+}
+
+class java::awt::image::PixelGrabber : public ::java::lang::Object
+{
+
+public:
+ PixelGrabber(::java::awt::Image *, jint, jint, jint, jint, JArray< jint > *, jint, jint);
+ PixelGrabber(::java::awt::image::ImageProducer *, jint, jint, jint, jint, JArray< jint > *, jint, jint);
+ PixelGrabber(::java::awt::Image *, jint, jint, jint, jint, jboolean);
+ virtual void startGrabbing();
+ virtual void abortGrabbing();
+ virtual jboolean grabPixels();
+ virtual jboolean grabPixels(jlong);
+private:
+ jboolean setObserverStatus();
+public:
+ virtual jint getStatus();
+ virtual jint getWidth();
+ virtual jint getHeight();
+ virtual ::java::lang::Object * getPixels();
+ virtual ::java::awt::image::ColorModel * getColorModel();
+ virtual void setDimensions(jint, jint);
+ virtual void setProperties(::java::util::Hashtable *);
+ virtual void setColorModel(::java::awt::image::ColorModel *);
+ virtual void setHints(jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+ virtual void imageComplete(jint);
+ virtual jint status();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) x;
+ jint y;
+ jint offset;
+ jint width;
+ jint height;
+ jint scansize;
+ jboolean forceRGB;
+ ::java::awt::image::ColorModel * model;
+ jint hints;
+ ::java::util::Hashtable * props;
+ JArray< jint > * int_pixel_buffer;
+ jboolean ints_delivered;
+ JArray< jbyte > * byte_pixel_buffer;
+ jboolean bytes_delivered;
+ ::java::awt::image::ImageProducer * ip;
+ jint observerStatus;
+ jint consumerStatus;
+private:
+ ::java::lang::Thread * grabberThread;
+public: // actually package-private
+ jboolean grabbing;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_PixelGrabber__
diff --git a/gcc-4.8/libjava/java/awt/image/PixelInterleavedSampleModel.h b/gcc-4.8/libjava/java/awt/image/PixelInterleavedSampleModel.h
new file mode 100644
index 000000000..42ba58217
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/PixelInterleavedSampleModel.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_PixelInterleavedSampleModel__
+#define __java_awt_image_PixelInterleavedSampleModel__
+
+#pragma interface
+
+#include <java/awt/image/ComponentSampleModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class PixelInterleavedSampleModel;
+ class SampleModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::PixelInterleavedSampleModel : public ::java::awt::image::ComponentSampleModel
+{
+
+public:
+ PixelInterleavedSampleModel(jint, jint, jint, jint, jint, JArray< jint > *);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual ::java::awt::image::SampleModel * createSubsetSampleModel(JArray< jint > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_PixelInterleavedSampleModel__
diff --git a/gcc-4.8/libjava/java/awt/image/RGBImageFilter.h b/gcc-4.8/libjava/java/awt/image/RGBImageFilter.h
new file mode 100644
index 000000000..34aea655f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/RGBImageFilter.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_RGBImageFilter__
+#define __java_awt_image_RGBImageFilter__
+
+#pragma interface
+
+#include <java/awt/image/ImageFilter.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel;
+ class IndexColorModel;
+ class RGBImageFilter;
+ }
+ }
+ }
+}
+
+class java::awt::image::RGBImageFilter : public ::java::awt::image::ImageFilter
+{
+
+public:
+ RGBImageFilter();
+ virtual void setColorModel(::java::awt::image::ColorModel *);
+ virtual void substituteColorModel(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *);
+ virtual ::java::awt::image::IndexColorModel * filterIndexColorModel(::java::awt::image::IndexColorModel *);
+ virtual void filterRGBPixels(jint, jint, jint, jint, JArray< jint > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+ virtual jint filterRGB(jint, jint, jint) = 0;
+public: // actually protected
+ ::java::awt::image::ColorModel * __attribute__((aligned(__alignof__( ::java::awt::image::ImageFilter)))) origmodel;
+ ::java::awt::image::ColorModel * newmodel;
+ jboolean canFilterIndexColorModel;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_RGBImageFilter__
diff --git a/gcc-4.8/libjava/java/awt/image/Raster.h b/gcc-4.8/libjava/java/awt/image/Raster.h
new file mode 100644
index 000000000..2c187d5af
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/Raster.h
@@ -0,0 +1,104 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_Raster__
+#define __java_awt_image_Raster__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ class Rectangle;
+ namespace image
+ {
+ class DataBuffer;
+ class Raster;
+ class SampleModel;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::Raster : public ::java::lang::Object
+{
+
+public: // actually protected
+ Raster(::java::awt::image::SampleModel *, ::java::awt::Point *);
+ Raster(::java::awt::image::SampleModel *, ::java::awt::image::DataBuffer *, ::java::awt::Point *);
+ Raster(::java::awt::image::SampleModel *, ::java::awt::image::DataBuffer *, ::java::awt::Rectangle *, ::java::awt::Point *, ::java::awt::image::Raster *);
+public:
+ static ::java::awt::image::WritableRaster * createInterleavedRaster(jint, jint, jint, jint, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createInterleavedRaster(jint, jint, jint, jint, jint, JArray< jint > *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createBandedRaster(jint, jint, jint, jint, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createBandedRaster(jint, jint, jint, jint, JArray< jint > *, JArray< jint > *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createPackedRaster(jint, jint, jint, JArray< jint > *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createPackedRaster(jint, jint, jint, jint, jint, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createInterleavedRaster(::java::awt::image::DataBuffer *, jint, jint, jint, jint, JArray< jint > *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createBandedRaster(::java::awt::image::DataBuffer *, jint, jint, jint, JArray< jint > *, JArray< jint > *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createPackedRaster(::java::awt::image::DataBuffer *, jint, jint, jint, JArray< jint > *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createPackedRaster(::java::awt::image::DataBuffer *, jint, jint, jint, ::java::awt::Point *);
+ static ::java::awt::image::Raster * createRaster(::java::awt::image::SampleModel *, ::java::awt::image::DataBuffer *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createWritableRaster(::java::awt::image::SampleModel *, ::java::awt::Point *);
+ static ::java::awt::image::WritableRaster * createWritableRaster(::java::awt::image::SampleModel *, ::java::awt::image::DataBuffer *, ::java::awt::Point *);
+ virtual ::java::awt::image::Raster * getParent();
+ virtual jint getSampleModelTranslateX();
+ virtual jint getSampleModelTranslateY();
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster();
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster(jint, jint);
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster(::java::awt::Rectangle *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleWritableRaster(jint, jint, jint, jint);
+ virtual ::java::awt::image::Raster * createTranslatedChild(jint, jint);
+ virtual ::java::awt::image::Raster * createChild(jint, jint, jint, jint, jint, jint, JArray< jint > *);
+ virtual ::java::awt::Rectangle * getBounds();
+ virtual jint getMinX();
+ virtual jint getMinY();
+ virtual jint getWidth();
+ virtual jint getHeight();
+ virtual jint getNumBands();
+ virtual jint getNumDataElements();
+ virtual jint getTransferType();
+ virtual ::java::awt::image::DataBuffer * getDataBuffer();
+ virtual ::java::awt::image::SampleModel * getSampleModel();
+ virtual ::java::lang::Object * getDataElements(jint, jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * getDataElements(jint, jint, jint, jint, ::java::lang::Object *);
+ virtual JArray< jint > * getPixel(jint, jint, JArray< jint > *);
+ virtual JArray< jfloat > * getPixel(jint, jint, JArray< jfloat > *);
+ virtual JArray< jdouble > * getPixel(jint, jint, JArray< jdouble > *);
+ virtual JArray< jint > * getPixels(jint, jint, jint, jint, JArray< jint > *);
+ virtual JArray< jfloat > * getPixels(jint, jint, jint, jint, JArray< jfloat > *);
+ virtual JArray< jdouble > * getPixels(jint, jint, jint, jint, JArray< jdouble > *);
+ virtual jint getSample(jint, jint, jint);
+ virtual jfloat getSampleFloat(jint, jint, jint);
+ virtual jdouble getSampleDouble(jint, jint, jint);
+ virtual JArray< jint > * getSamples(jint, jint, jint, jint, jint, JArray< jint > *);
+ virtual JArray< jfloat > * getSamples(jint, jint, jint, jint, jint, JArray< jfloat > *);
+ virtual JArray< jdouble > * getSamples(jint, jint, jint, jint, jint, JArray< jdouble > *);
+ virtual ::java::lang::String * toString();
+private:
+ static jint getTypeBits(jint);
+public: // actually protected
+ ::java::awt::image::SampleModel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sampleModel;
+ ::java::awt::image::DataBuffer * dataBuffer;
+ jint minX;
+ jint minY;
+ jint width;
+ jint height;
+ jint sampleModelTranslateX;
+ jint sampleModelTranslateY;
+ jint numBands;
+ jint numDataElements;
+ ::java::awt::image::Raster * parent;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_Raster__
diff --git a/gcc-4.8/libjava/java/awt/image/RasterFormatException.h b/gcc-4.8/libjava/java/awt/image/RasterFormatException.h
new file mode 100644
index 000000000..acfe3941c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/RasterFormatException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_RasterFormatException__
+#define __java_awt_image_RasterFormatException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class RasterFormatException;
+ }
+ }
+ }
+}
+
+class java::awt::image::RasterFormatException : public ::java::lang::RuntimeException
+{
+
+public:
+ RasterFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 96598996116164315LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_RasterFormatException__
diff --git a/gcc-4.8/libjava/java/awt/image/RasterOp.h b/gcc-4.8/libjava/java/awt/image/RasterOp.h
new file mode 100644
index 000000000..a54b9b022
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/RasterOp.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_RasterOp__
+#define __java_awt_image_RasterOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class Raster;
+ class RasterOp;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::RasterOp : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *) = 0;
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *) = 0;
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *) = 0;
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *) = 0;
+ virtual ::java::awt::RenderingHints * getRenderingHints() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_RasterOp__
diff --git a/gcc-4.8/libjava/java/awt/image/RenderedImage.h b/gcc-4.8/libjava/java/awt/image/RenderedImage.h
new file mode 100644
index 000000000..f47ca93cc
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/RenderedImage.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_RenderedImage__
+#define __java_awt_image_RenderedImage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace image
+ {
+ class ColorModel;
+ class Raster;
+ class RenderedImage;
+ class SampleModel;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::RenderedImage : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Vector * getSources() = 0;
+ virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0;
+ virtual JArray< ::java::lang::String * > * getPropertyNames() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::image::SampleModel * getSampleModel() = 0;
+ virtual jint getWidth() = 0;
+ virtual jint getHeight() = 0;
+ virtual jint getMinX() = 0;
+ virtual jint getMinY() = 0;
+ virtual jint getNumXTiles() = 0;
+ virtual jint getNumYTiles() = 0;
+ virtual jint getMinTileX() = 0;
+ virtual jint getMinTileY() = 0;
+ virtual jint getTileWidth() = 0;
+ virtual jint getTileHeight() = 0;
+ virtual jint getTileGridXOffset() = 0;
+ virtual jint getTileGridYOffset() = 0;
+ virtual ::java::awt::image::Raster * getTile(jint, jint) = 0;
+ virtual ::java::awt::image::Raster * getData() = 0;
+ virtual ::java::awt::image::Raster * getData(::java::awt::Rectangle *) = 0;
+ virtual ::java::awt::image::WritableRaster * copyData(::java::awt::image::WritableRaster *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_RenderedImage__
diff --git a/gcc-4.8/libjava/java/awt/image/ReplicateScaleFilter.h b/gcc-4.8/libjava/java/awt/image/ReplicateScaleFilter.h
new file mode 100644
index 000000000..d518d793f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ReplicateScaleFilter.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ReplicateScaleFilter__
+#define __java_awt_image_ReplicateScaleFilter__
+
+#pragma interface
+
+#include <java/awt/image/ImageFilter.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ColorModel;
+ class ReplicateScaleFilter;
+ }
+ }
+ }
+}
+
+class java::awt::image::ReplicateScaleFilter : public ::java::awt::image::ImageFilter
+{
+
+public:
+ ReplicateScaleFilter(jint, jint);
+ virtual void setDimensions(jint, jint);
+ virtual void setProperties(::java::util::Hashtable *);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+ virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+private:
+ void setupSources();
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::awt::image::ImageFilter)))) destHeight;
+ jint destWidth;
+ jint srcHeight;
+ jint srcWidth;
+ JArray< jint > * srcrows;
+ JArray< jint > * srccols;
+ ::java::lang::Object * outpixbuf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ReplicateScaleFilter__
diff --git a/gcc-4.8/libjava/java/awt/image/RescaleOp.h b/gcc-4.8/libjava/java/awt/image/RescaleOp.h
new file mode 100644
index 000000000..ba67ec9fc
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/RescaleOp.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_RescaleOp__
+#define __java_awt_image_RescaleOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Point2D;
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class BufferedImage;
+ class ColorModel;
+ class Raster;
+ class RescaleOp;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::RescaleOp : public ::java::lang::Object
+{
+
+public:
+ RescaleOp(JArray< jfloat > *, JArray< jfloat > *, ::java::awt::RenderingHints *);
+ RescaleOp(jfloat, jfloat, ::java::awt::RenderingHints *);
+ virtual JArray< jfloat > * getScaleFactors(JArray< jfloat > *);
+ virtual JArray< jfloat > * getOffsets(JArray< jfloat > *);
+ virtual jint getNumFactors();
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual ::java::awt::image::BufferedImage * filter(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImage *);
+ virtual ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *);
+private:
+ ::java::awt::image::WritableRaster * filter(::java::awt::image::Raster *, ::java::awt::image::WritableRaster *, JArray< jboolean > *);
+public:
+ virtual ::java::awt::image::BufferedImage * createCompatibleDestImage(::java::awt::image::BufferedImage *, ::java::awt::image::ColorModel *);
+ virtual ::java::awt::image::WritableRaster * createCompatibleDestRaster(::java::awt::image::Raster *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::BufferedImage *);
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::Raster *);
+ virtual ::java::awt::geom::Point2D * getPoint2D(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
+private:
+ JArray< jfloat > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) scale;
+ JArray< jfloat > * offsets;
+ ::java::awt::RenderingHints * hints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_RescaleOp__
diff --git a/gcc-4.8/libjava/java/awt/image/SampleModel.h b/gcc-4.8/libjava/java/awt/image/SampleModel.h
new file mode 100644
index 000000000..5d51a65d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/SampleModel.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_SampleModel__
+#define __java_awt_image_SampleModel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBuffer;
+ class SampleModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::SampleModel : public ::java::lang::Object
+{
+
+public:
+ SampleModel(jint, jint, jint, jint);
+ virtual jint getWidth();
+ virtual jint getHeight();
+ virtual jint getNumBands();
+ virtual jint getNumDataElements() = 0;
+ virtual jint getDataType();
+ virtual jint getTransferType();
+ virtual JArray< jint > * getPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual ::java::lang::Object * getDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *) = 0;
+ virtual ::java::lang::Object * getDataElements(jint, jint, jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual void setDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *) = 0;
+ virtual void setDataElements(jint, jint, jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jfloat > * getPixel(jint, jint, JArray< jfloat > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jdouble > * getPixel(jint, jint, JArray< jdouble > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jfloat > * getPixels(jint, jint, jint, jint, JArray< jfloat > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jdouble > * getPixels(jint, jint, jint, jint, JArray< jdouble > *, ::java::awt::image::DataBuffer *);
+ virtual jint getSample(jint, jint, jint, ::java::awt::image::DataBuffer *) = 0;
+ virtual jfloat getSampleFloat(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual jdouble getSampleDouble(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getSamples(jint, jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jfloat > * getSamples(jint, jint, jint, jint, jint, JArray< jfloat > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jdouble > * getSamples(jint, jint, jint, jint, jint, JArray< jdouble > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixel(jint, jint, JArray< jfloat > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixel(jint, jint, JArray< jdouble > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jfloat > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jdouble > *, ::java::awt::image::DataBuffer *);
+ virtual void setSample(jint, jint, jint, jint, ::java::awt::image::DataBuffer *) = 0;
+ virtual void setSample(jint, jint, jint, jfloat, ::java::awt::image::DataBuffer *);
+ virtual void setSample(jint, jint, jint, jdouble, ::java::awt::image::DataBuffer *);
+ virtual void setSamples(jint, jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setSamples(jint, jint, jint, jint, jint, JArray< jfloat > *, ::java::awt::image::DataBuffer *);
+ virtual void setSamples(jint, jint, jint, jint, jint, JArray< jdouble > *, ::java::awt::image::DataBuffer *);
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint) = 0;
+ virtual ::java::awt::image::SampleModel * createSubsetSampleModel(JArray< jint > *) = 0;
+ virtual ::java::awt::image::DataBuffer * createDataBuffer() = 0;
+ virtual JArray< jint > * getSampleSize() = 0;
+ virtual jint getSampleSize(jint) = 0;
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) width;
+ jint height;
+ jint numBands;
+ jint dataType;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_SampleModel__
diff --git a/gcc-4.8/libjava/java/awt/image/ShortLookupTable.h b/gcc-4.8/libjava/java/awt/image/ShortLookupTable.h
new file mode 100644
index 000000000..053331b06
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/ShortLookupTable.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_ShortLookupTable__
+#define __java_awt_image_ShortLookupTable__
+
+#pragma interface
+
+#include <java/awt/image/LookupTable.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ShortLookupTable;
+ }
+ }
+ }
+}
+
+class java::awt::image::ShortLookupTable : public ::java::awt::image::LookupTable
+{
+
+public:
+ ShortLookupTable(jint, JArray< JArray< jshort > * > *);
+ ShortLookupTable(jint, JArray< jshort > *);
+ virtual JArray< JArray< jshort > * > * getTable();
+ virtual JArray< jint > * lookupPixel(JArray< jint > *, JArray< jint > *);
+ virtual JArray< jshort > * lookupPixel(JArray< jshort > *, JArray< jshort > *);
+private:
+ JArray< JArray< jshort > * > * __attribute__((aligned(__alignof__( ::java::awt::image::LookupTable)))) data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_ShortLookupTable__
diff --git a/gcc-4.8/libjava/java/awt/image/SinglePixelPackedSampleModel.h b/gcc-4.8/libjava/java/awt/image/SinglePixelPackedSampleModel.h
new file mode 100644
index 000000000..c7bf07cd4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/SinglePixelPackedSampleModel.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_SinglePixelPackedSampleModel__
+#define __java_awt_image_SinglePixelPackedSampleModel__
+
+#pragma interface
+
+#include <java/awt/image/SampleModel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class DataBuffer;
+ class SampleModel;
+ class SinglePixelPackedSampleModel;
+ }
+ }
+ }
+}
+
+class java::awt::image::SinglePixelPackedSampleModel : public ::java::awt::image::SampleModel
+{
+
+public:
+ SinglePixelPackedSampleModel(jint, jint, jint, JArray< jint > *);
+ SinglePixelPackedSampleModel(jint, jint, jint, jint, JArray< jint > *);
+ virtual jint getNumDataElements();
+ virtual ::java::awt::image::SampleModel * createCompatibleSampleModel(jint, jint);
+ virtual ::java::awt::image::DataBuffer * createDataBuffer();
+ virtual JArray< jint > * getSampleSize();
+ virtual jint getSampleSize(jint);
+ virtual jint getOffset(jint, jint);
+ virtual JArray< jint > * getBitOffsets();
+ virtual JArray< jint > * getBitMasks();
+ virtual jint getScanlineStride();
+ virtual ::java::awt::image::SampleModel * createSubsetSampleModel(JArray< jint > *);
+ virtual ::java::lang::Object * getDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual JArray< jint > * getPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual jint getSample(jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual void setDataElements(jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
+ virtual void setPixel(jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jint > *, ::java::awt::image::DataBuffer *);
+ virtual void setSample(jint, jint, jint, jint, ::java::awt::image::DataBuffer *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::awt::image::SampleModel)))) scanlineStride;
+ JArray< jint > * bitMasks;
+ JArray< jint > * bitOffsets;
+ JArray< jint > * sampleSize;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_SinglePixelPackedSampleModel__
diff --git a/gcc-4.8/libjava/java/awt/image/TileObserver.h b/gcc-4.8/libjava/java/awt/image/TileObserver.h
new file mode 100644
index 000000000..9f7d0a1a4
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/TileObserver.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_TileObserver__
+#define __java_awt_image_TileObserver__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class TileObserver;
+ class WritableRenderedImage;
+ }
+ }
+ }
+}
+
+class java::awt::image::TileObserver : public ::java::lang::Object
+{
+
+public:
+ virtual void tileUpdate(::java::awt::image::WritableRenderedImage *, jint, jint, jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_TileObserver__
diff --git a/gcc-4.8/libjava/java/awt/image/VolatileImage.h b/gcc-4.8/libjava/java/awt/image/VolatileImage.h
new file mode 100644
index 000000000..ed2892863
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/VolatileImage.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_VolatileImage__
+#define __java_awt_image_VolatileImage__
+
+#pragma interface
+
+#include <java/awt/Image.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics;
+ class Graphics2D;
+ class GraphicsConfiguration;
+ class ImageCapabilities;
+ namespace image
+ {
+ class BufferedImage;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ }
+ }
+}
+
+class java::awt::image::VolatileImage : public ::java::awt::Image
+{
+
+public:
+ VolatileImage();
+ virtual ::java::awt::image::BufferedImage * getSnapshot() = 0;
+ virtual jint getWidth() = 0;
+ virtual jint getHeight() = 0;
+ virtual ::java::awt::image::ImageProducer * getSource();
+ virtual void flush();
+ virtual ::java::awt::Graphics * getGraphics();
+ virtual ::java::awt::Graphics2D * createGraphics() = 0;
+ virtual jint validate(::java::awt::GraphicsConfiguration *) = 0;
+ virtual jboolean contentsLost() = 0;
+ virtual ::java::awt::ImageCapabilities * getCapabilities() = 0;
+ virtual jint getTransparency();
+ static const jint IMAGE_OK = 0;
+ static const jint IMAGE_RESTORED = 1;
+ static const jint IMAGE_INCOMPATIBLE = 2;
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::awt::Image)))) transparency;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_VolatileImage__
diff --git a/gcc-4.8/libjava/java/awt/image/WritableRaster.h b/gcc-4.8/libjava/java/awt/image/WritableRaster.h
new file mode 100644
index 000000000..5db229c33
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/WritableRaster.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_WritableRaster__
+#define __java_awt_image_WritableRaster__
+
+#pragma interface
+
+#include <java/awt/image/Raster.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ class Rectangle;
+ namespace image
+ {
+ class DataBuffer;
+ class Raster;
+ class SampleModel;
+ class WritableRaster;
+ }
+ }
+ }
+}
+
+class java::awt::image::WritableRaster : public ::java::awt::image::Raster
+{
+
+public: // actually protected
+ WritableRaster(::java::awt::image::SampleModel *, ::java::awt::Point *);
+ WritableRaster(::java::awt::image::SampleModel *, ::java::awt::image::DataBuffer *, ::java::awt::Point *);
+ WritableRaster(::java::awt::image::SampleModel *, ::java::awt::image::DataBuffer *, ::java::awt::Rectangle *, ::java::awt::Point *, ::java::awt::image::WritableRaster *);
+public:
+ virtual ::java::awt::image::WritableRaster * getWritableParent();
+ virtual ::java::awt::image::WritableRaster * createWritableTranslatedChild(jint, jint);
+ virtual ::java::awt::image::WritableRaster * createWritableChild(jint, jint, jint, jint, jint, jint, JArray< jint > *);
+ virtual ::java::awt::image::Raster * createChild(jint, jint, jint, jint, jint, jint, JArray< jint > *);
+ virtual void setDataElements(jint, jint, ::java::lang::Object *);
+ virtual void setDataElements(jint, jint, ::java::awt::image::Raster *);
+ virtual void setDataElements(jint, jint, jint, jint, ::java::lang::Object *);
+ virtual void setRect(::java::awt::image::Raster *);
+ virtual void setRect(jint, jint, ::java::awt::image::Raster *);
+ virtual void setPixel(jint, jint, JArray< jint > *);
+ virtual void setPixel(jint, jint, JArray< jfloat > *);
+ virtual void setPixel(jint, jint, JArray< jdouble > *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jint > *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jfloat > *);
+ virtual void setPixels(jint, jint, jint, jint, JArray< jdouble > *);
+ virtual void setSample(jint, jint, jint, jint);
+ virtual void setSample(jint, jint, jint, jfloat);
+ virtual void setSample(jint, jint, jint, jdouble);
+ virtual void setSamples(jint, jint, jint, jint, jint, JArray< jint > *);
+ virtual void setSamples(jint, jint, jint, jint, jint, JArray< jfloat > *);
+ virtual void setSamples(jint, jint, jint, jint, jint, JArray< jdouble > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_WritableRaster__
diff --git a/gcc-4.8/libjava/java/awt/image/WritableRenderedImage.h b/gcc-4.8/libjava/java/awt/image/WritableRenderedImage.h
new file mode 100644
index 000000000..f9b248123
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/WritableRenderedImage.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_WritableRenderedImage__
+#define __java_awt_image_WritableRenderedImage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ class Rectangle;
+ namespace image
+ {
+ class ColorModel;
+ class Raster;
+ class SampleModel;
+ class TileObserver;
+ class WritableRaster;
+ class WritableRenderedImage;
+ }
+ }
+ }
+}
+
+class java::awt::image::WritableRenderedImage : public ::java::lang::Object
+{
+
+public:
+ virtual void addTileObserver(::java::awt::image::TileObserver *) = 0;
+ virtual void removeTileObserver(::java::awt::image::TileObserver *) = 0;
+ virtual ::java::awt::image::WritableRaster * getWritableTile(jint, jint) = 0;
+ virtual void releaseWritableTile(jint, jint) = 0;
+ virtual jboolean isTileWritable(jint, jint) = 0;
+ virtual JArray< ::java::awt::Point * > * getWritableTileIndices() = 0;
+ virtual jboolean hasTileWriters() = 0;
+ virtual void setData(::java::awt::image::Raster *) = 0;
+ virtual ::java::util::Vector * getSources() = 0;
+ virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0;
+ virtual JArray< ::java::lang::String * > * getPropertyNames() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::image::SampleModel * getSampleModel() = 0;
+ virtual jint getWidth() = 0;
+ virtual jint getHeight() = 0;
+ virtual jint getMinX() = 0;
+ virtual jint getMinY() = 0;
+ virtual jint getNumXTiles() = 0;
+ virtual jint getNumYTiles() = 0;
+ virtual jint getMinTileX() = 0;
+ virtual jint getMinTileY() = 0;
+ virtual jint getTileWidth() = 0;
+ virtual jint getTileHeight() = 0;
+ virtual jint getTileGridXOffset() = 0;
+ virtual jint getTileGridYOffset() = 0;
+ virtual ::java::awt::image::Raster * getTile(jint, jint) = 0;
+ virtual ::java::awt::image::Raster * getData() = 0;
+ virtual ::java::awt::image::Raster * getData(::java::awt::Rectangle *) = 0;
+ virtual ::java::awt::image::WritableRaster * copyData(::java::awt::image::WritableRaster *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_WritableRenderedImage__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h b/gcc-4.8/libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h
new file mode 100644
index 000000000..d7ac12972
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_ContextualRenderedImageFactory__
+#define __java_awt_image_renderable_ContextualRenderedImageFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace geom
+ {
+ class Rectangle2D;
+ }
+ namespace image
+ {
+ class RenderedImage;
+ namespace renderable
+ {
+ class ContextualRenderedImageFactory;
+ class ParameterBlock;
+ class RenderContext;
+ class RenderableImage;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::ContextualRenderedImageFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::image::renderable::RenderContext * mapRenderContext(jint, ::java::awt::image::renderable::RenderContext *, ::java::awt::image::renderable::ParameterBlock *, ::java::awt::image::renderable::RenderableImage *) = 0;
+ virtual ::java::awt::image::RenderedImage * create(::java::awt::image::renderable::RenderContext *, ::java::awt::image::renderable::ParameterBlock *) = 0;
+ virtual ::java::awt::geom::Rectangle2D * getBounds2D(::java::awt::image::renderable::ParameterBlock *) = 0;
+ virtual ::java::lang::Object * getProperty(::java::awt::image::renderable::ParameterBlock *, ::java::lang::String *) = 0;
+ virtual JArray< ::java::lang::String * > * getPropertyNames() = 0;
+ virtual jboolean isDynamic() = 0;
+ virtual ::java::awt::image::RenderedImage * create(::java::awt::image::renderable::ParameterBlock *, ::java::awt::RenderingHints *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_renderable_ContextualRenderedImageFactory__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/ParameterBlock.h b/gcc-4.8/libjava/java/awt/image/renderable/ParameterBlock.h
new file mode 100644
index 000000000..cafafbdbb
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/ParameterBlock.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_ParameterBlock__
+#define __java_awt_image_renderable_ParameterBlock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class RenderedImage;
+ namespace renderable
+ {
+ class ParameterBlock;
+ class RenderableImage;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::ParameterBlock : public ::java::lang::Object
+{
+
+public:
+ ParameterBlock();
+ ParameterBlock(::java::util::Vector *);
+ ParameterBlock(::java::util::Vector *, ::java::util::Vector *);
+ virtual ::java::lang::Object * shallowClone();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::awt::image::renderable::ParameterBlock * addSource(::java::lang::Object *);
+ virtual ::java::lang::Object * getSource(jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * setSource(::java::lang::Object *, jint);
+ virtual ::java::awt::image::RenderedImage * getRenderedSource(jint);
+ virtual ::java::awt::image::renderable::RenderableImage * getRenderableSource(jint);
+ virtual jint getNumSources();
+ virtual ::java::util::Vector * getSources();
+ virtual void setSources(::java::util::Vector *);
+ virtual void removeSources();
+ virtual jint getNumParameters();
+ virtual ::java::util::Vector * getParameters();
+ virtual void setParameters(::java::util::Vector *);
+ virtual void removeParameters();
+ virtual ::java::awt::image::renderable::ParameterBlock * add(::java::lang::Object *);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jbyte);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jchar);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jshort);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jlong);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jfloat);
+ virtual ::java::awt::image::renderable::ParameterBlock * add(jdouble);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(::java::lang::Object *, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jbyte, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jchar, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jshort, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jint, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jlong, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jfloat, jint);
+ virtual ::java::awt::image::renderable::ParameterBlock * set(jdouble, jint);
+ virtual ::java::lang::Object * getObjectParameter(jint);
+ virtual jbyte getByteParameter(jint);
+ virtual jchar getCharParameter(jint);
+ virtual jshort getShortParameter(jint);
+ virtual jint getIntParameter(jint);
+ virtual jlong getLongParameter(jint);
+ virtual jfloat getFloatParameter(jint);
+ virtual jdouble getDoubleParameter(jint);
+ virtual JArray< ::java::lang::Class * > * getParamClasses();
+private:
+ static const jlong serialVersionUID = -7577115551785240750LL;
+public: // actually protected
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sources;
+ ::java::util::Vector * parameters;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_renderable_ParameterBlock__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/RenderContext.h b/gcc-4.8/libjava/java/awt/image/renderable/RenderContext.h
new file mode 100644
index 000000000..4923ebc2d
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/RenderContext.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_RenderContext__
+#define __java_awt_image_renderable_RenderContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ class Shape;
+ namespace geom
+ {
+ class AffineTransform;
+ }
+ namespace image
+ {
+ namespace renderable
+ {
+ class RenderContext;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::RenderContext : public ::java::lang::Object
+{
+
+public:
+ RenderContext(::java::awt::geom::AffineTransform *, ::java::awt::Shape *, ::java::awt::RenderingHints *);
+ RenderContext(::java::awt::geom::AffineTransform *);
+ RenderContext(::java::awt::geom::AffineTransform *, ::java::awt::RenderingHints *);
+ RenderContext(::java::awt::geom::AffineTransform *, ::java::awt::Shape *);
+ virtual ::java::awt::RenderingHints * getRenderingHints();
+ virtual void setRenderingHints(::java::awt::RenderingHints *);
+ virtual void setTransform(::java::awt::geom::AffineTransform *);
+ virtual void preConcatenateTransform(::java::awt::geom::AffineTransform *);
+ virtual void preConcetenateTransform(::java::awt::geom::AffineTransform *);
+ virtual void concatenateTransform(::java::awt::geom::AffineTransform *);
+ virtual void concetenateTransform(::java::awt::geom::AffineTransform *);
+ virtual ::java::awt::geom::AffineTransform * getTransform();
+ virtual void setAreaOfInterest(::java::awt::Shape *);
+ virtual ::java::awt::Shape * getAreaOfInterest();
+ virtual ::java::lang::Object * clone();
+private:
+ ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::lang::Object)))) xform;
+ ::java::awt::Shape * aoi;
+ ::java::awt::RenderingHints * hints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_renderable_RenderContext__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/RenderableImage.h b/gcc-4.8/libjava/java/awt/image/renderable/RenderableImage.h
new file mode 100644
index 000000000..c7fed510a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/RenderableImage.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_RenderableImage__
+#define __java_awt_image_renderable_RenderableImage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace image
+ {
+ class RenderedImage;
+ namespace renderable
+ {
+ class RenderContext;
+ class RenderableImage;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::RenderableImage : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Vector * getSources() = 0;
+ virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0;
+ virtual JArray< ::java::lang::String * > * getPropertyNames() = 0;
+ virtual jboolean isDynamic() = 0;
+ virtual jfloat getWidth() = 0;
+ virtual jfloat getHeight() = 0;
+ virtual jfloat getMinX() = 0;
+ virtual jfloat getMinY() = 0;
+ virtual ::java::awt::image::RenderedImage * createScaledRendering(jint, jint, ::java::awt::RenderingHints *) = 0;
+ virtual ::java::awt::image::RenderedImage * createDefaultRendering() = 0;
+ virtual ::java::awt::image::RenderedImage * createRendering(::java::awt::image::renderable::RenderContext *) = 0;
+ static ::java::lang::String * HINTS_OBSERVED;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_renderable_RenderableImage__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/RenderableImageOp.h b/gcc-4.8/libjava/java/awt/image/renderable/RenderableImageOp.h
new file mode 100644
index 000000000..edc766d4e
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/RenderableImageOp.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_RenderableImageOp__
+#define __java_awt_image_renderable_RenderableImageOp__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace image
+ {
+ class RenderedImage;
+ namespace renderable
+ {
+ class ContextualRenderedImageFactory;
+ class ParameterBlock;
+ class RenderContext;
+ class RenderableImageOp;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::RenderableImageOp : public ::java::lang::Object
+{
+
+public:
+ RenderableImageOp(::java::awt::image::renderable::ContextualRenderedImageFactory *, ::java::awt::image::renderable::ParameterBlock *);
+ virtual ::java::util::Vector * getSources();
+ virtual ::java::lang::Object * getProperty(::java::lang::String *);
+ virtual JArray< ::java::lang::String * > * getPropertyNames();
+ virtual jboolean isDynamic();
+ virtual jfloat getWidth();
+ virtual jfloat getHeight();
+ virtual jfloat getMinX();
+ virtual jfloat getMinY();
+ virtual ::java::awt::image::renderable::ParameterBlock * setParameterBlock(::java::awt::image::renderable::ParameterBlock *);
+ virtual ::java::awt::image::renderable::ParameterBlock * getParameterBlock();
+ virtual ::java::awt::image::RenderedImage * createScaledRendering(jint, jint, ::java::awt::RenderingHints *);
+ virtual ::java::awt::image::RenderedImage * createDefaultRendering();
+ virtual ::java::awt::image::RenderedImage * createRendering(::java::awt::image::renderable::RenderContext *);
+private:
+ ::java::awt::image::renderable::ContextualRenderedImageFactory * __attribute__((aligned(__alignof__( ::java::lang::Object)))) crif;
+ ::java::awt::image::renderable::ParameterBlock * block;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_renderable_RenderableImageOp__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/RenderableImageProducer.h b/gcc-4.8/libjava/java/awt/image/renderable/RenderableImageProducer.h
new file mode 100644
index 000000000..4e1968fb8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/RenderableImageProducer.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_RenderableImageProducer__
+#define __java_awt_image_renderable_RenderableImageProducer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace image
+ {
+ class ImageConsumer;
+ namespace renderable
+ {
+ class RenderContext;
+ class RenderableImage;
+ class RenderableImageProducer;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::RenderableImageProducer : public ::java::lang::Object
+{
+
+public:
+ RenderableImageProducer(::java::awt::image::renderable::RenderableImage *, ::java::awt::image::renderable::RenderContext *);
+ virtual void setRenderContext(::java::awt::image::renderable::RenderContext *);
+ virtual void addConsumer(::java::awt::image::ImageConsumer *);
+ virtual jboolean isConsumer(::java::awt::image::ImageConsumer *);
+ virtual void removeConsumer(::java::awt::image::ImageConsumer *);
+ virtual void startProduction(::java::awt::image::ImageConsumer *);
+ virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *);
+ virtual void run();
+private:
+ ::java::awt::image::renderable::RenderableImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image;
+ ::java::awt::image::renderable::RenderContext * context;
+ ::java::util::ArrayList * consumers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_image_renderable_RenderableImageProducer__
diff --git a/gcc-4.8/libjava/java/awt/image/renderable/RenderedImageFactory.h b/gcc-4.8/libjava/java/awt/image/renderable/RenderedImageFactory.h
new file mode 100644
index 000000000..3e2eb9349
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/image/renderable/RenderedImageFactory.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_image_renderable_RenderedImageFactory__
+#define __java_awt_image_renderable_RenderedImageFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class RenderingHints;
+ namespace image
+ {
+ class RenderedImage;
+ namespace renderable
+ {
+ class ParameterBlock;
+ class RenderedImageFactory;
+ }
+ }
+ }
+ }
+}
+
+class java::awt::image::renderable::RenderedImageFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::image::RenderedImage * create(::java::awt::image::renderable::ParameterBlock *, ::java::awt::RenderingHints *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_image_renderable_RenderedImageFactory__
diff --git a/gcc-4.8/libjava/java/awt/peer/ButtonPeer.h b/gcc-4.8/libjava/java/awt/peer/ButtonPeer.h
new file mode 100644
index 000000000..781fd0e6f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ButtonPeer.h
@@ -0,0 +1,118 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ButtonPeer__
+#define __java_awt_peer_ButtonPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ButtonPeer;
+ class ContainerPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ButtonPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setLabel(::java::lang::String *) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ButtonPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/CanvasPeer.h b/gcc-4.8/libjava/java/awt/peer/CanvasPeer.h
new file mode 100644
index 000000000..2f9ba7c13
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/CanvasPeer.h
@@ -0,0 +1,117 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_CanvasPeer__
+#define __java_awt_peer_CanvasPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class CanvasPeer;
+ class ContainerPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::CanvasPeer : public ::java::lang::Object
+{
+
+public:
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_CanvasPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/CheckboxMenuItemPeer.h b/gcc-4.8/libjava/java/awt/peer/CheckboxMenuItemPeer.h
new file mode 100644
index 000000000..84a5ba9ae
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/CheckboxMenuItemPeer.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_CheckboxMenuItemPeer__
+#define __java_awt_peer_CheckboxMenuItemPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ namespace peer
+ {
+ class CheckboxMenuItemPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::CheckboxMenuItemPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setState(jboolean) = 0;
+ virtual void disable() = 0;
+ virtual void enable() = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setLabel(::java::lang::String *) = 0;
+ virtual void dispose() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_CheckboxMenuItemPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/CheckboxPeer.h b/gcc-4.8/libjava/java/awt/peer/CheckboxPeer.h
new file mode 100644
index 000000000..72e05ee20
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/CheckboxPeer.h
@@ -0,0 +1,121 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_CheckboxPeer__
+#define __java_awt_peer_CheckboxPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class CheckboxGroup;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class CheckboxPeer;
+ class ContainerPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::CheckboxPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setCheckboxGroup(::java::awt::CheckboxGroup *) = 0;
+ virtual void setLabel(::java::lang::String *) = 0;
+ virtual void setState(jboolean) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_CheckboxPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/ChoicePeer.h b/gcc-4.8/libjava/java/awt/peer/ChoicePeer.h
new file mode 100644
index 000000000..9a152d693
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ChoicePeer.h
@@ -0,0 +1,122 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ChoicePeer__
+#define __java_awt_peer_ChoicePeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ChoicePeer;
+ class ContainerPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ChoicePeer : public ::java::lang::Object
+{
+
+public:
+ virtual void add(::java::lang::String *, jint) = 0;
+ virtual void addItem(::java::lang::String *, jint) = 0;
+ virtual void remove(jint) = 0;
+ virtual void removeAll() = 0;
+ virtual void select(jint) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ChoicePeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/ComponentPeer.h b/gcc-4.8/libjava/java/awt/peer/ComponentPeer.h
new file mode 100644
index 000000000..5bcd8876f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ComponentPeer.h
@@ -0,0 +1,117 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ComponentPeer__
+#define __java_awt_peer_ComponentPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ComponentPeer;
+ class ContainerPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ComponentPeer : public ::java::lang::Object
+{
+
+public:
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ComponentPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/ContainerPeer.h b/gcc-4.8/libjava/java/awt/peer/ContainerPeer.h
new file mode 100644
index 000000000..d1d26a02b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ContainerPeer.h
@@ -0,0 +1,127 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ContainerPeer__
+#define __java_awt_peer_ContainerPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ContainerPeer : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ContainerPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/DesktopPeer.h b/gcc-4.8/libjava/java/awt/peer/DesktopPeer.h
new file mode 100644
index 000000000..fa5529abe
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/DesktopPeer.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_DesktopPeer__
+#define __java_awt_peer_DesktopPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Desktop$Action;
+ namespace peer
+ {
+ class DesktopPeer;
+ }
+ }
+ namespace net
+ {
+ class URI;
+ }
+ }
+}
+
+class java::awt::peer::DesktopPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void browse(::java::net::URI *) = 0;
+ virtual void edit(::java::io::File *) = 0;
+ virtual jboolean isSupported(::java::awt::Desktop$Action *) = 0;
+ virtual void mail(::java::net::URI *) = 0;
+ virtual void mail() = 0;
+ virtual void open(::java::io::File *) = 0;
+ virtual void print(::java::io::File *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_DesktopPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/DialogPeer.h b/gcc-4.8/libjava/java/awt/peer/DialogPeer.h
new file mode 100644
index 000000000..95f9e0c1c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/DialogPeer.h
@@ -0,0 +1,140 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_DialogPeer__
+#define __java_awt_peer_DialogPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dialog;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class DialogPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::DialogPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setResizable(jboolean) = 0;
+ virtual void setTitle(::java::lang::String *) = 0;
+ virtual void toBack() = 0;
+ virtual void toFront() = 0;
+ virtual void updateAlwaysOnTop() = 0;
+ virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_DialogPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/FileDialogPeer.h b/gcc-4.8/libjava/java/awt/peer/FileDialogPeer.h
new file mode 100644
index 000000000..22575b600
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/FileDialogPeer.h
@@ -0,0 +1,143 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_FileDialogPeer__
+#define __java_awt_peer_FileDialogPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dialog;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class FileDialogPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::FileDialogPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setFile(::java::lang::String *) = 0;
+ virtual void setDirectory(::java::lang::String *) = 0;
+ virtual void setFilenameFilter(::java::io::FilenameFilter *) = 0;
+ virtual void setResizable(jboolean) = 0;
+ virtual void setTitle(::java::lang::String *) = 0;
+ virtual void toBack() = 0;
+ virtual void toFront() = 0;
+ virtual void updateAlwaysOnTop() = 0;
+ virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_FileDialogPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/FontPeer.h b/gcc-4.8/libjava/java/awt/peer/FontPeer.h
new file mode 100644
index 000000000..00f6f8a4f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/FontPeer.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_FontPeer__
+#define __java_awt_peer_FontPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ class FontPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::FontPeer : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_FontPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/FramePeer.h b/gcc-4.8/libjava/java/awt/peer/FramePeer.h
new file mode 100644
index 000000000..e340e134b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/FramePeer.h
@@ -0,0 +1,148 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_FramePeer__
+#define __java_awt_peer_FramePeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dialog;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class MenuBar;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class FramePeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::FramePeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setIconImage(::java::awt::Image *) = 0;
+ virtual void setMenuBar(::java::awt::MenuBar *) = 0;
+ virtual void setResizable(jboolean) = 0;
+ virtual void setTitle(::java::lang::String *) = 0;
+ virtual jint getState() = 0;
+ virtual void setState(jint) = 0;
+ virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
+ virtual void toBack() = 0;
+ virtual void toFront() = 0;
+ virtual void updateAlwaysOnTop() = 0;
+ virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_FramePeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/LabelPeer.h b/gcc-4.8/libjava/java/awt/peer/LabelPeer.h
new file mode 100644
index 000000000..5247a0d09
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/LabelPeer.h
@@ -0,0 +1,119 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_LabelPeer__
+#define __java_awt_peer_LabelPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class LabelPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::LabelPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setAlignment(jint) = 0;
+ virtual void setText(::java::lang::String *) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_LabelPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/LightweightPeer.h b/gcc-4.8/libjava/java/awt/peer/LightweightPeer.h
new file mode 100644
index 000000000..b18182f82
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/LightweightPeer.h
@@ -0,0 +1,117 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_LightweightPeer__
+#define __java_awt_peer_LightweightPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class LightweightPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::LightweightPeer : public ::java::lang::Object
+{
+
+public:
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_LightweightPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/ListPeer.h b/gcc-4.8/libjava/java/awt/peer/ListPeer.h
new file mode 100644
index 000000000..0edfd6251
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ListPeer.h
@@ -0,0 +1,134 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ListPeer__
+#define __java_awt_peer_ListPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class ListPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ListPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void add(::java::lang::String *, jint) = 0;
+ virtual void addItem(::java::lang::String *, jint) = 0;
+ virtual void clear() = 0;
+ virtual void delItems(jint, jint) = 0;
+ virtual void deselect(jint) = 0;
+ virtual JArray< jint > * getSelectedIndexes() = 0;
+ virtual void makeVisible(jint) = 0;
+ virtual ::java::awt::Dimension * minimumSize(jint) = 0;
+ virtual ::java::awt::Dimension * preferredSize(jint) = 0;
+ virtual void removeAll() = 0;
+ virtual void select(jint) = 0;
+ virtual void setMultipleMode(jboolean) = 0;
+ virtual void setMultipleSelections(jboolean) = 0;
+ virtual ::java::awt::Dimension * getPreferredSize(jint) = 0;
+ virtual ::java::awt::Dimension * getMinimumSize(jint) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ListPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/MenuBarPeer.h b/gcc-4.8/libjava/java/awt/peer/MenuBarPeer.h
new file mode 100644
index 000000000..e7d84c051
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/MenuBarPeer.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_MenuBarPeer__
+#define __java_awt_peer_MenuBarPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ class Menu;
+ namespace peer
+ {
+ class MenuBarPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::MenuBarPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void addMenu(::java::awt::Menu *) = 0;
+ virtual void addHelpMenu(::java::awt::Menu *) = 0;
+ virtual void delMenu(jint) = 0;
+ virtual void dispose() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_MenuBarPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/MenuComponentPeer.h b/gcc-4.8/libjava/java/awt/peer/MenuComponentPeer.h
new file mode 100644
index 000000000..a0a1ea14c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/MenuComponentPeer.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_MenuComponentPeer__
+#define __java_awt_peer_MenuComponentPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ namespace peer
+ {
+ class MenuComponentPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::MenuComponentPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void dispose() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_MenuComponentPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/MenuItemPeer.h b/gcc-4.8/libjava/java/awt/peer/MenuItemPeer.h
new file mode 100644
index 000000000..8c9a9eee8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/MenuItemPeer.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_MenuItemPeer__
+#define __java_awt_peer_MenuItemPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ namespace peer
+ {
+ class MenuItemPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::MenuItemPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void disable() = 0;
+ virtual void enable() = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setLabel(::java::lang::String *) = 0;
+ virtual void dispose() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_MenuItemPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/MenuPeer.h b/gcc-4.8/libjava/java/awt/peer/MenuPeer.h
new file mode 100644
index 000000000..4c813b118
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/MenuPeer.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_MenuPeer__
+#define __java_awt_peer_MenuPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Font;
+ class MenuItem;
+ namespace peer
+ {
+ class MenuPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::MenuPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void addItem(::java::awt::MenuItem *) = 0;
+ virtual void addSeparator() = 0;
+ virtual void delItem(jint) = 0;
+ virtual void disable() = 0;
+ virtual void enable() = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setLabel(::java::lang::String *) = 0;
+ virtual void dispose() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_MenuPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/MouseInfoPeer.h b/gcc-4.8/libjava/java/awt/peer/MouseInfoPeer.h
new file mode 100644
index 000000000..18f0c59b8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/MouseInfoPeer.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_MouseInfoPeer__
+#define __java_awt_peer_MouseInfoPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Point;
+ class Window;
+ namespace peer
+ {
+ class MouseInfoPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::MouseInfoPeer : public ::java::lang::Object
+{
+
+public:
+ virtual jint fillPointWithCoords(::java::awt::Point *) = 0;
+ virtual jboolean isWindowUnderMouse(::java::awt::Window *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_MouseInfoPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/PanelPeer.h b/gcc-4.8/libjava/java/awt/peer/PanelPeer.h
new file mode 100644
index 000000000..b90c0570a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/PanelPeer.h
@@ -0,0 +1,128 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_PanelPeer__
+#define __java_awt_peer_PanelPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class PanelPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::PanelPeer : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_PanelPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/PopupMenuPeer.h b/gcc-4.8/libjava/java/awt/peer/PopupMenuPeer.h
new file mode 100644
index 000000000..e8bdd57b5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/PopupMenuPeer.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_PopupMenuPeer__
+#define __java_awt_peer_PopupMenuPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Event;
+ class Font;
+ class MenuItem;
+ namespace peer
+ {
+ class PopupMenuPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::PopupMenuPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void show(::java::awt::Component *, jint, jint) = 0;
+ virtual void show(::java::awt::Event *) = 0;
+ virtual void addItem(::java::awt::MenuItem *) = 0;
+ virtual void addSeparator() = 0;
+ virtual void delItem(jint) = 0;
+ virtual void disable() = 0;
+ virtual void enable() = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setLabel(::java::lang::String *) = 0;
+ virtual void dispose() = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_PopupMenuPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/RobotPeer.h b/gcc-4.8/libjava/java/awt/peer/RobotPeer.h
new file mode 100644
index 000000000..7947c5031
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/RobotPeer.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_RobotPeer__
+#define __java_awt_peer_RobotPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Rectangle;
+ namespace peer
+ {
+ class RobotPeer;
+ }
+ }
+ }
+}
+
+class java::awt::peer::RobotPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void mouseMove(jint, jint) = 0;
+ virtual void mousePress(jint) = 0;
+ virtual void mouseRelease(jint) = 0;
+ virtual void mouseWheel(jint) = 0;
+ virtual void keyPress(jint) = 0;
+ virtual void keyRelease(jint) = 0;
+ virtual jint getRGBPixel(jint, jint) = 0;
+ virtual JArray< jint > * getRGBPixels(::java::awt::Rectangle *) = 0;
+ virtual void dispose() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_RobotPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/ScrollPanePeer.h b/gcc-4.8/libjava/java/awt/peer/ScrollPanePeer.h
new file mode 100644
index 000000000..25f9431f5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ScrollPanePeer.h
@@ -0,0 +1,135 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ScrollPanePeer__
+#define __java_awt_peer_ScrollPanePeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class Adjustable;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class ScrollPanePeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ScrollPanePeer : public ::java::lang::Object
+{
+
+public:
+ virtual jint getHScrollbarHeight() = 0;
+ virtual jint getVScrollbarWidth() = 0;
+ virtual void setScrollPosition(jint, jint) = 0;
+ virtual void childResized(jint, jint) = 0;
+ virtual void setUnitIncrement(::java::awt::Adjustable *, jint) = 0;
+ virtual void setValue(::java::awt::Adjustable *, jint) = 0;
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ScrollPanePeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/ScrollbarPeer.h b/gcc-4.8/libjava/java/awt/peer/ScrollbarPeer.h
new file mode 100644
index 000000000..b030ca5d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/ScrollbarPeer.h
@@ -0,0 +1,120 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_ScrollbarPeer__
+#define __java_awt_peer_ScrollbarPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class ScrollbarPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::ScrollbarPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void setLineIncrement(jint) = 0;
+ virtual void setPageIncrement(jint) = 0;
+ virtual void setValues(jint, jint, jint, jint) = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_ScrollbarPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/TextAreaPeer.h b/gcc-4.8/libjava/java/awt/peer/TextAreaPeer.h
new file mode 100644
index 000000000..24fb100d7
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/TextAreaPeer.h
@@ -0,0 +1,141 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_TextAreaPeer__
+#define __java_awt_peer_TextAreaPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace im
+ {
+ class InputMethodRequests;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class TextAreaPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::TextAreaPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void insert(::java::lang::String *, jint) = 0;
+ virtual void insertText(::java::lang::String *, jint) = 0;
+ virtual ::java::awt::Dimension * minimumSize(jint, jint) = 0;
+ virtual ::java::awt::Dimension * getMinimumSize(jint, jint) = 0;
+ virtual ::java::awt::Dimension * preferredSize(jint, jint) = 0;
+ virtual ::java::awt::Dimension * getPreferredSize(jint, jint) = 0;
+ virtual void replaceRange(::java::lang::String *, jint, jint) = 0;
+ virtual void replaceText(::java::lang::String *, jint, jint) = 0;
+ virtual jint getSelectionEnd() = 0;
+ virtual jint getSelectionStart() = 0;
+ virtual ::java::lang::String * getText() = 0;
+ virtual void setText(::java::lang::String *) = 0;
+ virtual void select(jint, jint) = 0;
+ virtual void setEditable(jboolean) = 0;
+ virtual jint getCaretPosition() = 0;
+ virtual void setCaretPosition(jint) = 0;
+ virtual jint getIndexAtPoint(jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getCharacterBounds(jint) = 0;
+ virtual jlong filterEvents(jlong) = 0;
+ virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_TextAreaPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/TextComponentPeer.h b/gcc-4.8/libjava/java/awt/peer/TextComponentPeer.h
new file mode 100644
index 000000000..71afe17f5
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/TextComponentPeer.h
@@ -0,0 +1,133 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_TextComponentPeer__
+#define __java_awt_peer_TextComponentPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace im
+ {
+ class InputMethodRequests;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class TextComponentPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::TextComponentPeer : public ::java::lang::Object
+{
+
+public:
+ virtual jint getSelectionEnd() = 0;
+ virtual jint getSelectionStart() = 0;
+ virtual ::java::lang::String * getText() = 0;
+ virtual void setText(::java::lang::String *) = 0;
+ virtual void select(jint, jint) = 0;
+ virtual void setEditable(jboolean) = 0;
+ virtual jint getCaretPosition() = 0;
+ virtual void setCaretPosition(jint) = 0;
+ virtual jint getIndexAtPoint(jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getCharacterBounds(jint) = 0;
+ virtual jlong filterEvents(jlong) = 0;
+ virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_TextComponentPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/TextFieldPeer.h b/gcc-4.8/libjava/java/awt/peer/TextFieldPeer.h
new file mode 100644
index 000000000..a2785b1b6
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/TextFieldPeer.h
@@ -0,0 +1,139 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_TextFieldPeer__
+#define __java_awt_peer_TextFieldPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace im
+ {
+ class InputMethodRequests;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class TextFieldPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::TextFieldPeer : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Dimension * minimumSize(jint) = 0;
+ virtual ::java::awt::Dimension * preferredSize(jint) = 0;
+ virtual ::java::awt::Dimension * getMinimumSize(jint) = 0;
+ virtual ::java::awt::Dimension * getPreferredSize(jint) = 0;
+ virtual void setEchoChar(jchar) = 0;
+ virtual void setEchoCharacter(jchar) = 0;
+ virtual jint getSelectionEnd() = 0;
+ virtual jint getSelectionStart() = 0;
+ virtual ::java::lang::String * getText() = 0;
+ virtual void setText(::java::lang::String *) = 0;
+ virtual void select(jint, jint) = 0;
+ virtual void setEditable(jboolean) = 0;
+ virtual jint getCaretPosition() = 0;
+ virtual void setCaretPosition(jint) = 0;
+ virtual jint getIndexAtPoint(jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getCharacterBounds(jint) = 0;
+ virtual jlong filterEvents(jlong) = 0;
+ virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_TextFieldPeer__
diff --git a/gcc-4.8/libjava/java/awt/peer/WindowPeer.h b/gcc-4.8/libjava/java/awt/peer/WindowPeer.h
new file mode 100644
index 000000000..0257d8cb8
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/peer/WindowPeer.h
@@ -0,0 +1,138 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_peer_WindowPeer__
+#define __java_awt_peer_WindowPeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class AWTEvent;
+ class BufferCapabilities;
+ class BufferCapabilities$FlipContents;
+ class Color;
+ class Component;
+ class Cursor;
+ class Dialog;
+ class Dimension;
+ class Font;
+ class FontMetrics;
+ class Graphics;
+ class GraphicsConfiguration;
+ class Image;
+ class Insets;
+ class Point;
+ class Rectangle;
+ class Toolkit;
+ namespace event
+ {
+ class PaintEvent;
+ }
+ namespace image
+ {
+ class ColorModel;
+ class ImageObserver;
+ class ImageProducer;
+ class VolatileImage;
+ }
+ namespace peer
+ {
+ class ContainerPeer;
+ class WindowPeer;
+ }
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class java::awt::peer::WindowPeer : public ::java::lang::Object
+{
+
+public:
+ virtual void toBack() = 0;
+ virtual void toFront() = 0;
+ virtual void updateAlwaysOnTop() = 0;
+ virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
+ virtual ::java::awt::Insets * insets() = 0;
+ virtual ::java::awt::Insets * getInsets() = 0;
+ virtual void beginValidate() = 0;
+ virtual void endValidate() = 0;
+ virtual void beginLayout() = 0;
+ virtual void endLayout() = 0;
+ virtual jboolean isPaintPending() = 0;
+ virtual jboolean isRestackSupported() = 0;
+ virtual void cancelPendingPaint(jint, jint, jint, jint) = 0;
+ virtual void restack() = 0;
+ virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *) = 0;
+ virtual ::java::awt::Image * createImage(jint, jint) = 0;
+ virtual void disable() = 0;
+ virtual void dispose() = 0;
+ virtual void enable() = 0;
+ virtual ::java::awt::image::ColorModel * getColorModel() = 0;
+ virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0;
+ virtual ::java::awt::Graphics * getGraphics() = 0;
+ virtual ::java::awt::Point * getLocationOnScreen() = 0;
+ virtual ::java::awt::Dimension * getMinimumSize() = 0;
+ virtual ::java::awt::Dimension * getPreferredSize() = 0;
+ virtual ::java::awt::Toolkit * getToolkit() = 0;
+ virtual void handleEvent(::java::awt::AWTEvent *) = 0;
+ virtual void hide() = 0;
+ virtual jboolean isFocusTraversable() = 0;
+ virtual jboolean isFocusable() = 0;
+ virtual ::java::awt::Dimension * minimumSize() = 0;
+ virtual ::java::awt::Dimension * preferredSize() = 0;
+ virtual void paint(::java::awt::Graphics *) = 0;
+ virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0;
+ virtual void print(::java::awt::Graphics *) = 0;
+ virtual void repaint(jlong, jint, jint, jint, jint) = 0;
+ virtual void requestFocus() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong) = 0;
+ virtual void reshape(jint, jint, jint, jint) = 0;
+ virtual void setBackground(::java::awt::Color *) = 0;
+ virtual void setBounds(jint, jint, jint, jint) = 0;
+ virtual void setCursor(::java::awt::Cursor *) = 0;
+ virtual void setEnabled(jboolean) = 0;
+ virtual void setFont(::java::awt::Font *) = 0;
+ virtual void setForeground(::java::awt::Color *) = 0;
+ virtual void setVisible(jboolean) = 0;
+ virtual void show() = 0;
+ virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0;
+ virtual void setEventMask(jlong) = 0;
+ virtual jboolean isObscured() = 0;
+ virtual jboolean canDetermineObscurity() = 0;
+ virtual void coalescePaintEvent(::java::awt::event::PaintEvent *) = 0;
+ virtual void updateCursorImmediately() = 0;
+ virtual jboolean handlesWheelScrolling() = 0;
+ virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint) = 0;
+ virtual void createBuffers(jint, ::java::awt::BufferCapabilities *) = 0;
+ virtual ::java::awt::Image * getBackBuffer() = 0;
+ virtual void flip(::java::awt::BufferCapabilities$FlipContents *) = 0;
+ virtual void destroyBuffers() = 0;
+ virtual ::java::awt::Rectangle * getBounds() = 0;
+ virtual void reparent(::java::awt::peer::ContainerPeer *) = 0;
+ virtual void setBounds(jint, jint, jint, jint, jint) = 0;
+ virtual jboolean isReparentSupported() = 0;
+ virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_peer_WindowPeer__
diff --git a/gcc-4.8/libjava/java/awt/print/Book.h b/gcc-4.8/libjava/java/awt/print/Book.h
new file mode 100644
index 000000000..cda28618c
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/Book.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_Book__
+#define __java_awt_print_Book__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class Book;
+ class PageFormat;
+ class Printable;
+ }
+ }
+ }
+}
+
+class java::awt::print::Book : public ::java::lang::Object
+{
+
+public:
+ Book();
+ virtual jint getNumberOfPages();
+ virtual ::java::awt::print::PageFormat * getPageFormat(jint);
+ virtual ::java::awt::print::Printable * getPrintable(jint);
+ virtual void append(::java::awt::print::Printable *, ::java::awt::print::PageFormat *);
+ virtual void append(::java::awt::print::Printable *, ::java::awt::print::PageFormat *, jint);
+ virtual void setPage(jint, ::java::awt::print::Printable *, ::java::awt::print::PageFormat *);
+public: // actually package-private
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) printables;
+ ::java::util::Vector * page_formats;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_Book__
diff --git a/gcc-4.8/libjava/java/awt/print/NoPrinterJob.h b/gcc-4.8/libjava/java/awt/print/NoPrinterJob.h
new file mode 100644
index 000000000..aac0af30b
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/NoPrinterJob.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_NoPrinterJob__
+#define __java_awt_print_NoPrinterJob__
+
+#pragma interface
+
+#include <java/awt/print/PrinterJob.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class NoPrinterJob;
+ class PageFormat;
+ class Pageable;
+ class Printable;
+ }
+ }
+ }
+}
+
+class java::awt::print::NoPrinterJob : public ::java::awt::print::PrinterJob
+{
+
+public: // actually package-private
+ NoPrinterJob();
+public:
+ virtual jint getCopies();
+ virtual void setCopies(jint);
+ virtual ::java::lang::String * getJobName();
+ virtual void setJobName(::java::lang::String *);
+ virtual ::java::lang::String * getUserName();
+ virtual void cancel();
+ virtual jboolean isCancelled();
+ virtual ::java::awt::print::PageFormat * defaultPage(::java::awt::print::PageFormat *);
+ virtual ::java::awt::print::PageFormat * pageDialog(::java::awt::print::PageFormat *);
+ virtual void print();
+ virtual jboolean printDialog();
+ virtual void setPageable(::java::awt::print::Pageable *);
+ virtual void setPrintable(::java::awt::print::Printable *);
+ virtual void setPrintable(::java::awt::print::Printable *, ::java::awt::print::PageFormat *);
+ virtual ::java::awt::print::PageFormat * validatePage(::java::awt::print::PageFormat *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_NoPrinterJob__
diff --git a/gcc-4.8/libjava/java/awt/print/PageFormat.h b/gcc-4.8/libjava/java/awt/print/PageFormat.h
new file mode 100644
index 000000000..0f4af7b65
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/PageFormat.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_PageFormat__
+#define __java_awt_print_PageFormat__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PageFormat;
+ class Paper;
+ }
+ }
+ }
+}
+
+class java::awt::print::PageFormat : public ::java::lang::Object
+{
+
+public:
+ PageFormat();
+ virtual jdouble getWidth();
+ virtual jdouble getHeight();
+ virtual jdouble getImageableX();
+ virtual jdouble getImageableY();
+ virtual jdouble getImageableWidth();
+ virtual jdouble getImageableHeight();
+ virtual ::java::awt::print::Paper * getPaper();
+ virtual void setPaper(::java::awt::print::Paper *);
+ virtual jint getOrientation();
+ virtual void setOrientation(jint);
+ virtual JArray< jdouble > * getMatrix();
+ virtual ::java::lang::Object * clone();
+ static const jint LANDSCAPE = 0;
+ static const jint PORTRAIT = 1;
+ static const jint REVERSE_LANDSCAPE = 2;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) orientation;
+ ::java::awt::print::Paper * paper;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_PageFormat__
diff --git a/gcc-4.8/libjava/java/awt/print/Pageable.h b/gcc-4.8/libjava/java/awt/print/Pageable.h
new file mode 100644
index 000000000..b97d4e522
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/Pageable.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_Pageable__
+#define __java_awt_print_Pageable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PageFormat;
+ class Pageable;
+ class Printable;
+ }
+ }
+ }
+}
+
+class java::awt::print::Pageable : public ::java::lang::Object
+{
+
+public:
+ virtual jint getNumberOfPages() = 0;
+ virtual ::java::awt::print::PageFormat * getPageFormat(jint) = 0;
+ virtual ::java::awt::print::Printable * getPrintable(jint) = 0;
+ static const jint UNKNOWN_NUMBER_OF_PAGES = -1;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_print_Pageable__
diff --git a/gcc-4.8/libjava/java/awt/print/Paper.h b/gcc-4.8/libjava/java/awt/print/Paper.h
new file mode 100644
index 000000000..3d7d3769f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/Paper.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_Paper__
+#define __java_awt_print_Paper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class Paper;
+ }
+ }
+ }
+}
+
+class java::awt::print::Paper : public ::java::lang::Object
+{
+
+public:
+ Paper();
+ virtual jdouble getHeight();
+ virtual jdouble getWidth();
+ virtual jdouble getImageableX();
+ virtual jdouble getImageableY();
+ virtual jdouble getImageableWidth();
+ virtual jdouble getImageableHeight();
+ virtual void setSize(jdouble, jdouble);
+ virtual void setImageableArea(jdouble, jdouble, jdouble, jdouble);
+ virtual ::java::lang::Object * clone();
+private:
+ jdouble __attribute__((aligned(__alignof__( ::java::lang::Object)))) height;
+ jdouble width;
+ jdouble imageableX;
+ jdouble imageableY;
+ jdouble imageableWidth;
+ jdouble imageableHeight;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_Paper__
diff --git a/gcc-4.8/libjava/java/awt/print/Printable.h b/gcc-4.8/libjava/java/awt/print/Printable.h
new file mode 100644
index 000000000..4160afcfd
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/Printable.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_Printable__
+#define __java_awt_print_Printable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Graphics;
+ namespace print
+ {
+ class PageFormat;
+ class Printable;
+ }
+ }
+ }
+}
+
+class java::awt::print::Printable : public ::java::lang::Object
+{
+
+public:
+ virtual jint print(::java::awt::Graphics *, ::java::awt::print::PageFormat *, jint) = 0;
+ static const jint PAGE_EXISTS = 0;
+ static const jint NO_SUCH_PAGE = 1;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_print_Printable__
diff --git a/gcc-4.8/libjava/java/awt/print/PrinterAbortException.h b/gcc-4.8/libjava/java/awt/print/PrinterAbortException.h
new file mode 100644
index 000000000..f8475d995
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/PrinterAbortException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_PrinterAbortException__
+#define __java_awt_print_PrinterAbortException__
+
+#pragma interface
+
+#include <java/awt/print/PrinterException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PrinterAbortException;
+ }
+ }
+ }
+}
+
+class java::awt::print::PrinterAbortException : public ::java::awt::print::PrinterException
+{
+
+public:
+ PrinterAbortException();
+ PrinterAbortException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 4725169026278854136LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_PrinterAbortException__
diff --git a/gcc-4.8/libjava/java/awt/print/PrinterException.h b/gcc-4.8/libjava/java/awt/print/PrinterException.h
new file mode 100644
index 000000000..009ec510f
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/PrinterException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_PrinterException__
+#define __java_awt_print_PrinterException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PrinterException;
+ }
+ }
+ }
+}
+
+class java::awt::print::PrinterException : public ::java::lang::Exception
+{
+
+public:
+ PrinterException();
+ PrinterException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -3757589981158265819LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_PrinterException__
diff --git a/gcc-4.8/libjava/java/awt/print/PrinterGraphics.h b/gcc-4.8/libjava/java/awt/print/PrinterGraphics.h
new file mode 100644
index 000000000..74541c07a
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/PrinterGraphics.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_PrinterGraphics__
+#define __java_awt_print_PrinterGraphics__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PrinterGraphics;
+ class PrinterJob;
+ }
+ }
+ }
+}
+
+class java::awt::print::PrinterGraphics : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::print::PrinterJob * getPrinterJob() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_awt_print_PrinterGraphics__
diff --git a/gcc-4.8/libjava/java/awt/print/PrinterIOException.h b/gcc-4.8/libjava/java/awt/print/PrinterIOException.h
new file mode 100644
index 000000000..46d7908d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/PrinterIOException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_PrinterIOException__
+#define __java_awt_print_PrinterIOException__
+
+#pragma interface
+
+#include <java/awt/print/PrinterException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PrinterIOException;
+ }
+ }
+ }
+}
+
+class java::awt::print::PrinterIOException : public ::java::awt::print::PrinterException
+{
+
+public:
+ PrinterIOException(::java::io::IOException *);
+ virtual ::java::io::IOException * getIOException();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = 5850870712125932846LL;
+ ::java::io::IOException * __attribute__((aligned(__alignof__( ::java::awt::print::PrinterException)))) mException;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_PrinterIOException__
diff --git a/gcc-4.8/libjava/java/awt/print/PrinterJob.h b/gcc-4.8/libjava/java/awt/print/PrinterJob.h
new file mode 100644
index 000000000..39bb9a0e9
--- /dev/null
+++ b/gcc-4.8/libjava/java/awt/print/PrinterJob.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_print_PrinterJob__
+#define __java_awt_print_PrinterJob__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace print
+ {
+ class PageFormat;
+ class Pageable;
+ class Printable;
+ class PrinterJob;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace print
+ {
+ class PrintService;
+ class StreamPrintServiceFactory;
+ namespace attribute
+ {
+ class PrintRequestAttributeSet;
+ }
+ }
+ }
+}
+
+class java::awt::print::PrinterJob : public ::java::lang::Object
+{
+
+public:
+ static ::java::awt::print::PrinterJob * getPrinterJob();
+ PrinterJob();
+ virtual jint getCopies() = 0;
+ virtual void setCopies(jint) = 0;
+ virtual ::java::lang::String * getJobName() = 0;
+ virtual void setJobName(::java::lang::String *) = 0;
+ virtual ::java::lang::String * getUserName() = 0;
+ virtual void cancel() = 0;
+ virtual jboolean isCancelled() = 0;
+ virtual ::java::awt::print::PageFormat * defaultPage();
+ virtual ::java::awt::print::PageFormat * defaultPage(::java::awt::print::PageFormat *) = 0;
+ virtual ::java::awt::print::PageFormat * pageDialog(::java::awt::print::PageFormat *) = 0;
+ virtual ::java::awt::print::PageFormat * pageDialog(::javax::print::attribute::PrintRequestAttributeSet *);
+ virtual void print() = 0;
+ virtual void print(::javax::print::attribute::PrintRequestAttributeSet *);
+ virtual jboolean printDialog() = 0;
+ virtual jboolean printDialog(::javax::print::attribute::PrintRequestAttributeSet *);
+ virtual void setPageable(::java::awt::print::Pageable *) = 0;
+ virtual void setPrintable(::java::awt::print::Printable *) = 0;
+ virtual void setPrintable(::java::awt::print::Printable *, ::java::awt::print::PageFormat *) = 0;
+ virtual ::java::awt::print::PageFormat * validatePage(::java::awt::print::PageFormat *) = 0;
+ static JArray< ::javax::print::PrintService * > * lookupPrintServices();
+ static JArray< ::javax::print::StreamPrintServiceFactory * > * lookupStreamPrintServices(::java::lang::String *);
+ virtual ::javax::print::PrintService * getPrintService();
+ virtual void setPrintService(::javax::print::PrintService *);
+private:
+ ::javax::print::PrintService * __attribute__((aligned(__alignof__( ::java::lang::Object)))) printer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_print_PrinterJob__
diff --git a/gcc-4.8/libjava/java/beans/AppletInitializer.h b/gcc-4.8/libjava/java/beans/AppletInitializer.h
new file mode 100644
index 000000000..f0ea44fa5
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/AppletInitializer.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_AppletInitializer__
+#define __java_beans_AppletInitializer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace applet
+ {
+ class Applet;
+ }
+ namespace beans
+ {
+ class AppletInitializer;
+ namespace beancontext
+ {
+ class BeanContext;
+ }
+ }
+ }
+}
+
+class java::beans::AppletInitializer : public ::java::lang::Object
+{
+
+public:
+ virtual void activate(::java::applet::Applet *) = 0;
+ virtual void initialize(::java::applet::Applet *, ::java::beans::beancontext::BeanContext *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_AppletInitializer__
diff --git a/gcc-4.8/libjava/java/beans/BeanDescriptor.h b/gcc-4.8/libjava/java/beans/BeanDescriptor.h
new file mode 100644
index 000000000..b1779b928
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/BeanDescriptor.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_BeanDescriptor__
+#define __java_beans_BeanDescriptor__
+
+#pragma interface
+
+#include <java/beans/FeatureDescriptor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class BeanDescriptor;
+ }
+ }
+}
+
+class java::beans::BeanDescriptor : public ::java::beans::FeatureDescriptor
+{
+
+public:
+ BeanDescriptor(::java::lang::Class *);
+ BeanDescriptor(::java::lang::Class *, ::java::lang::Class *);
+ virtual ::java::lang::Class * getBeanClass();
+ virtual ::java::lang::Class * getCustomizerClass();
+public: // actually package-private
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::beans::FeatureDescriptor)))) beanClass;
+ ::java::lang::Class * customizerClass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_BeanDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/BeanInfo.h b/gcc-4.8/libjava/java/beans/BeanInfo.h
new file mode 100644
index 000000000..dda472016
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/BeanInfo.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_BeanInfo__
+#define __java_beans_BeanInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ }
+ namespace beans
+ {
+ class BeanDescriptor;
+ class BeanInfo;
+ class EventSetDescriptor;
+ class MethodDescriptor;
+ class PropertyDescriptor;
+ }
+ }
+}
+
+class java::beans::BeanInfo : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::beans::BeanDescriptor * getBeanDescriptor() = 0;
+ virtual JArray< ::java::beans::EventSetDescriptor * > * getEventSetDescriptors() = 0;
+ virtual jint getDefaultEventIndex() = 0;
+ virtual JArray< ::java::beans::PropertyDescriptor * > * getPropertyDescriptors() = 0;
+ virtual jint getDefaultPropertyIndex() = 0;
+ virtual JArray< ::java::beans::MethodDescriptor * > * getMethodDescriptors() = 0;
+ virtual JArray< ::java::beans::BeanInfo * > * getAdditionalBeanInfo() = 0;
+ virtual ::java::awt::Image * getIcon(jint) = 0;
+ static const jint ICON_COLOR_16x16 = 1;
+ static const jint ICON_COLOR_32x32 = 2;
+ static const jint ICON_MONO_16x16 = 3;
+ static const jint ICON_MONO_32x32 = 4;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_BeanInfo__
diff --git a/gcc-4.8/libjava/java/beans/Beans.h b/gcc-4.8/libjava/java/beans/Beans.h
new file mode 100644
index 000000000..ed2fbadbe
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Beans.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Beans__
+#define __java_beans_Beans__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class AppletInitializer;
+ class Beans;
+ namespace beancontext
+ {
+ class BeanContext;
+ }
+ }
+ }
+}
+
+class java::beans::Beans : public ::java::lang::Object
+{
+
+public:
+ Beans();
+ static ::java::lang::Object * instantiate(::java::lang::ClassLoader *, ::java::lang::String *);
+ static ::java::lang::Object * instantiate(::java::lang::ClassLoader *, ::java::lang::String *, ::java::beans::beancontext::BeanContext *);
+ static ::java::lang::Object * instantiate(::java::lang::ClassLoader *, ::java::lang::String *, ::java::beans::beancontext::BeanContext *, ::java::beans::AppletInitializer *);
+ static ::java::lang::Object * getInstanceOf(::java::lang::Object *, ::java::lang::Class *);
+ static jboolean isInstanceOf(::java::lang::Object *, ::java::lang::Class *);
+ static jboolean isGuiAvailable();
+ static jboolean isDesignTime();
+ static void setGuiAvailable(jboolean);
+ static void setDesignTime(jboolean);
+public: // actually package-private
+ static jboolean designTime;
+ static jboolean guiAvailable;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_Beans__
diff --git a/gcc-4.8/libjava/java/beans/ConstructorProperties.h b/gcc-4.8/libjava/java/beans/ConstructorProperties.h
new file mode 100644
index 000000000..10c5c383c
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/ConstructorProperties.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_ConstructorProperties__
+#define __java_beans_ConstructorProperties__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class ConstructorProperties;
+ }
+ }
+}
+
+class java::beans::ConstructorProperties : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::String * > * value() = 0;
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_ConstructorProperties__
diff --git a/gcc-4.8/libjava/java/beans/Customizer.h b/gcc-4.8/libjava/java/beans/Customizer.h
new file mode 100644
index 000000000..fbdae5ad1
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Customizer.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Customizer__
+#define __java_beans_Customizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Customizer;
+ class PropertyChangeListener;
+ }
+ }
+}
+
+class java::beans::Customizer : public ::java::lang::Object
+{
+
+public:
+ virtual void setObject(::java::lang::Object *) = 0;
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *) = 0;
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_Customizer__
diff --git a/gcc-4.8/libjava/java/beans/DefaultPersistenceDelegate.h b/gcc-4.8/libjava/java/beans/DefaultPersistenceDelegate.h
new file mode 100644
index 000000000..b0225b54c
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/DefaultPersistenceDelegate.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_DefaultPersistenceDelegate__
+#define __java_beans_DefaultPersistenceDelegate__
+
+#pragma interface
+
+#include <java/beans/PersistenceDelegate.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class DefaultPersistenceDelegate;
+ class Encoder;
+ class Expression;
+ }
+ }
+}
+
+class java::beans::DefaultPersistenceDelegate : public ::java::beans::PersistenceDelegate
+{
+
+public:
+ DefaultPersistenceDelegate();
+ DefaultPersistenceDelegate(JArray< ::java::lang::String * > *);
+public: // actually protected
+ virtual jboolean mutatesTo(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::beans::Expression * instantiate(::java::lang::Object *, ::java::beans::Encoder *);
+ virtual void initialize(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::beans::Encoder *);
+private:
+ JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::beans::PersistenceDelegate)))) constructorPropertyNames;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_DefaultPersistenceDelegate__
diff --git a/gcc-4.8/libjava/java/beans/DesignMode.h b/gcc-4.8/libjava/java/beans/DesignMode.h
new file mode 100644
index 000000000..a88d84468
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/DesignMode.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_DesignMode__
+#define __java_beans_DesignMode__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class DesignMode;
+ }
+ }
+}
+
+class java::beans::DesignMode : public ::java::lang::Object
+{
+
+public:
+ virtual void setDesignTime(jboolean) = 0;
+ virtual jboolean isDesignTime() = 0;
+ static ::java::lang::String * PROPERTYNAME;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_DesignMode__
diff --git a/gcc-4.8/libjava/java/beans/Encoder$1.h b/gcc-4.8/libjava/java/beans/Encoder$1.h
new file mode 100644
index 000000000..703ee873c
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Encoder$1.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Encoder$1__
+#define __java_beans_Encoder$1__
+
+#pragma interface
+
+#include <java/beans/PersistenceDelegate.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Encoder;
+ class Encoder$1;
+ class Expression;
+ }
+ }
+}
+
+class java::beans::Encoder$1 : public ::java::beans::PersistenceDelegate
+{
+
+public: // actually package-private
+ Encoder$1();
+public: // actually protected
+ virtual ::java::beans::Expression * instantiate(::java::lang::Object *, ::java::beans::Encoder *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_Encoder$1__
diff --git a/gcc-4.8/libjava/java/beans/Encoder.h b/gcc-4.8/libjava/java/beans/Encoder.h
new file mode 100644
index 000000000..345e98ca4
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Encoder.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Encoder__
+#define __java_beans_Encoder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Encoder;
+ class ExceptionListener;
+ class Expression;
+ class PersistenceDelegate;
+ class Statement;
+ }
+ }
+}
+
+class java::beans::Encoder : public ::java::lang::Object
+{
+
+public:
+ Encoder();
+private:
+ static void setupDefaultPersistenceDelegates();
+public: // actually protected
+ virtual void writeObject(::java::lang::Object *);
+public:
+ virtual void setExceptionListener(::java::beans::ExceptionListener *);
+ virtual ::java::beans::ExceptionListener * getExceptionListener();
+ virtual ::java::beans::PersistenceDelegate * getPersistenceDelegate(::java::lang::Class *);
+ virtual void setPersistenceDelegate(::java::lang::Class *, ::java::beans::PersistenceDelegate *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual void writeStatement(::java::beans::Statement *);
+ virtual void writeExpression(::java::beans::Expression *);
+public: // actually package-private
+ virtual jboolean isImmutableType(::java::lang::Class *);
+ virtual void putCandidate(::java::lang::Object *, ::java::lang::Object *);
+private:
+ static ::java::beans::PersistenceDelegate * defaultPersistenceDelegate;
+ static ::java::beans::PersistenceDelegate * fakePersistenceDelegate;
+ static ::java::util::HashMap * delegates;
+ ::java::util::IdentityHashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) candidates;
+ ::java::beans::ExceptionListener * exceptionListener;
+ jint accessCounter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_Encoder__
diff --git a/gcc-4.8/libjava/java/beans/EventHandler.h b/gcc-4.8/libjava/java/beans/EventHandler.h
new file mode 100644
index 000000000..b97ac5104
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/EventHandler.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_EventHandler__
+#define __java_beans_EventHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class EventHandler;
+ }
+ }
+}
+
+class java::beans::EventHandler : public ::java::lang::Object
+{
+
+ ::java::lang::String * capitalize(::java::lang::String *);
+public:
+ EventHandler(::java::lang::Object *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getEventPropertyName();
+ virtual ::java::lang::String * getListenerMethodName();
+ virtual ::java::lang::Object * getTarget();
+ virtual ::java::lang::String * getAction();
+private:
+ JArray< ::java::lang::Object * > * getProperty(::java::lang::Object *, ::java::lang::String *);
+public:
+ virtual ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *);
+private:
+ ::java::lang::Class * initClass(::java::lang::Class *);
+ ::java::lang::Class * nextClass(::java::lang::Class *);
+public:
+ static ::java::lang::Object * create(::java::lang::Class *, ::java::lang::Object *, ::java::lang::String *);
+ static ::java::lang::Object * create(::java::lang::Class *, ::java::lang::Object *, ::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::Object * create(::java::lang::Class *, ::java::lang::Object *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerMethod;
+ ::java::lang::Object * target;
+ ::java::lang::String * action;
+ ::java::lang::String * property;
+ ::java::lang::Class * targetClass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_EventHandler__
diff --git a/gcc-4.8/libjava/java/beans/EventSetDescriptor.h b/gcc-4.8/libjava/java/beans/EventSetDescriptor.h
new file mode 100644
index 000000000..fb99b607b
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/EventSetDescriptor.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_EventSetDescriptor__
+#define __java_beans_EventSetDescriptor__
+
+#pragma interface
+
+#include <java/beans/FeatureDescriptor.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class EventSetDescriptor;
+ class MethodDescriptor;
+ }
+ }
+}
+
+class java::beans::EventSetDescriptor : public ::java::beans::FeatureDescriptor
+{
+
+public:
+ EventSetDescriptor(::java::lang::Class *, ::java::lang::String *, ::java::lang::Class *, ::java::lang::String *);
+ EventSetDescriptor(::java::lang::Class *, ::java::lang::String *, ::java::lang::Class *, JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *);
+ EventSetDescriptor(::java::lang::Class *, ::java::lang::String *, ::java::lang::Class *, JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ EventSetDescriptor(::java::lang::String *, ::java::lang::Class *, JArray< ::java::lang::reflect::Method * > *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *);
+ EventSetDescriptor(::java::lang::String *, ::java::lang::Class *, JArray< ::java::lang::reflect::Method * > *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *);
+ EventSetDescriptor(::java::lang::String *, ::java::lang::Class *, JArray< ::java::beans::MethodDescriptor * > *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *);
+ virtual ::java::lang::Class * getListenerType();
+ virtual JArray< ::java::lang::reflect::Method * > * getListenerMethods();
+ virtual JArray< ::java::beans::MethodDescriptor * > * getListenerMethodDescriptors();
+ virtual ::java::lang::reflect::Method * getAddListenerMethod();
+ virtual ::java::lang::reflect::Method * getRemoveListenerMethod();
+ virtual ::java::lang::reflect::Method * getGetListenerMethod();
+ virtual void setUnicast(jboolean);
+ virtual jboolean isUnicast();
+ virtual void setInDefaultEventSet(jboolean);
+ virtual jboolean isInDefaultEventSet();
+private:
+ void checkAddListenerUnicast();
+ void checkMethods();
+ void findMethods(::java::lang::Class *, ::java::lang::Class *, JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::java::beans::FeatureDescriptor)))) addListenerMethod;
+ ::java::lang::reflect::Method * removeListenerMethod;
+ ::java::lang::Class * listenerType;
+ JArray< ::java::beans::MethodDescriptor * > * listenerMethodDescriptors;
+ JArray< ::java::lang::reflect::Method * > * listenerMethods;
+ ::java::lang::reflect::Method * getListenerMethod;
+ jboolean unicast;
+ jboolean inDefaultEventSet;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_EventSetDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/ExceptionListener.h b/gcc-4.8/libjava/java/beans/ExceptionListener.h
new file mode 100644
index 000000000..4356957fc
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/ExceptionListener.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_ExceptionListener__
+#define __java_beans_ExceptionListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class ExceptionListener;
+ }
+ }
+}
+
+class java::beans::ExceptionListener : public ::java::lang::Object
+{
+
+public:
+ virtual void exceptionThrown(::java::lang::Exception *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_ExceptionListener__
diff --git a/gcc-4.8/libjava/java/beans/ExplicitInfo.h b/gcc-4.8/libjava/java/beans/ExplicitInfo.h
new file mode 100644
index 000000000..16860b43e
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/ExplicitInfo.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_ExplicitInfo__
+#define __java_beans_ExplicitInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ }
+ namespace beans
+ {
+ class BeanDescriptor;
+ class BeanInfo;
+ class EventSetDescriptor;
+ class ExplicitInfo;
+ class MethodDescriptor;
+ class PropertyDescriptor;
+ }
+ }
+}
+
+class java::beans::ExplicitInfo : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ExplicitInfo(::java::lang::Class *, ::java::lang::Class *);
+ static void flushCaches();
+ static ::java::beans::BeanInfo * findExplicitBeanInfo(::java::lang::Class *);
+ static ::java::beans::BeanInfo * reallyFindExplicitBeanInfo(::java::lang::Class *);
+private:
+ static ::java::beans::BeanInfo * getBeanInfo(::java::lang::ClassLoader *, ::java::lang::String *);
+public: // actually package-private
+ ::java::beans::BeanDescriptor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) explicitBeanDescriptor;
+ JArray< ::java::beans::BeanInfo * > * explicitBeanInfo;
+ JArray< ::java::beans::PropertyDescriptor * > * explicitPropertyDescriptors;
+ JArray< ::java::beans::EventSetDescriptor * > * explicitEventSetDescriptors;
+ JArray< ::java::beans::MethodDescriptor * > * explicitMethodDescriptors;
+ jint defaultProperty;
+ jint defaultEvent;
+ JArray< ::java::awt::Image * > * im;
+ ::java::lang::Class * propertyStopClass;
+ ::java::lang::Class * eventStopClass;
+ ::java::lang::Class * methodStopClass;
+ static ::java::util::Hashtable * explicitBeanInfos;
+ static ::java::util::Vector * emptyBeanInfos;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_ExplicitInfo__
diff --git a/gcc-4.8/libjava/java/beans/Expression.h b/gcc-4.8/libjava/java/beans/Expression.h
new file mode 100644
index 000000000..50fce1529
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Expression.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Expression__
+#define __java_beans_Expression__
+
+#pragma interface
+
+#include <java/beans/Statement.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Expression;
+ }
+ }
+}
+
+class java::beans::Expression : public ::java::beans::Statement
+{
+
+public:
+ Expression(::java::lang::Object *, ::java::lang::Object *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ Expression(::java::lang::Object *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Object * getValue();
+ virtual void setValue(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ static ::java::lang::Object * UNSET;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::beans::Statement)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_Expression__
diff --git a/gcc-4.8/libjava/java/beans/FeatureDescriptor.h b/gcc-4.8/libjava/java/beans/FeatureDescriptor.h
new file mode 100644
index 000000000..8f5f9327d
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/FeatureDescriptor.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_FeatureDescriptor__
+#define __java_beans_FeatureDescriptor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class FeatureDescriptor;
+ }
+ }
+}
+
+class java::beans::FeatureDescriptor : public ::java::lang::Object
+{
+
+public:
+ FeatureDescriptor();
+ virtual ::java::lang::String * getName();
+ virtual void setName(::java::lang::String *);
+ virtual ::java::lang::String * getDisplayName();
+ virtual void setDisplayName(::java::lang::String *);
+ virtual ::java::lang::String * getShortDescription();
+ virtual void setShortDescription(::java::lang::String *);
+ virtual jboolean isExpert();
+ virtual void setExpert(jboolean);
+ virtual jboolean isHidden();
+ virtual void setHidden(jboolean);
+ virtual jboolean isPreferred();
+ virtual void setPreferred(jboolean);
+ virtual ::java::lang::Object * getValue(::java::lang::String *);
+ virtual void setValue(::java::lang::String *, ::java::lang::Object *);
+ virtual ::java::util::Enumeration * attributeNames();
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::lang::String * displayName;
+ ::java::lang::String * shortDescription;
+ jboolean expert;
+ jboolean hidden;
+ jboolean preferred;
+ ::java::util::Hashtable * valueHash;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_FeatureDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/IndexedPropertyChangeEvent.h b/gcc-4.8/libjava/java/beans/IndexedPropertyChangeEvent.h
new file mode 100644
index 000000000..85082d12e
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/IndexedPropertyChangeEvent.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_IndexedPropertyChangeEvent__
+#define __java_beans_IndexedPropertyChangeEvent__
+
+#pragma interface
+
+#include <java/beans/PropertyChangeEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class IndexedPropertyChangeEvent;
+ }
+ }
+}
+
+class java::beans::IndexedPropertyChangeEvent : public ::java::beans::PropertyChangeEvent
+{
+
+public:
+ IndexedPropertyChangeEvent(::java::lang::Object *, ::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *, jint);
+ virtual jint getIndex();
+private:
+ static const jlong serialVersionUID = -320227448495806870LL;
+ jint __attribute__((aligned(__alignof__( ::java::beans::PropertyChangeEvent)))) index;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_IndexedPropertyChangeEvent__
diff --git a/gcc-4.8/libjava/java/beans/IndexedPropertyDescriptor.h b/gcc-4.8/libjava/java/beans/IndexedPropertyDescriptor.h
new file mode 100644
index 000000000..843eb1b94
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/IndexedPropertyDescriptor.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_IndexedPropertyDescriptor__
+#define __java_beans_IndexedPropertyDescriptor__
+
+#pragma interface
+
+#include <java/beans/PropertyDescriptor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class IndexedPropertyDescriptor;
+ }
+ }
+}
+
+class java::beans::IndexedPropertyDescriptor : public ::java::beans::PropertyDescriptor
+{
+
+public:
+ IndexedPropertyDescriptor(::java::lang::String *, ::java::lang::Class *);
+ IndexedPropertyDescriptor(::java::lang::String *, ::java::lang::Class *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ IndexedPropertyDescriptor(::java::lang::String *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *);
+ virtual ::java::lang::Class * getIndexedPropertyType();
+ virtual ::java::lang::reflect::Method * getIndexedReadMethod();
+ virtual void setIndexedReadMethod(::java::lang::reflect::Method *);
+ virtual ::java::lang::reflect::Method * getIndexedWriteMethod();
+ virtual void setIndexedWriteMethod(::java::lang::reflect::Method *);
+private:
+ void findMethods(::java::lang::Class *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::beans::PropertyDescriptor)))) indexedPropertyType;
+ ::java::lang::reflect::Method * setIndex;
+ ::java::lang::reflect::Method * getIndex;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_IndexedPropertyDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/IntrospectionException.h b/gcc-4.8/libjava/java/beans/IntrospectionException.h
new file mode 100644
index 000000000..87df2fd72
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/IntrospectionException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_IntrospectionException__
+#define __java_beans_IntrospectionException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class IntrospectionException;
+ }
+ }
+}
+
+class java::beans::IntrospectionException : public ::java::lang::Exception
+{
+
+public:
+ IntrospectionException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -3728150539969542619LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_IntrospectionException__
diff --git a/gcc-4.8/libjava/java/beans/Introspector.h b/gcc-4.8/libjava/java/beans/Introspector.h
new file mode 100644
index 000000000..989c51333
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Introspector.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Introspector__
+#define __java_beans_Introspector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace beans
+ {
+ class BeanInfoEmbryo;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace beans
+ {
+ class BeanInfo;
+ class ExplicitInfo;
+ class Introspector;
+ }
+ }
+}
+
+class java::beans::Introspector : public ::java::lang::Object
+{
+
+ Introspector();
+public:
+ static ::java::beans::BeanInfo * getBeanInfo(::java::lang::Class *);
+ static ::java::beans::BeanInfo * getBeanInfo(::java::lang::Class *, jint);
+ static void flushCaches();
+ static void flushFromCaches(::java::lang::Class *);
+private:
+ static void merge(::gnu::java::beans::BeanInfoEmbryo *, ::java::beans::ExplicitInfo *);
+public:
+ static ::java::beans::BeanInfo * getBeanInfo(::java::lang::Class *, ::java::lang::Class *);
+ static JArray< ::java::lang::String * > * getBeanInfoSearchPath();
+ static void setBeanInfoSearchPath(JArray< ::java::lang::String * > *);
+ static ::java::lang::String * decapitalize(::java::lang::String *);
+public: // actually package-private
+ static ::java::beans::BeanInfo * copyBeanInfo(::java::beans::BeanInfo *);
+public:
+ static const jint USE_ALL_BEANINFO = 1;
+ static const jint IGNORE_IMMEDIATE_BEANINFO = 2;
+ static const jint IGNORE_ALL_BEANINFO = 3;
+public: // actually package-private
+ static JArray< ::java::lang::String * > * beanInfoSearchPath;
+ static ::java::util::Hashtable * beanInfoCache;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_Introspector__
diff --git a/gcc-4.8/libjava/java/beans/MethodDescriptor.h b/gcc-4.8/libjava/java/beans/MethodDescriptor.h
new file mode 100644
index 000000000..cf3ca4acf
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/MethodDescriptor.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_MethodDescriptor__
+#define __java_beans_MethodDescriptor__
+
+#pragma interface
+
+#include <java/beans/FeatureDescriptor.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class MethodDescriptor;
+ class ParameterDescriptor;
+ }
+ }
+}
+
+class java::beans::MethodDescriptor : public ::java::beans::FeatureDescriptor
+{
+
+public:
+ MethodDescriptor(::java::lang::reflect::Method *);
+ MethodDescriptor(::java::lang::reflect::Method *, JArray< ::java::beans::ParameterDescriptor * > *);
+ virtual JArray< ::java::beans::ParameterDescriptor * > * getParameterDescriptors();
+ virtual ::java::lang::reflect::Method * getMethod();
+private:
+ ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::java::beans::FeatureDescriptor)))) m;
+ JArray< ::java::beans::ParameterDescriptor * > * parameterDescriptors;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_MethodDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/ParameterDescriptor.h b/gcc-4.8/libjava/java/beans/ParameterDescriptor.h
new file mode 100644
index 000000000..66e201e14
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/ParameterDescriptor.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_ParameterDescriptor__
+#define __java_beans_ParameterDescriptor__
+
+#pragma interface
+
+#include <java/beans/FeatureDescriptor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class ParameterDescriptor;
+ }
+ }
+}
+
+class java::beans::ParameterDescriptor : public ::java::beans::FeatureDescriptor
+{
+
+public:
+ ParameterDescriptor();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_ParameterDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/PersistenceDelegate.h b/gcc-4.8/libjava/java/beans/PersistenceDelegate.h
new file mode 100644
index 000000000..93b7865b9
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PersistenceDelegate.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PersistenceDelegate__
+#define __java_beans_PersistenceDelegate__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Encoder;
+ class Expression;
+ class PersistenceDelegate;
+ }
+ }
+}
+
+class java::beans::PersistenceDelegate : public ::java::lang::Object
+{
+
+public:
+ PersistenceDelegate();
+public: // actually protected
+ virtual void initialize(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::beans::Encoder *);
+public:
+ virtual void writeObject(::java::lang::Object *, ::java::beans::Encoder *);
+public: // actually protected
+ virtual jboolean mutatesTo(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::beans::Expression * instantiate(::java::lang::Object *, ::java::beans::Encoder *) = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PersistenceDelegate__
diff --git a/gcc-4.8/libjava/java/beans/PropertyChangeEvent.h b/gcc-4.8/libjava/java/beans/PropertyChangeEvent.h
new file mode 100644
index 000000000..6ea915515
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyChangeEvent.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyChangeEvent__
+#define __java_beans_PropertyChangeEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ }
+ }
+}
+
+class java::beans::PropertyChangeEvent : public ::java::util::EventObject
+{
+
+public:
+ PropertyChangeEvent(::java::lang::Object *, ::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::String * getPropertyName();
+ virtual ::java::lang::Object * getNewValue();
+ virtual ::java::lang::Object * getOldValue();
+ virtual void setPropagationId(::java::lang::Object *);
+ virtual ::java::lang::Object * getPropagationId();
+public: // actually package-private
+ virtual ::java::beans::PropertyChangeEvent * rollback();
+private:
+ static const jlong serialVersionUID = 7042693688939648123LL;
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) propertyName;
+ ::java::lang::Object * newValue;
+ ::java::lang::Object * oldValue;
+private:
+ ::java::lang::Object * propagationId;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyChangeEvent__
diff --git a/gcc-4.8/libjava/java/beans/PropertyChangeListener.h b/gcc-4.8/libjava/java/beans/PropertyChangeListener.h
new file mode 100644
index 000000000..c72b2be73
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyChangeListener.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyChangeListener__
+#define __java_beans_PropertyChangeListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class PropertyChangeListener;
+ }
+ }
+}
+
+class java::beans::PropertyChangeListener : public ::java::lang::Object
+{
+
+public:
+ virtual void propertyChange(::java::beans::PropertyChangeEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_PropertyChangeListener__
diff --git a/gcc-4.8/libjava/java/beans/PropertyChangeListenerProxy.h b/gcc-4.8/libjava/java/beans/PropertyChangeListenerProxy.h
new file mode 100644
index 000000000..14cce8e3c
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyChangeListenerProxy.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyChangeListenerProxy__
+#define __java_beans_PropertyChangeListenerProxy__
+
+#pragma interface
+
+#include <java/util/EventListenerProxy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class PropertyChangeListener;
+ class PropertyChangeListenerProxy;
+ }
+ }
+}
+
+class java::beans::PropertyChangeListenerProxy : public ::java::util::EventListenerProxy
+{
+
+public:
+ PropertyChangeListenerProxy(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void propertyChange(::java::beans::PropertyChangeEvent *);
+ virtual ::java::lang::String * getPropertyName();
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::EventListenerProxy)))) propertyName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyChangeListenerProxy__
diff --git a/gcc-4.8/libjava/java/beans/PropertyChangeSupport.h b/gcc-4.8/libjava/java/beans/PropertyChangeSupport.h
new file mode 100644
index 000000000..ae037a893
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyChangeSupport.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyChangeSupport__
+#define __java_beans_PropertyChangeSupport__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ }
+ }
+}
+
+class java::beans::PropertyChangeSupport : public ::java::lang::Object
+{
+
+public:
+ PropertyChangeSupport(::java::lang::Object *);
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners();
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(::java::lang::String *);
+ virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void firePropertyChange(::java::lang::String *, jint, jint);
+ virtual void firePropertyChange(::java::lang::String *, jboolean, jboolean);
+ virtual void firePropertyChange(::java::beans::PropertyChangeEvent *);
+ virtual void fireIndexedPropertyChange(::java::lang::String *, jint, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void fireIndexedPropertyChange(::java::lang::String *, jint, jint, jint);
+ virtual void fireIndexedPropertyChange(::java::lang::String *, jint, jboolean, jboolean);
+ virtual jboolean hasListeners(::java::lang::String *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 6401253773779951803LL;
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children;
+ ::java::lang::Object * source;
+ static const jint propertyChangeSupportSerializedDataVersion = 2;
+ ::java::util::Vector * listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyChangeSupport__
diff --git a/gcc-4.8/libjava/java/beans/PropertyDescriptor.h b/gcc-4.8/libjava/java/beans/PropertyDescriptor.h
new file mode 100644
index 000000000..242c3d5db
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyDescriptor.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyDescriptor__
+#define __java_beans_PropertyDescriptor__
+
+#pragma interface
+
+#include <java/beans/FeatureDescriptor.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyDescriptor;
+ class PropertyEditor;
+ }
+ }
+}
+
+class java::beans::PropertyDescriptor : public ::java::beans::FeatureDescriptor
+{
+
+public: // actually package-private
+ PropertyDescriptor(::java::lang::String *);
+public:
+ PropertyDescriptor(::java::lang::String *, ::java::lang::Class *);
+ PropertyDescriptor(::java::lang::String *, ::java::lang::Class *, ::java::lang::String *, ::java::lang::String *);
+ PropertyDescriptor(::java::lang::String *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *);
+ virtual ::java::lang::Class * getPropertyType();
+ virtual ::java::lang::reflect::Method * getReadMethod();
+ virtual void setReadMethod(::java::lang::reflect::Method *);
+ virtual ::java::lang::reflect::Method * getWriteMethod();
+ virtual void setWriteMethod(::java::lang::reflect::Method *);
+ virtual jboolean isBound();
+ virtual void setBound(jboolean);
+ virtual jboolean isConstrained();
+ virtual void setConstrained(jboolean);
+ virtual ::java::lang::Class * getPropertyEditorClass();
+ virtual void setPropertyEditorClass(::java::lang::Class *);
+ virtual ::java::beans::PropertyEditor * createPropertyEditor(::java::lang::Object *);
+private:
+ ::java::lang::reflect::Constructor * findConstructor(::java::lang::Class *, JArray< ::java::lang::Class * > *);
+ ::java::beans::PropertyEditor * instantiateClass(::java::lang::reflect::Constructor *, JArray< ::java::lang::Object * > *);
+ void findMethods(::java::lang::Class *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ ::java::lang::Class * checkMethods(::java::lang::reflect::Method *, ::java::lang::reflect::Method *);
+public:
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::beans::FeatureDescriptor)))) propertyType;
+ ::java::lang::reflect::Method * getMethod;
+ ::java::lang::reflect::Method * setMethod;
+ ::java::lang::Class * propertyEditorClass;
+ jboolean bound;
+ jboolean constrained;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyDescriptor__
diff --git a/gcc-4.8/libjava/java/beans/PropertyEditor.h b/gcc-4.8/libjava/java/beans/PropertyEditor.h
new file mode 100644
index 000000000..4fab8c8d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyEditor.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyEditor__
+#define __java_beans_PropertyEditor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Graphics;
+ class Rectangle;
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyEditor;
+ }
+ }
+}
+
+class java::beans::PropertyEditor : public ::java::lang::Object
+{
+
+public:
+ virtual void setValue(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getValue() = 0;
+ virtual void setAsText(::java::lang::String *) = 0;
+ virtual ::java::lang::String * getAsText() = 0;
+ virtual JArray< ::java::lang::String * > * getTags() = 0;
+ virtual jboolean isPaintable() = 0;
+ virtual void paintValue(::java::awt::Graphics *, ::java::awt::Rectangle *) = 0;
+ virtual jboolean supportsCustomEditor() = 0;
+ virtual ::java::awt::Component * getCustomEditor() = 0;
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *) = 0;
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *) = 0;
+ virtual ::java::lang::String * getJavaInitializationString() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_PropertyEditor__
diff --git a/gcc-4.8/libjava/java/beans/PropertyEditorManager.h b/gcc-4.8/libjava/java/beans/PropertyEditorManager.h
new file mode 100644
index 000000000..88985b3b8
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyEditorManager.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyEditorManager__
+#define __java_beans_PropertyEditorManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyEditor;
+ class PropertyEditorManager;
+ }
+ }
+}
+
+class java::beans::PropertyEditorManager : public ::java::lang::Object
+{
+
+public:
+ PropertyEditorManager();
+ static void registerEditor(::java::lang::Class *, ::java::lang::Class *);
+ static ::java::beans::PropertyEditor * findEditor(::java::lang::Class *);
+ static JArray< ::java::lang::String * > * getEditorSearchPath();
+ static void setEditorSearchPath(JArray< ::java::lang::String * > *);
+public: // actually package-private
+ static ::java::util::Hashtable * editors;
+ static JArray< ::java::lang::String * > * editorSearchPath;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyEditorManager__
diff --git a/gcc-4.8/libjava/java/beans/PropertyEditorSupport.h b/gcc-4.8/libjava/java/beans/PropertyEditorSupport.h
new file mode 100644
index 000000000..62500511a
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyEditorSupport.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyEditorSupport__
+#define __java_beans_PropertyEditorSupport__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ class Graphics;
+ class Rectangle;
+ }
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ class PropertyEditorSupport;
+ }
+ }
+}
+
+class java::beans::PropertyEditorSupport : public ::java::lang::Object
+{
+
+public:
+ PropertyEditorSupport();
+ PropertyEditorSupport(::java::lang::Object *);
+ virtual void setValue(::java::lang::Object *);
+ virtual ::java::lang::Object * getValue();
+ virtual jboolean isPaintable();
+ virtual void paintValue(::java::awt::Graphics *, ::java::awt::Rectangle *);
+ virtual ::java::lang::String * getJavaInitializationString();
+ virtual ::java::lang::String * getAsText();
+ virtual void setAsText(::java::lang::String *);
+ virtual JArray< ::java::lang::String * > * getTags();
+ virtual ::java::awt::Component * getCustomEditor();
+ virtual jboolean supportsCustomEditor();
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void firePropertyChange();
+ virtual ::java::lang::Object * getSource();
+ virtual void setSource(::java::lang::Object *);
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) eventSource;
+ ::java::lang::Object * value;
+ ::java::beans::PropertyChangeSupport * pSupport;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyEditorSupport__
diff --git a/gcc-4.8/libjava/java/beans/PropertyVetoException.h b/gcc-4.8/libjava/java/beans/PropertyVetoException.h
new file mode 100644
index 000000000..7de400634
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/PropertyVetoException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_PropertyVetoException__
+#define __java_beans_PropertyVetoException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class PropertyVetoException;
+ }
+ }
+}
+
+class java::beans::PropertyVetoException : public ::java::lang::Exception
+{
+
+public:
+ PropertyVetoException(::java::lang::String *, ::java::beans::PropertyChangeEvent *);
+ virtual ::java::beans::PropertyChangeEvent * getPropertyChangeEvent();
+private:
+ static const jlong serialVersionUID = 129596057694162164LL;
+ ::java::beans::PropertyChangeEvent * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) evt;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_PropertyVetoException__
diff --git a/gcc-4.8/libjava/java/beans/SimpleBeanInfo.h b/gcc-4.8/libjava/java/beans/SimpleBeanInfo.h
new file mode 100644
index 000000000..ea77e4743
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/SimpleBeanInfo.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_SimpleBeanInfo__
+#define __java_beans_SimpleBeanInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ }
+ namespace beans
+ {
+ class BeanDescriptor;
+ class BeanInfo;
+ class EventSetDescriptor;
+ class MethodDescriptor;
+ class PropertyDescriptor;
+ class SimpleBeanInfo;
+ }
+ }
+}
+
+class java::beans::SimpleBeanInfo : public ::java::lang::Object
+{
+
+public:
+ SimpleBeanInfo();
+ virtual ::java::beans::BeanDescriptor * getBeanDescriptor();
+ virtual JArray< ::java::beans::EventSetDescriptor * > * getEventSetDescriptors();
+ virtual jint getDefaultEventIndex();
+ virtual JArray< ::java::beans::PropertyDescriptor * > * getPropertyDescriptors();
+ virtual jint getDefaultPropertyIndex();
+ virtual JArray< ::java::beans::MethodDescriptor * > * getMethodDescriptors();
+ virtual JArray< ::java::beans::BeanInfo * > * getAdditionalBeanInfo();
+ virtual ::java::awt::Image * getIcon(jint);
+ virtual ::java::awt::Image * loadImage(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_SimpleBeanInfo__
diff --git a/gcc-4.8/libjava/java/beans/Statement.h b/gcc-4.8/libjava/java/beans/Statement.h
new file mode 100644
index 000000000..3df8477b4
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Statement.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Statement__
+#define __java_beans_Statement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Statement;
+ }
+ }
+}
+
+class java::beans::Statement : public ::java::lang::Object
+{
+
+public:
+ Statement(::java::lang::Object *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual void execute();
+private:
+ ::java::lang::Class * unwrap(::java::lang::Class *);
+ jboolean compatible(JArray< ::java::lang::Class * > *, JArray< ::java::lang::Class * > *);
+ jboolean moreSpecific(JArray< ::java::lang::Class * > *, JArray< ::java::lang::Class * > *);
+public: // actually package-private
+ virtual ::java::lang::Object * doExecute();
+public:
+ virtual JArray< ::java::lang::Object * > * getArguments();
+ virtual ::java::lang::String * getMethodName();
+ virtual ::java::lang::Object * getTarget();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target;
+ ::java::lang::String * methodName;
+ JArray< ::java::lang::Object * > * arguments;
+ ::java::lang::reflect::Method * method;
+ ::java::lang::reflect::Constructor * ctor;
+ static JArray< ::java::lang::Class * > * wrappers;
+ static JArray< ::java::lang::Class * > * natives;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_Statement__
diff --git a/gcc-4.8/libjava/java/beans/VetoableChangeListener.h b/gcc-4.8/libjava/java/beans/VetoableChangeListener.h
new file mode 100644
index 000000000..2bf9d1d07
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/VetoableChangeListener.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_VetoableChangeListener__
+#define __java_beans_VetoableChangeListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class VetoableChangeListener;
+ }
+ }
+}
+
+class java::beans::VetoableChangeListener : public ::java::lang::Object
+{
+
+public:
+ virtual void vetoableChange(::java::beans::PropertyChangeEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_VetoableChangeListener__
diff --git a/gcc-4.8/libjava/java/beans/VetoableChangeListenerProxy.h b/gcc-4.8/libjava/java/beans/VetoableChangeListenerProxy.h
new file mode 100644
index 000000000..f713ac432
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/VetoableChangeListenerProxy.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_VetoableChangeListenerProxy__
+#define __java_beans_VetoableChangeListenerProxy__
+
+#pragma interface
+
+#include <java/util/EventListenerProxy.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class VetoableChangeListener;
+ class VetoableChangeListenerProxy;
+ }
+ }
+}
+
+class java::beans::VetoableChangeListenerProxy : public ::java::util::EventListenerProxy
+{
+
+public:
+ VetoableChangeListenerProxy(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual void vetoableChange(::java::beans::PropertyChangeEvent *);
+ virtual ::java::lang::String * getPropertyName();
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::EventListenerProxy)))) propertyName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_VetoableChangeListenerProxy__
diff --git a/gcc-4.8/libjava/java/beans/VetoableChangeSupport.h b/gcc-4.8/libjava/java/beans/VetoableChangeSupport.h
new file mode 100644
index 000000000..9dfdbc589
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/VetoableChangeSupport.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_VetoableChangeSupport__
+#define __java_beans_VetoableChangeSupport__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class VetoableChangeListener;
+ class VetoableChangeSupport;
+ }
+ }
+}
+
+class java::beans::VetoableChangeSupport : public ::java::lang::Object
+{
+
+public:
+ VetoableChangeSupport(::java::lang::Object *);
+ virtual void addVetoableChangeListener(::java::beans::VetoableChangeListener *);
+ virtual void removeVetoableChangeListener(::java::beans::VetoableChangeListener *);
+ virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners();
+ virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners(::java::lang::String *);
+ virtual void fireVetoableChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void fireVetoableChange(::java::lang::String *, jint, jint);
+ virtual void fireVetoableChange(::java::lang::String *, jboolean, jboolean);
+ virtual void fireVetoableChange(::java::beans::PropertyChangeEvent *);
+ virtual jboolean hasListeners(::java::lang::String *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -5090210921595982017LL;
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children;
+ ::java::lang::Object * source;
+ static const jint vetoableChangeSupportSerializedDataVersion = 2;
+ ::java::util::Vector * listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_VetoableChangeSupport__
diff --git a/gcc-4.8/libjava/java/beans/Visibility.h b/gcc-4.8/libjava/java/beans/Visibility.h
new file mode 100644
index 000000000..df5f7a628
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/Visibility.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_Visibility__
+#define __java_beans_Visibility__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class Visibility;
+ }
+ }
+}
+
+class java::beans::Visibility : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean needsGui() = 0;
+ virtual jboolean avoidingGui() = 0;
+ virtual void dontUseGui() = 0;
+ virtual void okToUseGui() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_Visibility__
diff --git a/gcc-4.8/libjava/java/beans/XMLDecoder.h b/gcc-4.8/libjava/java/beans/XMLDecoder.h
new file mode 100644
index 000000000..f5055c4f6
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/XMLDecoder.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_XMLDecoder__
+#define __java_beans_XMLDecoder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class ExceptionListener;
+ class XMLDecoder;
+ }
+ }
+}
+
+class java::beans::XMLDecoder : public ::java::lang::Object
+{
+
+public:
+ XMLDecoder(::java::io::InputStream *);
+ XMLDecoder(::java::io::InputStream *, ::java::lang::Object *);
+ XMLDecoder(::java::io::InputStream *, ::java::lang::Object *, ::java::beans::ExceptionListener *);
+ XMLDecoder(::java::io::InputStream *, ::java::lang::Object *, ::java::beans::ExceptionListener *, ::java::lang::ClassLoader *);
+ virtual void close();
+ virtual ::java::beans::ExceptionListener * getExceptionListener();
+ virtual ::java::lang::Object * getOwner();
+ virtual ::java::lang::Object * readObject();
+ virtual void setExceptionListener(::java::beans::ExceptionListener *);
+ virtual void setOwner(::java::lang::Object *);
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) owner;
+ ::java::beans::ExceptionListener * exceptionListener;
+ ::java::io::InputStream * inputStream;
+ jboolean isStreamClosed;
+ ::java::lang::ClassLoader * classLoader;
+ ::java::util::Iterator * iterator;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_XMLDecoder__
diff --git a/gcc-4.8/libjava/java/beans/XMLEncoder.h b/gcc-4.8/libjava/java/beans/XMLEncoder.h
new file mode 100644
index 000000000..3a6e01df1
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/XMLEncoder.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_XMLEncoder__
+#define __java_beans_XMLEncoder__
+
+#pragma interface
+
+#include <java/beans/Encoder.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace beans
+ {
+ namespace encoder
+ {
+ class ScanEngine;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace beans
+ {
+ class Expression;
+ class Statement;
+ class XMLEncoder;
+ }
+ }
+}
+
+class java::beans::XMLEncoder : public ::java::beans::Encoder
+{
+
+public:
+ XMLEncoder(::java::io::OutputStream *);
+ virtual void close();
+ virtual void flush();
+ virtual void writeExpression(::java::beans::Expression *);
+ virtual void writeStatement(::java::beans::Statement *);
+ virtual void writeObject(::java::lang::Object *);
+ virtual void setOwner(::java::lang::Object *);
+ virtual ::java::lang::Object * getOwner();
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::beans::Encoder)))) owner;
+ ::java::lang::Exception * exception;
+ ::gnu::java::beans::encoder::ScanEngine * scanEngine;
+private:
+ jint accessCounter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_XMLEncoder__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContext.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContext.h
new file mode 100644
index 000000000..e9935e0ea
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContext.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContext__
+#define __java_beans_beancontext_BeanContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class VetoableChangeListener;
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextChild;
+ class BeanContextMembershipListener;
+ }
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContext : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * instantiateChild(::java::lang::String *) = 0;
+ virtual ::java::net::URL * getResource(::java::lang::String *, ::java::beans::beancontext::BeanContextChild *) = 0;
+ virtual ::java::io::InputStream * getResourceAsStream(::java::lang::String *, ::java::beans::beancontext::BeanContextChild *) = 0;
+ virtual void addBeanContextMembershipListener(::java::beans::beancontext::BeanContextMembershipListener *) = 0;
+ virtual void removeBeanContextMembershipListener(::java::beans::beancontext::BeanContextMembershipListener *) = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ virtual void setBeanContext(::java::beans::beancontext::BeanContext *) = 0;
+ virtual ::java::beans::beancontext::BeanContext * getBeanContext() = 0;
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *) = 0;
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *) = 0;
+ virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *) = 0;
+ virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *) = 0;
+ virtual jboolean needsGui() = 0;
+ virtual jboolean avoidingGui() = 0;
+ virtual void dontUseGui() = 0;
+ virtual void okToUseGui() = 0;
+ virtual void setDesignTime(jboolean) = 0;
+ virtual jboolean isDesignTime() = 0;
+ static ::java::lang::Object * globalHierarchyLock;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContext__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextChild.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextChild.h
new file mode 100644
index 000000000..0e1c8685f
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextChild.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextChild__
+#define __java_beans_beancontext_BeanContextChild__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class VetoableChangeListener;
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextChild;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextChild : public ::java::lang::Object
+{
+
+public:
+ virtual void setBeanContext(::java::beans::beancontext::BeanContext *) = 0;
+ virtual ::java::beans::beancontext::BeanContext * getBeanContext() = 0;
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *) = 0;
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *) = 0;
+ virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *) = 0;
+ virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextChild__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextChildComponentProxy.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextChildComponentProxy.h
new file mode 100644
index 000000000..7e515669f
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextChildComponentProxy.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextChildComponentProxy__
+#define __java_beans_beancontext_BeanContextChildComponentProxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ }
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextChildComponentProxy;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextChildComponentProxy : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Component * getComponent() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextChildComponentProxy__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextChildSupport.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextChildSupport.h
new file mode 100644
index 000000000..646217b30
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextChildSupport.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextChildSupport__
+#define __java_beans_beancontext_BeanContextChildSupport__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ class VetoableChangeListener;
+ class VetoableChangeSupport;
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextChild;
+ class BeanContextChildSupport;
+ class BeanContextServiceAvailableEvent;
+ class BeanContextServiceRevokedEvent;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextChildSupport : public ::java::lang::Object
+{
+
+public:
+ BeanContextChildSupport();
+ BeanContextChildSupport(::java::beans::beancontext::BeanContextChild *);
+ virtual void setBeanContext(::java::beans::beancontext::BeanContext *);
+ virtual ::java::beans::beancontext::BeanContext * getBeanContext();
+ virtual ::java::beans::beancontext::BeanContextChild * getBeanContextChildPeer();
+ virtual jboolean isDelegated();
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *);
+ virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *);
+ virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void fireVetoableChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *);
+ virtual void serviceAvailable(::java::beans::beancontext::BeanContextServiceAvailableEvent *);
+ virtual jboolean validatePendingSetBeanContext(::java::beans::beancontext::BeanContext *);
+public: // actually protected
+ virtual void releaseBeanContextResources();
+ virtual void initializeBeanContextResources();
+public: // actually package-private
+ static const jlong serialVersionUID = 6328947014421475877LL;
+public:
+ ::java::beans::beancontext::BeanContextChild * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beanContextChildPeer;
+public: // actually protected
+ ::java::beans::beancontext::BeanContext * beanContext;
+ jboolean rejectedSetBCOnce;
+ ::java::beans::PropertyChangeSupport * pcSupport;
+ ::java::beans::VetoableChangeSupport * vcSupport;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextChildSupport__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextContainerProxy.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextContainerProxy.h
new file mode 100644
index 000000000..c3574f5db
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextContainerProxy.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextContainerProxy__
+#define __java_beans_beancontext_BeanContextContainerProxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Container;
+ }
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextContainerProxy;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextContainerProxy : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::awt::Container * getContainer() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextContainerProxy__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextEvent.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextEvent.h
new file mode 100644
index 000000000..a74c1da04
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextEvent.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextEvent__
+#define __java_beans_beancontext_BeanContextEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextEvent;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextEvent : public ::java::util::EventObject
+{
+
+public: // actually protected
+ BeanContextEvent(::java::beans::beancontext::BeanContext *);
+public:
+ virtual ::java::beans::beancontext::BeanContext * getBeanContext();
+ virtual ::java::beans::beancontext::BeanContext * getPropagatedFrom();
+ virtual jboolean isPropagated();
+ virtual void setPropagatedFrom(::java::beans::beancontext::BeanContext *);
+private:
+ static const jlong serialVersionUID = 7267998073569045052LL;
+public: // actually protected
+ ::java::beans::beancontext::BeanContext * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) propagatedFrom;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextEvent__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipEvent.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipEvent.h
new file mode 100644
index 000000000..8b6c933bb
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipEvent.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextMembershipEvent__
+#define __java_beans_beancontext_BeanContextMembershipEvent__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextEvent.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextMembershipEvent;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextMembershipEvent : public ::java::beans::beancontext::BeanContextEvent
+{
+
+public:
+ BeanContextMembershipEvent(::java::beans::beancontext::BeanContext *, ::java::util::Collection *);
+ BeanContextMembershipEvent(::java::beans::beancontext::BeanContext *, JArray< ::java::lang::Object * > *);
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual jboolean contains(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 3499346510334590959LL;
+public: // actually protected
+ ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextEvent)))) children;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextMembershipEvent__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipListener.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipListener.h
new file mode 100644
index 000000000..89efed826
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextMembershipListener.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextMembershipListener__
+#define __java_beans_beancontext_BeanContextMembershipListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextMembershipEvent;
+ class BeanContextMembershipListener;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextMembershipListener : public ::java::lang::Object
+{
+
+public:
+ virtual void childrenAdded(::java::beans::beancontext::BeanContextMembershipEvent *) = 0;
+ virtual void childrenRemoved(::java::beans::beancontext::BeanContextMembershipEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextMembershipListener__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextProxy.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextProxy.h
new file mode 100644
index 000000000..3d18c0a81
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextProxy.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextProxy__
+#define __java_beans_beancontext_BeanContextProxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextChild;
+ class BeanContextProxy;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextProxy : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::beans::beancontext::BeanContextChild * getBeanContextProxy() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextProxy__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h
new file mode 100644
index 000000000..7b69fe82b
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServiceAvailableEvent__
+#define __java_beans_beancontext_BeanContextServiceAvailableEvent__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceAvailableEvent;
+ class BeanContextServices;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServiceAvailableEvent : public ::java::beans::beancontext::BeanContextEvent
+{
+
+public:
+ BeanContextServiceAvailableEvent(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *);
+ virtual ::java::util::Iterator * getCurrentServiceSelectors();
+ virtual ::java::lang::Class * getServiceClass();
+ virtual ::java::beans::beancontext::BeanContextServices * getSourceAsBeanContextServices();
+private:
+ static const jlong serialVersionUID = -5333985775656400778LL;
+public: // actually protected
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextEvent)))) serviceClass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServiceAvailableEvent__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProvider.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProvider.h
new file mode 100644
index 000000000..937bd5dec
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProvider.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServiceProvider__
+#define __java_beans_beancontext_BeanContextServiceProvider__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceProvider;
+ class BeanContextServices;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServiceProvider : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *) = 0;
+ virtual void releaseService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextServiceProvider__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h
new file mode 100644
index 000000000..952edd1e0
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServiceProviderBeanInfo__
+#define __java_beans_beancontext_BeanContextServiceProviderBeanInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ }
+ namespace beans
+ {
+ class BeanDescriptor;
+ class BeanInfo;
+ class EventSetDescriptor;
+ class MethodDescriptor;
+ class PropertyDescriptor;
+ namespace beancontext
+ {
+ class BeanContextServiceProviderBeanInfo;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServiceProviderBeanInfo : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::beans::BeanInfo * > * getServicesBeanInfo() = 0;
+ virtual ::java::beans::BeanDescriptor * getBeanDescriptor() = 0;
+ virtual JArray< ::java::beans::EventSetDescriptor * > * getEventSetDescriptors() = 0;
+ virtual jint getDefaultEventIndex() = 0;
+ virtual JArray< ::java::beans::PropertyDescriptor * > * getPropertyDescriptors() = 0;
+ virtual jint getDefaultPropertyIndex() = 0;
+ virtual JArray< ::java::beans::MethodDescriptor * > * getMethodDescriptors() = 0;
+ virtual JArray< ::java::beans::BeanInfo * > * getAdditionalBeanInfo() = 0;
+ virtual ::java::awt::Image * getIcon(jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextServiceProviderBeanInfo__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h
new file mode 100644
index 000000000..700da3ac4
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServiceRevokedEvent__
+#define __java_beans_beancontext_BeanContextServiceRevokedEvent__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceRevokedEvent;
+ class BeanContextServices;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServiceRevokedEvent : public ::java::beans::beancontext::BeanContextEvent
+{
+
+public:
+ BeanContextServiceRevokedEvent(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *, jboolean);
+ virtual ::java::lang::Class * getServiceClass();
+ virtual jboolean isServiceClass(::java::lang::Class *);
+ virtual ::java::beans::beancontext::BeanContextServices * getSourceAsBeanContextServices();
+ virtual jboolean isCurrentServiceInvalidNow();
+private:
+ static const jlong serialVersionUID = -1295543154724961754LL;
+public: // actually protected
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextEvent)))) serviceClass;
+private:
+ jboolean invalidateRefs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServiceRevokedEvent__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h
new file mode 100644
index 000000000..c74f48a08
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServiceRevokedListener__
+#define __java_beans_beancontext_BeanContextServiceRevokedListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceRevokedEvent;
+ class BeanContextServiceRevokedListener;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServiceRevokedListener : public ::java::lang::Object
+{
+
+public:
+ virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextServiceRevokedListener__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServices.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServices.h
new file mode 100644
index 000000000..fd6741976
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServices.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServices__
+#define __java_beans_beancontext_BeanContextServices__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class VetoableChangeListener;
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextChild;
+ class BeanContextMembershipListener;
+ class BeanContextServiceAvailableEvent;
+ class BeanContextServiceProvider;
+ class BeanContextServiceRevokedEvent;
+ class BeanContextServiceRevokedListener;
+ class BeanContextServices;
+ class BeanContextServicesListener;
+ }
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServices : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean addService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *) = 0;
+ virtual void revokeService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *, jboolean) = 0;
+ virtual void releaseService(::java::beans::beancontext::BeanContextChild *, ::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextChild *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *, ::java::beans::beancontext::BeanContextServiceRevokedListener *) = 0;
+ virtual ::java::util::Iterator * getCurrentServiceClasses() = 0;
+ virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::lang::Class *) = 0;
+ virtual jboolean hasService(::java::lang::Class *) = 0;
+ virtual void addBeanContextServicesListener(::java::beans::beancontext::BeanContextServicesListener *) = 0;
+ virtual void removeBeanContextServicesListener(::java::beans::beancontext::BeanContextServicesListener *) = 0;
+ virtual ::java::lang::Object * instantiateChild(::java::lang::String *) = 0;
+ virtual ::java::net::URL * getResource(::java::lang::String *, ::java::beans::beancontext::BeanContextChild *) = 0;
+ virtual ::java::io::InputStream * getResourceAsStream(::java::lang::String *, ::java::beans::beancontext::BeanContextChild *) = 0;
+ virtual void addBeanContextMembershipListener(::java::beans::beancontext::BeanContextMembershipListener *) = 0;
+ virtual void removeBeanContextMembershipListener(::java::beans::beancontext::BeanContextMembershipListener *) = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ virtual void setBeanContext(::java::beans::beancontext::BeanContext *) = 0;
+ virtual ::java::beans::beancontext::BeanContext * getBeanContext() = 0;
+ virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *) = 0;
+ virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *) = 0;
+ virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *) = 0;
+ virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *) = 0;
+ virtual jboolean needsGui() = 0;
+ virtual jboolean avoidingGui() = 0;
+ virtual void dontUseGui() = 0;
+ virtual void okToUseGui() = 0;
+ virtual void setDesignTime(jboolean) = 0;
+ virtual jboolean isDesignTime() = 0;
+ virtual void serviceAvailable(::java::beans::beancontext::BeanContextServiceAvailableEvent *) = 0;
+ virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextServices__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesListener.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesListener.h
new file mode 100644
index 000000000..2be375349
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesListener.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesListener__
+#define __java_beans_beancontext_BeanContextServicesListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceAvailableEvent;
+ class BeanContextServiceRevokedEvent;
+ class BeanContextServicesListener;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesListener : public ::java::lang::Object
+{
+
+public:
+ virtual void serviceAvailable(::java::beans::beancontext::BeanContextServiceAvailableEvent *) = 0;
+ virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_beans_beancontext_BeanContextServicesListener__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h
new file mode 100644
index 000000000..d74827c13
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport$BCSSChild__
+#define __java_beans_beancontext_BeanContextServicesSupport$BCSSChild__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextSupport$BCSChild.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServicesSupport;
+ class BeanContextServicesSupport$BCSSChild;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport$BCSSChild : public ::java::beans::beancontext::BeanContextSupport$BCSChild
+{
+
+public: // actually package-private
+ BeanContextServicesSupport$BCSSChild(::java::beans::beancontext::BeanContextServicesSupport *, ::java::lang::Object *, ::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -3263851306889194873LL;
+public: // actually package-private
+ ::java::beans::beancontext::BeanContextServicesSupport * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextSupport$BCSChild)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport$BCSSChild__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
new file mode 100644
index 000000000..0453cc16c
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport$BCSSProxyServiceProvider__
+#define __java_beans_beancontext_BeanContextServicesSupport$BCSSProxyServiceProvider__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceProvider;
+ class BeanContextServiceRevokedEvent;
+ class BeanContextServices;
+ class BeanContextServicesSupport;
+ class BeanContextServicesSupport$BCSSProxyServiceProvider;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider : public ::java::lang::Object
+{
+
+public: // actually package-private
+ BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *, ::java::beans::beancontext::BeanContextServiceProvider *);
+public:
+ virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *);
+ virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *);
+ virtual void releaseService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *);
+private:
+ static const jlong serialVersionUID = 7078212910685744490LL;
+ ::java::beans::beancontext::BeanContextServiceProvider * __attribute__((aligned(__alignof__( ::java::lang::Object)))) provider;
+public: // actually package-private
+ ::java::beans::beancontext::BeanContextServicesSupport * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport$BCSSProxyServiceProvider__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h
new file mode 100644
index 000000000..999ce912f
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport$BCSSServiceProvider__
+#define __java_beans_beancontext_BeanContextServicesSupport$BCSSServiceProvider__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceProvider;
+ class BeanContextServicesSupport$BCSSServiceProvider;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport$BCSSServiceProvider : public ::java::lang::Object
+{
+
+ BeanContextServicesSupport$BCSSServiceProvider(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *);
+public: // actually protected
+ virtual ::java::beans::beancontext::BeanContextServiceProvider * getServiceProvider();
+private:
+ ::java::lang::Class * getServiceClass();
+public: // actually package-private
+ static ::java::lang::Class * access$0(::java::beans::beancontext::BeanContextServicesSupport$BCSSServiceProvider *);
+ BeanContextServicesSupport$BCSSServiceProvider(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *, ::java::beans::beancontext::BeanContextServicesSupport$BCSSServiceProvider *);
+private:
+ static const jlong serialVersionUID = 861278251667444782LL;
+public: // actually protected
+ ::java::beans::beancontext::BeanContextServiceProvider * __attribute__((aligned(__alignof__( ::java::lang::Object)))) serviceProvider;
+private:
+ ::java::lang::Class * serviceClass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport$BCSSServiceProvider__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h
new file mode 100644
index 000000000..64fb22766
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport$Request__
+#define __java_beans_beancontext_BeanContextServicesSupport$Request__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServicesSupport$Request;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport$Request : public ::java::lang::Object
+{
+
+public:
+ BeanContextServicesSupport$Request(::java::lang::Object *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * getRequestor();
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) requestor;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport$Request__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h
new file mode 100644
index 000000000..0f6a32ea1
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport$ServiceLease__
+#define __java_beans_beancontext_BeanContextServicesSupport$ServiceLease__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextServicesSupport$Request.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServicesSupport$ServiceLease;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport$ServiceLease : public ::java::beans::beancontext::BeanContextServicesSupport$Request
+{
+
+public:
+ BeanContextServicesSupport$ServiceLease(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * getService();
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextServicesSupport$Request)))) service;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport$ServiceLease__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h
new file mode 100644
index 000000000..24465df70
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport$ServiceRequest__
+#define __java_beans_beancontext_BeanContextServicesSupport$ServiceRequest__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextServicesSupport$Request.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextServiceRevokedListener;
+ class BeanContextServicesSupport$ServiceRequest;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport$ServiceRequest : public ::java::beans::beancontext::BeanContextServicesSupport$Request
+{
+
+public:
+ BeanContextServicesSupport$ServiceRequest(::java::lang::Object *, ::java::beans::beancontext::BeanContextServiceRevokedListener *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::beans::beancontext::BeanContextServiceRevokedListener * getListener();
+private:
+ ::java::beans::beancontext::BeanContextServiceRevokedListener * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextServicesSupport$Request)))) listener;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport$ServiceRequest__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport.h
new file mode 100644
index 000000000..f16583166
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextServicesSupport.h
@@ -0,0 +1,90 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextServicesSupport__
+#define __java_beans_beancontext_BeanContextServicesSupport__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextSupport.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextChild;
+ class BeanContextServiceAvailableEvent;
+ class BeanContextServiceProvider;
+ class BeanContextServiceRevokedEvent;
+ class BeanContextServiceRevokedListener;
+ class BeanContextServices;
+ class BeanContextServicesListener;
+ class BeanContextServicesSupport;
+ class BeanContextServicesSupport$BCSSProxyServiceProvider;
+ class BeanContextServicesSupport$BCSSServiceProvider;
+ class BeanContextSupport$BCSChild;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextServicesSupport : public ::java::beans::beancontext::BeanContextSupport
+{
+
+public:
+ BeanContextServicesSupport();
+ BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *);
+ BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *, ::java::util::Locale *);
+ BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *, ::java::util::Locale *, jboolean);
+ BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *, ::java::util::Locale *, jboolean, jboolean);
+ virtual void addBeanContextServicesListener(::java::beans::beancontext::BeanContextServicesListener *);
+ virtual jboolean addService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *);
+public: // actually protected
+ virtual jboolean addService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *, jboolean);
+ virtual void bcsPreDeserializationHook(::java::io::ObjectInputStream *);
+ virtual void bcsPreSerializationHook(::java::io::ObjectOutputStream *);
+ virtual void childJustRemovedHook(::java::lang::Object *, ::java::beans::beancontext::BeanContextSupport$BCSChild *);
+ virtual ::java::beans::beancontext::BeanContextSupport$BCSChild * createBCSChild(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::beans::beancontext::BeanContextServicesSupport$BCSSServiceProvider * createBCSSServiceProvider(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *);
+ virtual void fireServiceAdded(::java::beans::beancontext::BeanContextServiceAvailableEvent *);
+ virtual void fireServiceAdded(::java::lang::Class *);
+ virtual void fireServiceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *);
+ virtual void fireServiceRevoked(::java::lang::Class *, jboolean);
+public:
+ virtual ::java::beans::beancontext::BeanContextServices * getBeanContextServicesPeer();
+public: // actually protected
+ static ::java::beans::beancontext::BeanContextServicesListener * getChildBeanContextServicesListener(::java::lang::Object *);
+public:
+ virtual ::java::util::Iterator * getCurrentServiceClasses();
+ virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::lang::Class *);
+ virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextChild *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *, ::java::beans::beancontext::BeanContextServiceRevokedListener *);
+ virtual jboolean hasService(::java::lang::Class *);
+ virtual void initialize();
+public: // actually protected
+ virtual void initializeBeanContextResources();
+ virtual void releaseBeanContextResources();
+public:
+ virtual void releaseService(::java::beans::beancontext::BeanContextChild *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void removeBeanContextServicesListener(::java::beans::beancontext::BeanContextServicesListener *);
+ virtual void revokeService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *, jboolean);
+ virtual void serviceAvailable(::java::beans::beancontext::BeanContextServiceAvailableEvent *);
+ virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *);
+private:
+ static const jlong serialVersionUID = -8494482757288719206LL;
+public: // actually protected
+ ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextSupport)))) bcsListeners;
+ ::java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider * proxy;
+ jint serializable;
+ ::java::util::HashMap * services;
+private:
+ ::java::util::HashMap * serviceUsers;
+ ::java::util::HashMap * serviceRequests;
+ ::java::util::HashMap * serviceLeases;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextServicesSupport__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h
new file mode 100644
index 000000000..40720fb57
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextSupport$BCSChild__
+#define __java_beans_beancontext_BeanContextSupport$BCSChild__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextSupport;
+ class BeanContextSupport$BCSChild;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextSupport$BCSChild : public ::java::lang::Object
+{
+
+public: // actually package-private
+ BeanContextSupport$BCSChild(::java::beans::beancontext::BeanContextSupport *, ::java::lang::Object *, ::java::lang::Object *);
+private:
+ ::java::lang::Object * getTargetChild();
+public: // actually package-private
+ static ::java::lang::Object * access$0(::java::beans::beancontext::BeanContextSupport$BCSChild *);
+private:
+ static const jlong serialVersionUID = -5815286101609939109LL;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) targetChild;
+ ::java::lang::Object * peer;
+public: // actually package-private
+ ::java::beans::beancontext::BeanContextSupport * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextSupport$BCSChild__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h
new file mode 100644
index 000000000..551697939
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextSupport$BCSIterator__
+#define __java_beans_beancontext_BeanContextSupport$BCSIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ namespace beancontext
+ {
+ class BeanContextSupport$BCSIterator;
+ }
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextSupport$BCSIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ BeanContextSupport$BCSIterator(::java::util::Iterator *);
+public:
+ jboolean hasNext();
+ ::java::lang::Object * next();
+ void remove();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) child;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextSupport$BCSIterator__
diff --git a/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport.h b/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport.h
new file mode 100644
index 000000000..36678b520
--- /dev/null
+++ b/gcc-4.8/libjava/java/beans/beancontext/BeanContextSupport.h
@@ -0,0 +1,136 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_beans_beancontext_BeanContextSupport__
+#define __java_beans_beancontext_BeanContextSupport__
+
+#pragma interface
+
+#include <java/beans/beancontext/BeanContextChildSupport.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeEvent;
+ class PropertyChangeListener;
+ class VetoableChangeListener;
+ class Visibility;
+ namespace beancontext
+ {
+ class BeanContext;
+ class BeanContextChild;
+ class BeanContextMembershipEvent;
+ class BeanContextMembershipListener;
+ class BeanContextSupport;
+ class BeanContextSupport$BCSChild;
+ }
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::beans::beancontext::BeanContextSupport : public ::java::beans::beancontext::BeanContextChildSupport
+{
+
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ BeanContextSupport();
+ BeanContextSupport(::java::beans::beancontext::BeanContext *);
+ BeanContextSupport(::java::beans::beancontext::BeanContext *, ::java::util::Locale *);
+ BeanContextSupport(::java::beans::beancontext::BeanContext *, ::java::util::Locale *, jboolean);
+ BeanContextSupport(::java::beans::beancontext::BeanContext *, ::java::util::Locale *, jboolean, jboolean);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void addBeanContextMembershipListener(::java::beans::beancontext::BeanContextMembershipListener *);
+ virtual jboolean avoidingGui();
+public: // actually protected
+ virtual ::java::util::Iterator * bcsChildren();
+ virtual void bcsPreDeserializationHook(::java::io::ObjectInputStream *);
+ virtual void bcsPreSerializationHook(::java::io::ObjectOutputStream *);
+ virtual void childDeserializedHook(::java::lang::Object *, ::java::beans::beancontext::BeanContextSupport$BCSChild *);
+ virtual void childJustAddedHook(::java::lang::Object *, ::java::beans::beancontext::BeanContextSupport$BCSChild *);
+ virtual void childJustRemovedHook(::java::lang::Object *, ::java::beans::beancontext::BeanContextSupport$BCSChild *);
+ static jboolean classEquals(::java::lang::Class *, ::java::lang::Class *);
+public:
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean containsKey(::java::lang::Object *);
+public: // actually protected
+ virtual JArray< ::java::lang::Object * > * copyChildren();
+ virtual ::java::beans::beancontext::BeanContextSupport$BCSChild * createBCSChild(::java::lang::Object *, ::java::lang::Object *);
+ virtual void deserialize(::java::io::ObjectInputStream *, ::java::util::Collection *);
+public:
+ virtual void dontUseGui();
+public: // actually protected
+ virtual void fireChildrenAdded(::java::beans::beancontext::BeanContextMembershipEvent *);
+ virtual void fireChildrenRemoved(::java::beans::beancontext::BeanContextMembershipEvent *);
+public:
+ virtual ::java::beans::beancontext::BeanContext * getBeanContextPeer();
+public: // actually protected
+ static ::java::beans::beancontext::BeanContextChild * getChildBeanContextChild(::java::lang::Object *);
+ static ::java::beans::beancontext::BeanContextMembershipListener * getChildBeanContextMembershipListener(::java::lang::Object *);
+ static ::java::beans::PropertyChangeListener * getChildPropertyChangeListener(::java::lang::Object *);
+ static ::java::io::Serializable * getChildSerializable(::java::lang::Object *);
+ static ::java::beans::VetoableChangeListener * getChildVetoableChangeListener(::java::lang::Object *);
+ static ::java::beans::Visibility * getChildVisibility(::java::lang::Object *);
+public:
+ virtual ::java::util::Locale * getLocale();
+ virtual ::java::net::URL * getResource(::java::lang::String *, ::java::beans::beancontext::BeanContextChild *);
+ virtual ::java::io::InputStream * getResourceAsStream(::java::lang::String *, ::java::beans::beancontext::BeanContextChild *);
+public: // actually protected
+ virtual void initialize();
+public:
+ virtual ::java::lang::Object * instantiateChild(::java::lang::String *);
+ virtual jboolean isDesignTime();
+ virtual jboolean isEmpty();
+ virtual jboolean isSerializing();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean needsGui();
+ virtual void okToUseGui();
+ virtual void propertyChange(::java::beans::PropertyChangeEvent *);
+ virtual void readChildren(::java::io::ObjectInputStream *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually protected
+ virtual jboolean remove(::java::lang::Object *, jboolean);
+public:
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual void removeBeanContextMembershipListener(::java::beans::beancontext::BeanContextMembershipListener *);
+ virtual jboolean retainAll(::java::util::Collection *);
+public: // actually protected
+ virtual void serialize(::java::io::ObjectOutputStream *, ::java::util::Collection *);
+public:
+ virtual void setDesignTime(jboolean);
+ virtual void setLocale(::java::util::Locale *);
+ virtual jint size();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+public: // actually protected
+ virtual jboolean validatePendingAdd(::java::lang::Object *);
+ virtual jboolean validatePendingRemove(::java::lang::Object *);
+public:
+ virtual void vetoableChange(::java::beans::PropertyChangeEvent *);
+ virtual void writeChildren(::java::io::ObjectOutputStream *);
+private:
+ static const jlong serialVersionUID = -4879613978649577204LL;
+public: // actually protected
+ ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextChildSupport)))) bcmListeners;
+ ::java::util::HashMap * children;
+ jboolean designTime;
+ ::java::util::Locale * locale;
+ jboolean okToUseGui__;
+private:
+ jboolean serializing;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_beans_beancontext_BeanContextSupport__
diff --git a/gcc-4.8/libjava/java/io/BufferedInputStream.h b/gcc-4.8/libjava/java/io/BufferedInputStream.h
new file mode 100644
index 000000000..d2851da73
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/BufferedInputStream.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_BufferedInputStream__
+#define __java_io_BufferedInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::BufferedInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ BufferedInputStream(::java::io::InputStream *);
+ BufferedInputStream(::java::io::InputStream *, jint);
+ virtual jint available();
+ virtual void close();
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void reset();
+ virtual jlong skip(jlong);
+public: // actually package-private
+ virtual jboolean refill();
+private:
+ static const jint DEFAULT_BUFFER_SIZE = 2048;
+public: // actually protected
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) buf;
+ jint count;
+ jint pos;
+ jint markpos;
+ jint marklimit;
+private:
+ jint bufferSize;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_BufferedInputStream__
diff --git a/gcc-4.8/libjava/java/io/BufferedInputStream.java b/gcc-4.8/libjava/java/io/BufferedInputStream.java
new file mode 100644
index 000000000..36e58f636
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/BufferedInputStream.java
@@ -0,0 +1,390 @@
+/* BufferedInputStream.java -- An input stream that implements buffering
+ Copyright (C) 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
+ * Status: Believed complete and correct.
+ */
+
+/**
+ * This subclass of <code>FilterInputStream</code> buffers input from an
+ * underlying implementation to provide a possibly more efficient read
+ * mechanism. It maintains the buffer and buffer state in instance
+ * variables that are available to subclasses. The default buffer size
+ * of 2048 bytes can be overridden by the creator of the stream.
+ * <p>
+ * This class also implements mark/reset functionality. It is capable
+ * of remembering any number of input bytes, to the limits of
+ * system memory or the size of <code>Integer.MAX_VALUE</code>
+ * <p>
+ * Please note that this class does not properly handle character
+ * encodings. Consider using the <code>BufferedReader</code> class which
+ * does.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Jeroen Frijters (jeroen@frijters.net)
+ */
+public class BufferedInputStream extends FilterInputStream
+{
+
+ /**
+ * This is the default buffer size
+ */
+ private static final int DEFAULT_BUFFER_SIZE = 2048;
+
+ /**
+ * The buffer used for storing data from the underlying stream.
+ */
+ protected byte[] buf;
+
+ /**
+ * The number of valid bytes currently in the buffer. It is also the index
+ * of the buffer position one byte past the end of the valid data.
+ */
+ protected int count;
+
+ /**
+ * The index of the next character that will by read from the buffer.
+ * When <code>pos == count</code>, the buffer is empty.
+ */
+ protected int pos;
+
+ /**
+ * The value of <code>pos</code> when the <code>mark()</code> method was
+ * called.
+ * This is set to -1 if there is no mark set.
+ */
+ protected int markpos = -1;
+
+ /**
+ * This is the maximum number of bytes than can be read after a
+ * call to <code>mark()</code> before the mark can be discarded.
+ * After this may bytes are read, the <code>reset()</code> method
+ * may not be called successfully.
+ */
+ protected int marklimit;
+
+ /**
+ * This is the initial buffer size. When the buffer is grown because
+ * of marking requirements, it will be grown by bufferSize increments.
+ * The underlying stream will be read in chunks of bufferSize.
+ */
+ private final int bufferSize;
+
+ /**
+ * This method initializes a new <code>BufferedInputStream</code> that will
+ * read from the specified subordinate stream with a default buffer size
+ * of 2048 bytes
+ *
+ * @param in The subordinate stream to read from
+ */
+ public BufferedInputStream(InputStream in)
+ {
+ this(in, DEFAULT_BUFFER_SIZE);
+ }
+
+ /**
+ * This method initializes a new <code>BufferedInputStream</code> that will
+ * read from the specified subordinate stream with a buffer size that
+ * is specified by the caller.
+ *
+ * @param in The subordinate stream to read from
+ * @param size The buffer size to use
+ *
+ * @exception IllegalArgumentException when size is smaller then 1
+ */
+ public BufferedInputStream(InputStream in, int size)
+ {
+ super(in);
+ if (size <= 0)
+ throw new IllegalArgumentException();
+ buf = new byte[size];
+ // initialize pos & count to bufferSize, to prevent refill from
+ // allocating a new buffer (if the caller starts out by calling mark()).
+ pos = count = bufferSize = size;
+ }
+
+ /**
+ * This method returns the number of bytes that can be read from this
+ * stream before a read can block. A return of 0 indicates that blocking
+ * might (or might not) occur on the very next read attempt.
+ * <p>
+ * The number of available bytes will be the number of read ahead bytes
+ * stored in the internal buffer plus the number of available bytes in
+ * the underlying stream.
+ *
+ * @return The number of bytes that can be read before blocking could occur
+ *
+ * @exception IOException If an error occurs
+ */
+ public synchronized int available() throws IOException
+ {
+ return count - pos + in.available();
+ }
+
+ /**
+ * This method closes the underlying input stream and frees any
+ * resources associated with it. Sets <code>buf</code> to <code>null</code>.
+ *
+ * @exception IOException If an error occurs.
+ */
+ public void close() throws IOException
+ {
+ // Free up the array memory.
+ buf = null;
+ pos = count = 0;
+ markpos = -1;
+ in.close();
+ }
+
+ /**
+ * This method marks a position in the input to which the stream can be
+ * "reset" by calling the <code>reset()</code> method. The parameter
+ * <code>readlimit</code> is the number of bytes that can be read from the
+ * stream after setting the mark before the mark becomes invalid. For
+ * example, if <code>mark()</code> is called with a read limit of 10, then
+ * when 11 bytes of data are read from the stream before the
+ * <code>reset()</code> method is called, then the mark is invalid and the
+ * stream object instance is not required to remember the mark.
+ * <p>
+ * Note that the number of bytes that can be remembered by this method
+ * can be greater than the size of the internal read buffer. It is also
+ * not dependent on the subordinate stream supporting mark/reset
+ * functionality.
+ *
+ * @param readlimit The number of bytes that can be read before the mark
+ * becomes invalid
+ */
+ public synchronized void mark(int readlimit)
+ {
+ marklimit = readlimit;
+ markpos = pos;
+ }
+
+ /**
+ * This method returns <code>true</code> to indicate that this class
+ * supports mark/reset functionality.
+ *
+ * @return <code>true</code> to indicate that mark/reset functionality is
+ * supported
+ *
+ */
+ public boolean markSupported()
+ {
+ return true;
+ }
+
+ /**
+ * This method reads an unsigned byte from the input stream and returns it
+ * as an int in the range of 0-255. This method also will return -1 if
+ * the end of the stream has been reached.
+ * <p>
+ * This method will block until the byte can be read.
+ *
+ * @return The byte read or -1 if end of stream
+ *
+ * @exception IOException If an error occurs
+ */
+ public synchronized int read() throws IOException
+ {
+ if (pos >= count && !refill())
+ return -1; // EOF
+
+ return buf[pos++] & 0xFF;
+ }
+
+ /**
+ * This method reads bytes from a stream and stores them into a caller
+ * supplied buffer. It starts storing the data at index <code>off</code>
+ * into the buffer and attempts to read <code>len</code> bytes. This method
+ * can return before reading the number of bytes requested, but it will try
+ * to read the requested number of bytes by repeatedly calling the underlying
+ * stream as long as available() for this stream continues to return a
+ * non-zero value (or until the requested number of bytes have been read).
+ * The actual number of bytes read is returned as an int. A -1 is returned
+ * to indicate the end of the stream.
+ * <p>
+ * This method will block until some data can be read.
+ *
+ * @param b The array into which the bytes read should be stored
+ * @param off The offset into the array to start storing bytes
+ * @param len The requested number of bytes to read
+ *
+ * @return The actual number of bytes read, or -1 if end of stream.
+ *
+ * @exception IOException If an error occurs.
+ * @exception IndexOutOfBoundsException when <code>off</code> or
+ * <code>len</code> are negative, or when <code>off + len</code>
+ * is larger then the size of <code>b</code>,
+ */
+ public synchronized int read(byte[] b, int off, int len) throws IOException
+ {
+ if (off < 0 || len < 0 || b.length - off < len)
+ throw new IndexOutOfBoundsException();
+
+ if (len == 0)
+ return 0;
+
+ if (pos >= count && !refill())
+ return -1; // No bytes were read before EOF.
+
+ int totalBytesRead = Math.min(count - pos, len);
+ System.arraycopy(buf, pos, b, off, totalBytesRead);
+ pos += totalBytesRead;
+ off += totalBytesRead;
+ len -= totalBytesRead;
+
+ while (len > 0 && in.available() > 0 && refill())
+ {
+ int remain = Math.min(count - pos, len);
+ System.arraycopy(buf, pos, b, off, remain);
+ pos += remain;
+ off += remain;
+ len -= remain;
+ totalBytesRead += remain;
+ }
+
+ return totalBytesRead;
+ }
+
+ /**
+ * This method resets a stream to the point where the <code>mark()</code>
+ * method was called. Any bytes that were read after the mark point was
+ * set will be re-read during subsequent reads.
+ * <p>
+ * This method will throw an IOException if the number of bytes read from
+ * the stream since the call to <code>mark()</code> exceeds the mark limit
+ * passed when establishing the mark.
+ *
+ * @exception IOException If <code>mark()</code> was never called or more
+ * then <code>marklimit</code> bytes were read since the last
+ * call to <code>mark()</code>
+ */
+ public synchronized void reset() throws IOException
+ {
+ if (markpos == -1)
+ throw new IOException(buf == null ? "Stream closed." : "Invalid mark.");
+
+ pos = markpos;
+ }
+
+ /**
+ * This method skips the specified number of bytes in the stream. It
+ * returns the actual number of bytes skipped, which may be less than the
+ * requested amount.
+ *
+ * @param n The requested number of bytes to skip
+ *
+ * @return The actual number of bytes skipped.
+ *
+ * @exception IOException If an error occurs
+ */
+ public synchronized long skip(long n) throws IOException
+ {
+ if (buf == null)
+ throw new IOException("Stream closed.");
+
+ final long origN = n;
+
+ while (n > 0L)
+ {
+ if (pos >= count)
+ {
+ if (markpos == -1)
+ {
+ // Buffer is empty and no mark is set, skip on the
+ // underlying stream.
+ n -= in.skip(n);
+ break;
+ }
+ else if (!refill())
+ break;
+ }
+
+ int numread = (int) Math.min((long) (count - pos), n);
+ pos += numread;
+ n -= numread;
+ }
+
+ return origN - n;
+ }
+
+ // GCJ LOCAL: package-private for use by InputStreamReader
+ /**
+ * Called to refill the buffer (when count is equal to pos).
+ *
+ * @return <code>true</code> when at least one additional byte was read
+ * into <code>buf</code>, <code>false</code> otherwise (at EOF).
+ */
+ boolean refill() throws IOException
+ {
+ if (buf == null)
+ throw new IOException("Stream closed.");
+
+ if (markpos == -1 || count - markpos >= marklimit)
+ {
+ markpos = -1;
+ pos = count = 0;
+ }
+ else
+ {
+ byte[] newbuf = buf;
+ if (markpos < bufferSize)
+ {
+ newbuf = new byte[count - markpos + bufferSize];
+ }
+ System.arraycopy(buf, markpos, newbuf, 0, count - markpos);
+ buf = newbuf;
+ count -= markpos;
+ pos -= markpos;
+ markpos = 0;
+ }
+
+ int numread = in.read(buf, count, bufferSize);
+
+ if (numread <= 0) // EOF
+ return false;
+
+ count += numread;
+ return true;
+ }
+}
diff --git a/gcc-4.8/libjava/java/io/BufferedOutputStream.h b/gcc-4.8/libjava/java/io/BufferedOutputStream.h
new file mode 100644
index 000000000..ce34567c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/BufferedOutputStream.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_BufferedOutputStream__
+#define __java_io_BufferedOutputStream__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::BufferedOutputStream : public ::java::io::FilterOutputStream
+{
+
+public:
+ BufferedOutputStream(::java::io::OutputStream *);
+ BufferedOutputStream(::java::io::OutputStream *, jint);
+ virtual void flush();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+private:
+ static const jint DEFAULT_BUFFER_SIZE = 512;
+public: // actually protected
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) buf;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_BufferedOutputStream__
diff --git a/gcc-4.8/libjava/java/io/BufferedReader.h b/gcc-4.8/libjava/java/io/BufferedReader.h
new file mode 100644
index 000000000..110477377
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/BufferedReader.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_BufferedReader__
+#define __java_io_BufferedReader__
+
+#pragma interface
+
+#include <java/io/Reader.h>
+#include <gcj/array.h>
+
+
+class java::io::BufferedReader : public ::java::io::Reader
+{
+
+public:
+ BufferedReader(::java::io::Reader *);
+ BufferedReader(::java::io::Reader *, jint);
+ virtual void close();
+ virtual jboolean markSupported();
+ virtual void mark(jint);
+ virtual void reset();
+ virtual jboolean ready();
+ virtual jint read(JArray< jchar > *, jint, jint);
+private:
+ jint fill();
+public:
+ virtual jint read();
+private:
+ jint lineEnd(jint);
+public:
+ virtual ::java::lang::String * readLine();
+ virtual jlong skip(jlong);
+private:
+ void checkStatus();
+public: // actually package-private
+ ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::io::Reader)))) in;
+ JArray< jchar > * buffer;
+ jint pos;
+ jint limit;
+ jint markPos;
+ static const jint DEFAULT_BUFFER_SIZE = 8192;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_BufferedReader__
diff --git a/gcc-4.8/libjava/java/io/BufferedWriter.h b/gcc-4.8/libjava/java/io/BufferedWriter.h
new file mode 100644
index 000000000..68cfa095e
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/BufferedWriter.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_BufferedWriter__
+#define __java_io_BufferedWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+
+class java::io::BufferedWriter : public ::java::io::Writer
+{
+
+public:
+ BufferedWriter(::java::io::Writer *);
+ BufferedWriter(::java::io::Writer *, jint);
+ virtual void close();
+ virtual void flush();
+ virtual void newLine();
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *, jint, jint);
+ virtual void write(::java::lang::String *, jint, jint);
+private:
+ void localFlush();
+ static const jint DEFAULT_BUFFER_SIZE = 8192;
+ ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::io::Writer)))) out;
+public: // actually package-private
+ JArray< jchar > * buffer;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_BufferedWriter__
diff --git a/gcc-4.8/libjava/java/io/ByteArrayInputStream.h b/gcc-4.8/libjava/java/io/ByteArrayInputStream.h
new file mode 100644
index 000000000..85411b3e0
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ByteArrayInputStream.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ByteArrayInputStream__
+#define __java_io_ByteArrayInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::ByteArrayInputStream : public ::java::io::InputStream
+{
+
+public:
+ ByteArrayInputStream(JArray< jbyte > *);
+ ByteArrayInputStream(JArray< jbyte > *, jint, jint);
+ virtual jint available();
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void reset();
+ virtual jlong skip(jlong);
+public: // actually protected
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) buf;
+ jint pos;
+ jint mark__;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ByteArrayInputStream__
diff --git a/gcc-4.8/libjava/java/io/ByteArrayOutputStream.h b/gcc-4.8/libjava/java/io/ByteArrayOutputStream.h
new file mode 100644
index 000000000..907c3d4ec
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ByteArrayOutputStream.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ByteArrayOutputStream__
+#define __java_io_ByteArrayOutputStream__
+
+#pragma interface
+
+#include <java/io/OutputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::ByteArrayOutputStream : public ::java::io::OutputStream
+{
+
+public:
+ ByteArrayOutputStream();
+ ByteArrayOutputStream(jint);
+ virtual void reset();
+ virtual jint size();
+ virtual JArray< jbyte > * toByteArray();
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * toString(::java::lang::String *);
+ virtual ::java::lang::String * toString(jint);
+private:
+ void resize(jint);
+public:
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void writeTo(::java::io::OutputStream *);
+public: // actually protected
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) buf;
+ jint count;
+private:
+ static const jint DEFAULT_INITIAL_BUFFER_SIZE = 32;
+ static jint initial_buffer_size;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ByteArrayOutputStream__
diff --git a/gcc-4.8/libjava/java/io/CharArrayReader.h b/gcc-4.8/libjava/java/io/CharArrayReader.h
new file mode 100644
index 000000000..f8b8f5d4c
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/CharArrayReader.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_CharArrayReader__
+#define __java_io_CharArrayReader__
+
+#pragma interface
+
+#include <java/io/Reader.h>
+#include <gcj/array.h>
+
+
+class java::io::CharArrayReader : public ::java::io::Reader
+{
+
+public:
+ CharArrayReader(JArray< jchar > *);
+ CharArrayReader(JArray< jchar > *, jint, jint);
+ virtual void close();
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual jint read();
+ virtual jint read(JArray< jchar > *, jint, jint);
+ virtual jboolean ready();
+ virtual void reset();
+ virtual jlong skip(jlong);
+public: // actually protected
+ JArray< jchar > * __attribute__((aligned(__alignof__( ::java::io::Reader)))) buf;
+ jint pos;
+ jint markedPos;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_CharArrayReader__
diff --git a/gcc-4.8/libjava/java/io/CharArrayWriter.h b/gcc-4.8/libjava/java/io/CharArrayWriter.h
new file mode 100644
index 000000000..ee3f559a4
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/CharArrayWriter.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_CharArrayWriter__
+#define __java_io_CharArrayWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+
+class java::io::CharArrayWriter : public ::java::io::Writer
+{
+
+public:
+ CharArrayWriter();
+ CharArrayWriter(jint);
+ virtual void close();
+ virtual void flush();
+ virtual void reset();
+ virtual jint size();
+ virtual JArray< jchar > * toCharArray();
+ virtual ::java::lang::String * toString();
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *, jint, jint);
+ virtual void write(::java::lang::String *, jint, jint);
+ virtual void writeTo(::java::io::Writer *);
+ virtual ::java::io::CharArrayWriter * CharArrayWriter$append(jchar);
+ virtual ::java::io::CharArrayWriter * CharArrayWriter$append(::java::lang::CharSequence *);
+ virtual ::java::io::CharArrayWriter * CharArrayWriter$append(::java::lang::CharSequence *, jint, jint);
+private:
+ void resize(jint);
+public:
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+ virtual ::java::io::Writer * Writer$append(jchar);
+private:
+ static const jint DEFAULT_INITIAL_BUFFER_SIZE = 32;
+public: // actually protected
+ JArray< jchar > * __attribute__((aligned(__alignof__( ::java::io::Writer)))) buf;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_CharArrayWriter__
diff --git a/gcc-4.8/libjava/java/io/CharConversionException.h b/gcc-4.8/libjava/java/io/CharConversionException.h
new file mode 100644
index 000000000..95034a89b
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/CharConversionException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_CharConversionException__
+#define __java_io_CharConversionException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::CharConversionException : public ::java::io::IOException
+{
+
+public:
+ CharConversionException();
+ CharConversionException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8680016352018427031LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_CharConversionException__
diff --git a/gcc-4.8/libjava/java/io/Closeable.h b/gcc-4.8/libjava/java/io/Closeable.h
new file mode 100644
index 000000000..4668f5089
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Closeable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Closeable__
+#define __java_io_Closeable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::Closeable : public ::java::lang::Object
+{
+
+public:
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_Closeable__
diff --git a/gcc-4.8/libjava/java/io/Console.h b/gcc-4.8/libjava/java/io/Console.h
new file mode 100644
index 000000000..65a307233
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Console.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Console__
+#define __java_io_Console__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::Console : public ::java::lang::Object
+{
+
+public:
+ static ::java::io::Console * console();
+private:
+ Console();
+public:
+ ::java::io::PrintWriter * writer();
+ ::java::io::Reader * reader();
+ ::java::io::Console * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ ::java::io::Console * printf(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ ::java::lang::String * readLine(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ ::java::lang::String * readLine();
+ JArray< jchar > * readPassword(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ JArray< jchar > * readPassword();
+ void flush();
+private:
+ static ::java::io::Console * console__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_Console__
diff --git a/gcc-4.8/libjava/java/io/DataInput.h b/gcc-4.8/libjava/java/io/DataInput.h
new file mode 100644
index 000000000..9cb4952ff
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/DataInput.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_DataInput__
+#define __java_io_DataInput__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::DataInput : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean readBoolean() = 0;
+ virtual jbyte readByte() = 0;
+ virtual jint readUnsignedByte() = 0;
+ virtual jchar readChar() = 0;
+ virtual jshort readShort() = 0;
+ virtual jint readUnsignedShort() = 0;
+ virtual jint readInt() = 0;
+ virtual jlong readLong() = 0;
+ virtual jfloat readFloat() = 0;
+ virtual jdouble readDouble() = 0;
+ virtual ::java::lang::String * readLine() = 0;
+ virtual ::java::lang::String * readUTF() = 0;
+ virtual void readFully(JArray< jbyte > *) = 0;
+ virtual void readFully(JArray< jbyte > *, jint, jint) = 0;
+ virtual jint skipBytes(jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_DataInput__
diff --git a/gcc-4.8/libjava/java/io/DataInputStream.h b/gcc-4.8/libjava/java/io/DataInputStream.h
new file mode 100644
index 000000000..12371ff95
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/DataInputStream.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_DataInputStream__
+#define __java_io_DataInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::DataInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ DataInputStream(::java::io::InputStream *);
+ virtual jint read(JArray< jbyte > *);
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jboolean readBoolean();
+ virtual jbyte readByte();
+ virtual jchar readChar();
+ virtual jdouble readDouble();
+ virtual jfloat readFloat();
+ virtual void readFully(JArray< jbyte > *);
+ virtual void readFully(JArray< jbyte > *, jint, jint);
+ virtual jint readInt();
+ virtual ::java::lang::String * readLine();
+ virtual jlong readLong();
+ virtual jshort readShort();
+ virtual jint readUnsignedByte();
+ virtual jint readUnsignedShort();
+ virtual ::java::lang::String * readUTF();
+ static ::java::lang::String * readUTF(::java::io::DataInput *);
+public: // actually package-private
+ virtual ::java::lang::String * readUTFLong();
+private:
+ static ::java::lang::String * readUTF(::java::io::DataInput *, jint);
+public:
+ virtual jint skipBytes(jint);
+public: // actually package-private
+ static jboolean convertToBoolean(jint);
+ static jbyte convertToByte(jint);
+ static jint convertToUnsignedByte(jint);
+ static jchar convertToChar(JArray< jbyte > *);
+ static jshort convertToShort(JArray< jbyte > *);
+ static jint convertToUnsignedShort(JArray< jbyte > *);
+ static jint convertToInt(JArray< jbyte > *);
+ static jlong convertToLong(JArray< jbyte > *);
+ static ::java::lang::String * convertFromUTF(JArray< jbyte > *);
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) buf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_DataInputStream__
diff --git a/gcc-4.8/libjava/java/io/DataOutput.h b/gcc-4.8/libjava/java/io/DataOutput.h
new file mode 100644
index 000000000..f18f5e454
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/DataOutput.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_DataOutput__
+#define __java_io_DataOutput__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::DataOutput : public ::java::lang::Object
+{
+
+public:
+ virtual void writeBoolean(jboolean) = 0;
+ virtual void writeByte(jint) = 0;
+ virtual void writeChar(jint) = 0;
+ virtual void writeShort(jint) = 0;
+ virtual void writeInt(jint) = 0;
+ virtual void writeLong(jlong) = 0;
+ virtual void writeFloat(jfloat) = 0;
+ virtual void writeDouble(jdouble) = 0;
+ virtual void writeBytes(::java::lang::String *) = 0;
+ virtual void writeChars(::java::lang::String *) = 0;
+ virtual void writeUTF(::java::lang::String *) = 0;
+ virtual void write(jint) = 0;
+ virtual void write(JArray< jbyte > *) = 0;
+ virtual void write(JArray< jbyte > *, jint, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_DataOutput__
diff --git a/gcc-4.8/libjava/java/io/DataOutputStream.h b/gcc-4.8/libjava/java/io/DataOutputStream.h
new file mode 100644
index 000000000..aebd234db
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/DataOutputStream.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_DataOutputStream__
+#define __java_io_DataOutputStream__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::DataOutputStream : public ::java::io::FilterOutputStream
+{
+
+public:
+ DataOutputStream(::java::io::OutputStream *);
+ virtual void flush();
+ virtual jint size();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void writeBoolean(jboolean);
+ virtual void writeByte(jint);
+ virtual void writeShort(jint);
+ virtual void writeChar(jint);
+ virtual void writeInt(jint);
+ virtual void writeLong(jlong);
+ virtual void writeFloat(jfloat);
+ virtual void writeDouble(jdouble);
+ virtual void writeBytes(::java::lang::String *);
+ virtual void writeChars(::java::lang::String *);
+public: // actually package-private
+ virtual jlong getUTFlength(::java::lang::String *, jint, jlong);
+public:
+ virtual void writeUTF(::java::lang::String *);
+public: // actually package-private
+ virtual void writeUTFShort(::java::lang::String *, jint);
+ virtual void writeUTFLong(::java::lang::String *, jlong);
+private:
+ void writeUTFBytes(::java::lang::String *);
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) written;
+private:
+ JArray< jbyte > * buf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_DataOutputStream__
diff --git a/gcc-4.8/libjava/java/io/DeleteFileHelper$1.h b/gcc-4.8/libjava/java/io/DeleteFileHelper$1.h
new file mode 100644
index 000000000..79c20f3d5
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/DeleteFileHelper$1.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_DeleteFileHelper$1__
+#define __java_io_DeleteFileHelper$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::DeleteFileHelper$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ DeleteFileHelper$1();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_DeleteFileHelper$1__
diff --git a/gcc-4.8/libjava/java/io/DeleteFileHelper.h b/gcc-4.8/libjava/java/io/DeleteFileHelper.h
new file mode 100644
index 000000000..9b61c3aab
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/DeleteFileHelper.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_DeleteFileHelper__
+#define __java_io_DeleteFileHelper__
+
+#pragma interface
+
+#include <java/lang/Thread.h>
+
+class java::io::DeleteFileHelper : public ::java::lang::Thread
+{
+
+public: // actually package-private
+ static void add(::java::io::File *);
+private:
+ static void deleteFiles();
+public: // actually package-private
+ DeleteFileHelper();
+public:
+ void run();
+private:
+ static ::java::util::ArrayList * filesToDelete;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_DeleteFileHelper__
diff --git a/gcc-4.8/libjava/java/io/EOFException.h b/gcc-4.8/libjava/java/io/EOFException.h
new file mode 100644
index 000000000..be4b255e7
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/EOFException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_EOFException__
+#define __java_io_EOFException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::EOFException : public ::java::io::IOException
+{
+
+public:
+ EOFException();
+ EOFException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 6433858223774886977LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_EOFException__
diff --git a/gcc-4.8/libjava/java/io/Externalizable.h b/gcc-4.8/libjava/java/io/Externalizable.h
new file mode 100644
index 000000000..b74cf0860
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Externalizable.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Externalizable__
+#define __java_io_Externalizable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::Externalizable : public ::java::lang::Object
+{
+
+public:
+ virtual void readExternal(::java::io::ObjectInput *) = 0;
+ virtual void writeExternal(::java::io::ObjectOutput *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_Externalizable__
diff --git a/gcc-4.8/libjava/java/io/File.h b/gcc-4.8/libjava/java/io/File.h
new file mode 100644
index 000000000..f1365361b
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/File.h
@@ -0,0 +1,164 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_File__
+#define __java_io_File__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URI;
+ class URL;
+ }
+ }
+}
+
+class java::io::File : public ::java::lang::Object
+{
+
+ jlong attr(jint);
+ jboolean access(jint);
+ jboolean stat(jint);
+ static void init_native();
+public:
+ virtual jboolean canRead();
+ virtual jboolean canWrite();
+ virtual jboolean canExecute();
+private:
+ jboolean performCreate();
+public:
+ virtual jboolean createNewFile();
+private:
+ jboolean performDelete();
+public:
+ virtual jboolean delete$();
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ jboolean internalExists();
+public:
+ virtual jboolean exists();
+ File(::java::lang::String *);
+private:
+ ::java::lang::String * normalizePath(::java::lang::String *);
+public:
+ File(::java::lang::String *, ::java::lang::String *);
+ File(::java::io::File *, ::java::lang::String *);
+ File(::java::net::URI *);
+ virtual ::java::lang::String * getAbsolutePath();
+ virtual ::java::io::File * getAbsoluteFile();
+ virtual ::java::lang::String * getCanonicalPath();
+ virtual ::java::io::File * getCanonicalFile();
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::String * getParent();
+ virtual ::java::io::File * getParentFile();
+ virtual ::java::lang::String * getPath();
+ virtual jint hashCode();
+ virtual jboolean isAbsolute();
+private:
+ jboolean internalIsDirectory();
+public:
+ virtual jboolean isDirectory();
+ virtual jboolean isFile();
+ virtual jboolean isHidden();
+ virtual jlong lastModified();
+ virtual jlong length();
+private:
+ JArray< ::java::lang::Object * > * performList(::java::io::FilenameFilter *, ::java::io::FileFilter *, ::java::lang::Class *);
+public:
+ virtual JArray< ::java::lang::String * > * list(::java::io::FilenameFilter *);
+ virtual JArray< ::java::lang::String * > * list();
+ virtual JArray< ::java::io::File * > * listFiles();
+ virtual JArray< ::java::io::File * > * listFiles(::java::io::FilenameFilter *);
+ virtual JArray< ::java::io::File * > * listFiles(::java::io::FileFilter *);
+ virtual ::java::lang::String * toString();
+ virtual ::java::net::URI * toURI();
+ virtual ::java::net::URL * toURL();
+private:
+ jboolean performMkdir();
+public:
+ virtual jboolean mkdir();
+private:
+ static jboolean mkdirs(::java::io::File *);
+public:
+ virtual jboolean mkdirs();
+private:
+ static ::java::lang::String * nextValue();
+public:
+ static ::java::io::File * createTempFile(::java::lang::String *, ::java::lang::String *, ::java::io::File *);
+private:
+ jboolean setFilePermissions(jboolean, jboolean, jint);
+public:
+ virtual jboolean setReadable(jboolean);
+ virtual jboolean setReadable(jboolean, jboolean);
+ virtual jboolean setWritable(jboolean);
+ virtual jboolean setWritable(jboolean, jboolean);
+ virtual jboolean setExecutable(jboolean);
+ virtual jboolean setExecutable(jboolean, jboolean);
+private:
+ jboolean performSetReadOnly();
+public:
+ virtual jboolean setReadOnly();
+private:
+ static JArray< ::java::io::File * > * performListRoots();
+public:
+ static JArray< ::java::io::File * > * listRoots();
+ static ::java::io::File * createTempFile(::java::lang::String *, ::java::lang::String *);
+ virtual jint File$compareTo(::java::io::File *);
+private:
+ jboolean performRenameTo(::java::io::File *);
+public:
+ virtual jboolean renameTo(::java::io::File *);
+private:
+ jboolean performSetLastModified(jlong);
+public:
+ virtual jboolean setLastModified(jlong);
+private:
+ void checkWrite();
+ void checkRead();
+ void checkExec();
+public:
+ virtual void deleteOnExit();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 301077366599181567LL;
+ static const jint READ = 0;
+ static const jint WRITE = 1;
+ static const jint EXISTS = 2;
+ static const jint EXEC = 3;
+ static const jint DIRECTORY = 0;
+ static const jint ISFILE = 1;
+ static const jint ISHIDDEN = 2;
+ static const jint MODIFIED = 0;
+ static const jint LENGTH = 1;
+public:
+ static ::java::lang::String * separator;
+private:
+ static ::java::lang::String * dupSeparator;
+public:
+ static jchar separatorChar;
+ static ::java::lang::String * pathSeparator;
+ static jchar pathSeparatorChar;
+public: // actually package-private
+ static ::java::lang::String * tmpdir;
+ static jint maxPathLen;
+ static jboolean caseSensitive;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) path;
+ static jlong counter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_File__
diff --git a/gcc-4.8/libjava/java/io/File.java b/gcc-4.8/libjava/java/io/File.java
new file mode 100644
index 000000000..ff008e064
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/File.java
@@ -0,0 +1,1576 @@
+/* File.java -- Class representing a file on disk
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2012
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import gnu.classpath.Configuration;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * Status: Complete to version 1.3.
+ */
+
+/**
+ * This class represents a file or directory on a local disk. It provides
+ * facilities for dealing with a variety of systems that use various
+ * types of path separators ("/" versus "\", for example). It also
+ * contains method useful for creating and deleting files and directories.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ */
+public class File implements Serializable, Comparable<File>
+{
+ private static final long serialVersionUID = 301077366599181567L;
+
+ // QUERY arguments to access function.
+ private final static int READ = 0;
+ private final static int WRITE = 1;
+ private final static int EXISTS = 2;
+ private final static int EXEC = 3;
+
+ // QUERY arguments to stat function.
+ private final static int DIRECTORY = 0;
+ private final static int ISFILE = 1;
+ private final static int ISHIDDEN = 2;
+
+ // QUERY arguments to attr function.
+ private final static int MODIFIED = 0;
+ private final static int LENGTH = 1;
+
+ private final native long attr (int query);
+ private final native boolean access (int query);
+ private final native boolean stat (int query);
+
+ /**
+ * This is the path separator string for the current host. This field
+ * contains the value of the <code>file.separator</code> system property.
+ * An example separator string would be "/" on the GNU system.
+ */
+ public static final String separator = System.getProperty("file.separator");
+ private static final String dupSeparator = separator + separator;
+
+ /**
+ * This is the first character of the file separator string. On many
+ * hosts (for example, on the GNU system), this represents the entire
+ * separator string. The complete separator string is obtained from the
+ * <code>file.separator</code>system property.
+ */
+ public static final char separatorChar = separator.charAt(0);
+
+ /**
+ * This is the string that is used to separate the host name from the
+ * path name in paths that include the host name. It is the value of
+ * the <code>path.separator</code> system property.
+ */
+ public static final String pathSeparator
+ = System.getProperty("path.separator");
+
+ /**
+ * This is the first character of the string used to separate the host name
+ * from the path name in paths that include a host. The separator string
+ * is taken from the <code>path.separator</code> system property.
+ */
+ public static final char pathSeparatorChar = pathSeparator.charAt(0);
+
+ static final String tmpdir = System.getProperty("java.io.tmpdir");
+ /* If 0, then the system doesn't have a file name length limit. */
+ static int maxPathLen;
+ static boolean caseSensitive;
+
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary("javaio");
+ }
+
+ init_native();
+ }
+
+ // Native function called at class initialization. This should should
+ // set the maxPathLen and caseSensitive variables.
+ private static native void init_native();
+
+ /**
+ * This is the path to the file set when the object is created. It
+ * may be an absolute or relative path name.
+ */
+ private String path;
+
+ // We keep a counter for use by createTempFile. We choose the first
+ // value randomly to try to avoid clashes with other VMs.
+ private static long counter = Double.doubleToLongBits (Math.random());
+
+ /**
+ * This method tests whether or not the current thread is allowed to
+ * to read the file pointed to by this object. This will be true if and
+ * and only if 1) the file exists and 2) the <code>SecurityManager</code>
+ * (if any) allows access to the file via it's <code>checkRead</code>
+ * method 3) the file is readable.
+ *
+ * @return <code>true</code> if reading is allowed,
+ * <code>false</code> otherwise
+ *
+ * @exception SecurityException If the <code>SecurityManager</code>
+ * does not allow access to the file
+ */
+ public boolean canRead()
+ {
+ checkRead();
+ return access (READ);
+ }
+
+ /**
+ * This method test whether or not the current thread is allowed to
+ * write to this object. This will be true if and only if 1) The
+ * <code>SecurityManager</code> (if any) allows write access to the
+ * file and 2) The file exists and 3) The file is writable. To determine
+ * whether or not a non-existent file can be created, check the parent
+ * directory for write access.
+ *
+ * @return <code>true</code> if writing is allowed, <code>false</code>
+ * otherwise
+ *
+ * @exception SecurityException If the <code>SecurityManager</code>
+ * does not allow access to the file
+ */
+ public boolean canWrite()
+ {
+ checkWrite();
+ return access (WRITE);
+ }
+
+ /**
+ * This method tests whether or not the current thread is allowed to
+ * to execute the file pointed to by this object. This will be true if and
+ * and only if 1) the file exists and 2) the <code>SecurityManager</code>
+ * (if any) allows access to the file via it's <code>checkExec</code>
+ * method 3) the file is executable.
+ *
+ * @return <code>true</code> if execution is allowed,
+ * <code>false</code> otherwise
+ *
+ * @exception SecurityException If the <code>SecurityManager</code>
+ * does not allow access to the file
+ */
+ public boolean canExecute()
+ {
+ if (!exists())
+ return false;
+ checkExec();
+ return access (EXEC);
+ }
+
+ private native boolean performCreate() throws IOException;
+
+ /**
+ * This method creates a new file of zero length with the same name as
+ * the path of this <code>File</code> object if an only if that file
+ * does not already exist.
+ * <p>
+ * A <code>SecurityManager.checkWrite</code> check is done prior
+ * to performing this action.
+ *
+ * @return <code>true</code> if the file was created, <code>false</code> if
+ * the file alread existed.
+ *
+ * @exception IOException If an I/O error occurs
+ * @exception SecurityException If the <code>SecurityManager</code> will
+ * not allow this operation to be performed.
+ *
+ * @since 1.2
+ */
+ public boolean createNewFile() throws IOException
+ {
+ checkWrite();
+ return performCreate();
+ }
+
+ /*
+ * This native method handles the actual deleting of the file
+ */
+ private native boolean performDelete();
+
+ /**
+ * This method deletes the file represented by this object. If this file
+ * is a directory, it must be empty in order for the delete to succeed.
+ *
+ * @return <code>true</code> if the file was deleted, <code>false</code>
+ * otherwise
+ *
+ * @exception SecurityException If deleting of the file is not allowed
+ */
+ public synchronized boolean delete()
+ {
+ SecurityManager s = System.getSecurityManager();
+
+ if (s != null)
+ s.checkDelete(path);
+
+ return performDelete();
+ }
+
+ /**
+ * This method tests two <code>File</code> objects for equality by
+ * comparing the path of the specified <code>File</code> against the path
+ * of this object. The two objects are equal if an only if 1) The
+ * argument is not null 2) The argument is a <code>File</code> object and
+ * 3) The path of the <code>File</code>argument is equal to the path
+ * of this object.
+ * <p>
+ * The paths of the files are determined by calling the
+ * <code>getPath()</code>
+ * method on each object.
+ *
+ * @return <code>true</code> if the two objects are equal,
+ * <code>false</code> otherwise.
+ */
+ public boolean equals(Object obj)
+ {
+ if (! (obj instanceof File))
+ return false;
+
+ File other = (File) obj;
+
+ if (caseSensitive)
+ return path.equals(other.path);
+ else
+ return path.equalsIgnoreCase(other.path);
+ }
+
+ /*
+ * This method tests whether or not the file represented by the
+ * object actually exists on the filesystem.
+ */
+ private boolean internalExists()
+ {
+ return access (EXISTS);
+ }
+
+ /**
+ * This method tests whether or not the file represented by the object
+ * actually exists on the filesystem.
+ *
+ * @return <code>true</code> if the file exists, <code>false</code>otherwise.
+ *
+ * @exception SecurityException If reading of the file is not permitted
+ */
+ public boolean exists()
+ {
+ checkRead();
+ return internalExists();
+ }
+
+ /**
+ * This method initializes a new <code>File</code> object to represent
+ * a file with the specified path.
+ *
+ * @param name The path name of the file
+ */
+ public File(String name)
+ {
+ path = normalizePath (name);
+ }
+
+ // Remove duplicate and redundant separator characters.
+ private String normalizePath(String p)
+ {
+ // On Windows, convert any '/' to '\'. This appears to be the same logic
+ // that Sun's Win32 Java performs.
+ if (separatorChar == '\\')
+ {
+ p = p.replace ('/', '\\');
+ // We have to special case the "\c:" prefix.
+ if (p.length() > 2 && p.charAt(0) == '\\' &&
+ ((p.charAt(1) >= 'a' && p.charAt(1) <= 'z') ||
+ (p.charAt(1) >= 'A' && p.charAt(1) <= 'Z')) &&
+ p.charAt(2) == ':')
+ p = p.substring(1);
+ }
+
+ int dupIndex = p.indexOf(dupSeparator);
+ int plen = p.length();
+
+ // Special case: permit Windows UNC path prefix.
+ if (dupSeparator.equals("\\\\") && dupIndex == 0)
+ dupIndex = p.indexOf(dupSeparator, 1);
+
+ if (dupIndex == -1)
+ {
+ // Ignore trailing separator (though on Windows "a:\", for
+ // example, is a valid and minimal path).
+ if (plen > 1 && p.charAt (plen - 1) == separatorChar)
+ {
+ if (! (separatorChar == '\\' && plen == 3 && p.charAt (1) == ':'))
+ return p.substring (0, plen - 1);
+ }
+ else
+ return p;
+ }
+
+ StringBuffer newpath = new StringBuffer(plen);
+ int last = 0;
+ while (dupIndex != -1)
+ {
+ newpath.append(p.substring(last, dupIndex));
+ // Ignore the duplicate path characters.
+ while (p.charAt(dupIndex) == separatorChar)
+ {
+ dupIndex++;
+ if (dupIndex == plen)
+ return newpath.toString();
+ }
+ newpath.append(separatorChar);
+ last = dupIndex;
+ dupIndex = p.indexOf(dupSeparator, last);
+ }
+
+ // Again, ignore possible trailing separator (except special cases
+ // like "a:\" on Windows).
+ int end;
+ if (plen > 1 && p.charAt (plen - 1) == separatorChar)
+ {
+ if (separatorChar == '\\' && plen == 3 && p.charAt (1) == ':')
+ end = plen;
+ else
+ end = plen - 1;
+ }
+ else
+ end = plen;
+ newpath.append(p.substring(last, end));
+
+ return newpath.toString();
+ }
+
+ /**
+ * This method initializes a new <code>File</code> object to represent
+ * a file in the specified named directory. The path name to the file
+ * will be the directory name plus the separator string plus the file
+ * name. If the directory path name ends in the separator string, another
+ * separator string will still be appended.
+ *
+ * @param dirPath The path to the directory the file resides in
+ * @param name The name of the file
+ */
+ public File(String dirPath, String name)
+ {
+ if (name == null)
+ throw new NullPointerException();
+ if (dirPath != null)
+ {
+ if (dirPath.length() > 0)
+ {
+ // Try to be smart about the number of separator characters.
+ if (dirPath.charAt(dirPath.length() - 1) == separatorChar
+ || name.length() == 0)
+ path = normalizePath(dirPath + name);
+ else
+ path = normalizePath(dirPath + separatorChar + name);
+ }
+ else
+ {
+ // If dirPath is empty, use a system dependant
+ // default prefix.
+ // Note that the leading separators in name have
+ // to be chopped off, to prevent them forming
+ // a UNC prefix on Windows.
+ if (separatorChar == '\\' /* TODO use ON_WINDOWS */)
+ {
+ int skip = 0;
+ while(name.length() > skip
+ && (name.charAt(skip) == separatorChar
+ || name.charAt(skip) == '/'))
+ {
+ skip++;
+ }
+ name = name.substring(skip);
+ }
+ path = normalizePath(separatorChar + name);
+ }
+ }
+ else
+ path = normalizePath(name);
+ }
+
+ /**
+ * This method initializes a new <code>File</code> object to represent
+ * a file in the specified directory. If the <code>directory</code>
+ * argument is <code>null</code>, the file is assumed to be in the
+ * current directory as specified by the <code>user.dir</code> system
+ * property
+ *
+ * @param directory The directory this file resides in
+ * @param name The name of the file
+ */
+ public File(File directory, String name)
+ {
+ this (directory == null ? null : directory.path, name);
+ }
+
+ /**
+ * This method initializes a new <code>File</code> object to represent
+ * a file corresponding to the specified <code>file:</code> protocol URI.
+ *
+ * @param uri The URI
+ * @throws IllegalArgumentException if the URI is not hierarchical
+ */
+ public File(URI uri)
+ {
+ if (uri == null)
+ throw new NullPointerException("uri is null");
+
+ if (!uri.getScheme().equals("file"))
+ throw new IllegalArgumentException("invalid uri protocol");
+
+ String name = uri.getPath();
+ if (name == null)
+ throw new IllegalArgumentException("URI \"" + uri
+ + "\" is not hierarchical");
+ path = normalizePath(name);
+ }
+
+ /**
+ * This method returns the path of this file as an absolute path name.
+ * If the path name is already absolute, then it is returned. Otherwise
+ * the value returned is the current directory plus the separatory
+ * string plus the path of the file. The current directory is determined
+ * from the <code>user.dir</code> system property.
+ *
+ * @return The absolute path of this file
+ */
+ public String getAbsolutePath()
+ {
+ if (isAbsolute())
+ return path;
+ else if (separatorChar == '\\'
+ && path.length() > 0 && path.charAt (0) == '\\')
+ {
+ // On Windows, even if the path starts with a '\\' it is not
+ // really absolute until we prefix the drive specifier from
+ // the current working directory to it.
+ return System.getProperty ("user.dir").substring (0, 2) + path;
+ }
+ else if (separatorChar == '\\'
+ && path.length() > 1 && path.charAt (1) == ':'
+ && ((path.charAt (0) >= 'a' && path.charAt (0) <= 'z')
+ || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z')))
+ {
+ // On Windows, a process has a current working directory for
+ // each drive and a path like "G:foo\bar" would mean the
+ // absolute path "G:\wombat\foo\bar" if "\wombat" is the
+ // working directory on the G drive.
+ String drvDir = null;
+ try
+ {
+ drvDir = new File (path.substring (0, 2)).getCanonicalPath();
+ }
+ catch (IOException e)
+ {
+ drvDir = path.substring (0, 2) + "\\";
+ }
+
+ // Note: this would return "C:\\." for the path "C:.", if "\"
+ // is the working folder on the C drive, but this is
+ // consistent with what Sun's JRE 1.4.1.01 actually returns!
+ if (path.length() > 2)
+ return drvDir + '\\' + path.substring (2, path.length());
+ else
+ return drvDir;
+ }
+ else
+ return System.getProperty ("user.dir") + separatorChar + path;
+ }
+
+ /**
+ * This method returns a <code>File</code> object representing the
+ * absolute path of this object.
+ *
+ * @return A <code>File</code> with the absolute path of the object.
+ *
+ * @since 1.2
+ */
+ public File getAbsoluteFile()
+ {
+ return new File(getAbsolutePath());
+ }
+
+ /**
+ * This method returns a canonical representation of the pathname of
+ * this file. The actual form of the canonical representation is
+ * system-dependent. On the GNU system, conversion to canonical
+ * form involves the removal of redundant separators, references to
+ * "." and "..", and symbolic links.
+ * <p>
+ * Note that this method, unlike the other methods which return path
+ * names, can throw an IOException. This is because native method
+ * might be required in order to resolve the canonical path
+ *
+ * @exception IOException If an error occurs
+ */
+ public native String getCanonicalPath() throws IOException;
+
+ /**
+ * This method returns a <code>File</code> object representing the
+ * canonical path of this object.
+ *
+ * @return A <code>File</code> instance representing the canonical path of
+ * this object.
+ *
+ * @exception IOException If an error occurs.
+ *
+ * @since 1.2
+ */
+ public File getCanonicalFile() throws IOException
+ {
+ return new File(getCanonicalPath());
+ }
+
+ /**
+ * This method returns the name of the file. This is everything in the
+ * complete path of the file after the last instance of the separator
+ * string.
+ *
+ * @return The file name
+ */
+ public String getName()
+ {
+ int nameSeqIndex = 0;
+
+ if (separatorChar == '\\' && path.length() > 1)
+ {
+ // On Windows, ignore the drive specifier or the leading '\\'
+ // of a UNC network path, if any (a.k.a. the "prefix").
+ if ((path.charAt (0) == '\\' && path.charAt (1) == '\\')
+ || (((path.charAt (0) >= 'a' && path.charAt (0) <= 'z')
+ || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z'))
+ && path.charAt (1) == ':'))
+ {
+ if (path.length() > 2)
+ nameSeqIndex = 2;
+ else
+ return "";
+ }
+ }
+
+ String nameSeq
+ = (nameSeqIndex > 0 ? path.substring (nameSeqIndex) : path);
+
+ int last = nameSeq.lastIndexOf (separatorChar);
+
+ return nameSeq.substring (last + 1);
+ }
+
+ /**
+ * This method returns a <code>String</code> the represents this file's
+ * parent. <code>null</code> is returned if the file has no parent. The
+ * parent is determined via a simple operation which removes the name
+ * after the last file separator character, as determined by the platform.
+ *
+ * @return The parent directory of this file
+ */
+ public String getParent()
+ {
+ String prefix = null;
+ int nameSeqIndex = 0;
+
+ // The "prefix", if present, is the leading "/" on UNIX and
+ // either the drive specifier (e.g. "C:") or the leading "\\"
+ // of a UNC network path on Windows.
+ if (separatorChar == '/' && path.charAt (0) == '/')
+ {
+ prefix = "/";
+ nameSeqIndex = 1;
+ }
+ else if (separatorChar == '\\' && path.length() > 1)
+ {
+ if ((path.charAt (0) == '\\' && path.charAt (1) == '\\')
+ || (((path.charAt (0) >= 'a' && path.charAt (0) <= 'z')
+ || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z'))
+ && path.charAt (1) == ':'))
+ {
+ prefix = path.substring (0, 2);
+ nameSeqIndex = 2;
+ }
+ }
+
+ // According to the JDK docs, the returned parent path is the
+ // portion of the name sequence before the last separator
+ // character, if found, prefixed by the prefix, otherwise null.
+ if (nameSeqIndex < path.length())
+ {
+ String nameSeq = path.substring (nameSeqIndex, path.length());
+ int last = nameSeq.lastIndexOf (separatorChar);
+ if (last == -1)
+ return prefix;
+ else if (last == (nameSeq.length() - 1))
+ // Note: The path would not have a trailing separator
+ // except for cases like "C:\" on Windows (see
+ // normalizePath( )), where Sun's JRE 1.4 returns null.
+ return null;
+ else if (last == 0)
+ last++;
+
+ if (prefix != null)
+ return prefix + nameSeq.substring (0, last);
+ else
+ return nameSeq.substring (0, last);
+ }
+ else
+ // Sun's JRE 1.4 returns null if the prefix is the only
+ // component of the path - so "/" gives null on UNIX and
+ // "C:", "\\", etc. return null on Windows.
+ return null;
+ }
+
+ /**
+ * This method returns a <code>File</code> object representing the parent
+ * file of this one.
+ *
+ * @return a <code>File</code> for the parent of this object.
+ * <code>null</code>
+ * will be returned if this object does not have a parent.
+ *
+ * @since 1.2
+ */
+ public File getParentFile()
+ {
+ String parent = getParent();
+ return parent != null ? new File(parent) : null;
+ }
+
+ /**
+ * Returns the path name that represents this file. May be a relative
+ * or an absolute path name
+ *
+ * @return The pathname of this file
+ */
+ public String getPath()
+ {
+ return path;
+ }
+
+ /**
+ * This method returns a hash code representing this file. It is the
+ * hash code of the path of this file (as returned by <code>getPath()</code>)
+ * exclusived or-ed with the value 1234321.
+ *
+ * @return The hash code for this object
+ */
+ public int hashCode()
+ {
+ if (caseSensitive)
+ return path.hashCode() ^ 1234321;
+ else
+ return path.toLowerCase().hashCode() ^ 1234321;
+ }
+
+ /**
+ * This method returns true if this object represents an absolute file
+ * path and false if it does not. The definition of an absolute path varies
+ * by system. As an example, on GNU systems, a path is absolute if it starts
+ * with a "/".
+ *
+ * @return <code>true</code> if this object represents an absolute
+ * file name, <code>false</code> otherwise.
+ */
+ public native boolean isAbsolute();
+
+ /*
+ * This method tests whether or not the file represented by this
+ * object is a directory.
+ */
+ private boolean internalIsDirectory()
+ {
+ return stat (DIRECTORY);
+ }
+
+ /**
+ * This method tests whether or not the file represented by this object
+ * is a directory. In order for this method to return <code>true</code>,
+ * the file represented by this object must exist and be a directory.
+ *
+ * @return <code>true</code> if this file is a directory, <code>false</code>
+ * otherwise
+ *
+ * @exception SecurityException If reading of the file is not permitted
+ */
+ public boolean isDirectory()
+ {
+ checkRead();
+ return internalIsDirectory();
+ }
+
+ /**
+ * This method tests whether or not the file represented by this object
+ * is a "plain" file. A file is a plain file if and only if it 1) Exists,
+ * 2) Is not a directory or other type of special file.
+ *
+ * @return <code>true</code> if this is a plain file, <code>false</code>
+ * otherwise
+ *
+ * @exception SecurityException If reading of the file is not permitted
+ */
+ public boolean isFile()
+ {
+ checkRead();
+ return stat (ISFILE);
+ }
+
+ /**
+ * This method tests whether or not this file represents a "hidden" file.
+ * On GNU systems, a file is hidden if its name begins with a "."
+ * character. Files with these names are traditionally not shown with
+ * directory listing tools.
+ *
+ * @return <code>true</code> if the file is hidden, <code>false</code>
+ * otherwise.
+ *
+ * @since 1.2
+ */
+ public boolean isHidden()
+ {
+ checkRead();
+ return stat (ISHIDDEN);
+ }
+
+ /**
+ * This method returns the last modification time of this file. The
+ * time value returned is an abstract value that should not be interpreted
+ * as a specified time value. It is only useful for comparing to other
+ * such time values returned on the same system. In that case, the larger
+ * value indicates a more recent modification time.
+ * <p>
+ * If the file does not exist, then a value of 0 is returned.
+ *
+ * @return The last modification time of the file
+ *
+ * @exception SecurityException If reading of the file is not permitted
+ */
+ public long lastModified()
+ {
+ checkRead();
+ return attr (MODIFIED);
+ }
+
+ /**
+ * This method returns the length of the file represented by this object,
+ * or 0 if the specified file does not exist.
+ *
+ * @return The length of the file
+ *
+ * @exception SecurityException If reading of the file is not permitted
+ */
+ public long length()
+ {
+ checkRead();
+ return attr (LENGTH);
+ }
+
+ /*
+ * This native function actually produces the list of file in this
+ * directory
+ */
+ private final native Object[] performList (FilenameFilter filter,
+ FileFilter fileFilter,
+ Class result_type);
+
+ /**
+ * This method returns a array of <code>String</code>'s representing the
+ * list of files is then directory represented by this object. If this
+ * object represents a non-directory file or a non-existent file, then
+ * <code>null</code> is returned. The list of files will not contain
+ * any names such as "." or ".." which indicate the current or parent
+ * directory. Also, the names are not guaranteed to be sorted.
+ * <p>
+ * In this form of the <code>list()</code> method, a filter is specified
+ * that allows the caller to control which files are returned in the
+ * list. The <code>FilenameFilter</code> specified is called for each
+ * file returned to determine whether or not that file should be included
+ * in the list.
+ * <p>
+ * A <code>SecurityManager</code> check is made prior to reading the
+ * directory. If read access to the directory is denied, an exception
+ * will be thrown.
+ *
+ * @param filter An object which will identify files to exclude from
+ * the directory listing.
+ *
+ * @return An array of files in the directory, or <code>null</code>
+ * if this object does not represent a valid directory.
+ *
+ * @exception SecurityException If read access is not allowed to the
+ * directory by the <code>SecurityManager</code>
+ */
+ public String[] list(FilenameFilter filter)
+ {
+ checkRead();
+ return (String[]) performList (filter, null, String.class);
+ }
+
+ /**
+ * This method returns a array of <code>String</code>'s representing the
+ * list of files is then directory represented by this object. If this
+ * object represents a non-directory file or a non-existent file, then
+ * <code>null</code> is returned. The list of files will not contain
+ * any names such as "." or ".." which indicate the current or parent
+ * directory. Also, the names are not guaranteed to be sorted.
+ * <p>
+ * A <code>SecurityManager</code> check is made prior to reading the
+ * directory. If read access to the directory is denied, an exception
+ * will be thrown.
+ *
+ * @return An array of files in the directory, or <code>null</code> if
+ * this object does not represent a valid directory.
+ *
+ * @exception SecurityException If read access is not allowed to the
+ * directory by the <code>SecurityManager</code>
+ */
+ public String[] list()
+ {
+ checkRead();
+ return (String[]) performList (null, null, String.class);
+ }
+
+ /**
+ * This method returns an array of <code>File</code> objects representing
+ * all the files in the directory represented by this object. If this
+ * object does not represent a directory, <code>null</code> is returned.
+ * Each of the returned <code>File</code> object is constructed with this
+ * object as its parent.
+ * <p>
+ * A <code>SecurityManager</code> check is made prior to reading the
+ * directory. If read access to the directory is denied, an exception
+ * will be thrown.
+ *
+ * @return An array of <code>File</code> objects for this directory.
+ *
+ * @exception SecurityException If the <code>SecurityManager</code> denies
+ * access to this directory.
+ *
+ * @since 1.2
+ */
+ public File[] listFiles()
+ {
+ checkRead();
+ return (File[]) performList (null, null, File.class);
+ }
+
+ /**
+ * This method returns an array of <code>File</code> objects representing
+ * all the files in the directory represented by this object. If this
+ * object does not represent a directory, <code>null</code> is returned.
+ * Each of the returned <code>File</code> object is constructed with this
+ * object as its parent.
+ * <p>
+ * In this form of the <code>listFiles()</code> method, a filter is specified
+ * that allows the caller to control which files are returned in the
+ * list. The <code>FilenameFilter</code> specified is called for each
+ * file returned to determine whether or not that file should be included
+ * in the list.
+ * <p>
+ * A <code>SecurityManager</code> check is made prior to reading the
+ * directory. If read access to the directory is denied, an exception
+ * will be thrown.
+ *
+ * @return An array of <code>File</code> objects for this directory.
+ *
+ * @exception SecurityException If the <code>SecurityManager</code> denies
+ * access to this directory.
+ *
+ * @since 1.2
+ */
+ public File[] listFiles(FilenameFilter filter)
+ {
+ checkRead();
+ return (File[]) performList (filter, null, File.class);
+ }
+
+ /**
+ * This method returns an array of <code>File</code> objects representing
+ * all the files in the directory represented by this object. If this
+ * object does not represent a directory, <code>null</code> is returned.
+ * Each of the returned <code>File</code> object is constructed with this
+ * object as its parent.
+ * <p>
+ * In this form of the <code>listFiles()</code> method, a filter is specified
+ * that allows the caller to control which files are returned in the
+ * list. The <code>FileFilter</code> specified is called for each
+ * file returned to determine whether or not that file should be included
+ * in the list.
+ * <p>
+ * A <code>SecurityManager</code> check is made prior to reading the
+ * directory. If read access to the directory is denied, an exception
+ * will be thrown.
+ *
+ * @return An array of <code>File</code> objects for this directory.
+ *
+ * @exception SecurityException If the <code>SecurityManager</code> denies
+ * access to this directory.
+ *
+ * @since 1.2
+ */
+ public File[] listFiles(FileFilter filter)
+ {
+ checkRead();
+ return (File[]) performList (null, filter, File.class);
+ }
+
+ /**
+ * This method returns a <code>String</code> that is the path name of the
+ * file as returned by <code>getPath</code>.
+ *
+ * @return A <code>String</code> representation of this file
+ */
+ public String toString()
+ {
+ return path;
+ }
+
+ /**
+ * @return A <code>URI</code> for this object.
+ */
+ public URI toURI()
+ {
+ String abspath = getAbsolutePath();
+
+ if (isDirectory())
+ abspath = abspath + separator;
+
+ try
+ {
+ return new URI("file", abspath.replace(separatorChar, '/'), null);
+ }
+ catch (URISyntaxException use)
+ {
+ // Can't happen.
+ throw new RuntimeException(use);
+ }
+ }
+
+ /**
+ * This method returns a <code>URL</code> with the <code>file:</code>
+ * protocol that represents this file. The exact form of this URL is
+ * system dependent.
+ *
+ * @return A <code>URL</code> for this object.
+ *
+ * @exception MalformedURLException If the URL cannot be created
+ * successfully.
+ */
+ public URL toURL() throws MalformedURLException
+ {
+ // On Win32, Sun's JDK returns URLs of the form "file:/c:/foo/bar.txt",
+ // while on UNIX, it returns URLs of the form "file:/foo/bar.txt".
+ if (separatorChar == '\\')
+ return new URL ("file:/" + getAbsolutePath().replace ('\\', '/')
+ + (isDirectory() ? "/" : ""));
+ else
+ return new URL ("file:" + getAbsolutePath()
+ + (isDirectory() ? "/" : ""));
+ }
+
+ /*
+ * This native method actually creates the directory
+ */
+ private final native boolean performMkdir();
+
+ /**
+ * This method creates a directory for the path represented by this object.
+ *
+ * @return <code>true</code> if the directory was created,
+ * <code>false</code> otherwise
+ *
+ * @exception SecurityException If write access is not allowed to this file
+ */
+ public boolean mkdir()
+ {
+ checkWrite();
+ return performMkdir();
+ }
+
+ private static boolean mkdirs (File x)
+ {
+ if (x.isDirectory())
+ return true;
+ String p = x.getPath();
+ String parent = x.getParent();
+ if (parent != null)
+ {
+ x.path = parent;
+ if (! mkdirs (x))
+ return false;
+ x.path = p;
+ }
+ return x.mkdir();
+ }
+
+ /**
+ * This method creates a directory for the path represented by this file.
+ * It will also create any intervening parent directories if necessary.
+ *
+ * @return <code>true</code> if the directory was created,
+ * <code>false</code> otherwise
+ *
+ * @exception SecurityException If write access is not allowed to this file
+ */
+ public boolean mkdirs()
+ {
+ checkWrite();
+ if (isDirectory())
+ return false;
+ return mkdirs (new File (path));
+ }
+
+ private static synchronized String nextValue()
+ {
+ return Long.toString(counter++, Character.MAX_RADIX);
+ }
+
+ /**
+ * This method creates a temporary file in the specified directory. If
+ * the directory name is null, then this method uses the system temporary
+ * directory. The files created are guaranteed not to currently exist and
+ * the same file name will never be used twice in the same virtual
+ * machine instance.
+ * The system temporary directory is determined by examinging the
+ * <code>java.io.tmpdir</code> system property.
+ * <p>
+ * The <code>prefix</code> parameter is a sequence of at least three
+ * characters that are used as the start of the generated filename. The
+ * <code>suffix</code> parameter is a sequence of characters that is used
+ * to terminate the file name. This parameter may be <code>null</code>
+ * and if it is, the suffix defaults to ".tmp".
+ * <p>
+ * If a <code>SecurityManager</code> exists, then its <code>checkWrite</code>
+ * method is used to verify that this operation is permitted.
+ *
+ * @param prefix The character prefix to use in generating the path name.
+ * @param suffix The character suffix to use in generating the path name.
+ * @param directory The directory to create the file in, or
+ * <code>null</code> for the default temporary directory
+ *
+ * @exception IllegalArgumentException If the patterns is not valid
+ * @exception SecurityException If there is no permission to perform
+ * this operation
+ * @exception IOException If an error occurs
+ *
+ * @since 1.2
+ */
+ public static File createTempFile(String prefix, String suffix,
+ File directory)
+ throws IOException
+ {
+ // Grab the system temp directory if necessary
+ if (directory == null)
+ {
+ String dirname = tmpdir;
+ if (dirname == null)
+ throw new IOException("Cannot determine system temporary directory");
+
+ directory = new File(dirname);
+ if (!directory.internalExists())
+ throw new IOException("System temporary directory "
+ + directory.getName() + " does not exist.");
+ if (!directory.internalIsDirectory())
+ throw new IOException("System temporary directory "
+ + directory.getName()
+ + " is not really a directory.");
+ }
+
+ // Check if prefix is at least 3 characters long
+ if (prefix.length() < 3)
+ throw new IllegalArgumentException("Prefix too short: " + prefix);
+
+ // Set default value of suffix
+ if (suffix == null)
+ suffix = ".tmp";
+
+ // Truncation rules.
+ // `6' is the number of characters we generate.
+ // If maxPathLen equals zero, then the system doesn't have a limit
+ // on the file name, so there is nothing to truncate.
+ if (maxPathLen > 0 && prefix.length() + 6 + suffix.length() > maxPathLen)
+ {
+ int suf_len = 0;
+ if (suffix.charAt(0) == '.')
+ suf_len = 4;
+ suffix = suffix.substring(0, suf_len);
+ if (prefix.length() + 6 + suf_len > maxPathLen)
+ prefix = prefix.substring(0, maxPathLen - 6 - suf_len);
+ }
+
+ File f;
+
+ // How many times should we try? We choose 100.
+ for (int i = 0; i < 100; ++i)
+ {
+ // This is ugly.
+ String t = "ZZZZZZ" + nextValue();
+ String l = prefix + t.substring(t.length() - 6) + suffix;
+ try
+ {
+ f = new File(directory, l);
+ if (f.createNewFile())
+ return f;
+ }
+ catch (IOException ignored)
+ {
+ }
+ }
+
+ throw new IOException ("cannot create temporary file");
+ }
+
+ /*
+ * This native method sets file permissions.
+ */
+ private native boolean setFilePermissions(boolean enable, boolean ownerOnly,
+ int permissions);
+
+ /**
+ * This method sets the owner's read permission for the File represented by
+ * this object.
+ *
+ * It is the same as calling <code>setReadable(readable, true)</code>.
+ *
+ * @param <code>readable</code> <code>true</code> to set read permission,
+ * <code>false</code> to unset the read permission.
+ * @return <code>true</code> if the file permissions are changed,
+ * <code>false</code> otherwise.
+ * @exception SecurityException If write access of the file is not permitted.
+ * @see #setReadable(boolean, boolean)
+ * @since 1.6
+ */
+ public boolean setReadable(boolean readable)
+ {
+ return setReadable(readable, true);
+ }
+
+ /**
+ * This method sets the read permissions for the File represented by
+ * this object.
+ *
+ * If <code>ownerOnly</code> is set to <code>true</code> then only the
+ * read permission bit for the owner of the file is changed.
+ *
+ * If <code>ownerOnly</code> is set to <code>false</code>, the file
+ * permissions are changed so that the file can be read by everyone.
+ *
+ * On unix like systems this sets the <code>user</code>, <code>group</code>
+ * and <code>other</code> read bits and is equal to call
+ * <code>chmod a+r</code> on the file.
+ *
+ * @param <code>readable</code> <code>true</code> to set read permission,
+ * <code>false</code> to unset the read permission.
+ * @param <code>ownerOnly</code> <code>true</code> to set read permission
+ * for owner only, <code>false</code> for all.
+ * @return <code>true</code> if the file permissions are changed,
+ * <code>false</code> otherwise.
+ * @exception SecurityException If write access of the file is not permitted.
+ * @see #setReadable(boolean)
+ * @since 1.6
+ */
+ public boolean setReadable(boolean readable, boolean ownerOnly)
+ {
+ checkWrite();
+ return setFilePermissions(readable, ownerOnly, READ);
+ }
+
+ /**
+ * This method sets the owner's write permission for the File represented by
+ * this object.
+ *
+ * It is the same as calling <code>setWritable(readable, true)</code>.
+ *
+ * @param <code>writable</code> <code>true</code> to set write permission,
+ * <code>false</code> to unset write permission.
+ * @return <code>true</code> if the file permissions are changed,
+ * <code>false</code> otherwise.
+ * @exception SecurityException If write access of the file is not permitted.
+ * @see #setWritable(boolean, boolean)
+ * @since 1.6
+ */
+ public boolean setWritable(boolean writable)
+ {
+ return setWritable(writable, true);
+ }
+
+ /**
+ * This method sets the write permissions for the File represented by
+ * this object.
+ *
+ * If <code>ownerOnly</code> is set to <code>true</code> then only the
+ * write permission bit for the owner of the file is changed.
+ *
+ * If <code>ownerOnly</code> is set to <code>false</code>, the file
+ * permissions are changed so that the file can be written by everyone.
+ *
+ * On unix like systems this set the <code>user</code>, <code>group</code>
+ * and <code>other</code> write bits and is equal to call
+ * <code>chmod a+w</code> on the file.
+ *
+ * @param <code>writable</code> <code>true</code> to set write permission,
+ * <code>false</code> to unset write permission.
+ * @param <code>ownerOnly</code> <code>true</code> to set write permission
+ * for owner only, <code>false</code> for all.
+ * @return <code>true</code> if the file permissions are changed,
+ * <code>false</code> otherwise.
+ * @exception SecurityException If write access of the file is not permitted.
+ * @see #setWritable(boolean)
+ * @since 1.6
+ */
+ public boolean setWritable(boolean writable, boolean ownerOnly)
+ {
+ checkWrite();
+ return setFilePermissions(writable, ownerOnly, WRITE);
+ }
+
+ /**
+ * This method sets the owner's execute permission for the File represented
+ * by this object.
+ *
+ * It is the same as calling <code>setExecutable(readable, true)</code>.
+ *
+ * @param <code>executable</code> <code>true</code> to set execute permission,
+ * <code>false</code> to unset execute permission.
+ * @return <code>true</code> if the file permissions are changed,
+ * <code>false</code> otherwise.
+ * @exception SecurityException If write access of the file is not permitted.
+ * @see #setExecutable(boolean, boolean)
+ * @since 1.6
+ */
+ public boolean setExecutable(boolean executable)
+ {
+ return setExecutable(executable, true);
+ }
+
+ /**
+ * This method sets the execute permissions for the File represented by
+ * this object.
+ *
+ * If <code>ownerOnly</code> is set to <code>true</code> then only the
+ * execute permission bit for the owner of the file is changed.
+ *
+ * If <code>ownerOnly</code> is set to <code>false</code>, the file
+ * permissions are changed so that the file can be executed by everyone.
+ *
+ * On unix like systems this set the <code>user</code>, <code>group</code>
+ * and <code>other</code> write bits and is equal to call
+ * <code>chmod a+x</code> on the file.
+ *
+ * @param <code>executable</code> <code>true</code> to set write permission,
+ * <code>false</code> to unset write permission.
+ * @param <code>ownerOnly</code> <code>true</code> to set write permission
+ * for owner only, <code>false</code> for all.
+ * @return <code>true</code> if the file permissions are changed,
+ * <code>false</code> otherwise.
+ * @exception SecurityException If write access of the file is not permitted.
+ * @see #setExecutable(boolean)
+ * @since 1.6
+ */
+ public boolean setExecutable(boolean executable, boolean ownerOnly)
+ {
+ checkWrite();
+ return setFilePermissions(executable, ownerOnly, EXEC);
+ }
+
+ /*
+ * This native method sets the permissions to make the file read only.
+ */
+ private native boolean performSetReadOnly();
+
+ /**
+ * This method sets the file represented by this object to be read only.
+ * A read only file or directory cannot be modified. Please note that
+ * GNU systems allow read only files to be deleted if the directory it
+ * is contained in is writable.
+ *
+ * @return <code>true</code> if the operation succeeded, <code>false</code>
+ * otherwise.
+ *
+ * @exception SecurityException If the <code>SecurityManager</code> does
+ * not allow this operation.
+ *
+ * @since 1.2
+ */
+ public boolean setReadOnly()
+ {
+ // Do a security check before trying to do anything else.
+ checkWrite();
+ return performSetReadOnly();
+ }
+
+ private static native File[] performListRoots();
+
+ /**
+ * This method returns an array of filesystem roots. Some operating systems
+ * have volume oriented filesystem. This method provides a mechanism for
+ * determining which volumes exist. GNU systems use a single hierarchical
+ * filesystem, so will have only one "/" filesystem root.
+ *
+ * @return An array of <code>File</code> objects for each filesystem root
+ * available.
+ *
+ * @since 1.2
+ */
+ public static File[] listRoots()
+ {
+ File[] roots = performListRoots();
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ {
+ // Only return roots to which the security manager permits read access.
+ int count = roots.length;
+ for (int i = 0; i < roots.length; i++)
+ {
+ try
+ {
+ s.checkRead (roots[i].path);
+ }
+ catch (SecurityException sx)
+ {
+ roots[i] = null;
+ count--;
+ }
+ }
+ if (count != roots.length)
+ {
+ File[] newRoots = new File[count];
+ int k = 0;
+ for (int i=0; i < roots.length; i++)
+ {
+ if (roots[i] != null)
+ newRoots[k++] = roots[i];
+ }
+ roots = newRoots;
+ }
+ }
+ return roots;
+ }
+
+ /**
+ * This method creates a temporary file in the system temporary directory.
+ * The files created are guaranteed not to currently exist and the same file
+ * name will never be used twice in the same virtual machine instance. The
+ * system temporary directory is determined by examinging the
+ * <code>java.io.tmpdir</code> system property.
+ * <p>
+ * The <code>prefix</code> parameter is a sequence of at least three
+ * characters that are used as the start of the generated filename. The
+ * <code>suffix</code> parameter is a sequence of characters that is used
+ * to terminate the file name. This parameter may be <code>null</code>
+ * and if it is, the suffix defaults to ".tmp".
+ * <p>
+ * If a <code>SecurityManager</code> exists, then its <code>checkWrite</code>
+ * method is used to verify that this operation is permitted.
+ * <p>
+ * This method is identical to calling
+ * <code>createTempFile(prefix, suffix, null)</code>.
+ *
+ * @param prefix The character prefix to use in generating the path name.
+ * @param suffix The character suffix to use in generating the path name.
+ *
+ * @exception IllegalArgumentException If the prefix or suffix are not valid.
+ * @exception SecurityException If there is no permission to perform
+ * this operation
+ * @exception IOException If an error occurs
+ */
+ public static File createTempFile(String prefix, String suffix)
+ throws IOException
+ {
+ return createTempFile(prefix, suffix, null);
+ }
+
+ /**
+ * This method compares the specified <code>File</code> to this one
+ * to test for equality. It does this by comparing the canonical path names
+ * of the files.
+ * <p>
+ * The canonical paths of the files are determined by calling the
+ * <code>getCanonicalPath</code> method on each object.
+ * <p>
+ * This method returns a 0 if the specified <code>Object</code> is equal
+ * to this one, a negative value if it is less than this one
+ * a positive value if it is greater than this one.
+ *
+ * @return An integer as described above
+ *
+ * @since 1.2
+ */
+ public int compareTo(File other)
+ {
+ if (caseSensitive)
+ return path.compareTo (other.path);
+ else
+ return path.compareToIgnoreCase (other.path);
+ }
+
+ /*
+ * This native method actually performs the rename.
+ */
+ private native boolean performRenameTo (File dest);
+
+ /**
+ * This method renames the file represented by this object to the path
+ * of the file represented by the argument <code>File</code>.
+ *
+ * @param dest The <code>File</code> object representing the target name
+ *
+ * @return <code>true</code> if the rename succeeds, <code>false</code>
+ * otherwise.
+ *
+ * @exception SecurityException If write access is not allowed to the
+ * file by the <code>SecurityMananger</code>.
+ */
+ public synchronized boolean renameTo(File dest)
+ {
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ {
+ s.checkWrite (getPath());
+ s.checkWrite (dest.getPath());
+ }
+ return performRenameTo (dest);
+ }
+
+ /*
+ * This method does the actual setting of the modification time.
+ */
+ private native boolean performSetLastModified(long time);
+
+ /**
+ * This method sets the modification time on the file to the specified
+ * value. This is specified as the number of seconds since midnight
+ * on January 1, 1970 GMT.
+ *
+ * @param time The desired modification time.
+ *
+ * @return <code>true</code> if the operation succeeded, <code>false</code>
+ * otherwise.
+ *
+ * @exception IllegalArgumentException If the specified time is negative.
+ * @exception SecurityException If the <code>SecurityManager</code> will
+ * not allow this operation.
+ *
+ * @since 1.2
+ */
+ public boolean setLastModified(long time)
+ {
+ if (time < 0)
+ throw new IllegalArgumentException("Negative modification time: " + time);
+
+ checkWrite();
+ return performSetLastModified(time);
+ }
+
+ private void checkWrite()
+ {
+ // Check the SecurityManager
+ SecurityManager s = System.getSecurityManager();
+
+ if (s != null)
+ s.checkWrite(path);
+ }
+
+ private void checkRead()
+ {
+ // Check the SecurityManager
+ SecurityManager s = System.getSecurityManager();
+
+ if (s != null)
+ s.checkRead(path);
+ }
+
+ private void checkExec()
+ {
+ // Check the SecurityManager
+ SecurityManager s = System.getSecurityManager();
+
+ if (s != null)
+ s.checkExec(path);
+ }
+
+ /**
+ * Calling this method requests that the file represented by this object
+ * be deleted when the virtual machine exits. Note that this request cannot
+ * be cancelled. Also, it will only be carried out if the virtual machine
+ * exits normally.
+ *
+ * @exception SecurityException If deleting of the file is not allowed
+ *
+ * @since 1.2
+ */
+ // FIXME: This should use the ShutdownHook API once we implement that.
+ public void deleteOnExit()
+ {
+ // Check the SecurityManager
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkDelete (getPath());
+
+ DeleteFileHelper.add(this);
+ }
+
+ private void writeObject(ObjectOutputStream oos) throws IOException
+ {
+ oos.defaultWriteObject();
+ oos.writeChar(separatorChar);
+ }
+
+ private void readObject(ObjectInputStream ois)
+ throws ClassNotFoundException, IOException
+ {
+ ois.defaultReadObject();
+
+ // If the file was from an OS with a different dir separator,
+ // fixup the path to use the separator on this OS.
+ char oldSeparatorChar = ois.readChar();
+
+ if (oldSeparatorChar != separatorChar)
+ path = path.replace(oldSeparatorChar, separatorChar);
+ }
+
+} // class File
+
diff --git a/gcc-4.8/libjava/java/io/FileDescriptor.h b/gcc-4.8/libjava/java/io/FileDescriptor.h
new file mode 100644
index 000000000..a3863f331
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileDescriptor.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileDescriptor__
+#define __java_io_FileDescriptor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class ByteChannel;
+ }
+ }
+ }
+}
+
+class java::io::FileDescriptor : public ::java::lang::Object
+{
+
+public:
+ FileDescriptor();
+public: // actually package-private
+ FileDescriptor(::java::nio::channels::ByteChannel *);
+public:
+ void sync();
+ jboolean valid();
+ static ::java::io::FileDescriptor * in;
+ static ::java::io::FileDescriptor * out;
+ static ::java::io::FileDescriptor * err;
+public: // actually package-private
+ ::java::nio::channels::ByteChannel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) channel;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FileDescriptor__
diff --git a/gcc-4.8/libjava/java/io/FileDescriptor.java b/gcc-4.8/libjava/java/io/FileDescriptor.java
new file mode 100644
index 000000000..d300c9cb6
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileDescriptor.java
@@ -0,0 +1,139 @@
+/* FileDescriptor.java -- Opaque file handle class
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.java.nio.channels.FileChannelImpl;
+
+import java.nio.channels.ByteChannel;
+import java.nio.channels.FileChannel;
+
+/**
+ * This class represents an opaque file handle as a Java class. It should
+ * be used only to pass to other methods that expect an object of this
+ * type. No system specific information can be obtained from this object.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @date September 24, 1998
+ */
+public final class FileDescriptor
+{
+ /**
+ * A <code>FileDescriptor</code> representing the system standard input
+ * stream. This will usually be accessed through the
+ * <code>System.in</code>variable.
+ */
+ public static final FileDescriptor in
+ = new FileDescriptor (FileChannelImpl.in);
+
+ /**
+ * A <code>FileDescriptor</code> representing the system standard output
+ * stream. This will usually be accessed through the
+ * <code>System.out</code>variable.
+ */
+ public static final FileDescriptor out
+ = new FileDescriptor (FileChannelImpl.out);
+
+ /**
+ * A <code>FileDescriptor</code> representing the system standard error
+ * stream. This will usually be accessed through the
+ * <code>System.err</code>variable.
+ */
+ public static final FileDescriptor err
+ = new FileDescriptor (FileChannelImpl.err);
+
+ final ByteChannel channel;
+
+ /**
+ * This method is used to initialize an invalid FileDescriptor object.
+ */
+ public FileDescriptor()
+ {
+ channel = null;
+ }
+
+ /**
+ * This method is used to initialize a FileDescriptor object.
+ */
+ FileDescriptor(ByteChannel channel)
+ {
+ this.channel = channel;
+ }
+
+
+ /**
+ * This method forces all data that has not yet been physically written to
+ * the underlying storage medium associated with this
+ * <code>FileDescriptor</code>
+ * to be written out. This method will not return until all data has
+ * been fully written to the underlying device. If the device does not
+ * support this functionality or if an error occurs, then an exception
+ * will be thrown.
+ */
+ public void sync () throws SyncFailedException
+ {
+ if (channel instanceof FileChannel)
+ {
+ try
+ {
+ ((FileChannel) channel).force(true);
+ }
+ catch (IOException ex)
+ {
+ if (ex instanceof SyncFailedException)
+ throw (SyncFailedException) ex;
+ else
+ throw new SyncFailedException(ex.toString());
+ }
+ }
+ }
+
+ /**
+ * This methods tests whether or not this object represents a valid open
+ * native file handle.
+ *
+ * @return <code>true</code> if this object represents a valid
+ * native file handle, <code>false</code> otherwise
+ */
+ public boolean valid ()
+ {
+ return channel != null && channel.isOpen();
+ }
+}
diff --git a/gcc-4.8/libjava/java/io/FileFilter.h b/gcc-4.8/libjava/java/io/FileFilter.h
new file mode 100644
index 000000000..e90e43795
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileFilter.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileFilter__
+#define __java_io_FileFilter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::FileFilter : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean accept(::java::io::File *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_FileFilter__
diff --git a/gcc-4.8/libjava/java/io/FileInputStream.h b/gcc-4.8/libjava/java/io/FileInputStream.h
new file mode 100644
index 000000000..01efe5620
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileInputStream.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileInputStream__
+#define __java_io_FileInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannelImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannel;
+ }
+ }
+ }
+}
+
+class java::io::FileInputStream : public ::java::io::InputStream
+{
+
+public:
+ FileInputStream(::java::lang::String *);
+ FileInputStream(::java::io::File *);
+ FileInputStream(::java::io::FileDescriptor *);
+public: // actually package-private
+ FileInputStream(::gnu::java::nio::channels::FileChannelImpl *);
+public:
+ virtual jint available();
+ virtual void close();
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual ::java::io::FileDescriptor * getFD();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *);
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jlong skip(jlong);
+ virtual ::java::nio::channels::FileChannel * getChannel();
+private:
+ ::java::io::FileDescriptor * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) fd;
+ ::gnu::java::nio::channels::FileChannelImpl * ch;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FileInputStream__
diff --git a/gcc-4.8/libjava/java/io/FileInputStream.java b/gcc-4.8/libjava/java/io/FileInputStream.java
new file mode 100644
index 000000000..8ca38b02f
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileInputStream.java
@@ -0,0 +1,309 @@
+/* FileInputStream.java -- An input stream that reads from disk files.
+ Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.java.nio.channels.FileChannelImpl;
+
+import java.nio.channels.FileChannel;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
+ * Status: Believed complete and correct.
+ */
+
+/**
+ * This class is a stream that reads its bytes from a file.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Warren Levy (warrenl@cygnus.com)
+ */
+public class FileInputStream extends InputStream
+{
+ /**
+ * This is the native file handle for the file this stream is reading from
+ */
+ private FileDescriptor fd;
+
+ private FileChannelImpl ch;
+
+ /**
+ * This method initializes a <code>FileInputStream</code> to read from the
+ * specified named file. A security check is first made to determine
+ * whether or not access to this file is allowed. This is done by
+ * calling the <code>checkRead()</code> method of the
+ * <code>SecurityManager</code>
+ * (if one exists) with the name of this file. An exception is thrown
+ * if reading is not allowed. If the file does not exist, an exception
+ * is also thrown.
+ *
+ * @param name The name of the file this stream should read from
+ *
+ * @exception SecurityException If read access to the file is not allowed
+ * @exception FileNotFoundException If the file does not exist
+ * or if it is a directory
+ */
+ public FileInputStream(String name) throws FileNotFoundException
+ {
+ this(new File(name));
+ }
+
+ /**
+ * This method initializes a <code>FileInputStream</code> to read from the
+ * specified <code>File</code> object. A security check is first
+ * made to determine
+ * whether or not access to this file is allowed. This is done by
+ * calling the <code>checkRead()</code> method of the
+ * <code>SecurityManager</code>
+ * (if one exists) with the name of this file. An exception is thrown
+ * if reading is not allowed. If the file does not exist, an exception
+ * is also thrown.
+ *
+ * @param file The <code>File</code> object this stream should read from
+ *
+ * @exception SecurityException If read access to the file is not allowed
+ * @exception FileNotFoundException If the file does not exist
+ * or if it is a directory.
+ */
+ public FileInputStream(File file) throws FileNotFoundException
+ {
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkRead(file.getPath());
+
+ ch = FileChannelImpl.create(file, FileChannelImpl.READ);
+ }
+
+ /**
+ * This method initializes a <code>FileInputStream</code> to read from the
+ * specified <code>FileDescriptor</code> object. A security
+ * check is first made to
+ * determine whether or not access to this file is allowed. This is done by
+ * calling the <code>checkRead()</code> method of the
+ * <code>SecurityManager</code>
+ * (if one exists) with the specified <code>FileDescriptor</code>
+ * An exception is
+ * thrown if reading is not allowed.
+ *
+ * @param fdObj The <code>FileDescriptor</code> object this stream
+ * should read from
+ *
+ * @exception SecurityException If read access to the file is not allowed
+ */
+ public FileInputStream(FileDescriptor fdObj)
+ {
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkRead(fdObj);
+
+ fd = fdObj;
+ ch = (FileChannelImpl) fdObj.channel;
+ }
+
+ FileInputStream(FileChannelImpl ch)
+ {
+ this.ch = ch;
+ }
+
+ /**
+ * This method returns the number of bytes that can be read from this
+ * stream before a read can block. A return of 0 indicates that blocking
+ * might (or might not) occur on the very next read attempt.
+ * <p>
+ * This method returns the number of unread bytes remaining in the file if
+ * the descriptor being read from is an actual file. If this method is
+ * reading from a ''special'' file such a the standard input, this method
+ * will return the appropriate value for the stream being read.
+ * <p>
+ * Be aware that reads on plain files that do not reside locally might
+ * possibly block even if this method says they should not. For example,
+ * a remote server might crash, preventing an NFS mounted file from being
+ * read.
+ *
+ * @return The number of bytes that can be read before blocking could occur
+ *
+ * @exception IOException If an error occurs
+ */
+ public int available() throws IOException
+ {
+ return ch.available();
+ }
+
+ /**
+ * This method closes the stream. Any futher attempts to read from the
+ * stream will likely generate an IOException since the underlying file
+ * will be closed.
+ *
+ * @exception IOException If an error occurs.
+ */
+ public void close() throws IOException
+ {
+ ch.close();
+ }
+
+ protected void finalize() throws IOException
+ {
+ // We don't actually need this, but we include it because it is
+ // mentioned in the JCL.
+ }
+
+ /**
+ * This method returns a <code>FileDescriptor</code> object representing the
+ * underlying native file handle of the file this stream is reading
+ * from
+ *
+ * @return A <code>FileDescriptor</code> for this stream
+ *
+ * @exception IOException If an error occurs
+ */
+ public final FileDescriptor getFD() throws IOException
+ {
+ synchronized (this)
+ {
+ if (fd == null)
+ fd = new FileDescriptor (ch);
+ return fd;
+ }
+ }
+
+ /**
+ * This method reads an unsigned byte from the input stream and returns it
+ * as an int in the range of 0-255. This method also will return -1 if
+ * the end of the stream has been reached.
+ * <p>
+ * This method will block until the byte can be read.
+ *
+ * @return The byte read or -1 if end of stream
+ *
+ * @exception IOException If an error occurs
+ */
+ public int read() throws IOException
+ {
+ return ch.read();
+ }
+
+ /**
+ * This method reads bytes from a stream and stores them into a caller
+ * supplied buffer. This method attempts to completely fill the buffer,
+ * but can return before doing so. The actual number of bytes read is
+ * returned as an int. A -1 is returned to indicate the end of the stream.
+ * <p>
+ * This method will block until some data can be read.
+ * <p>
+ * This method operates by calling an overloaded read method like so:
+ * <code>read(buf, 0, buf.length)</code>
+ *
+ * @param buf The buffer into which the bytes read will be stored.
+ *
+ * @return The number of bytes read or -1 if end of stream.
+ *
+ * @exception IOException If an error occurs.
+ */
+ public int read(byte[] buf) throws IOException
+ {
+ return read(buf, 0, buf.length);
+ }
+
+ /**
+ * This method read bytes from a stream and stores them into a caller
+ * supplied buffer. It starts storing the data at index
+ * <code>offset</code> into
+ * the buffer and attempts to read <code>len</code> bytes. This method can
+ * return before reading the number of bytes requested. The actual number
+ * of bytes read is returned as an int. A -1 is returned to indicate the
+ * end of the stream.
+ * <p>
+ * This method will block until some data can be read.
+ *
+ * @param buf The array into which the bytes read should be stored
+ * @param offset The offset into the array to start storing bytes
+ * @param len The requested number of bytes to read
+ *
+ * @return The actual number of bytes read, or -1 if end of stream.
+ *
+ * @exception IOException If an error occurs.
+ */
+ public int read(byte[] buf, int offset, int len) throws IOException
+ {
+ if (offset < 0
+ || len < 0
+ || offset + len > buf.length)
+ throw new ArrayIndexOutOfBoundsException();
+
+ return ch.read(buf, offset, len);
+ }
+
+ /**
+ * This method skips the specified number of bytes in the stream. It
+ * returns the actual number of bytes skipped, which may be less than the
+ * requested amount.
+ * <p>
+ * @param numBytes The requested number of bytes to skip
+ *
+ * @return The actual number of bytes skipped.
+ *
+ * @exception IOException If an error occurs
+ */
+ public synchronized long skip (long numBytes) throws IOException
+ {
+ if (numBytes < 0)
+ throw new IllegalArgumentException ("Can't skip negative bytes: " +
+ numBytes);
+
+ if (numBytes == 0)
+ return 0;
+
+ long oldPos = ch.position ();
+ ch.position(oldPos + numBytes);
+ return ch.position() - oldPos;
+ }
+
+ /**
+ * This method creates a java.nio.channels.FileChannel.
+ * Nio does not allow one to create a file channel directly.
+ * A file channel must be created by first creating an instance of
+ * Input/Output/RandomAccessFile and invoking the getChannel() method on it.
+ */
+ public synchronized FileChannel getChannel ()
+ {
+ return ch;
+ }
+
+} // class FileInputStream
+
diff --git a/gcc-4.8/libjava/java/io/FileNotFoundException.h b/gcc-4.8/libjava/java/io/FileNotFoundException.h
new file mode 100644
index 000000000..794160dd5
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileNotFoundException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileNotFoundException__
+#define __java_io_FileNotFoundException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::FileNotFoundException : public ::java::io::IOException
+{
+
+public:
+ FileNotFoundException();
+ FileNotFoundException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -897856973823710492LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FileNotFoundException__
diff --git a/gcc-4.8/libjava/java/io/FileOutputStream.h b/gcc-4.8/libjava/java/io/FileOutputStream.h
new file mode 100644
index 000000000..b2bf0d942
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileOutputStream.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileOutputStream__
+#define __java_io_FileOutputStream__
+
+#pragma interface
+
+#include <java/io/OutputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannelImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannel;
+ }
+ }
+ }
+}
+
+class java::io::FileOutputStream : public ::java::io::OutputStream
+{
+
+public:
+ FileOutputStream(::java::lang::String *, jboolean);
+ FileOutputStream(::java::lang::String *);
+ FileOutputStream(::java::io::File *);
+ FileOutputStream(::java::io::File *, jboolean);
+ FileOutputStream(::java::io::FileDescriptor *);
+public: // actually package-private
+ FileOutputStream(::gnu::java::nio::channels::FileChannelImpl *);
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual ::java::io::FileDescriptor * getFD();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void close();
+ virtual ::java::nio::channels::FileChannel * getChannel();
+private:
+ ::java::io::FileDescriptor * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) fd;
+ ::gnu::java::nio::channels::FileChannelImpl * ch;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FileOutputStream__
diff --git a/gcc-4.8/libjava/java/io/FileOutputStream.java b/gcc-4.8/libjava/java/io/FileOutputStream.java
new file mode 100644
index 000000000..10ea6b536
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileOutputStream.java
@@ -0,0 +1,296 @@
+/* FileOutputStream.java -- Writes to a file on disk.
+ Copyright (C) 1998, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.java.nio.channels.FileChannelImpl;
+
+import java.nio.channels.FileChannel;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * Status: Complete to version 1.1.
+ */
+
+/**
+ * This classes allows a stream of data to be written to a disk file or
+ * any open <code>FileDescriptor</code>.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ */
+public class FileOutputStream extends OutputStream
+{
+ private FileDescriptor fd;
+
+ private FileChannelImpl ch;
+
+ /**
+ * This method initializes a <code>FileOutputStream</code> object to write
+ * to the named file. The file is created if it does not exist, and
+ * the bytes written are written starting at the beginning of the file if
+ * the <code>append</code> argument is <code>false</code> or at the end
+ * of the file if the <code>append</code> argument is true.
+ * <p>
+ * Before opening a file, a security check is performed by calling the
+ * <code>checkWrite</code> method of the <code>SecurityManager</code> (if
+ * one exists) with the name of the file to be opened. An exception is
+ * thrown if writing is not allowed.
+ *
+ * @param path The name of the file this stream should write to
+ * @param append <code>true</code> to append bytes to the end of the file,
+ * or <code>false</code> to write bytes to the beginning
+ *
+ * @exception SecurityException If write access to the file is not allowed
+ * @exception FileNotFoundException If a non-security error occurs
+ */
+ public FileOutputStream (String path, boolean append)
+ throws SecurityException, FileNotFoundException
+ {
+ this (new File(path), append);
+ }
+
+ /**
+ * This method initializes a <code>FileOutputStream</code> object to write
+ * to the named file. The file is created if it does not exist, and
+ * the bytes written are written starting at the beginning of the file.
+ * <p>
+ * Before opening a file, a security check is performed by calling the
+ * <code>checkWrite</code> method of the <code>SecurityManager</code> (if
+ * one exists) with the name of the file to be opened. An exception is
+ * thrown if writing is not allowed.
+ *
+ * @param path The name of the file this stream should write to
+ *
+ * @exception SecurityException If write access to the file is not allowed
+ * @exception FileNotFoundException If a non-security error occurs
+ */
+ public FileOutputStream (String path)
+ throws SecurityException, FileNotFoundException
+ {
+ this (path, false);
+ }
+
+ /**
+ * This method initializes a <code>FileOutputStream</code> object to write
+ * to the specified <code>File</code> object. The file is created if it
+ * does not exist, and the bytes written are written starting at the
+ * beginning of the file.
+ * <p>
+ * Before opening a file, a security check is performed by calling the
+ * <code>checkWrite</code> method of the <code>SecurityManager</code> (if
+ * one exists) with the name of the file to be opened. An exception is
+ * thrown if writing is not allowed.
+ *
+ * @param file The <code>File</code> object this stream should write to
+ *
+ * @exception SecurityException If write access to the file is not allowed
+ * @exception FileNotFoundException If a non-security error occurs
+ */
+ public FileOutputStream (File file)
+ throws SecurityException, FileNotFoundException
+ {
+ this (file, false);
+ }
+
+ /**
+ * This method initializes a <code>FileOutputStream</code> object to write
+ * to the specified <code>File</code> object. The file is created if it
+ * does not exist, and the bytes written are written starting at the
+ * beginning of the file if the <code>append</code> parameter is
+ * <code>false</code>. Otherwise bytes are written at the end of the
+ * file.
+ * <p>
+ * Before opening a file, a security check is performed by calling the
+ * <code>checkWrite</code> method of the <code>SecurityManager</code> (if
+ * one exists) with the name of the file to be opened. An exception is
+ * thrown if writing is not allowed.
+ *
+ * @param file The <code>File</code> object this stream should write to
+ * @param append <code>true</code> to append bytes to the end of the file,
+ * or <code>false</code> to write bytes to the beginning
+ *
+ * @exception SecurityException If write access to the file is not allowed
+ * @exception FileNotFoundException If a non-security error occurs
+ */
+ public FileOutputStream (File file, boolean append)
+ throws FileNotFoundException
+ {
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkWrite(file.getPath());
+
+ ch = FileChannelImpl.create(file, (append
+ ? FileChannelImpl.WRITE
+ | FileChannelImpl.APPEND
+ : FileChannelImpl.WRITE));
+ }
+
+ /**
+ * This method initializes a <code>FileOutputStream</code> object to write
+ * to the file represented by the specified <code>FileDescriptor</code>
+ * object. This method does not create any underlying disk file or
+ * reposition the file pointer of the given descriptor. It assumes that
+ * this descriptor is ready for writing as is.
+ * <p>
+ * Before opening a file, a security check is performed by calling the
+ * <code>checkWrite</code> method of the <code>SecurityManager</code> (if
+ * one exists) with the specified <code>FileDescriptor</code> as an argument.
+ * An exception is thrown if writing is not allowed.
+ *
+ * @param fdObj The <code>FileDescriptor</code> this stream should write to
+ *
+ * @exception SecurityException If write access to the file is not allowed
+ */
+ public FileOutputStream (FileDescriptor fdObj)
+ throws SecurityException
+ {
+ // Hmm, no other exception but this one to throw, but if the descriptor
+ // isn't valid, we surely don't have "permission" to write to it.
+ if (!fdObj.valid())
+ throw new SecurityException("Invalid FileDescriptor");
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkWrite(fdObj);
+
+ fd = fdObj;
+ ch = (FileChannelImpl) fdObj.channel;
+ }
+
+ FileOutputStream(FileChannelImpl ch)
+ {
+ this.ch = ch;
+ }
+
+ protected void finalize () throws IOException
+ {
+ // We don't actually need this, but we include it because it is
+ // mentioned in the JCL.
+ }
+
+ /**
+ * This method returns a <code>FileDescriptor</code> object representing
+ * the file that is currently being written to
+ *
+ * @return A <code>FileDescriptor</code> object for this stream
+ *
+ * @exception IOException If an error occurs
+ */
+ public final FileDescriptor getFD () throws IOException
+ {
+ synchronized (this)
+ {
+ if (fd == null)
+ fd = new FileDescriptor (ch);
+ return fd;
+ }
+ }
+
+ /**
+ * This method writes a single byte of data to the file.
+ *
+ * @param b The byte of data to write, passed as an <code>int</code>
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (int b) throws IOException
+ {
+ ch.write (b);
+ }
+
+ /**
+ * This method writes all the bytes in the specified array to the
+ * file.
+ *
+ * @param buf The array of bytes to write to the file
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (byte[] buf)
+ throws IOException
+ {
+ write (buf, 0, buf.length);
+ }
+
+ /**
+ * This method writes <code>len</code> bytes from the byte array
+ * <code>buf</code> to the file starting at index <code>offset</code>.
+ *
+ * @param buf The array of bytes to write to the file
+ * @param offset The offset into the array to start writing bytes from
+ * @param len The number of bytes to write to the file
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (byte[] buf, int offset, int len)
+ throws IOException
+ {
+ if (offset < 0
+ || len < 0
+ || offset + len > buf.length)
+ throw new ArrayIndexOutOfBoundsException ();
+
+ ch.write (buf, offset, len);
+ }
+
+ /**
+ * This method closes the underlying file. Any further attempts to
+ * write to this stream will likely generate an exception since the
+ * file is closed.
+ *
+ * @exception IOException If an error occurs
+ */
+ public void close () throws IOException
+ {
+ ch.close();
+ }
+
+ /**
+ * This method creates a java.nio.channels.FileChannel.
+ * Nio does not allow one to create a file channel directly.
+ * A file channel must be created by first creating an instance of
+ * Input/Output/RandomAccessFile and invoking the getChannel() method on it.
+ */
+ public synchronized FileChannel getChannel()
+ {
+ return ch;
+ }
+
+} // class FileOutputStream
+
diff --git a/gcc-4.8/libjava/java/io/FilePermission.h b/gcc-4.8/libjava/java/io/FilePermission.h
new file mode 100644
index 000000000..bace152f0
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FilePermission.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FilePermission__
+#define __java_io_FilePermission__
+
+#pragma interface
+
+#include <java/security/Permission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ }
+ }
+}
+
+class java::io::FilePermission : public ::java::security::Permission
+{
+
+ void checkPerms();
+public:
+ FilePermission(::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * getActions();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ jboolean implies(::java::security::Permission *);
+private:
+ static const jlong serialVersionUID = 7930732926638008763LL;
+ static ::java::lang::String * ALL_FILES;
+ jboolean __attribute__((aligned(__alignof__( ::java::security::Permission)))) readPerm;
+ jboolean writePerm;
+ jboolean executePerm;
+ jboolean deletePerm;
+ ::java::lang::String * actionsString;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FilePermission__
diff --git a/gcc-4.8/libjava/java/io/FileReader.h b/gcc-4.8/libjava/java/io/FileReader.h
new file mode 100644
index 000000000..4d1fba212
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileReader.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileReader__
+#define __java_io_FileReader__
+
+#pragma interface
+
+#include <java/io/InputStreamReader.h>
+
+class java::io::FileReader : public ::java::io::InputStreamReader
+{
+
+public:
+ FileReader(::java::io::File *);
+ FileReader(::java::io::FileDescriptor *);
+ FileReader(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FileReader__
diff --git a/gcc-4.8/libjava/java/io/FileWriter.h b/gcc-4.8/libjava/java/io/FileWriter.h
new file mode 100644
index 000000000..b75ea008c
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FileWriter.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FileWriter__
+#define __java_io_FileWriter__
+
+#pragma interface
+
+#include <java/io/OutputStreamWriter.h>
+
+class java::io::FileWriter : public ::java::io::OutputStreamWriter
+{
+
+public:
+ FileWriter(::java::io::File *);
+ FileWriter(::java::io::File *, jboolean);
+ FileWriter(::java::io::FileDescriptor *);
+ FileWriter(::java::lang::String *);
+ FileWriter(::java::lang::String *, jboolean);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FileWriter__
diff --git a/gcc-4.8/libjava/java/io/FilenameFilter.h b/gcc-4.8/libjava/java/io/FilenameFilter.h
new file mode 100644
index 000000000..2337ed327
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FilenameFilter.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FilenameFilter__
+#define __java_io_FilenameFilter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::FilenameFilter : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean accept(::java::io::File *, ::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_FilenameFilter__
diff --git a/gcc-4.8/libjava/java/io/FilterInputStream.h b/gcc-4.8/libjava/java/io/FilterInputStream.h
new file mode 100644
index 000000000..1116639c1
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FilterInputStream.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FilterInputStream__
+#define __java_io_FilterInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::FilterInputStream : public ::java::io::InputStream
+{
+
+public: // actually protected
+ FilterInputStream(::java::io::InputStream *);
+public:
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual void reset();
+ virtual jint available();
+ virtual jlong skip(jlong);
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *);
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void close();
+public: // actually protected
+ ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) in;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FilterInputStream__
diff --git a/gcc-4.8/libjava/java/io/FilterOutputStream.h b/gcc-4.8/libjava/java/io/FilterOutputStream.h
new file mode 100644
index 000000000..571b255d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FilterOutputStream.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FilterOutputStream__
+#define __java_io_FilterOutputStream__
+
+#pragma interface
+
+#include <java/io/OutputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::FilterOutputStream : public ::java::io::OutputStream
+{
+
+public:
+ FilterOutputStream(::java::io::OutputStream *);
+ virtual void close();
+ virtual void flush();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *);
+ virtual void write(JArray< jbyte > *, jint, jint);
+public: // actually protected
+ ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) out;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FilterOutputStream__
diff --git a/gcc-4.8/libjava/java/io/FilterReader.h b/gcc-4.8/libjava/java/io/FilterReader.h
new file mode 100644
index 000000000..52a1995fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FilterReader.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FilterReader__
+#define __java_io_FilterReader__
+
+#pragma interface
+
+#include <java/io/Reader.h>
+#include <gcj/array.h>
+
+
+class java::io::FilterReader : public ::java::io::Reader
+{
+
+public: // actually protected
+ FilterReader(::java::io::Reader *);
+public:
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual void reset();
+ virtual jboolean ready();
+ virtual jlong skip(jlong);
+ virtual jint read();
+ virtual jint read(JArray< jchar > *, jint, jint);
+ virtual void close();
+public: // actually protected
+ ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::io::Reader)))) in;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FilterReader__
diff --git a/gcc-4.8/libjava/java/io/FilterWriter.h b/gcc-4.8/libjava/java/io/FilterWriter.h
new file mode 100644
index 000000000..146f01563
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/FilterWriter.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_FilterWriter__
+#define __java_io_FilterWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+
+class java::io::FilterWriter : public ::java::io::Writer
+{
+
+public: // actually protected
+ FilterWriter(::java::io::Writer *);
+public:
+ virtual void close();
+ virtual void flush();
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *, jint, jint);
+ virtual void write(::java::lang::String *, jint, jint);
+public: // actually protected
+ ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::io::Writer)))) out;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_FilterWriter__
diff --git a/gcc-4.8/libjava/java/io/Flushable.h b/gcc-4.8/libjava/java/io/Flushable.h
new file mode 100644
index 000000000..2acd25dec
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Flushable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Flushable__
+#define __java_io_Flushable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::Flushable : public ::java::lang::Object
+{
+
+public:
+ virtual void flush() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_Flushable__
diff --git a/gcc-4.8/libjava/java/io/IOError.h b/gcc-4.8/libjava/java/io/IOError.h
new file mode 100644
index 000000000..c93c95d0f
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/IOError.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_IOError__
+#define __java_io_IOError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::io::IOError : public ::java::lang::Error
+{
+
+public:
+ IOError(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 67100927991680413LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_IOError__
diff --git a/gcc-4.8/libjava/java/io/IOException.h b/gcc-4.8/libjava/java/io/IOException.h
new file mode 100644
index 000000000..bdd92e0e4
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/IOException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_IOException__
+#define __java_io_IOException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::io::IOException : public ::java::lang::Exception
+{
+
+public:
+ IOException();
+ IOException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7818375828146090155LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_IOException__
diff --git a/gcc-4.8/libjava/java/io/InputStream.h b/gcc-4.8/libjava/java/io/InputStream.h
new file mode 100644
index 000000000..263af2c81
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/InputStream.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_InputStream__
+#define __java_io_InputStream__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::InputStream : public ::java::lang::Object
+{
+
+public:
+ InputStream();
+ virtual jint available();
+ virtual void close();
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual jint read() = 0;
+ virtual jint read(JArray< jbyte > *);
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void reset();
+ virtual jlong skip(jlong);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_InputStream__
diff --git a/gcc-4.8/libjava/java/io/InputStreamReader.h b/gcc-4.8/libjava/java/io/InputStreamReader.h
new file mode 100644
index 000000000..46050d5c3
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/InputStreamReader.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_InputStreamReader__
+#define __java_io_InputStreamReader__
+
+#pragma interface
+
+#include <java/io/Reader.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ namespace convert
+ {
+ class BytesToUnicode;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class Charset;
+ class CharsetDecoder;
+ }
+ }
+ }
+}
+
+class java::io::InputStreamReader : public ::java::io::Reader
+{
+
+public:
+ InputStreamReader(::java::io::InputStream *);
+ InputStreamReader(::java::io::InputStream *, ::java::lang::String *);
+ InputStreamReader(::java::io::InputStream *, ::java::nio::charset::Charset *);
+ InputStreamReader(::java::io::InputStream *, ::java::nio::charset::CharsetDecoder *);
+private:
+ InputStreamReader(::java::io::InputStream *, ::gnu::gcj::convert::BytesToUnicode *);
+public:
+ virtual void close();
+ virtual ::java::lang::String * getEncoding();
+ virtual jboolean ready();
+ virtual jint read(JArray< jchar > *, jint, jint);
+ virtual jint read();
+private:
+ jint refill(JArray< jchar > *, jint, jint);
+public: // actually package-private
+ ::java::io::BufferedInputStream * __attribute__((aligned(__alignof__( ::java::io::Reader)))) in;
+ JArray< jchar > * work;
+ jint wpos;
+ jint wcount;
+ ::gnu::gcj::convert::BytesToUnicode * converter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_InputStreamReader__
diff --git a/gcc-4.8/libjava/java/io/InputStreamReader.java b/gcc-4.8/libjava/java/io/InputStreamReader.java
new file mode 100644
index 000000000..91568c5cc
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/InputStreamReader.java
@@ -0,0 +1,332 @@
+/* InputStreamReader.java -- Reader than transforms bytes to chars
+ Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.gcj.convert.*;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+
+/**
+ * This class reads characters from a byte input stream. The characters
+ * read are converted from bytes in the underlying stream by a
+ * decoding layer. The decoding layer transforms bytes to chars according
+ * to an encoding standard. There are many available encodings to choose
+ * from. The desired encoding can either be specified by name, or if no
+ * encoding is selected, the system default encoding will be used. The
+ * system default encoding name is determined from the system property
+ * <code>file.encoding</code>. The only encodings that are guaranteed to
+ * be availalbe are "8859_1" (the Latin-1 character set) and "UTF8".
+ * Unforunately, Java does not provide a mechanism for listing the
+ * ecodings that are supported in a given implementation.
+ * <p>
+ * Here is a list of standard encoding names that may be available:
+ * <p>
+ * <ul>
+ * <li>8859_1 (ISO-8859-1/Latin-1)</li>
+ * <li>8859_2 (ISO-8859-2/Latin-2)</li>
+ * <li>8859_3 (ISO-8859-3/Latin-3)</li>
+ * <li>8859_4 (ISO-8859-4/Latin-4)</li>
+ * <li>8859_5 (ISO-8859-5/Latin-5)</li>
+ * <li>8859_6 (ISO-8859-6/Latin-6)</li>
+ * <li>8859_7 (ISO-8859-7/Latin-7)</li>
+ * <li>8859_8 (ISO-8859-8/Latin-8)</li>
+ * <li>8859_9 (ISO-8859-9/Latin-9)</li>
+ * <li>ASCII (7-bit ASCII)</li>
+ * <li>UTF8 (UCS Transformation Format-8)</li>
+ * <li>More later</li>
+ * </ul>
+ * <p>
+ * It is recommended that applications do not use
+ * <code>InputStreamReader</code>'s
+ * directly. Rather, for efficiency purposes, an object of this class
+ * should be wrapped by a <code>BufferedReader</code>.
+ * <p>
+ * Due to a deficiency the Java class library design, there is no standard
+ * way for an application to install its own byte-character encoding.
+ *
+ * @see BufferedReader
+ * @see InputStream
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Per Bothner (bothner@cygnus.com)
+ * @date April 22, 1998.
+ */
+public class InputStreamReader extends Reader
+{
+ BufferedInputStream in;
+
+ // Buffer of chars read from in and converted but not consumed.
+ char[] work;
+ // Next available character (in work buffer) to read.
+ int wpos;
+ // Last available character (in work buffer) to read.
+ int wcount;
+
+ /*
+ * This is the byte-character decoder class that does the reading and
+ * translation of bytes from the underlying stream.
+ */
+ BytesToUnicode converter;
+
+ /**
+ * This method initializes a new instance of <code>InputStreamReader</code>
+ * to read from the specified stream using the default encoding.
+ *
+ * @param in The <code>InputStream</code> to read from
+ */
+ public InputStreamReader(InputStream in)
+ {
+ this(in, BytesToUnicode.getDefaultDecoder());
+ }
+
+ /**
+ * This method initializes a new instance of <code>InputStreamReader</code>
+ * to read from the specified stream using a caller supplied character
+ * encoding scheme. Note that due to a deficiency in the Java language
+ * design, there is no way to determine which encodings are supported.
+ *
+ * @param in The <code>InputStream</code> to read from
+ * @param encoding_name The name of the encoding scheme to use
+ *
+ * @exception UnsupportedEncodingException If the encoding scheme
+ * requested is not available.
+ */
+ public InputStreamReader(InputStream in, String encoding_name)
+ throws UnsupportedEncodingException
+ {
+ this(in, BytesToUnicode.getDecoder(encoding_name));
+ }
+
+ /**
+ * Creates an InputStreamReader that uses a decoder of the given
+ * charset to decode the bytes in the InputStream into
+ * characters.
+ */
+ public InputStreamReader(InputStream in, Charset charset)
+ {
+ this(in, new BytesToCharsetAdaptor(charset));
+ }
+
+ /**
+ * Creates an InputStreamReader that uses the given charset decoder
+ * to decode the bytes in the InputStream into characters.
+ */
+ public InputStreamReader(InputStream in, CharsetDecoder decoder)
+ {
+ this(in, new BytesToCharsetAdaptor(decoder));
+ }
+
+ private InputStreamReader(InputStream in, BytesToUnicode decoder)
+ {
+ // FIXME: someone could pass in a BufferedInputStream whose buffer
+ // is smaller than the longest encoded character for this
+ // encoding. We will probably go into an infinite loop in this
+ // case. We probably ought to just have our own byte buffering
+ // here.
+ this.in = in instanceof BufferedInputStream
+ ? (BufferedInputStream) in
+ : new BufferedInputStream(in);
+ /* Don't need to call super(in) here as long as the lock gets set. */
+ this.lock = in;
+ converter = decoder;
+ converter.setInput(this.in.buf, 0, 0);
+ }
+
+ /**
+ * This method closes this stream, as well as the underlying
+ * <code>InputStream</code>.
+ *
+ * @exception IOException If an error occurs
+ */
+ public void close() throws IOException
+ {
+ synchronized (lock)
+ {
+ if (in != null)
+ in.close();
+ in = null;
+ work = null;
+ wpos = wcount = 0;
+ }
+ }
+
+ /**
+ * This method returns the name of the encoding that is currently in use
+ * by this object. If the stream has been closed, this method is allowed
+ * to return <code>null</code>.
+ *
+ * @return The current encoding name
+ */
+ public String getEncoding()
+ {
+ return in != null ? converter.getName() : null;
+ }
+
+ /**
+ * This method checks to see if the stream is read to be read. It
+ * will return <code>true</code> if is, or <code>false</code> if it is not.
+ * If the stream is not ready to be read, it could (although is not required
+ * to) block on the next read attempt.
+ *
+ * @return <code>true</code> if the stream is ready to be read,
+ * <code>false</code> otherwise
+ *
+ * @exception IOException If an error occurs
+ */
+ public boolean ready() throws IOException
+ {
+ synchronized (lock)
+ {
+ if (in == null)
+ throw new IOException("Stream closed");
+
+ if (wpos < wcount)
+ return true;
+
+ // According to the spec, an InputStreamReader is ready if its
+ // input buffer is not empty (above), or if bytes are
+ // available on the underlying byte stream.
+ return in.available () > 0;
+ }
+ }
+
+ /**
+ * This method reads up to <code>length</code> characters from the stream into
+ * the specified array starting at index <code>offset</code> into the
+ * array.
+ *
+ * @param buf The character array to recieve the data read
+ * @param offset The offset into the array to start storing characters
+ * @param length The requested number of characters to read.
+ *
+ * @return The actual number of characters read, or -1 if end of stream.
+ *
+ * @exception IOException If an error occurs
+ */
+ public int read (char[] buf, int offset, int length) throws IOException
+ {
+ synchronized (lock)
+ {
+ if (in == null)
+ throw new IOException("Stream closed");
+
+ if (length == 0)
+ return 0;
+
+ int wavail = wcount - wpos;
+ if (wavail <= 0)
+ {
+ // Nothing waiting, so refill their buffer.
+ return refill(buf, offset, length);
+ }
+
+ if (length > wavail)
+ length = wavail;
+ System.arraycopy(work, wpos, buf, offset, length);
+ wpos += length;
+ return length;
+ }
+ }
+
+ /**
+ * This method reads a single character of data from the stream.
+ *
+ * @return The char read, as an int, or -1 if end of stream.
+ *
+ * @exception IOException If an error occurs
+ */
+ public int read() throws IOException
+ {
+ synchronized (lock)
+ {
+ if (in == null)
+ throw new IOException("Stream closed");
+
+ int wavail = wcount - wpos;
+ if (wavail <= 0)
+ {
+ // Nothing waiting, so refill our internal buffer.
+ wpos = wcount = 0;
+ if (work == null)
+ work = new char[100];
+ int count = refill(work, 0, work.length);
+ if (count == -1)
+ return -1;
+ wcount += count;
+ }
+
+ return work[wpos++];
+ }
+ }
+
+ // Read more bytes and convert them into the specified buffer.
+ // Returns the number of converted characters or -1 on EOF.
+ private int refill(char[] buf, int offset, int length) throws IOException
+ {
+ for (;;)
+ {
+ // We have knowledge of the internals of BufferedInputStream
+ // here. Eww.
+ // BufferedInputStream.refill() can only be called when
+ // `pos>=count'.
+ boolean r = in.pos < in.count || in.refill ();
+ if (! r)
+ return -1;
+ converter.setInput(in.buf, in.pos, in.count);
+ int count = converter.read(buf, offset, length);
+
+ // We might have bytes but not have made any progress. In
+ // this case we try to refill. If refilling fails, we assume
+ // we have a malformed character at the end of the stream.
+ if (count == 0 && converter.inpos == in.pos)
+ {
+ in.mark(in.count);
+ if (! in.refill ())
+ throw new CharConversionException ();
+ in.reset();
+ }
+ else
+ {
+ in.skip(converter.inpos - in.pos);
+ if (count > 0)
+ return count;
+ }
+ }
+ }
+}
diff --git a/gcc-4.8/libjava/java/io/InterruptedIOException.h b/gcc-4.8/libjava/java/io/InterruptedIOException.h
new file mode 100644
index 000000000..40922cd79
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/InterruptedIOException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_InterruptedIOException__
+#define __java_io_InterruptedIOException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::InterruptedIOException : public ::java::io::IOException
+{
+
+public:
+ InterruptedIOException();
+ InterruptedIOException(::java::lang::String *);
+public: // actually package-private
+ InterruptedIOException(::java::lang::String *, jint);
+private:
+ static const jlong serialVersionUID = 4020568460727500567LL;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::io::IOException)))) bytesTransferred;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_InterruptedIOException__
diff --git a/gcc-4.8/libjava/java/io/InvalidClassException.h b/gcc-4.8/libjava/java/io/InvalidClassException.h
new file mode 100644
index 000000000..6216a9ad9
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/InvalidClassException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_InvalidClassException__
+#define __java_io_InvalidClassException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::InvalidClassException : public ::java::io::ObjectStreamException
+{
+
+public:
+ InvalidClassException(::java::lang::String *);
+ InvalidClassException(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getMessage();
+private:
+ static const jlong serialVersionUID = -4333316296251054416LL;
+public:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::io::ObjectStreamException)))) classname;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_InvalidClassException__
diff --git a/gcc-4.8/libjava/java/io/InvalidObjectException.h b/gcc-4.8/libjava/java/io/InvalidObjectException.h
new file mode 100644
index 000000000..550dd439d
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/InvalidObjectException.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_InvalidObjectException__
+#define __java_io_InvalidObjectException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::InvalidObjectException : public ::java::io::ObjectStreamException
+{
+
+public:
+ InvalidObjectException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 3233174318281839583LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_InvalidObjectException__
diff --git a/gcc-4.8/libjava/java/io/LineNumberInputStream.h b/gcc-4.8/libjava/java/io/LineNumberInputStream.h
new file mode 100644
index 000000000..676893d51
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/LineNumberInputStream.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_LineNumberInputStream__
+#define __java_io_LineNumberInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::LineNumberInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ LineNumberInputStream(::java::io::InputStream *);
+ virtual jint available();
+ virtual jint getLineNumber();
+ virtual void mark(jint);
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void reset();
+ virtual void setLineNumber(jint);
+ virtual jlong skip(jlong);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) lineNumber;
+ jint markLineNumber;
+ jboolean justReadReturnChar;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_LineNumberInputStream__
diff --git a/gcc-4.8/libjava/java/io/LineNumberReader.h b/gcc-4.8/libjava/java/io/LineNumberReader.h
new file mode 100644
index 000000000..33564c949
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/LineNumberReader.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_LineNumberReader__
+#define __java_io_LineNumberReader__
+
+#pragma interface
+
+#include <java/io/BufferedReader.h>
+#include <gcj/array.h>
+
+
+class java::io::LineNumberReader : public ::java::io::BufferedReader
+{
+
+public:
+ LineNumberReader(::java::io::Reader *);
+ LineNumberReader(::java::io::Reader *, jint);
+ virtual jint getLineNumber();
+ virtual void setLineNumber(jint);
+ virtual void mark(jint);
+ virtual void reset();
+private:
+ jint fill();
+public:
+ virtual jint read();
+ virtual jint read(JArray< jchar > *, jint, jint);
+private:
+ void skipRedundantLF();
+public:
+ virtual ::java::lang::String * readLine();
+ virtual jlong skip(jlong);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::io::BufferedReader)))) lineNumber;
+ jboolean matchedNewLine;
+ jint savedLineNumber;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_LineNumberReader__
diff --git a/gcc-4.8/libjava/java/io/NotActiveException.h b/gcc-4.8/libjava/java/io/NotActiveException.h
new file mode 100644
index 000000000..9020e4e03
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/NotActiveException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_NotActiveException__
+#define __java_io_NotActiveException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::NotActiveException : public ::java::io::ObjectStreamException
+{
+
+public:
+ NotActiveException();
+ NotActiveException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -3893467273049808895LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_NotActiveException__
diff --git a/gcc-4.8/libjava/java/io/NotSerializableException.h b/gcc-4.8/libjava/java/io/NotSerializableException.h
new file mode 100644
index 000000000..55699b406
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/NotSerializableException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_NotSerializableException__
+#define __java_io_NotSerializableException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::NotSerializableException : public ::java::io::ObjectStreamException
+{
+
+public:
+ NotSerializableException();
+ NotSerializableException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 2906642554793891381LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_NotSerializableException__
diff --git a/gcc-4.8/libjava/java/io/ObjectInput.h b/gcc-4.8/libjava/java/io/ObjectInput.h
new file mode 100644
index 000000000..7cfac2060
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInput.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInput__
+#define __java_io_ObjectInput__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::ObjectInput : public ::java::lang::Object
+{
+
+public:
+ virtual jint available() = 0;
+ virtual jint read() = 0;
+ virtual jint read(JArray< jbyte > *) = 0;
+ virtual jint read(JArray< jbyte > *, jint, jint) = 0;
+ virtual ::java::lang::Object * readObject() = 0;
+ virtual jlong skip(jlong) = 0;
+ virtual void close() = 0;
+ virtual jboolean readBoolean() = 0;
+ virtual jbyte readByte() = 0;
+ virtual jint readUnsignedByte() = 0;
+ virtual jchar readChar() = 0;
+ virtual jshort readShort() = 0;
+ virtual jint readUnsignedShort() = 0;
+ virtual jint readInt() = 0;
+ virtual jlong readLong() = 0;
+ virtual jfloat readFloat() = 0;
+ virtual jdouble readDouble() = 0;
+ virtual ::java::lang::String * readLine() = 0;
+ virtual ::java::lang::String * readUTF() = 0;
+ virtual void readFully(JArray< jbyte > *) = 0;
+ virtual void readFully(JArray< jbyte > *, jint, jint) = 0;
+ virtual jint skipBytes(jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_ObjectInput__
diff --git a/gcc-4.8/libjava/java/io/ObjectInputStream$1.h b/gcc-4.8/libjava/java/io/ObjectInputStream$1.h
new file mode 100644
index 000000000..364cab09c
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInputStream$1.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInputStream$1__
+#define __java_io_ObjectInputStream$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectInputStream$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectInputStream$1(::java::io::ObjectInputStream *, ::java::lang::Class *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::io::ObjectInputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ ::java::lang::Class * val$local_constructor_class;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectInputStream$1__
diff --git a/gcc-4.8/libjava/java/io/ObjectInputStream$2.h b/gcc-4.8/libjava/java/io/ObjectInputStream$2.h
new file mode 100644
index 000000000..22124d2c3
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInputStream$2.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInputStream$2__
+#define __java_io_ObjectInputStream$2__
+
+#pragma interface
+
+#include <java/io/ObjectInputStream$GetField.h>
+#include <gcj/array.h>
+
+
+class java::io::ObjectInputStream$2 : public ::java::io::ObjectInputStream$GetField
+{
+
+public: // actually package-private
+ ObjectInputStream$2(::java::io::ObjectInputStream *, ::java::io::ObjectStreamClass *, JArray< jbyte > *, JArray< ::java::lang::Object * > *);
+public:
+ virtual ::java::io::ObjectStreamClass * getObjectStreamClass();
+ virtual jboolean defaulted(::java::lang::String *);
+ virtual jboolean get(::java::lang::String *, jboolean);
+ virtual jchar get(::java::lang::String *, jchar);
+ virtual jbyte get(::java::lang::String *, jbyte);
+ virtual jshort get(::java::lang::String *, jshort);
+ virtual jint get(::java::lang::String *, jint);
+ virtual jlong get(::java::lang::String *, jlong);
+ virtual jfloat get(::java::lang::String *, jfloat);
+ virtual jdouble get(::java::lang::String *, jdouble);
+ virtual ::java::lang::Object * get(::java::lang::String *, ::java::lang::Object *);
+private:
+ ::java::io::ObjectStreamField * getField(::java::lang::String *, ::java::lang::Class *);
+public: // actually package-private
+ ::java::io::ObjectInputStream * __attribute__((aligned(__alignof__( ::java::io::ObjectInputStream$GetField)))) this$0;
+private:
+ ::java::io::ObjectStreamClass * val$clazz;
+ JArray< jbyte > * val$prim_field_data;
+ JArray< ::java::lang::Object * > * val$objs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectInputStream$2__
diff --git a/gcc-4.8/libjava/java/io/ObjectInputStream$GetField.h b/gcc-4.8/libjava/java/io/ObjectInputStream$GetField.h
new file mode 100644
index 000000000..d61509c4a
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInputStream$GetField.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInputStream$GetField__
+#define __java_io_ObjectInputStream$GetField__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectInputStream$GetField : public ::java::lang::Object
+{
+
+public:
+ ObjectInputStream$GetField();
+ virtual ::java::io::ObjectStreamClass * getObjectStreamClass() = 0;
+ virtual jboolean defaulted(::java::lang::String *) = 0;
+ virtual jboolean get(::java::lang::String *, jboolean) = 0;
+ virtual jchar get(::java::lang::String *, jchar) = 0;
+ virtual jbyte get(::java::lang::String *, jbyte) = 0;
+ virtual jshort get(::java::lang::String *, jshort) = 0;
+ virtual jint get(::java::lang::String *, jint) = 0;
+ virtual jlong get(::java::lang::String *, jlong) = 0;
+ virtual jfloat get(::java::lang::String *, jfloat) = 0;
+ virtual jdouble get(::java::lang::String *, jdouble) = 0;
+ virtual ::java::lang::Object * get(::java::lang::String *, ::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectInputStream$GetField__
diff --git a/gcc-4.8/libjava/java/io/ObjectInputStream$ValidatorAndPriority.h b/gcc-4.8/libjava/java/io/ObjectInputStream$ValidatorAndPriority.h
new file mode 100644
index 000000000..02e6ae623
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInputStream$ValidatorAndPriority.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInputStream$ValidatorAndPriority__
+#define __java_io_ObjectInputStream$ValidatorAndPriority__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectInputStream$ValidatorAndPriority : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectInputStream$ValidatorAndPriority(::java::io::ObjectInputValidation *, jint);
+public:
+ jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) priority;
+ ::java::io::ObjectInputValidation * validator;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectInputStream$ValidatorAndPriority__
diff --git a/gcc-4.8/libjava/java/io/ObjectInputStream.h b/gcc-4.8/libjava/java/io/ObjectInputStream.h
new file mode 100644
index 000000000..ab7c47d2b
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInputStream.h
@@ -0,0 +1,106 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInputStream__
+#define __java_io_ObjectInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::ObjectInputStream : public ::java::io::InputStream
+{
+
+public:
+ ObjectInputStream(::java::io::InputStream *);
+ virtual ::java::lang::Object * readObject();
+ virtual ::java::lang::Object * readUnshared();
+private:
+ ::java::lang::Object * readObject(jboolean);
+ ::java::lang::Object * parseContent(jbyte, jboolean);
+ void checkTypeConsistency(::java::lang::String *, JArray< ::java::io::ObjectStreamField * > *, JArray< ::java::io::ObjectStreamField * > *);
+public: // actually protected
+ virtual ::java::io::ObjectStreamClass * readClassDescriptor();
+public:
+ virtual void defaultReadObject();
+ virtual void registerValidation(::java::io::ObjectInputValidation *, jint);
+public: // actually protected
+ virtual ::java::lang::Class * resolveClass(::java::io::ObjectStreamClass *);
+private:
+ ::java::lang::ClassLoader * currentLoader();
+ ::java::io::ObjectStreamClass * lookupClass(::java::lang::Class *);
+ JArray< ::java::io::ObjectStreamClass * > * hierarchy(::java::lang::Class *);
+public: // actually protected
+ virtual ::java::lang::Object * resolveObject(::java::lang::Object *);
+ virtual ::java::lang::Class * resolveProxyClass(JArray< ::java::lang::String * > *);
+ virtual jboolean enableResolveObject(jboolean);
+ virtual void readStreamHeader();
+public:
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jint available();
+ virtual void close();
+ virtual jboolean readBoolean();
+ virtual jbyte readByte();
+ virtual jint readUnsignedByte();
+ virtual jshort readShort();
+ virtual jint readUnsignedShort();
+ virtual jchar readChar();
+ virtual jint readInt();
+ virtual jlong readLong();
+ virtual jfloat readFloat();
+ virtual jdouble readDouble();
+ virtual void readFully(JArray< jbyte > *);
+ virtual void readFully(JArray< jbyte > *, jint, jint);
+ virtual jint skipBytes(jint);
+ virtual ::java::lang::String * readLine();
+ virtual ::java::lang::String * readUTF();
+ virtual ::java::io::ObjectInputStream$GetField * readFields();
+public: // actually protected
+ ObjectInputStream();
+ virtual ::java::lang::Object * readObjectOverride();
+private:
+ jint assignNewHandle(::java::lang::Object *, jboolean);
+ void rememberHandle(::java::lang::Object *, jboolean, jint);
+ ::java::lang::Object * lookupHandle(jint);
+ ::java::lang::Object * processResolution(::java::io::ObjectStreamClass *, ::java::lang::Object *, jint, jboolean);
+ void clearHandles();
+ void readNextBlock();
+ void readNextBlock(jbyte);
+ void readArrayElements(::java::lang::Object *, ::java::lang::Class *);
+ void readFields(::java::lang::Object *, ::java::io::ObjectStreamClass *);
+ jboolean setBlockDataMode(jboolean);
+ ::java::lang::Object * newObject(::java::lang::Class *, ::java::lang::reflect::Constructor *);
+ void invokeValidators();
+ void callReadMethod(::java::lang::reflect::Method *, ::java::lang::Class *, ::java::lang::Object *);
+ void dumpElement(::java::lang::String *);
+ void dumpElementln(::java::lang::String *);
+ void dumpElementln(::java::lang::String *, ::java::lang::Object *);
+ static const jint BUFFER_SIZE = 1024;
+ ::java::io::DataInputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) realInputStream;
+ ::java::io::DataInputStream * dataInputStream;
+ ::java::io::DataInputStream * blockDataInput;
+ jint blockDataPosition;
+ jint blockDataBytes;
+ JArray< jbyte > * blockData;
+ jboolean useSubclassMethod;
+ jint nextOID;
+ jboolean resolveEnabled;
+ ::java::util::Map * handles;
+ ::java::lang::Object * currentObject;
+ ::java::io::ObjectStreamClass * currentObjectStreamClass;
+ ::java::util::TreeSet * currentObjectValidators;
+ jboolean readDataFromBlock;
+ jboolean fieldsAlreadyRead;
+ ::java::util::Hashtable * classLookupTable;
+ ::java::io::ObjectInputStream$GetField * prereadFields;
+ static jboolean dump;
+ jint depth;
+ static const jboolean DEBUG = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectInputStream__
diff --git a/gcc-4.8/libjava/java/io/ObjectInputValidation.h b/gcc-4.8/libjava/java/io/ObjectInputValidation.h
new file mode 100644
index 000000000..6b0df7dfc
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectInputValidation.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectInputValidation__
+#define __java_io_ObjectInputValidation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectInputValidation : public ::java::lang::Object
+{
+
+public:
+ virtual void validateObject() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_ObjectInputValidation__
diff --git a/gcc-4.8/libjava/java/io/ObjectOutput.h b/gcc-4.8/libjava/java/io/ObjectOutput.h
new file mode 100644
index 000000000..ec45c0193
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectOutput.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectOutput__
+#define __java_io_ObjectOutput__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::ObjectOutput : public ::java::lang::Object
+{
+
+public:
+ virtual void write(jint) = 0;
+ virtual void write(JArray< jbyte > *) = 0;
+ virtual void write(JArray< jbyte > *, jint, jint) = 0;
+ virtual void writeObject(::java::lang::Object *) = 0;
+ virtual void flush() = 0;
+ virtual void close() = 0;
+ virtual void writeBoolean(jboolean) = 0;
+ virtual void writeByte(jint) = 0;
+ virtual void writeChar(jint) = 0;
+ virtual void writeShort(jint) = 0;
+ virtual void writeInt(jint) = 0;
+ virtual void writeLong(jlong) = 0;
+ virtual void writeFloat(jfloat) = 0;
+ virtual void writeDouble(jdouble) = 0;
+ virtual void writeBytes(::java::lang::String *) = 0;
+ virtual void writeChars(::java::lang::String *) = 0;
+ virtual void writeUTF(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_ObjectOutput__
diff --git a/gcc-4.8/libjava/java/io/ObjectOutputStream$1.h b/gcc-4.8/libjava/java/io/ObjectOutputStream$1.h
new file mode 100644
index 000000000..6c17fe723
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectOutputStream$1.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectOutputStream$1__
+#define __java_io_ObjectOutputStream$1__
+
+#pragma interface
+
+#include <java/io/ObjectOutputStream$PutField.h>
+#include <gcj/array.h>
+
+
+class java::io::ObjectOutputStream$1 : public ::java::io::ObjectOutputStream$PutField
+{
+
+public: // actually package-private
+ ObjectOutputStream$1(::java::io::ObjectOutputStream *);
+private:
+ ::java::io::ObjectStreamField * getField(::java::lang::String *);
+public:
+ virtual void put(::java::lang::String *, jboolean);
+ virtual void put(::java::lang::String *, jbyte);
+ virtual void put(::java::lang::String *, jchar);
+ virtual void put(::java::lang::String *, jdouble);
+ virtual void put(::java::lang::String *, jfloat);
+ virtual void put(::java::lang::String *, jint);
+ virtual void put(::java::lang::String *, jlong);
+ virtual void put(::java::lang::String *, jshort);
+ virtual void put(::java::lang::String *, ::java::lang::Object *);
+ virtual void write(::java::io::ObjectOutput *);
+private:
+ void checkType(::java::io::ObjectStreamField *, jchar);
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::ObjectOutputStream$PutField)))) prim_field_data;
+ JArray< ::java::lang::Object * > * objs;
+public: // actually package-private
+ ::java::io::ObjectOutputStream * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectOutputStream$1__
diff --git a/gcc-4.8/libjava/java/io/ObjectOutputStream$2.h b/gcc-4.8/libjava/java/io/ObjectOutputStream$2.h
new file mode 100644
index 000000000..1ddf1beff
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectOutputStream$2.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectOutputStream$2__
+#define __java_io_ObjectOutputStream$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectOutputStream$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectOutputStream$2(::java::lang::Class *);
+public:
+ virtual ::java::lang::Boolean * ObjectOutputStream$2$run();
+ virtual ::java::lang::Object * run();
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$clazz;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectOutputStream$2__
diff --git a/gcc-4.8/libjava/java/io/ObjectOutputStream$PutField.h b/gcc-4.8/libjava/java/io/ObjectOutputStream$PutField.h
new file mode 100644
index 000000000..790bb0e09
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectOutputStream$PutField.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectOutputStream$PutField__
+#define __java_io_ObjectOutputStream$PutField__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectOutputStream$PutField : public ::java::lang::Object
+{
+
+public:
+ ObjectOutputStream$PutField();
+ virtual void put(::java::lang::String *, jboolean) = 0;
+ virtual void put(::java::lang::String *, jbyte) = 0;
+ virtual void put(::java::lang::String *, jchar) = 0;
+ virtual void put(::java::lang::String *, jdouble) = 0;
+ virtual void put(::java::lang::String *, jfloat) = 0;
+ virtual void put(::java::lang::String *, jint) = 0;
+ virtual void put(::java::lang::String *, jlong) = 0;
+ virtual void put(::java::lang::String *, jshort) = 0;
+ virtual void put(::java::lang::String *, ::java::lang::Object *) = 0;
+ virtual void write(::java::io::ObjectOutput *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectOutputStream$PutField__
diff --git a/gcc-4.8/libjava/java/io/ObjectOutputStream.h b/gcc-4.8/libjava/java/io/ObjectOutputStream.h
new file mode 100644
index 000000000..d38f1b28f
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectOutputStream.h
@@ -0,0 +1,127 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectOutputStream__
+#define __java_io_ObjectOutputStream__
+
+#pragma interface
+
+#include <java/io/OutputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace io
+ {
+ class ObjectIdentityMap2Int;
+ }
+ namespace security
+ {
+ namespace action
+ {
+ class SetAccessibleAction;
+ }
+ }
+ }
+ }
+}
+
+class java::io::ObjectOutputStream : public ::java::io::OutputStream
+{
+
+public:
+ ObjectOutputStream(::java::io::OutputStream *);
+ virtual void writeObject(::java::lang::Object *);
+ virtual void writeUnshared(::java::lang::Object *);
+private:
+ void writeObject(::java::lang::Object *, jboolean);
+public: // actually protected
+ virtual void writeClassDescriptor(::java::io::ObjectStreamClass *);
+public:
+ virtual void defaultWriteObject();
+private:
+ void markFieldsWritten();
+public:
+ virtual void reset();
+private:
+ void reset(jboolean);
+public:
+ virtual void useProtocolVersion(jint);
+public: // actually protected
+ virtual void annotateClass(::java::lang::Class *);
+ virtual void annotateProxyClass(::java::lang::Class *);
+ virtual ::java::lang::Object * replaceObject(::java::lang::Object *);
+ virtual jboolean enableReplaceObject(jboolean);
+ virtual void writeStreamHeader();
+ ObjectOutputStream();
+ virtual void writeObjectOverride(::java::lang::Object *);
+public:
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void flush();
+public: // actually protected
+ virtual void drain();
+public:
+ virtual void close();
+ virtual void writeBoolean(jboolean);
+ virtual void writeByte(jint);
+ virtual void writeShort(jint);
+ virtual void writeChar(jint);
+ virtual void writeInt(jint);
+ virtual void writeLong(jlong);
+ virtual void writeFloat(jfloat);
+ virtual void writeDouble(jdouble);
+ virtual void writeBytes(::java::lang::String *);
+ virtual void writeChars(::java::lang::String *);
+ virtual void writeUTF(::java::lang::String *);
+ virtual ::java::io::ObjectOutputStream$PutField * putFields();
+ virtual void writeFields();
+private:
+ void writeBlockDataHeader(jint);
+ jint findHandle(::java::lang::Object *);
+ jint assignNewHandle(::java::lang::Object *);
+ void clearHandles();
+ void writeArraySizeAndElements(::java::lang::Object *, ::java::lang::Class *);
+ void writeFields(::java::lang::Object *, ::java::io::ObjectStreamClass *);
+ void writeFields(::java::lang::Object *, JArray< ::java::io::ObjectStreamField * > *);
+public: // actually package-private
+ virtual jboolean setBlockDataMode(jboolean);
+private:
+ void callWriteMethod(::java::lang::Object *, ::java::io::ObjectStreamClass *);
+ void dumpElementln(::java::lang::String *, ::java::lang::Object *);
+ void dumpElementln(::java::lang::String *);
+ static jboolean overridesMethods(::java::lang::Class *);
+ static const jint BUFFER_SIZE = 1024;
+ static jint defaultProtocolVersion;
+ ::java::io::DataOutputStream * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) dataOutput;
+ jboolean writeDataAsBlocks;
+ ::java::io::DataOutputStream * realOutput;
+ ::java::io::DataOutputStream * blockDataOutput;
+ JArray< jbyte > * blockData;
+ jint blockDataCount;
+ ::java::lang::Object * currentObject;
+public: // actually package-private
+ ::java::io::ObjectStreamClass * currentObjectStreamClass;
+private:
+ ::java::io::ObjectOutputStream$PutField * currentPutField;
+ jboolean fieldsAlreadyWritten;
+ jboolean replacementEnabled;
+ jboolean isSerializing;
+ jint nextOID;
+ ::gnu::java::io::ObjectIdentityMap2Int * OIDLookupTable;
+ jint protocolVersion;
+ jboolean useSubclassMethod;
+ ::gnu::java::security::action::SetAccessibleAction * setAccessible;
+ jint depth;
+ jboolean dump;
+ static const jboolean DEBUG = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectOutputStream__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamClass$1.h b/gcc-4.8/libjava/java/io/ObjectStreamClass$1.h
new file mode 100644
index 000000000..e5c266a3b
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamClass$1.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamClass$1__
+#define __java_io_ObjectStreamClass$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamClass$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectStreamClass$1(::java::io::ObjectStreamClass *);
+public:
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+public: // actually package-private
+ ::java::io::ObjectStreamClass * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamClass$1__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamClass$2.h b/gcc-4.8/libjava/java/io/ObjectStreamClass$2.h
new file mode 100644
index 000000000..16d0499f0
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamClass$2.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamClass$2__
+#define __java_io_ObjectStreamClass$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamClass$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectStreamClass$2(::java::io::ObjectStreamClass *, ::java::lang::reflect::Constructor *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::io::ObjectStreamClass * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ ::java::lang::reflect::Constructor * val$c;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamClass$2__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamClass$InterfaceComparator.h b/gcc-4.8/libjava/java/io/ObjectStreamClass$InterfaceComparator.h
new file mode 100644
index 000000000..7faddc7d7
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamClass$InterfaceComparator.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamClass$InterfaceComparator__
+#define __java_io_ObjectStreamClass$InterfaceComparator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamClass$InterfaceComparator : public ::java::lang::Object
+{
+
+ ObjectStreamClass$InterfaceComparator();
+public:
+ jint compare(::java::lang::Object *, ::java::lang::Object *);
+public: // actually package-private
+ ObjectStreamClass$InterfaceComparator(::java::io::ObjectStreamClass$InterfaceComparator *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamClass$InterfaceComparator__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamClass$MemberComparator.h b/gcc-4.8/libjava/java/io/ObjectStreamClass$MemberComparator.h
new file mode 100644
index 000000000..81a8ca486
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamClass$MemberComparator.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamClass$MemberComparator__
+#define __java_io_ObjectStreamClass$MemberComparator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamClass$MemberComparator : public ::java::lang::Object
+{
+
+ ObjectStreamClass$MemberComparator();
+public:
+ jint compare(::java::lang::Object *, ::java::lang::Object *);
+public: // actually package-private
+ ObjectStreamClass$MemberComparator(::java::io::ObjectStreamClass$MemberComparator *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamClass$MemberComparator__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamClass.h b/gcc-4.8/libjava/java/io/ObjectStreamClass.h
new file mode 100644
index 000000000..34514534b
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamClass.h
@@ -0,0 +1,117 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamClass__
+#define __java_io_ObjectStreamClass__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace io
+ {
+ class NullOutputStream;
+ }
+ }
+ }
+}
+
+class java::io::ObjectStreamClass : public ::java::lang::Object
+{
+
+public:
+ static ::java::io::ObjectStreamClass * lookup(::java::lang::Class *);
+public: // actually package-private
+ static ::java::io::ObjectStreamClass * lookupForClassObject(::java::lang::Class *);
+public:
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::Class * forClass();
+ virtual jlong getSerialVersionUID();
+ virtual JArray< ::java::io::ObjectStreamField * > * getFields();
+ virtual ::java::io::ObjectStreamField * getField(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ virtual jboolean hasWriteMethod();
+ virtual jboolean isSerializable();
+ virtual jboolean isExternalizable();
+ virtual jboolean isEnum();
+ virtual ::java::io::ObjectStreamClass * getSuper();
+ virtual JArray< ::java::io::ObjectStreamClass * > * hierarchy();
+ virtual jint getFlags();
+ ObjectStreamClass(::java::lang::String *, jlong, jbyte, JArray< ::java::io::ObjectStreamField * > *);
+ virtual void setClass(::java::lang::Class *, ::java::io::ObjectStreamClass *);
+ virtual void setSuperclass(::java::io::ObjectStreamClass *);
+ virtual void calculateOffsets();
+private:
+ ::java::lang::reflect::Method * findMethod(JArray< ::java::lang::reflect::Method * > *, ::java::lang::String *, JArray< ::java::lang::Class * > *, ::java::lang::Class *, jboolean);
+ static jboolean inSamePackage(::java::lang::Class *, ::java::lang::Class *);
+ static ::java::lang::reflect::Method * findAccessibleMethod(::java::lang::String *, ::java::lang::Class *);
+ static jboolean loadedByBootOrApplicationClassLoader(::java::lang::Class *);
+ void cacheMethods();
+ ObjectStreamClass(::java::lang::Class *);
+ void setFlags(::java::lang::Class *);
+public: // actually package-private
+ virtual void ensureFieldsSet(::java::lang::Class *);
+private:
+ void setFields(::java::lang::Class *);
+ jlong getClassUID(::java::lang::Class *);
+public: // actually package-private
+ virtual jlong getClassUIDFromField(::java::lang::Class *);
+ virtual jlong calculateClassUID(::java::lang::Class *);
+private:
+ JArray< ::java::io::ObjectStreamField * > * getSerialPersistentFields(::java::lang::Class *);
+public: // actually package-private
+ virtual ::java::io::Externalizable * newInstance();
+ static JArray< ::java::io::ObjectStreamField * > * INVALID_FIELDS;
+private:
+ JArray< ::java::io::ObjectStreamClass * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hierarchy__;
+public: // actually package-private
+ static JArray< ::java::lang::Class * > * noArgs;
+ static ::java::util::Hashtable * methodCache;
+ static JArray< ::java::lang::Class * > * readObjectSignature;
+ static JArray< ::java::lang::Class * > * writeObjectSignature;
+ static ::java::util::Hashtable * uidCache;
+public:
+ static JArray< ::java::io::ObjectStreamField * > * NO_FIELDS;
+private:
+ static ::java::util::Hashtable * classLookupTable;
+ static ::gnu::java::io::NullOutputStream * nullOutputStream;
+ static ::java::util::Comparator * interfaceComparator;
+ static ::java::util::Comparator * memberComparator;
+ static JArray< ::java::lang::Class * > * writeMethodArgTypes;
+ ::java::io::ObjectStreamClass * superClass;
+ ::java::lang::Class * clazz;
+ ::java::lang::String * name;
+ jlong uid;
+ jbyte flags;
+public: // actually package-private
+ JArray< ::java::io::ObjectStreamField * > * fields;
+ jint primFieldSize;
+ jint objectFieldCount;
+ ::java::lang::reflect::Method * readObjectMethod;
+ ::java::lang::reflect::Method * readResolveMethod;
+ ::java::lang::reflect::Method * writeReplaceMethod;
+ ::java::lang::reflect::Method * writeObjectMethod;
+ jboolean realClassIsSerializable;
+ jboolean realClassIsExternalizable;
+ JArray< ::java::io::ObjectStreamField * > * fieldMapping;
+ ::java::lang::reflect::Constructor * firstNonSerializableParentConstructor;
+private:
+ ::java::lang::reflect::Constructor * constructor;
+public: // actually package-private
+ jboolean isProxyClass;
+private:
+ jboolean fieldsSet;
+ static const jlong serialVersionUID = -6120832682080437368LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamClass__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamConstants.h b/gcc-4.8/libjava/java/io/ObjectStreamConstants.h
new file mode 100644
index 000000000..f4e950873
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamConstants.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamConstants__
+#define __java_io_ObjectStreamConstants__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamConstants : public ::java::lang::Object
+{
+
+public:
+ static const jint PROTOCOL_VERSION_1 = 1;
+ static const jint PROTOCOL_VERSION_2 = 2;
+ static const jshort STREAM_MAGIC = -21267;
+ static const jshort STREAM_VERSION = 5;
+ static const jbyte TC_NULL = 112;
+ static const jbyte TC_REFERENCE = 113;
+ static const jbyte TC_CLASSDESC = 114;
+ static const jbyte TC_OBJECT = 115;
+ static const jbyte TC_STRING = 116;
+ static const jbyte TC_ARRAY = 117;
+ static const jbyte TC_CLASS = 118;
+ static const jbyte TC_BLOCKDATA = 119;
+ static const jbyte TC_ENDBLOCKDATA = 120;
+ static const jbyte TC_RESET = 121;
+ static const jbyte TC_BLOCKDATALONG = 122;
+ static const jbyte TC_EXCEPTION = 123;
+ static const jbyte TC_LONGSTRING = 124;
+ static const jbyte TC_PROXYCLASSDESC = 125;
+ static const jbyte TC_ENUM = 126;
+ static const jbyte TC_BASE = 112;
+ static const jbyte TC_MAX = 126;
+ static const jint baseWireHandle = 8257536;
+ static const jbyte SC_WRITE_METHOD = 1;
+ static const jbyte SC_SERIALIZABLE = 2;
+ static const jbyte SC_EXTERNALIZABLE = 4;
+ static const jbyte SC_BLOCK_DATA = 8;
+ static const jbyte SC_ENUM = 16;
+ static ::java::io::SerializablePermission * SUBSTITUTION_PERMISSION;
+ static ::java::io::SerializablePermission * SUBCLASS_IMPLEMENTATION_PERMISSION;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_ObjectStreamConstants__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamException.h b/gcc-4.8/libjava/java/io/ObjectStreamException.h
new file mode 100644
index 000000000..4ce583351
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamException__
+#define __java_io_ObjectStreamException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::ObjectStreamException : public ::java::io::IOException
+{
+
+public: // actually protected
+ ObjectStreamException();
+ ObjectStreamException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7260898174833392607LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamException__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamField$1.h b/gcc-4.8/libjava/java/io/ObjectStreamField$1.h
new file mode 100644
index 000000000..e5e897a0a
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamField$1.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamField$1__
+#define __java_io_ObjectStreamField$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamField$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectStreamField$1(::java::io::ObjectStreamField *, ::java::lang::reflect::Field *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::io::ObjectStreamField * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ ::java::lang::reflect::Field * val$f;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamField$1__
diff --git a/gcc-4.8/libjava/java/io/ObjectStreamField.h b/gcc-4.8/libjava/java/io/ObjectStreamField.h
new file mode 100644
index 000000000..5b3116fc1
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/ObjectStreamField.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_ObjectStreamField__
+#define __java_io_ObjectStreamField__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::ObjectStreamField : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ObjectStreamField(::java::lang::reflect::Field *);
+public:
+ ObjectStreamField(::java::lang::String *, ::java::lang::Class *);
+ ObjectStreamField(::java::lang::String *, ::java::lang::Class *, jboolean);
+public: // actually package-private
+ ObjectStreamField(::java::lang::String *, ::java::lang::String *);
+ virtual void resolveType(::java::lang::ClassLoader *);
+public:
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::Class * getType();
+ virtual jchar getTypeCode();
+ virtual ::java::lang::String * getTypeString();
+ virtual jint getOffset();
+public: // actually protected
+ virtual void setOffset(jint);
+public:
+ virtual jboolean isUnshared();
+ virtual jboolean isPrimitive();
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ virtual void setPersistent(jboolean);
+ virtual jboolean isPersistent();
+ virtual void setToSet(jboolean);
+ virtual jboolean isToSet();
+ virtual void lookupField(::java::lang::Class *);
+ virtual void checkFieldType();
+public:
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ virtual void setBooleanField(::java::lang::Object *, jboolean);
+ virtual void setByteField(::java::lang::Object *, jbyte);
+ virtual void setCharField(::java::lang::Object *, jchar);
+ virtual void setShortField(::java::lang::Object *, jshort);
+ virtual void setIntField(::java::lang::Object *, jint);
+ virtual void setLongField(::java::lang::Object *, jlong);
+ virtual void setFloatField(::java::lang::Object *, jfloat);
+ virtual void setDoubleField(::java::lang::Object *, jdouble);
+ virtual void setObjectField(::java::lang::Object *, ::java::lang::Object *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::lang::Class * type;
+ ::java::lang::String * typename$;
+ jint offset;
+ jboolean unshared;
+ jboolean persistent;
+ jboolean toset;
+public: // actually package-private
+ ::java::lang::reflect::Field * field;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_ObjectStreamField__
diff --git a/gcc-4.8/libjava/java/io/OptionalDataException.h b/gcc-4.8/libjava/java/io/OptionalDataException.h
new file mode 100644
index 000000000..b12a83909
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/OptionalDataException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_OptionalDataException__
+#define __java_io_OptionalDataException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::OptionalDataException : public ::java::io::ObjectStreamException
+{
+
+public: // actually package-private
+ OptionalDataException(jboolean, jint);
+private:
+ static const jlong serialVersionUID = -8011121865681257820LL;
+public:
+ jboolean __attribute__((aligned(__alignof__( ::java::io::ObjectStreamException)))) eof;
+ jint length;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_OptionalDataException__
diff --git a/gcc-4.8/libjava/java/io/OutputStream.h b/gcc-4.8/libjava/java/io/OutputStream.h
new file mode 100644
index 000000000..28f158511
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/OutputStream.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_OutputStream__
+#define __java_io_OutputStream__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::OutputStream : public ::java::lang::Object
+{
+
+public:
+ OutputStream();
+ virtual void write(jint) = 0;
+ virtual void write(JArray< jbyte > *);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void flush();
+ virtual void close();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_OutputStream__
diff --git a/gcc-4.8/libjava/java/io/OutputStreamWriter.h b/gcc-4.8/libjava/java/io/OutputStreamWriter.h
new file mode 100644
index 000000000..8ad6c8e69
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/OutputStreamWriter.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_OutputStreamWriter__
+#define __java_io_OutputStreamWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ namespace convert
+ {
+ class UnicodeToBytes;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class Charset;
+ class CharsetEncoder;
+ }
+ }
+ }
+}
+
+class java::io::OutputStreamWriter : public ::java::io::Writer
+{
+
+ OutputStreamWriter(::java::io::OutputStream *, ::gnu::gcj::convert::UnicodeToBytes *);
+public:
+ OutputStreamWriter(::java::io::OutputStream *, ::java::lang::String *);
+ OutputStreamWriter(::java::io::OutputStream *);
+ OutputStreamWriter(::java::io::OutputStream *, ::java::nio::charset::Charset *);
+ OutputStreamWriter(::java::io::OutputStream *, ::java::nio::charset::CharsetEncoder *);
+ virtual void close();
+ virtual ::java::lang::String * getEncoding();
+ virtual void flush();
+ virtual void write(JArray< jchar > *, jint, jint);
+private:
+ void writeChars(JArray< jchar > *, jint, jint);
+public:
+ virtual void write(::java::lang::String *, jint, jint);
+ virtual void write(jint);
+public: // actually package-private
+ ::java::io::BufferedOutputStream * __attribute__((aligned(__alignof__( ::java::io::Writer)))) out;
+ ::gnu::gcj::convert::UnicodeToBytes * converter;
+private:
+ JArray< jchar > * work;
+ jint wcount;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_OutputStreamWriter__
diff --git a/gcc-4.8/libjava/java/io/OutputStreamWriter.java b/gcc-4.8/libjava/java/io/OutputStreamWriter.java
new file mode 100644
index 000000000..aac1684c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/OutputStreamWriter.java
@@ -0,0 +1,347 @@
+/* OutputStreamWriter.java -- Writer that converts chars to bytes
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.gcj.convert.UnicodeToBytes;
+import gnu.gcj.convert.CharsetToBytesAdaptor;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetEncoder;
+
+/**
+ * This class writes characters to an output stream that is byte oriented
+ * It converts the chars that are written to bytes using an encoding layer,
+ * which is specific to a particular encoding standard. The desired
+ * encoding can either be specified by name, or if no encoding is specified,
+ * the system default encoding will be used. The system default encoding
+ * name is determined from the system property <code>file.encoding</code>.
+ * The only encodings that are guaranteed to be available are "8859_1"
+ * (the Latin-1 character set) and "UTF8". Unfortunately, Java does not
+ * provide a mechanism for listing the encodings that are supported in
+ * a given implementation.
+ * <p>
+ * Here is a list of standard encoding names that may be available:
+ * <p>
+ * <ul>
+ * <li>8859_1 (ISO-8859-1/Latin-1)
+ * <li>8859_2 (ISO-8859-2/Latin-2)
+ * <li>8859_3 (ISO-8859-3/Latin-3)
+ * <li>8859_4 (ISO-8859-4/Latin-4)
+ * <li>8859_5 (ISO-8859-5/Latin-5)
+ * <li>8859_6 (ISO-8859-6/Latin-6)
+ * <li>8859_7 (ISO-8859-7/Latin-7)
+ * <li>8859_8 (ISO-8859-8/Latin-8)
+ * <li>8859_9 (ISO-8859-9/Latin-9)
+ * <li>ASCII (7-bit ASCII)
+ * <li>UTF8 (UCS Transformation Format-8)
+ * <li>More Later
+ * </ul>
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Per Bothner (bothner@cygnus.com)
+ * @date April 17, 1998.
+ */
+public class OutputStreamWriter extends Writer
+{
+ BufferedOutputStream out;
+
+ /**
+ * This is the byte-character encoder class that does the writing and
+ * translation of characters to bytes before writing to the underlying
+ * class.
+ */
+ UnicodeToBytes converter;
+
+ /* Temporary buffer. */
+ private char[] work;
+ private int wcount;
+
+ private OutputStreamWriter(OutputStream out, UnicodeToBytes encoder)
+ {
+ this.out = out instanceof BufferedOutputStream
+ ? (BufferedOutputStream) out
+ : new BufferedOutputStream(out, 250);
+ /* Don't need to call super(out) here as long as the lock gets set. */
+ this.lock = out;
+ this.converter = encoder;
+ }
+
+ /**
+ * This method initializes a new instance of <code>OutputStreamWriter</code>
+ * to write to the specified stream using a caller supplied character
+ * encoding scheme. Note that due to a deficiency in the Java language
+ * design, there is no way to determine which encodings are supported.
+ *
+ * @param out The <code>OutputStream</code> to write to
+ * @param encoding_scheme The name of the encoding scheme to use for
+ * character to byte translation
+ *
+ * @exception UnsupportedEncodingException If the named encoding is
+ * not available.
+ */
+ public OutputStreamWriter (OutputStream out, String encoding_scheme)
+ throws UnsupportedEncodingException
+ {
+ this(out, UnicodeToBytes.getEncoder(encoding_scheme));
+ }
+
+ /**
+ * This method initializes a new instance of <code>OutputStreamWriter</code>
+ * to write to the specified stream using the default encoding.
+ *
+ * @param out The <code>OutputStream</code> to write to
+ */
+ public OutputStreamWriter (OutputStream out)
+ {
+ this(out, UnicodeToBytes.getDefaultEncoder());
+ }
+
+ /**
+ * This method initializes a new instance of <code>OutputStreamWriter</code>
+ * to write to the specified stream using a given <code>Charset</code>.
+ *
+ * @param out The <code>OutputStream</code> to write to
+ * @param cs The <code>Charset</code> of the encoding to use
+ */
+ public OutputStreamWriter(OutputStream out, Charset cs)
+ {
+ this(out, new CharsetToBytesAdaptor(cs));
+ }
+
+ /**
+ * This method initializes a new instance of <code>OutputStreamWriter</code>
+ * to write to the specified stream using a given
+ * <code>CharsetEncoder</code>.
+ *
+ * @param out The <code>OutputStream</code> to write to
+ * @param enc The <code>CharsetEncoder</code> to encode the output with
+ */
+ public OutputStreamWriter(OutputStream out, CharsetEncoder enc)
+ {
+ this(out, new CharsetToBytesAdaptor(enc));
+ }
+
+ /**
+ * This method closes this stream, and the underlying
+ * <code>OutputStream</code>
+ *
+ * @exception IOException If an error occurs
+ */
+ public void close () throws IOException
+ {
+ synchronized (lock)
+ {
+ if (out != null)
+ {
+ converter.setFinished();
+ flush();
+ out.close();
+ out = null;
+ }
+ work = null;
+ }
+ }
+
+ /**
+ * This method returns the name of the character encoding scheme currently
+ * in use by this stream. If the stream has been closed, then this method
+ * may return <code>null</code>.
+ *
+ * @return The encoding scheme name
+ */
+ public String getEncoding ()
+ {
+ return out != null ? converter.getName() : null;
+ }
+
+ /**
+ * This method flushes any buffered bytes to the underlying output sink.
+ *
+ * @exception IOException If an error occurs
+ */
+ public void flush () throws IOException
+ {
+ synchronized (lock)
+ {
+ if (out == null)
+ throw new IOException("Stream closed");
+
+ // Always write -- if we are close()ing then we want to make
+ // sure the converter is flushed.
+ if (work == null)
+ work = new char[100];
+ writeChars(work, 0, wcount);
+ wcount = 0;
+
+ out.flush();
+ }
+ }
+
+ /**
+ * This method writes <code>count</code> characters from the specified
+ * array to the output stream starting at position <code>offset</code>
+ * into the array.
+ *
+ * @param buf The array of character to write from
+ * @param offset The offset into the array to start writing chars from
+ * @param count The number of chars to write.
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (char[] buf, int offset, int count) throws IOException
+ {
+ synchronized (lock)
+ {
+ if (out == null)
+ throw new IOException("Stream closed");
+
+ if (wcount > 0)
+ {
+ writeChars(work, 0, wcount);
+ wcount = 0;
+ }
+ writeChars(buf, offset, count);
+ }
+ }
+
+ /*
+ * Writes characters through to the inferior BufferedOutputStream.
+ * Ignores wcount and the work buffer.
+ */
+ private void writeChars(char[] buf, int offset, int count)
+ throws IOException
+ {
+ do
+ {
+ // We must flush if out.count == out.buf.length.
+ // It is probably a good idea to flush if out.buf is almost full.
+ // This test is an approximation for "almost full".
+ if (out.count + count >= out.buf.length)
+ {
+ out.flush();
+ if (out.count != 0)
+ throw new IOException("unable to flush output byte buffer");
+ }
+ converter.setOutput(out.buf, out.count);
+ int converted = converter.write(buf, offset, count);
+ // Must set this before we flush the output stream, because
+ // flushing will reset 'out.count'.
+ out.count = converter.count;
+ // Flush if we cannot make progress.
+ if (converted == 0 && out.count == converter.count)
+ {
+ out.flush();
+ if (out.count != 0)
+ throw new IOException("unable to flush output byte buffer");
+ }
+ offset += converted;
+ count -= converted;
+ }
+ while (count > 0 || converter.havePendingBytes());
+ }
+
+ /**
+ * This method writes <code>count</code> bytes from the specified
+ * <code>String</code> starting at position <code>offset</code> into the
+ * <code>String</code>.
+ *
+ * @param str The <code>String</code> to write chars from
+ * @param offset The position in the <code>String</code> to start
+ * writing chars from
+ * @param count The number of chars to write
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (String str, int offset, int count) throws IOException
+ {
+ synchronized (lock)
+ {
+ if (out == null)
+ throw new IOException("Stream closed");
+
+ if (work == null)
+ work = new char[100];
+ int wlength = work.length;
+ while (count > 0)
+ {
+ int size = count;
+ if (wcount + size > wlength)
+ {
+ if (2*wcount > wlength)
+ {
+ writeChars(work, 0, wcount);
+ wcount = 0;
+ }
+ if (wcount + size > wlength)
+ size = wlength - wcount;
+ }
+ str.getChars(offset, offset+size, work, wcount);
+ offset += size;
+ count -= size;
+ wcount += size;
+ }
+ }
+ }
+
+ /**
+ * This method writes a single character to the output stream.
+ *
+ * @param ch The char to write, passed as an int.
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (int ch) throws IOException
+ {
+ synchronized (lock)
+ {
+ if (out == null)
+ throw new IOException("Stream closed");
+
+ if (work == null)
+ work = new char[100];
+ if (wcount >= work.length)
+ {
+ writeChars(work, 0, wcount);
+ wcount = 0;
+ }
+ work[wcount++] = (char) ch;
+ }
+ }
+
+} // class OutputStreamWriter
+
diff --git a/gcc-4.8/libjava/java/io/PipedInputStream.h b/gcc-4.8/libjava/java/io/PipedInputStream.h
new file mode 100644
index 000000000..4055fa4ca
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PipedInputStream.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PipedInputStream__
+#define __java_io_PipedInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::PipedInputStream : public ::java::io::InputStream
+{
+
+public:
+ PipedInputStream();
+ PipedInputStream(jint);
+ PipedInputStream(::java::io::PipedOutputStream *);
+ PipedInputStream(::java::io::PipedOutputStream *, jint);
+ virtual void connect(::java::io::PipedOutputStream *);
+public: // actually protected
+ virtual void receive(jint);
+public: // actually package-private
+ virtual void receive(JArray< jbyte > *, jint, jint);
+public:
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jint available();
+ virtual void close();
+public: // actually package-private
+ ::java::io::PipedOutputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) source;
+ jboolean closed;
+public: // actually protected
+ static const jint PIPE_SIZE = 1024;
+ JArray< jbyte > * buffer;
+ jint in;
+ jint out;
+private:
+ JArray< jbyte > * read_buf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PipedInputStream__
diff --git a/gcc-4.8/libjava/java/io/PipedOutputStream.h b/gcc-4.8/libjava/java/io/PipedOutputStream.h
new file mode 100644
index 000000000..79e069e40
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PipedOutputStream.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PipedOutputStream__
+#define __java_io_PipedOutputStream__
+
+#pragma interface
+
+#include <java/io/OutputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::PipedOutputStream : public ::java::io::OutputStream
+{
+
+public:
+ PipedOutputStream();
+ PipedOutputStream(::java::io::PipedInputStream *);
+ virtual void connect(::java::io::PipedInputStream *);
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void flush();
+ virtual void close();
+public: // actually package-private
+ ::java::io::PipedInputStream * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) sink;
+ jboolean closed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PipedOutputStream__
diff --git a/gcc-4.8/libjava/java/io/PipedReader.h b/gcc-4.8/libjava/java/io/PipedReader.h
new file mode 100644
index 000000000..1eac2f79e
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PipedReader.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PipedReader__
+#define __java_io_PipedReader__
+
+#pragma interface
+
+#include <java/io/Reader.h>
+#include <gcj/array.h>
+
+
+class java::io::PipedReader : public ::java::io::Reader
+{
+
+public:
+ PipedReader();
+ PipedReader(::java::io::PipedWriter *);
+ virtual void connect(::java::io::PipedWriter *);
+public: // actually package-private
+ virtual void receive(JArray< jchar > *, jint, jint);
+public:
+ virtual jint read();
+ virtual jint read(JArray< jchar > *, jint, jint);
+ virtual jboolean ready();
+ virtual void close();
+public: // actually package-private
+ ::java::io::PipedWriter * __attribute__((aligned(__alignof__( ::java::io::Reader)))) source;
+ jboolean closed;
+ static const jint PIPE_SIZE = 2048;
+ JArray< jchar > * buffer;
+ jint in;
+ jint out;
+ JArray< jchar > * read_buf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PipedReader__
diff --git a/gcc-4.8/libjava/java/io/PipedWriter.h b/gcc-4.8/libjava/java/io/PipedWriter.h
new file mode 100644
index 000000000..d1aac55ae
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PipedWriter.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PipedWriter__
+#define __java_io_PipedWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+
+class java::io::PipedWriter : public ::java::io::Writer
+{
+
+public:
+ PipedWriter();
+ PipedWriter(::java::io::PipedReader *);
+ virtual void connect(::java::io::PipedReader *);
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *, jint, jint);
+ virtual void flush();
+ virtual void close();
+public: // actually package-private
+ ::java::io::PipedReader * __attribute__((aligned(__alignof__( ::java::io::Writer)))) sink;
+ jboolean closed;
+ JArray< jchar > * read_buf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PipedWriter__
diff --git a/gcc-4.8/libjava/java/io/PrintStream.h b/gcc-4.8/libjava/java/io/PrintStream.h
new file mode 100644
index 000000000..6247ba829
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PrintStream.h
@@ -0,0 +1,93 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PrintStream__
+#define __java_io_PrintStream__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ namespace convert
+ {
+ class UnicodeToBytes;
+ }
+ }
+ }
+}
+
+class java::io::PrintStream : public ::java::io::FilterOutputStream
+{
+
+public:
+ PrintStream(::java::io::OutputStream *);
+ PrintStream(::java::io::OutputStream *, jboolean);
+ PrintStream(::java::io::File *);
+ PrintStream(::java::io::File *, ::java::lang::String *);
+ PrintStream(::java::lang::String *);
+ PrintStream(::java::lang::String *, ::java::lang::String *);
+ PrintStream(::java::io::OutputStream *, jboolean, ::java::lang::String *);
+ virtual jboolean checkError();
+public: // actually protected
+ virtual void setError();
+public:
+ virtual void close();
+ virtual void flush();
+private:
+ void print(::java::lang::String *, jboolean);
+ void print(JArray< jchar > *, jint, jint, jboolean);
+ void writeChars(JArray< jchar > *, jint, jint);
+ void writeChars(::java::lang::String *, jint, jint);
+public:
+ virtual void print(jboolean);
+ virtual void print(jint);
+ virtual void print(jlong);
+ virtual void print(jfloat);
+ virtual void print(jdouble);
+ virtual void print(::java::lang::Object *);
+ virtual void print(::java::lang::String *);
+ virtual void print(jchar);
+ virtual void print(JArray< jchar > *);
+ virtual void println();
+ virtual void println(jboolean);
+ virtual void println(jint);
+ virtual void println(jlong);
+ virtual void println(jfloat);
+ virtual void println(jdouble);
+ virtual void println(::java::lang::Object *);
+ virtual void println(::java::lang::String *);
+ virtual void println(jchar);
+ virtual void println(JArray< jchar > *);
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual ::java::io::PrintStream * PrintStream$append(jchar);
+ virtual ::java::io::PrintStream * PrintStream$append(::java::lang::CharSequence *);
+ virtual ::java::io::PrintStream * PrintStream$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::io::PrintStream * printf(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::io::PrintStream * printf(::java::util::Locale *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::io::PrintStream * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::io::PrintStream * format(::java::util::Locale *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+private:
+ static JArray< jchar > * line_separator;
+public: // actually package-private
+ ::gnu::gcj::convert::UnicodeToBytes * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) converter;
+ JArray< jchar > * work;
+ JArray< jbyte > * work_bytes;
+private:
+ jboolean error_occurred;
+ jboolean auto_flush;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PrintStream__
diff --git a/gcc-4.8/libjava/java/io/PrintStream.java b/gcc-4.8/libjava/java/io/PrintStream.java
new file mode 100644
index 000000000..be2861905
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PrintStream.java
@@ -0,0 +1,684 @@
+/* PrintStream.java -- OutputStream for printing output
+ Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import java.util.Formatter;
+import java.util.Locale;
+
+import gnu.gcj.convert.UnicodeToBytes;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * Status: Believed complete and correct to 1.3
+ */
+
+/**
+ * This class prints Java primitive values and object to a stream as
+ * text. None of the methods in this class throw an exception. However,
+ * errors can be detected by calling the <code>checkError()</code> method.
+ * Additionally, this stream can be designated as "autoflush" when
+ * created so that any writes are automatically flushed to the underlying
+ * output sink when the current line is terminated.
+ * <p>
+ * This class converts char's into byte's using the system default encoding.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ */
+public class PrintStream extends FilterOutputStream implements Appendable
+{
+ /* Notice the implementation is quite similar to OutputStreamWriter.
+ * This leads to some minor duplication, because neither inherits
+ * from the other, and we want to maximize performance. */
+
+ // Line separator string.
+ private static final char[] line_separator
+ = System.getProperty("line.separator").toCharArray();
+
+ UnicodeToBytes converter;
+
+ // Work buffer of characters for converter.
+ char[] work = new char[100];
+ // Work buffer of bytes where we temporarily keep converter output.
+ byte[] work_bytes = new byte[100];
+
+ /**
+ * This boolean indicates whether or not an error has ever occurred
+ * on this stream.
+ */
+ private boolean error_occurred = false;
+
+ /**
+ * This is <code>true</code> if auto-flush is enabled,
+ * <code>false</code> otherwise
+ */
+ private boolean auto_flush;
+
+ /**
+ * This method intializes a new <code>PrintStream</code> object to write
+ * to the specified output sink.
+ *
+ * @param out The <code>OutputStream</code> to write to.
+ */
+ public PrintStream (OutputStream out)
+ {
+ this (out, false);
+ }
+
+ /**
+ * This method intializes a new <code>PrintStream</code> object to write
+ * to the specified output sink. This constructor also allows "auto-flush"
+ * functionality to be specified where the stream will be flushed after
+ * every <code>print</code> or <code>println</code> call, when the
+ * <code>write</code> methods with array arguments are called, or when a
+ * single new-line character is written.
+ * <p>
+ *
+ * @param out The <code>OutputStream</code> to write to.
+ * @param auto_flush <code>true</code> to flush the stream after every
+ * line, <code>false</code> otherwise
+ */
+ public PrintStream (OutputStream out, boolean auto_flush)
+ {
+ super (out);
+
+ converter = UnicodeToBytes.getDefaultEncoder();
+ this.auto_flush = auto_flush;
+ }
+
+ /**
+ * This method initializes a new <code>PrintStream</code> object to write
+ * to the specified output File. Doesn't autoflush.
+ *
+ * @param file The <code>File</code> to write to.
+ * @throws FileNotFoundException if an error occurs while opening the file.
+ *
+ * @since 1.5
+ */
+ public PrintStream (File file)
+ throws FileNotFoundException
+ {
+ this (new FileOutputStream(file), false);
+ }
+
+ /**
+ * This method initializes a new <code>PrintStream</code> object to write
+ * to the specified output File. Doesn't autoflush.
+ *
+ * @param file The <code>File</code> to write to.
+ * @param encoding The name of the character encoding to use for this
+ * object.
+ * @throws FileNotFoundException If an error occurs while opening the file.
+ * @throws UnsupportedEncodingException If the charset specified by
+ * <code>encoding</code> is invalid.
+ *
+ * @since 1.5
+ */
+ public PrintStream (File file, String encoding)
+ throws FileNotFoundException,UnsupportedEncodingException
+ {
+ this (new FileOutputStream(file), false, encoding);
+ }
+
+ /**
+ * This method initializes a new <code>PrintStream</code> object to write
+ * to the specified output File. Doesn't autoflush.
+ *
+ * @param fileName The name of the <code>File</code> to write to.
+ * @throws FileNotFoundException if an error occurs while opening the file,
+ *
+ * @since 1.5
+ */
+ public PrintStream (String fileName)
+ throws FileNotFoundException
+ {
+ this (new FileOutputStream(new File(fileName)), false);
+ }
+
+ /**
+ * This method initializes a new <code>PrintStream</code> object to write
+ * to the specified output File. Doesn't autoflush.
+ *
+ * @param fileName The name of the <code>File</code> to write to.
+ * @param encoding The name of the character encoding to use for this
+ * object.
+ * @throws FileNotFoundException if an error occurs while opening the file.
+ * @throws UnsupportedEncodingException If the charset specified by
+ * <code>encoding</code> is invalid.
+ *
+ * @since 1.5
+ */
+ public PrintStream (String fileName, String encoding)
+ throws FileNotFoundException,UnsupportedEncodingException
+ {
+ this (new FileOutputStream(new File(fileName)), false, encoding);
+ }
+
+ /**
+ * This method intializes a new <code>PrintStream</code> object to write
+ * to the specified output sink. This constructor also allows "auto-flush"
+ * functionality to be specified where the stream will be flushed after
+ * every <code>print</code> or <code>println</code> call, when the
+ * <code>write</code> methods with array arguments are called, or when a
+ * single new-line character is written.
+ * <p>
+ *
+ * @param out The <code>OutputStream</code> to write to.
+ * @param auto_flush <code>true</code> to flush the stream after every
+ * line, <code>false</code> otherwise
+ * @param encoding The name of the character encoding to use for this
+ * object.
+ */
+ public PrintStream (OutputStream out, boolean auto_flush, String encoding)
+ throws UnsupportedEncodingException
+ {
+ super (out);
+
+ converter = UnicodeToBytes.getEncoder (encoding);
+ this.auto_flush = auto_flush;
+ }
+
+ /**
+ * This method checks to see if an error has occurred on this stream. Note
+ * that once an error has occurred, this method will continue to report
+ * <code>true</code> forever for this stream. Before checking for an
+ * error condition, this method flushes the stream.
+ *
+ * @return <code>true</code> if an error has occurred,
+ * <code>false</code> otherwise
+ */
+ public boolean checkError ()
+ {
+ flush ();
+ return error_occurred;
+ }
+
+ /**
+ * This method can be called by subclasses to indicate that an error
+ * has occurred and should be reported by <code>checkError</code>.
+ */
+ protected void setError ()
+ {
+ error_occurred = true;
+ }
+
+ /**
+ * This method closes this stream and all underlying streams.
+ */
+ public void close ()
+ {
+ try
+ {
+ converter.setFinished();
+ writeChars(new char[0], 0, 0);
+ flush();
+ out.close();
+ }
+ catch (InterruptedIOException iioe)
+ {
+ Thread.currentThread().interrupt();
+ }
+ catch (IOException e)
+ {
+ setError ();
+ }
+ }
+
+ /**
+ * This method flushes any buffered bytes to the underlying stream and
+ * then flushes that stream as well.
+ */
+ public void flush ()
+ {
+ try
+ {
+ out.flush();
+ }
+ catch (InterruptedIOException iioe)
+ {
+ Thread.currentThread().interrupt();
+ }
+ catch (IOException e)
+ {
+ setError ();
+ }
+ }
+
+ private synchronized void print (String str, boolean println)
+ {
+ try
+ {
+ writeChars(str, 0, str.length());
+ if (println)
+ writeChars(line_separator, 0, line_separator.length);
+ if (auto_flush)
+ flush();
+ }
+ catch (InterruptedIOException iioe)
+ {
+ Thread.currentThread().interrupt();
+ }
+ catch (IOException e)
+ {
+ setError ();
+ }
+ }
+
+ private synchronized void print (char[] chars, int pos, int len,
+ boolean println)
+ {
+ try
+ {
+ writeChars(chars, pos, len);
+ if (println)
+ writeChars(line_separator, 0, line_separator.length);
+ if (auto_flush)
+ flush();
+ }
+ catch (InterruptedIOException iioe)
+ {
+ Thread.currentThread().interrupt();
+ }
+ catch (IOException e)
+ {
+ setError ();
+ }
+ }
+
+ private void writeChars(char[] buf, int offset, int count)
+ throws IOException
+ {
+ do
+ {
+ converter.setOutput(work_bytes, 0);
+ int converted = converter.write(buf, offset, count);
+ offset += converted;
+ count -= converted;
+ out.write(work_bytes, 0, converter.count);
+ }
+ while (count > 0 || converter.havePendingBytes());
+ }
+
+ private void writeChars(String str, int offset, int count)
+ throws IOException
+ {
+ do
+ {
+ converter.setOutput(work_bytes, 0);
+ int converted = converter.write(str, offset, count, work);
+ offset += converted;
+ count -= converted;
+ out.write(work_bytes, 0, converter.count);
+ }
+ while (count > 0 || converter.havePendingBytes());
+ }
+
+ /**
+ * This methods prints a boolean value to the stream. <code>true</code>
+ * values are printed as "true" and <code>false</code> values are printed
+ * as "false".
+ *
+ * @param bool The <code>boolean</code> value to print
+ */
+ public void print (boolean bool)
+ {
+ print(String.valueOf(bool), false);
+ }
+
+ /**
+ * This method prints an integer to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ *
+ * @param inum The <code>int</code> value to be printed
+ */
+ public void print (int inum)
+ {
+ print(String.valueOf(inum), false);
+ }
+
+ /**
+ * This method prints a long to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ *
+ * @param lnum The <code>long</code> value to be printed
+ */
+ public void print (long lnum)
+ {
+ print(String.valueOf(lnum), false);
+ }
+
+ /**
+ * This method prints a float to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ *
+ * @param fnum The <code>float</code> value to be printed
+ */
+ public void print (float fnum)
+ {
+ print(String.valueOf(fnum), false);
+ }
+
+ /**
+ * This method prints a double to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ *
+ * @param dnum The <code>double</code> value to be printed
+ */
+ public void print (double dnum)
+ {
+ print(String.valueOf(dnum), false);
+ }
+
+ /**
+ * This method prints an <code>Object</code> to the stream. The actual
+ * value printed is determined by calling the <code>String.valueOf()</code>
+ * method.
+ *
+ * @param obj The <code>Object</code> to print.
+ */
+ public void print (Object obj)
+ {
+ print(obj == null ? "null" : obj.toString(), false);
+ }
+
+ /**
+ * This method prints a <code>String</code> to the stream. The actual
+ * value printed depends on the system default encoding.
+ *
+ * @param str The <code>String</code> to print.
+ */
+ public void print (String str)
+ {
+ print(str == null ? "null" : str, false);
+ }
+
+ /**
+ * This method prints a char to the stream. The actual value printed is
+ * determined by the character encoding in use.
+ *
+ * @param ch The <code>char</code> value to be printed
+ */
+ public synchronized void print (char ch)
+ {
+ work[0] = ch;
+ print(work, 0, 1, false);
+ }
+
+ /**
+ * This method prints an array of characters to the stream. The actual
+ * value printed depends on the system default encoding.
+ *
+ * @param charArray The array of characters to print.
+ */
+ public void print (char[] charArray)
+ {
+ print(charArray, 0, charArray.length, false);
+ }
+
+ /**
+ * This method prints a line separator sequence to the stream. The value
+ * printed is determined by the system property <xmp>line.separator</xmp>
+ * and is not necessarily the Unix '\n' newline character.
+ */
+ public void println ()
+ {
+ print(line_separator, 0, line_separator.length, false);
+ }
+
+ /**
+ * This methods prints a boolean value to the stream. <code>true</code>
+ * values are printed as "true" and <code>false</code> values are printed
+ * as "false".
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param bool The <code>boolean</code> value to print
+ */
+ public void println (boolean bool)
+ {
+ print(String.valueOf(bool), true);
+ }
+
+ /**
+ * This method prints an integer to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param inum The <code>int</code> value to be printed
+ */
+ public void println (int inum)
+ {
+ print(String.valueOf(inum), true);
+ }
+
+ /**
+ * This method prints a long to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param lnum The <code>long</code> value to be printed
+ */
+ public void println (long lnum)
+ {
+ print(String.valueOf(lnum), true);
+ }
+
+ /**
+ * This method prints a float to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param fnum The <code>float</code> value to be printed
+ */
+ public void println (float fnum)
+ {
+ print(String.valueOf(fnum), true);
+ }
+
+ /**
+ * This method prints a double to the stream. The value printed is
+ * determined using the <code>String.valueOf()</code> method.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param dnum The <code>double</code> value to be printed
+ */
+ public void println (double dnum)
+ {
+ print(String.valueOf(dnum), true);
+ }
+
+ /**
+ * This method prints an <code>Object</code> to the stream. The actual
+ * value printed is determined by calling the <code>String.valueOf()</code>
+ * method.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param obj The <code>Object</code> to print.
+ */
+ public void println (Object obj)
+ {
+ print(obj == null ? "null" : obj.toString(), true);
+ }
+
+ /**
+ * This method prints a <code>String</code> to the stream. The actual
+ * value printed depends on the system default encoding.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param str The <code>String</code> to print.
+ */
+ public void println (String str)
+ {
+ print (str == null ? "null" : str, true);
+ }
+
+ /**
+ * This method prints a char to the stream. The actual value printed is
+ * determined by the character encoding in use.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param ch The <code>char</code> value to be printed
+ */
+ public synchronized void println (char ch)
+ {
+ work[0] = ch;
+ print(work, 0, 1, true);
+ }
+
+ /**
+ * This method prints an array of characters to the stream. The actual
+ * value printed depends on the system default encoding.
+ * <p>
+ * This method prints a line termination sequence after printing the value.
+ *
+ * @param charArray The array of characters to print.
+ */
+ public void println (char[] charArray)
+ {
+ print(charArray, 0, charArray.length, true);
+ }
+
+ /**
+ * This method writes a byte of data to the stream. If auto-flush is
+ * enabled, printing a newline character will cause the stream to be
+ * flushed after the character is written.
+ *
+ * @param oneByte The byte to be written
+ */
+ public void write (int oneByte)
+ {
+ try
+ {
+ out.write (oneByte & 0xff);
+
+ if (auto_flush && (oneByte == '\n'))
+ flush ();
+ }
+ catch (InterruptedIOException iioe)
+ {
+ Thread.currentThread ().interrupt ();
+ }
+ catch (IOException e)
+ {
+ setError ();
+ }
+ }
+
+ /**
+ * This method writes <code>len</code> bytes from the specified array
+ * starting at index <code>offset</code> into the array.
+ *
+ * @param buffer The array of bytes to write
+ * @param offset The index into the array to start writing from
+ * @param len The number of bytes to write
+ */
+ public void write (byte[] buffer, int offset, int len)
+ {
+ try
+ {
+ out.write (buffer, offset, len);
+
+ if (auto_flush)
+ flush ();
+ }
+ catch (InterruptedIOException iioe)
+ {
+ Thread.currentThread ().interrupt ();
+ }
+ catch (IOException e)
+ {
+ setError ();
+ }
+ }
+
+ /** @since 1.5 */
+ public PrintStream append(char c)
+ {
+ print(c);
+ return this;
+ }
+
+ /** @since 1.5 */
+ public PrintStream append(CharSequence cs)
+ {
+ print(cs == null ? "null" : cs.toString());
+ return this;
+ }
+
+ /** @since 1.5 */
+ public PrintStream append(CharSequence cs, int start, int end)
+ {
+ print(cs == null ? "null" : cs.subSequence(start, end).toString());
+ return this;
+ }
+
+ /** @since 1.5 */
+ public PrintStream printf(String format, Object... args)
+ {
+ return format(format, args);
+ }
+
+ /** @since 1.5 */
+ public PrintStream printf(Locale locale, String format, Object... args)
+ {
+ return format(locale, format, args);
+ }
+
+ /** @since 1.5 */
+ public PrintStream format(String format, Object... args)
+ {
+ return format(Locale.getDefault(), format, args);
+ }
+
+ /** @since 1.5 */
+ public PrintStream format(Locale locale, String format, Object... args)
+ {
+ Formatter f = new Formatter(this, locale);
+ f.format(format, args);
+ return this;
+ }
+} // class PrintStream
+
diff --git a/gcc-4.8/libjava/java/io/PrintWriter.h b/gcc-4.8/libjava/java/io/PrintWriter.h
new file mode 100644
index 000000000..cf1fb324a
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PrintWriter.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PrintWriter__
+#define __java_io_PrintWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+
+class java::io::PrintWriter : public ::java::io::Writer
+{
+
+public:
+ PrintWriter(::java::io::Writer *);
+ PrintWriter(::java::io::Writer *, jboolean);
+ PrintWriter(::java::io::OutputStream *);
+ PrintWriter(::java::io::OutputStream *, jboolean);
+ PrintWriter(::java::lang::String *);
+ PrintWriter(::java::lang::String *, ::java::lang::String *);
+ PrintWriter(::java::io::File *);
+ PrintWriter(::java::io::File *, ::java::lang::String *);
+public: // actually protected
+ virtual void setError();
+public:
+ virtual jboolean checkError();
+ virtual void flush();
+ virtual void close();
+ virtual void print(::java::lang::String *);
+ virtual void print(jchar);
+ virtual void print(JArray< jchar > *);
+ virtual void print(jboolean);
+ virtual void print(jint);
+ virtual void print(jlong);
+ virtual void print(jfloat);
+ virtual void print(jdouble);
+ virtual void print(::java::lang::Object *);
+ virtual void println();
+ virtual void println(jboolean);
+ virtual void println(jint);
+ virtual void println(jlong);
+ virtual void println(jfloat);
+ virtual void println(jdouble);
+ virtual void println(::java::lang::Object *);
+ virtual void println(::java::lang::String *);
+ virtual void println(jchar);
+ virtual void println(JArray< jchar > *);
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *, jint, jint);
+ virtual void write(::java::lang::String *, jint, jint);
+ virtual void write(JArray< jchar > *);
+ virtual void write(::java::lang::String *);
+ virtual ::java::io::PrintWriter * PrintWriter$append(jchar);
+ virtual ::java::io::PrintWriter * PrintWriter$append(::java::lang::CharSequence *);
+ virtual ::java::io::PrintWriter * PrintWriter$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::io::PrintWriter * printf(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::io::PrintWriter * printf(::java::util::Locale *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::io::PrintWriter * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::io::PrintWriter * format(::java::util::Locale *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+ virtual ::java::io::Writer * Writer$append(jchar);
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::io::Writer)))) autoflush;
+ jboolean error;
+ jboolean closed;
+public: // actually protected
+ ::java::io::Writer * out;
+private:
+ static JArray< jchar > * line_separator;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PrintWriter__
diff --git a/gcc-4.8/libjava/java/io/PushbackInputStream.h b/gcc-4.8/libjava/java/io/PushbackInputStream.h
new file mode 100644
index 000000000..032bfce98
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PushbackInputStream.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PushbackInputStream__
+#define __java_io_PushbackInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::PushbackInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ PushbackInputStream(::java::io::InputStream *);
+ PushbackInputStream(::java::io::InputStream *, jint);
+ virtual jint available();
+ virtual void close();
+ virtual jboolean markSupported();
+ virtual void reset();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void unread(jint);
+ virtual void unread(JArray< jbyte > *);
+ virtual void unread(JArray< jbyte > *, jint, jint);
+ virtual jlong skip(jlong);
+private:
+ static const jint DEFAULT_BUFFER_SIZE = 1;
+public: // actually protected
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) buf;
+ jint pos;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PushbackInputStream__
diff --git a/gcc-4.8/libjava/java/io/PushbackReader.h b/gcc-4.8/libjava/java/io/PushbackReader.h
new file mode 100644
index 000000000..8d1c2ee5e
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/PushbackReader.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_PushbackReader__
+#define __java_io_PushbackReader__
+
+#pragma interface
+
+#include <java/io/FilterReader.h>
+#include <gcj/array.h>
+
+
+class java::io::PushbackReader : public ::java::io::FilterReader
+{
+
+public:
+ PushbackReader(::java::io::Reader *);
+ PushbackReader(::java::io::Reader *, jint);
+ virtual void close();
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual void reset();
+ virtual jboolean ready();
+ virtual jlong skip(jlong);
+ virtual jint read();
+ virtual jint read(JArray< jchar > *, jint, jint);
+ virtual void unread(jint);
+ virtual void unread(JArray< jchar > *);
+ virtual void unread(JArray< jchar > *, jint, jint);
+private:
+ static const jint DEFAULT_BUFFER_SIZE = 1;
+ JArray< jchar > * __attribute__((aligned(__alignof__( ::java::io::FilterReader)))) buf;
+ jint pos;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_PushbackReader__
diff --git a/gcc-4.8/libjava/java/io/RandomAccessFile.h b/gcc-4.8/libjava/java/io/RandomAccessFile.h
new file mode 100644
index 000000000..6b6076dfa
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/RandomAccessFile.h
@@ -0,0 +1,93 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_RandomAccessFile__
+#define __java_io_RandomAccessFile__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannelImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannel;
+ }
+ }
+ }
+}
+
+class java::io::RandomAccessFile : public ::java::lang::Object
+{
+
+public:
+ RandomAccessFile(::java::io::File *, ::java::lang::String *);
+ RandomAccessFile(::java::lang::String *, ::java::lang::String *);
+ virtual void close();
+ virtual ::java::io::FileDescriptor * getFD();
+ virtual jlong getFilePointer();
+ virtual void setLength(jlong);
+ virtual jlong length();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *);
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jboolean readBoolean();
+ virtual jbyte readByte();
+ virtual jchar readChar();
+ virtual jdouble readDouble();
+ virtual jfloat readFloat();
+ virtual void readFully(JArray< jbyte > *);
+ virtual void readFully(JArray< jbyte > *, jint, jint);
+ virtual jint readInt();
+ virtual ::java::lang::String * readLine();
+ virtual jlong readLong();
+ virtual jshort readShort();
+ virtual jint readUnsignedByte();
+ virtual jint readUnsignedShort();
+ virtual ::java::lang::String * readUTF();
+ virtual void seek(jlong);
+ virtual jint skipBytes(jint);
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void writeBoolean(jboolean);
+ virtual void writeByte(jint);
+ virtual void writeShort(jint);
+ virtual void writeChar(jint);
+ virtual void writeInt(jint);
+ virtual void writeLong(jlong);
+ virtual void writeFloat(jfloat);
+ virtual void writeDouble(jdouble);
+ virtual void writeBytes(::java::lang::String *);
+ virtual void writeChars(::java::lang::String *);
+ virtual void writeUTF(::java::lang::String *);
+ virtual ::java::nio::channels::FileChannel * getChannel();
+private:
+ ::gnu::java::nio::channels::FileChannelImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ch;
+ ::java::io::FileDescriptor * fd;
+ ::java::io::DataOutputStream * out;
+ ::java::io::DataInputStream * in;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_RandomAccessFile__
diff --git a/gcc-4.8/libjava/java/io/RandomAccessFile.java b/gcc-4.8/libjava/java/io/RandomAccessFile.java
new file mode 100644
index 000000000..d719a1e3b
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/RandomAccessFile.java
@@ -0,0 +1,1036 @@
+/* RandomAccessFile.java -- Class supporting random file I/O
+ Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.java.nio.channels.FileChannelImpl;
+
+import java.nio.channels.FileChannel;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * Status: Believe complete and correct to 1.1.
+ */
+
+/**
+ * This class allows reading and writing of files at random locations.
+ * Most Java I/O classes are either pure sequential input or output. This
+ * class fulfills the need to be able to read the bytes of a file in an
+ * arbitrary order. In addition, this class implements the
+ * <code>DataInput</code> and <code>DataOutput</code> interfaces to allow
+ * the reading and writing of Java primitives.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ */
+public class RandomAccessFile implements DataOutput, DataInput, Closeable
+{
+
+ // The underlying file.
+ private FileChannelImpl ch;
+ private FileDescriptor fd;
+ // The corresponding input and output streams.
+ private DataOutputStream out;
+ private DataInputStream in;
+
+
+ /**
+ * This method initializes a new instance of <code>RandomAccessFile</code>
+ * to read from the specified <code>File</code> object with the specified
+ * access mode. The access mode is either "r" for read only access or "rw"
+ * for read-write access.
+ * <p>
+ * Note that a <code>SecurityManager</code> check is made prior to
+ * opening the file to determine whether or not this file is allowed to
+ * be read or written.
+ *
+ * @param file The <code>File</code> object to read and/or write.
+ * @param mode "r" for read only or "rw" for read-write access to the file
+ *
+ * @exception IllegalArgumentException If <code>mode</code> has an
+ * illegal value
+ * @exception SecurityException If the requested access to the file
+ * is not allowed
+ * @exception FileNotFoundException If the file is a directory, or
+ * any other error occurs
+ */
+ public RandomAccessFile (File file, String mode)
+ throws FileNotFoundException
+ {
+ int fdmode;
+ if (mode.equals("r"))
+ fdmode = FileChannelImpl.READ;
+ else if (mode.equals("rw"))
+ fdmode = FileChannelImpl.READ | FileChannelImpl.WRITE;
+ else if (mode.equals("rws"))
+ {
+ fdmode = (FileChannelImpl.READ | FileChannelImpl.WRITE
+ | FileChannelImpl.SYNC);
+ }
+ else if (mode.equals("rwd"))
+ {
+ fdmode = (FileChannelImpl.READ | FileChannelImpl.WRITE
+ | FileChannelImpl.DSYNC);
+ }
+ else
+ throw new IllegalArgumentException ("invalid mode: " + mode);
+
+ final String fileName = file.getPath();
+
+ // The obligatory SecurityManager stuff
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ {
+ s.checkRead(fileName);
+
+ if ((fdmode & FileChannelImpl.WRITE) != 0)
+ s.checkWrite(fileName);
+ }
+
+ ch = FileChannelImpl.create(file, fdmode);
+ fd = new FileDescriptor(ch);
+ if ((fdmode & FileChannelImpl.WRITE) != 0)
+ out = new DataOutputStream (new FileOutputStream (fd));
+ else
+ out = null;
+ in = new DataInputStream (new FileInputStream (fd));
+ }
+
+ /**
+ * This method initializes a new instance of <code>RandomAccessFile</code>
+ * to read from the specified file name with the specified access mode.
+ * The access mode is either "r" for read only access, "rw" for read
+ * write access, "rws" for synchronized read/write access of both
+ * content and metadata, or "rwd" for read/write access
+ * where only content is required to be synchronous.
+ * <p>
+ * Note that a <code>SecurityManager</code> check is made prior to
+ * opening the file to determine whether or not this file is allowed to
+ * be read or written.
+ *
+ * @param fileName The name of the file to read and/or write
+ * @param mode "r", "rw", "rws", or "rwd"
+ *
+ * @exception IllegalArgumentException If <code>mode</code> has an
+ * illegal value
+ * @exception SecurityException If the requested access to the file
+ * is not allowed
+ * @exception FileNotFoundException If the file is a directory or
+ * any other error occurs
+ */
+ public RandomAccessFile (String fileName, String mode)
+ throws FileNotFoundException
+ {
+ this (new File(fileName), mode);
+ }
+
+ /**
+ * This method closes the file and frees up all file related system
+ * resources. Since most operating systems put a limit on how many files
+ * may be opened at any given time, it is a good idea to close all files
+ * when no longer needed to avoid hitting this limit
+ */
+ public void close () throws IOException
+ {
+ ch.close();
+ }
+
+ /**
+ * This method returns a <code>FileDescriptor</code> object that
+ * represents the native file handle for this file.
+ *
+ * @return The <code>FileDescriptor</code> object for this file
+ *
+ * @exception IOException If an error occurs
+ */
+ public final FileDescriptor getFD () throws IOException
+ {
+ synchronized (this)
+ {
+ if (fd == null)
+ fd = new FileDescriptor (ch);
+ return fd;
+ }
+ }
+
+ /**
+ * This method returns the current offset in the file at which the next
+ * read or write will occur
+ *
+ * @return The current file position
+ *
+ * @exception IOException If an error occurs
+ */
+ public long getFilePointer () throws IOException
+ {
+ return ch.position();
+ }
+
+ /**
+ * This method sets the length of the file to the specified length.
+ * If the currently length of the file is longer than the specified
+ * length, then the file is truncated to the specified length (the
+ * file position is set to the end of file in this case). If the
+ * current length of the file is shorter than the specified length,
+ * the file is extended with bytes of an undefined value (the file
+ * position is unchanged in this case).
+ * <p>
+ * The file must be open for write access for this operation to succeed.
+ *
+ * @param newLen The new length of the file
+ *
+ * @exception IOException If an error occurs
+ */
+ public void setLength (long newLen) throws IOException
+ {
+ // FIXME: Extending a file should probably be done by one method call.
+
+ // FileChannel.truncate() can only shrink a file.
+ // To expand it we need to seek forward and write at least one byte.
+ if (newLen < length())
+ ch.truncate (newLen);
+ else if (newLen > length())
+ {
+ long pos = getFilePointer();
+ seek(newLen - 1);
+ write(0);
+ seek(pos);
+ }
+ }
+
+ /**
+ * This method returns the length of the file in bytes
+ *
+ * @return The length of the file
+ *
+ * @exception IOException If an error occurs
+ */
+ public long length () throws IOException
+ {
+ return ch.size();
+ }
+
+ /**
+ * This method reads a single byte of data from the file and returns it
+ * as an integer.
+ *
+ * @return The byte read as an int, or -1 if the end of the file was reached.
+ *
+ * @exception IOException If an error occurs
+ */
+ public int read () throws IOException
+ {
+ return in.read();
+ }
+
+ /**
+ * This method reads bytes from the file into the specified array. The
+ * bytes are stored starting at the beginning of the array and up to
+ * <code>buf.length</code> bytes can be read.
+ *
+ * @param buffer The buffer to read bytes from the file into
+ *
+ * @return The actual number of bytes read or -1 if end of file
+ *
+ * @exception IOException If an error occurs
+ */
+ public int read (byte[] buffer) throws IOException
+ {
+ return in.read (buffer);
+ }
+
+ /**
+ * This methods reads up to <code>len</code> bytes from the file into the
+ * specified array starting at position <code>offset</code> into the array.
+ *
+ * @param buffer The array to read the bytes into
+ * @param offset The index into the array to start storing bytes
+ * @param len The requested number of bytes to read
+ *
+ * @return The actual number of bytes read, or -1 if end of file
+ *
+ * @exception IOException If an error occurs
+ */
+ public int read (byte[] buffer, int offset, int len) throws IOException
+ {
+ return in.read (buffer, offset, len);
+ }
+
+ /**
+ * This method reads a Java boolean value from an input stream. It does
+ * so by reading a single byte of data. If that byte is zero, then the
+ * value returned is <code>false</code> If the byte is non-zero, then
+ * the value returned is <code>true</code>
+ * <p>
+ * This method can read a <code>boolean</code> written by an object
+ * implementing the
+ * <code>writeBoolean()</code> method in the <code>DataOutput</code>
+ * interface.
+ *
+ * @return The <code>boolean</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the
+ * boolean
+ * @exception IOException If any other error occurs
+ */
+ public final boolean readBoolean () throws IOException
+ {
+ return in.readBoolean ();
+ }
+
+ /**
+ * This method reads a Java byte value from an input stream. The value
+ * is in the range of -128 to 127.
+ * <p>
+ * This method can read a <code>byte</code> written by an object
+ * implementing the
+ * <code>writeByte()</code> method in the <code>DataOutput</code> interface.
+ *
+ * @return The <code>byte</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the byte
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final byte readByte () throws IOException
+ {
+ return in.readByte ();
+ }
+
+ /**
+ * This method reads a Java <code>char</code> value from an input stream.
+ * It operates by reading two bytes from the stream and converting them to
+ * a single 16-bit Java <code>char</code> The two bytes are stored most
+ * significant byte first (i.e., "big endian") regardless of the native
+ * host byte ordering.
+ * <p>
+ * As an example, if <code>byte1</code> and <code>byte2</code> represent
+ * the first
+ * and second byte read from the stream respectively, they will be
+ * transformed to a <code>char</code> in the following manner:
+ * <p>
+ * <code>(char)(((byte1 &amp; 0xFF) &lt;&lt; 8) | (byte2 &amp; 0xFF)</code>
+ * <p>
+ * This method can read a <code>char</code> written by an object
+ * implementing the
+ * <code>writeChar()</code> method in the <code>DataOutput</code> interface.
+ *
+ * @return The <code>char</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the char
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final char readChar () throws IOException
+ {
+ return in.readChar();
+ }
+
+ /**
+ * This method reads a Java double value from an input stream. It operates
+ * by first reading a <code>logn</code> value from the stream by calling the
+ * <code>readLong()</code> method in this interface, then
+ * converts that <code>long</code>
+ * to a <code>double</code> using the <code>longBitsToDouble</code>
+ * method in the class <code>java.lang.Double</code>
+ * <p>
+ * This method can read a <code>double</code> written by an object
+ * implementing the
+ * <code>writeDouble()</code> method in the <code>DataOutput</code>
+ * interface.
+ *
+ * @return The <code>double</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading
+ * the double
+ * @exception IOException If any other error occurs
+ *
+ * @see java.lang.Double
+ * @see DataOutput
+ */
+ public final double readDouble () throws IOException
+ {
+ return in.readDouble ();
+ }
+
+ /**
+ * This method reads a Java float value from an input stream. It operates
+ * by first reading an <code>int</code> value from the stream by calling the
+ * <code>readInt()</code> method in this interface, then converts
+ * that <code>int</code>
+ * to a <code>float</code> using the <code>intBitsToFloat</code> method in
+ * the class <code>java.lang.Float</code>
+ * <p>
+ * This method can read a <code>float</code> written by an object
+ * implementing the
+ * <code>writeFloat()</code> method in the <code>DataOutput</code> interface.
+ *
+ * @return The <code>float</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the float
+ * @exception IOException If any other error occurs
+ *
+ * @see java.lang.Float
+ * @see DataOutput
+ */
+ public final float readFloat () throws IOException
+ {
+ return in.readFloat();
+ }
+
+ /**
+ * This method reads raw bytes into the passed array until the array is
+ * full. Note that this method blocks until the data is available and
+ * throws an exception if there is not enough data left in the stream to
+ * fill the buffer
+ *
+ * @param buffer The buffer into which to read the data
+ *
+ * @exception EOFException If end of file is reached before filling the
+ * buffer
+ * @exception IOException If any other error occurs
+ */
+ public final void readFully (byte[] buffer) throws IOException
+ {
+ in.readFully(buffer);
+ }
+
+ /**
+ * This method reads raw bytes into the passed array <code>buf</code>
+ * starting
+ * <code>offset</code> bytes into the buffer. The number of bytes read
+ * will be
+ * exactly <code>len</code> Note that this method blocks until the data is
+ * available and throws an exception if there is not enough data left in
+ * the stream to read <code>len</code> bytes.
+ *
+ * @param buffer The buffer into which to read the data
+ * @param offset The offset into the buffer to start storing data
+ * @param count The number of bytes to read into the buffer
+ *
+ * @exception EOFException If end of file is reached before filling
+ * the buffer
+ * @exception IOException If any other error occurs
+ */
+ public final void readFully (byte[] buffer, int offset, int count)
+ throws IOException
+ {
+ in.readFully (buffer, offset, count);
+ }
+
+ /**
+ * This method reads a Java <code>int</code> value from an input stream
+ * It operates by reading four bytes from the stream and converting them to
+ * a single Java <code>int</code> The bytes are stored most
+ * significant byte first (i.e., "big endian") regardless of the native
+ * host byte ordering.
+ * <p>
+ * As an example, if <code>byte1</code> through <code>byte4</code>
+ * represent the first
+ * four bytes read from the stream, they will be
+ * transformed to an <code>int</code> in the following manner:
+ * <p>
+ * <code>(int)(((byte1 &amp; 0xFF) &lt;&lt; 24) + ((byte2 &amp; 0xFF) &lt;&lt; 16) +
+ * ((byte3 &amp; 0xFF) &lt;&lt; 8) + (byte4 &amp; 0xFF)))</code>
+ * <p>
+ * The value returned is in the range of 0 to 65535.
+ * <p>
+ * This method can read an <code>int</code> written by an object
+ * implementing the
+ * <code>writeInt()</code> method in the <code>DataOutput</code> interface.
+ *
+ * @return The <code>int</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the int
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final int readInt () throws IOException
+ {
+ return in.readInt();
+ }
+
+ /**
+ * This method reads the next line of text data from an input stream.
+ * It operates by reading bytes and converting those bytes to
+ * <code>char</code>
+ * values by treating the byte read as the low eight bits of the
+ * <code>char</code>
+ * and using <code>0</code> as the high eight bits. Because of this, it does
+ * not support the full 16-bit Unicode character set.
+ * <p>
+ * The reading of bytes ends when either the end of file or a line terminator
+ * is encountered. The bytes read are then returned as a <code>String</code>
+ * A line terminator is a byte sequence consisting of either
+ * <code>\r</code> <code>\n</code> or <code>\r\n</code> These
+ * termination charaters are
+ * discarded and are not returned as part of the string.
+ * <p>
+ * This method can read data that was written by an object implementing the
+ * <code>writeLine()</code> method in <code>DataOutput</code>
+ *
+ * @return The line read as a <code>String</code>
+ *
+ * @exception IOException If an error occurs
+ *
+ * @see DataOutput
+ */
+ public final String readLine () throws IOException
+ {
+ return in.readLine ();
+ }
+
+ /**
+ * This method reads a Java long value from an input stream
+ * It operates by reading eight bytes from the stream and converting them to
+ * a single Java <code>long</code> The bytes are stored most
+ * significant byte first (i.e., "big endian") regardless of the native
+ * host byte ordering.
+ * <p>
+ * As an example, if <code>byte1</code> through <code>byte8</code>
+ * represent the first
+ * eight bytes read from the stream, they will be
+ * transformed to an <code>long</code> in the following manner:
+ * <p>
+ * <code>
+ * (long)((((long)byte1 &amp; 0xFF) &lt;&lt; 56) + (((long)byte2 &amp; 0xFF) &lt;&lt; 48) +
+ * (((long)byte3 &amp; 0xFF) &lt;&lt; 40) + (((long)byte4 &amp; 0xFF) &lt;&lt; 32) +
+ * (((long)byte5 &amp; 0xFF) &lt;&lt; 24) + (((long)byte6 &amp; 0xFF) &lt;&lt; 16) +
+ * (((long)byte7 &amp; 0xFF) &lt;&lt; 8) + ((long)byte9 &amp; 0xFF)))</code>
+ * <p>
+ * The value returned is in the range of 0 to 65535.
+ * <p>
+ * This method can read an <code>long</code> written by an object
+ * implementing the
+ * <code>writeLong()</code> method in the <code>DataOutput</code> interface.
+ *
+ * @return The <code>long</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the long
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final long readLong () throws IOException
+ {
+ return in.readLong();
+ }
+
+ /**
+ * This method reads a signed 16-bit value into a Java in from the stream.
+ * It operates by reading two bytes from the stream and converting them to
+ * a single 16-bit Java <code>short</code> The two bytes are stored most
+ * significant byte first (i.e., "big endian") regardless of the native
+ * host byte ordering.
+ * <p>
+ * As an example, if <code>byte1</code> and <code>byte2</code>
+ * represent the first
+ * and second byte read from the stream respectively, they will be
+ * transformed to a <code>short</code> in the following manner:
+ * <p>
+ * <code>(short)(((byte1 &amp; 0xFF) &lt;&lt; 8) | (byte2 &amp; 0xFF)</code>
+ * <p>
+ * The value returned is in the range of -32768 to 32767.
+ * <p>
+ * This method can read a <code>short</code> written by an object
+ * implementing the
+ * <code>writeShort()</code> method in the <code>DataOutput</code> interface.
+ *
+ * @return The <code>short</code> value read
+ *
+ * @exception EOFException If end of file is reached before reading the value
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final short readShort () throws IOException
+ {
+ return in.readShort();
+ }
+
+ /**
+ * This method reads 8 unsigned bits into a Java <code>int</code> value
+ * from the
+ * stream. The value returned is in the range of 0 to 255.
+ * <p>
+ * This method can read an unsigned byte written by an object implementing
+ * the <code>writeUnsignedByte()</code> method in the
+ * <code>DataOutput</code> interface.
+ *
+ * @return The unsigned bytes value read as a Java <code>int</code>
+ *
+ * @exception EOFException If end of file is reached before reading the value
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final int readUnsignedByte () throws IOException
+ {
+ return in.readUnsignedByte();
+ }
+
+ /**
+ * This method reads 16 unsigned bits into a Java int value from the stream.
+ * It operates by reading two bytes from the stream and converting them to
+ * a single Java <code>int</code> The two bytes are stored most
+ * significant byte first (i.e., "big endian") regardless of the native
+ * host byte ordering.
+ * <p>
+ * As an example, if <code>byte1</code> and <code>byte2</code>
+ * represent the first
+ * and second byte read from the stream respectively, they will be
+ * transformed to an <code>int</code> in the following manner:
+ * <p>
+ * <code>(int)(((byte1 &amp; 0xFF) &lt;&lt; 8) + (byte2 &amp; 0xFF))</code>
+ * <p>
+ * The value returned is in the range of 0 to 65535.
+ * <p>
+ * This method can read an unsigned short written by an object implementing
+ * the <code>writeUnsignedShort()</code> method in the
+ * <code>DataOutput</code> interface.
+ *
+ * @return The unsigned short value read as a Java <code>int</code>
+ *
+ * @exception EOFException If end of file is reached before reading the value
+ * @exception IOException If any other error occurs
+ */
+ public final int readUnsignedShort () throws IOException
+ {
+ return in.readUnsignedShort();
+ }
+
+ /**
+ * This method reads a <code>String</code> from an input stream that
+ * is encoded in
+ * a modified UTF-8 format. This format has a leading two byte sequence
+ * that contains the remaining number of bytes to read. This two byte
+ * sequence is read using the <code>readUnsignedShort()</code> method of this
+ * interface.
+ * <p>
+ * After the number of remaining bytes have been determined, these bytes
+ * are read an transformed into <code>char</code> values.
+ * These <code>char</code> values
+ * are encoded in the stream using either a one, two, or three byte format.
+ * The particular format in use can be determined by examining the first
+ * byte read.
+ * <p>
+ * If the first byte has a high order bit of 0 then
+ * that character consists on only one byte. This character value consists
+ * of seven bits that are at positions 0 through 6 of the byte. As an
+ * example, if <code>byte1</code> is the byte read from the stream, it would
+ * be converted to a <code>char</code> like so:
+ * <p>
+ * <code>(char)byte1</code>
+ * <p>
+ * If the first byte has <code>110</code> as its high order bits, then the
+ * character consists of two bytes. The bits that make up the character
+ * value are in positions 0 through 4 of the first byte and bit positions
+ * 0 through 5 of the second byte. (The second byte should have
+ * 10 as its high order bits). These values are in most significant
+ * byte first (i.e., "big endian") order.
+ * <p>
+ * As an example, if <code>byte1</code> and <code>byte2</code>
+ * are the first two bytes
+ * read respectively, and the high order bits of them match the patterns
+ * which indicate a two byte character encoding, then they would be
+ * converted to a Java <code>char</code> like so:
+ * <p>
+ * <code>(char)(((byte1 & 0x1F) << 6) | (byte2 & 0x3F))</code>
+ * <p>
+ * If the first byte has a <code>1110</code> as its high order bits, then the
+ * character consists of three bytes. The bits that make up the character
+ * value are in positions 0 through 3 of the first byte and bit positions
+ * 0 through 5 of the other two bytes. (The second and third bytes should
+ * have <code>10</code> as their high order bits). These values are in most
+ * significant byte first (i.e., "big endian") order.
+ * <p>
+ * As an example, if <code>byte1</code> <code>byte2</code>
+ * and <code>byte3</code> are the
+ * three bytes read, and the high order bits of them match the patterns
+ * which indicate a three byte character encoding, then they would be
+ * converted to a Java <code>char</code> like so:
+ * <p>
+ * <code>(char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) |
+ * (byte3 & 0x3F))</code>
+ * <p>
+ * Note that all characters are encoded in the method that requires the
+ * fewest number of bytes with the exception of the character with the
+ * value of <code>&#92;u0000</code> which is encoded as two bytes. This is
+ * a modification of the UTF standard used to prevent C language style
+ * <code>NUL</code> values from appearing in the byte stream.
+ * <p>
+ * This method can read data that was written by an object implementing the
+ * <code>writeUTF()</code> method in <code>DataOutput</code>
+ *
+ * @return The <code>String</code> read
+ *
+ * @exception EOFException If end of file is reached before reading the
+ * String
+ * @exception UTFDataFormatException If the data is not in UTF-8 format
+ * @exception IOException If any other error occurs
+ *
+ * @see DataOutput
+ */
+ public final String readUTF () throws IOException
+ {
+ return in.readUTF();
+ }
+
+ /**
+ * This method sets the current file position to the specified offset
+ * from the beginning of the file. Note that some operating systems will
+ * allow the file pointer to be set past the current end of the file.
+ *
+ * @param pos The offset from the beginning of the file at which to set
+ * the file pointer
+ *
+ * @exception IOException If an error occurs
+ */
+ public void seek (long pos) throws IOException
+ {
+ ch.position(pos);
+ }
+
+ /**
+ * This method attempts to skip and discard the specified number of bytes
+ * in the input stream. It may actually skip fewer bytes than requested.
+ * The actual number of bytes skipped is returned. This method will not
+ * skip any bytes if passed a negative number of bytes to skip.
+ *
+ * @param numBytes The requested number of bytes to skip.
+ *
+ * @return The number of bytes actually skipped.
+ *
+ * @exception IOException If an error occurs.
+ */
+ public int skipBytes (int numBytes) throws IOException
+ {
+ if (numBytes < 0)
+ throw new IllegalArgumentException ("Can't skip negative bytes: " +
+ numBytes);
+
+ if (numBytes == 0)
+ return 0;
+
+ long oldPos = ch.position();
+ long newPos = oldPos + numBytes;
+ long size = ch.size();
+ if (newPos > size)
+ newPos = size;
+ ch.position(newPos);
+ return (int) (ch.position() - oldPos);
+ }
+
+ /**
+ * This method writes a single byte of data to the file. The file must
+ * be open for read-write in order for this operation to succeed.
+ *
+ * @param oneByte The byte of data to write, passed as an int.
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (int oneByte) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.write(oneByte);
+ }
+
+ /**
+ * This method writes all the bytes in the specified array to the file.
+ * The file must be open read-write in order for this operation to succeed.
+ *
+ * @param buffer The array of bytes to write to the file
+ */
+ public void write (byte[] buffer) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.write(buffer);
+ }
+
+ /**
+ * This method writes <code>len</code> bytes to the file from the specified
+ * array starting at index <code>offset</code> into the array.
+ *
+ * @param buffer The array of bytes to write to the file
+ * @param offset The index into the array to start writing file
+ * @param len The number of bytes to write
+ *
+ * @exception IOException If an error occurs
+ */
+ public void write (byte[] buffer, int offset, int len) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.write (buffer, offset, len);
+ }
+
+ /**
+ * This method writes a Java <code>boolean</code> to the underlying output
+ * stream. For a value of <code>true</code>, 1 is written to the stream.
+ * For a value of <code>false</code>, 0 is written.
+ *
+ * @param val The <code>boolean</code> value to write to the stream
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeBoolean (boolean val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeBoolean(val);
+ }
+
+ /**
+ * This method writes a Java <code>byte</code> value to the underlying
+ * output stream.
+ *
+ * @param val The <code>byte</code> to write to the stream, passed
+ * as an <code>int</code>.
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeByte (int val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeByte(val);
+ }
+
+ /**
+ * This method writes a Java <code>short</code> to the stream, high byte
+ * first. This method requires two bytes to encode the value.
+ *
+ * @param val The <code>short</code> value to write to the stream,
+ * passed as an <code>int</code>.
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeShort (int val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeShort(val);
+ }
+
+ /**
+ * This method writes a single <code>char</code> value to the stream,
+ * high byte first.
+ *
+ * @param val The <code>char</code> value to write, passed as
+ * an <code>int</code>.
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeChar (int val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeChar(val);
+ }
+
+ /**
+ * This method writes a Java <code>int</code> to the stream, high bytes
+ * first. This method requires four bytes to encode the value.
+ *
+ * @param val The <code>int</code> value to write to the stream.
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeInt (int val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeInt(val);
+ }
+
+ /**
+ * This method writes a Java <code>long</code> to the stream, high bytes
+ * first. This method requires eight bytes to encode the value.
+ *
+ * @param val The <code>long</code> value to write to the stream.
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeLong (long val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeLong(val);
+ }
+
+ /**
+ * This method writes a Java <code>float</code> value to the stream. This
+ * value is written by first calling the method
+ * <code>Float.floatToIntBits</code>
+ * to retrieve an <code>int</code> representing the floating point number,
+ * then writing this <code>int</code> value to the stream exactly the same
+ * as the <code>writeInt()</code> method does.
+ *
+ * @param val The floating point number to write to the stream.
+ *
+ * @exception IOException If an error occurs
+ *
+ * @see #writeInt(int)
+ */
+ public final void writeFloat (float val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeFloat(val);
+ }
+
+ /**
+ * This method writes a Java <code>double</code> value to the stream. This
+ * value is written by first calling the method
+ * <code>Double.doubleToLongBits</code>
+ * to retrieve an <code>long</code> representing the floating point number,
+ * then writing this <code>long</code> value to the stream exactly the same
+ * as the <code>writeLong()</code> method does.
+ *
+ * @param val The double precision floating point number to write to the
+ * stream.
+ *
+ * @exception IOException If an error occurs
+ *
+ * @see #writeLong(long)
+ */
+ public final void writeDouble (double val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeDouble(val);
+ }
+
+ /**
+ * This method writes all the bytes in a <code>String</code> out to the
+ * stream. One byte is written for each character in the <code>String</code>.
+ * The high eight bits of each character are discarded.
+ *
+ * @param val The <code>String</code> to write to the stream
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeBytes (String val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeBytes(val);
+ }
+
+ /**
+ * This method writes all the characters in a <code>String</code> to the
+ * stream. There will be two bytes for each character value. The high
+ * byte of the character will be written first.
+ *
+ * @param val The <code>String</code> to write to the stream.
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeChars (String val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeChars(val);
+ }
+
+ /**
+ * This method writes a Java <code>String</code> to the stream in a modified
+ * UTF-8 format. First, two bytes are written to the stream indicating the
+ * number of bytes to follow. Note that this is the number of bytes in the
+ * encoded <code>String</code> not the <code>String</code> length. Next
+ * come the encoded characters. Each character in the <code>String</code>
+ * is encoded as either one, two or three bytes. For characters in the
+ * range of <code>&#92;u0001</code> to <code>&#92;u007F</code>,
+ * one byte is used. The character
+ * value goes into bits 0-7 and bit eight is 0. For characters in the range
+ * of <code>&#92;u0080</code> to <code>&#92;u007FF</code>, two
+ * bytes are used. Bits
+ * 6-10 of the character value are encoded bits 0-4 of the first byte, with
+ * the high bytes having a value of "110". Bits 0-5 of the character value
+ * are stored in bits 0-5 of the second byte, with the high bits set to
+ * "10". This type of encoding is also done for the null character
+ * <code>&#92;u0000</code>. This eliminates any C style NUL character values
+ * in the output. All remaining characters are stored as three bytes.
+ * Bits 12-15 of the character value are stored in bits 0-3 of the first
+ * byte. The high bits of the first bytes are set to "1110". Bits 6-11
+ * of the character value are stored in bits 0-5 of the second byte. The
+ * high bits of the second byte are set to "10". And bits 0-5 of the
+ * character value are stored in bits 0-5 of byte three, with the high bits
+ * of that byte set to "10".
+ *
+ * @param val The <code>String</code> to write to the output in UTF format
+ *
+ * @exception IOException If an error occurs
+ */
+ public final void writeUTF (String val) throws IOException
+ {
+ if (out == null)
+ throw new IOException("Bad file descriptor");
+
+ out.writeUTF(val);
+ }
+
+ /**
+ * This method creates a java.nio.channels.FileChannel.
+ * Nio does not allow one to create a file channel directly.
+ * A file channel must be created by first creating an instance of
+ * Input/Output/RandomAccessFile and invoking the getChannel() method on it.
+ */
+ public final synchronized FileChannel getChannel ()
+ {
+ return ch;
+ }
+}
diff --git a/gcc-4.8/libjava/java/io/Reader.h b/gcc-4.8/libjava/java/io/Reader.h
new file mode 100644
index 000000000..678bc9181
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Reader.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Reader__
+#define __java_io_Reader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class CharBuffer;
+ }
+ }
+}
+
+class java::io::Reader : public ::java::lang::Object
+{
+
+public: // actually protected
+ Reader();
+ Reader(::java::lang::Object *);
+public:
+ virtual jint read(JArray< jchar > *, jint, jint) = 0;
+ virtual jint read(JArray< jchar > *);
+ virtual jint read();
+ virtual jint read(::java::nio::CharBuffer *);
+ virtual void close() = 0;
+ virtual jboolean markSupported();
+ virtual void mark(jint);
+ virtual void reset();
+ virtual jboolean ready();
+ virtual jlong skip(jlong);
+public: // actually protected
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lock;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_Reader__
diff --git a/gcc-4.8/libjava/java/io/SequenceInputStream.h b/gcc-4.8/libjava/java/io/SequenceInputStream.h
new file mode 100644
index 000000000..f5baa7d10
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/SequenceInputStream.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_SequenceInputStream__
+#define __java_io_SequenceInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::SequenceInputStream : public ::java::io::InputStream
+{
+
+public:
+ SequenceInputStream(::java::util::Enumeration *);
+ SequenceInputStream(::java::io::InputStream *, ::java::io::InputStream *);
+ virtual jint available();
+ virtual void close();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+private:
+ ::java::io::InputStream * getNextStream();
+ ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) in;
+ ::java::io::InputStream * in2;
+ ::java::util::Enumeration * e;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_SequenceInputStream__
diff --git a/gcc-4.8/libjava/java/io/Serializable.h b/gcc-4.8/libjava/java/io/Serializable.h
new file mode 100644
index 000000000..12c36e55c
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Serializable.h
@@ -0,0 +1,18 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Serializable__
+#define __java_io_Serializable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::Serializable : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_io_Serializable__
diff --git a/gcc-4.8/libjava/java/io/SerializablePermission.h b/gcc-4.8/libjava/java/io/SerializablePermission.h
new file mode 100644
index 000000000..04c3dcee4
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/SerializablePermission.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_SerializablePermission__
+#define __java_io_SerializablePermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+#include <gcj/array.h>
+
+
+class java::io::SerializablePermission : public ::java::security::BasicPermission
+{
+
+public:
+ SerializablePermission(::java::lang::String *);
+ SerializablePermission(::java::lang::String *, ::java::lang::String *);
+public: // actually package-private
+ static const jlong serialVersionUID = 8537212141160296410LL;
+private:
+ static JArray< ::java::lang::String * > * legal_names;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_SerializablePermission__
diff --git a/gcc-4.8/libjava/java/io/StreamCorruptedException.h b/gcc-4.8/libjava/java/io/StreamCorruptedException.h
new file mode 100644
index 000000000..79b0d02a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/StreamCorruptedException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_StreamCorruptedException__
+#define __java_io_StreamCorruptedException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::StreamCorruptedException : public ::java::io::ObjectStreamException
+{
+
+public:
+ StreamCorruptedException();
+ StreamCorruptedException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8983558202217591746LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_StreamCorruptedException__
diff --git a/gcc-4.8/libjava/java/io/StreamTokenizer.h b/gcc-4.8/libjava/java/io/StreamTokenizer.h
new file mode 100644
index 000000000..ad9496cd4
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/StreamTokenizer.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_StreamTokenizer__
+#define __java_io_StreamTokenizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::StreamTokenizer : public ::java::lang::Object
+{
+
+public:
+ StreamTokenizer(::java::io::InputStream *);
+ StreamTokenizer(::java::io::Reader *);
+ virtual void commentChar(jint);
+ virtual void eolIsSignificant(jboolean);
+ virtual jint lineno();
+ virtual void lowerCaseMode(jboolean);
+private:
+ jboolean isWhitespace(jint);
+ jboolean isAlphabetic(jint);
+ jboolean isNumeric(jint);
+ jboolean isQuote(jint);
+ jboolean isComment(jint);
+public:
+ virtual jint nextToken();
+private:
+ void resetChar(jint);
+public:
+ virtual void ordinaryChar(jint);
+ virtual void ordinaryChars(jint, jint);
+ virtual void parseNumbers();
+ virtual void pushBack();
+ virtual void quoteChar(jint);
+ virtual void resetSyntax();
+ virtual void slashSlashComments(jboolean);
+ virtual void slashStarComments(jboolean);
+ virtual ::java::lang::String * toString();
+ virtual void whitespaceChars(jint, jint);
+ virtual void wordChars(jint, jint);
+ static const jint TT_EOF = -1;
+ static const jint TT_EOL = 10;
+ static const jint TT_NUMBER = -2;
+ static const jint TT_WORD = -3;
+private:
+ static const jint TT_NONE = -4;
+public:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) ttype;
+ ::java::lang::String * sval;
+ jdouble nval;
+private:
+ jboolean eolSignificant;
+ jboolean lowerCase;
+ jboolean slashSlash;
+ jboolean slashStar;
+ JArray< jboolean > * whitespace;
+ JArray< jboolean > * alphabetic;
+ JArray< jboolean > * numeric;
+ JArray< jboolean > * quote;
+ JArray< jboolean > * comment;
+ ::java::io::PushbackReader * in;
+ jboolean pushedBack;
+ jint lineNumber;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_StreamTokenizer__
diff --git a/gcc-4.8/libjava/java/io/StringBufferInputStream.h b/gcc-4.8/libjava/java/io/StringBufferInputStream.h
new file mode 100644
index 000000000..077bc4d28
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/StringBufferInputStream.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_StringBufferInputStream__
+#define __java_io_StringBufferInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+
+class java::io::StringBufferInputStream : public ::java::io::InputStream
+{
+
+public:
+ StringBufferInputStream(::java::lang::String *);
+ virtual jint available();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void reset();
+ virtual jlong skip(jlong);
+public: // actually protected
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) buffer;
+ jint pos;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_StringBufferInputStream__
diff --git a/gcc-4.8/libjava/java/io/StringReader.h b/gcc-4.8/libjava/java/io/StringReader.h
new file mode 100644
index 000000000..57a2d3f80
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/StringReader.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_StringReader__
+#define __java_io_StringReader__
+
+#pragma interface
+
+#include <java/io/Reader.h>
+#include <gcj/array.h>
+
+
+class java::io::StringReader : public ::java::io::Reader
+{
+
+public:
+ StringReader(::java::lang::String *);
+ virtual void close();
+ virtual void mark(jint);
+ virtual jboolean markSupported();
+ virtual jint read();
+ virtual jint read(JArray< jchar > *, jint, jint);
+ virtual jboolean ready();
+ virtual void reset();
+ virtual jlong skip(jlong);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::io::Reader)))) buf;
+ jint pos;
+ jint markedPos;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_StringReader__
diff --git a/gcc-4.8/libjava/java/io/StringWriter.h b/gcc-4.8/libjava/java/io/StringWriter.h
new file mode 100644
index 000000000..c2933e7af
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/StringWriter.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_StringWriter__
+#define __java_io_StringWriter__
+
+#pragma interface
+
+#include <java/io/Writer.h>
+#include <gcj/array.h>
+
+
+class java::io::StringWriter : public ::java::io::Writer
+{
+
+public:
+ virtual void close();
+ virtual void flush();
+ virtual ::java::lang::StringBuffer * getBuffer();
+ StringWriter();
+ StringWriter(jint);
+ virtual ::java::lang::String * toString();
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *, jint, jint);
+ virtual void write(::java::lang::String *);
+ virtual void write(::java::lang::String *, jint, jint);
+ virtual ::java::io::StringWriter * StringWriter$append(jchar);
+ virtual ::java::io::StringWriter * StringWriter$append(::java::lang::CharSequence *);
+ virtual ::java::io::StringWriter * StringWriter$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+ virtual ::java::io::Writer * Writer$append(jchar);
+private:
+ static const jint DEFAULT_BUFFER_SIZE = 16;
+ ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::io::Writer)))) buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_StringWriter__
diff --git a/gcc-4.8/libjava/java/io/SyncFailedException.h b/gcc-4.8/libjava/java/io/SyncFailedException.h
new file mode 100644
index 000000000..1088ca2dd
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/SyncFailedException.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_SyncFailedException__
+#define __java_io_SyncFailedException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::SyncFailedException : public ::java::io::IOException
+{
+
+public:
+ SyncFailedException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -2353342684412443330LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_SyncFailedException__
diff --git a/gcc-4.8/libjava/java/io/UTFDataFormatException.h b/gcc-4.8/libjava/java/io/UTFDataFormatException.h
new file mode 100644
index 000000000..48f8cf7a6
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/UTFDataFormatException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_UTFDataFormatException__
+#define __java_io_UTFDataFormatException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::UTFDataFormatException : public ::java::io::IOException
+{
+
+public:
+ UTFDataFormatException();
+ UTFDataFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 420743449228280612LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_UTFDataFormatException__
diff --git a/gcc-4.8/libjava/java/io/UnsupportedEncodingException.h b/gcc-4.8/libjava/java/io/UnsupportedEncodingException.h
new file mode 100644
index 000000000..6291af255
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/UnsupportedEncodingException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_UnsupportedEncodingException__
+#define __java_io_UnsupportedEncodingException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::io::UnsupportedEncodingException : public ::java::io::IOException
+{
+
+public:
+ UnsupportedEncodingException();
+ UnsupportedEncodingException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4274276298326136670LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_UnsupportedEncodingException__
diff --git a/gcc-4.8/libjava/java/io/VMConsole.h b/gcc-4.8/libjava/java/io/VMConsole.h
new file mode 100644
index 000000000..a75a123d4
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/VMConsole.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_VMConsole__
+#define __java_io_VMConsole__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::VMConsole : public ::java::lang::Object
+{
+
+public:
+ VMConsole();
+public: // actually package-private
+ static ::java::lang::String * readPassword(::java::io::Console *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_VMConsole__
diff --git a/gcc-4.8/libjava/java/io/VMConsole.java b/gcc-4.8/libjava/java/io/VMConsole.java
new file mode 100644
index 000000000..69c9df952
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/VMConsole.java
@@ -0,0 +1,44 @@
+/* VMConsole.java -- helper for java.io.Console
+ Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+public final class VMConsole
+{
+ static native String readPassword(Console con);
+}
diff --git a/gcc-4.8/libjava/java/io/VMObjectInputStream.h b/gcc-4.8/libjava/java/io/VMObjectInputStream.h
new file mode 100644
index 000000000..307dd551f
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/VMObjectInputStream.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_VMObjectInputStream__
+#define __java_io_VMObjectInputStream__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::VMObjectInputStream : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMObjectInputStream();
+ static ::java::lang::Object * allocateObject(::java::lang::Class *, ::java::lang::Class *, ::java::lang::reflect::Constructor *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_VMObjectInputStream__
diff --git a/gcc-4.8/libjava/java/io/VMObjectInputStream.java b/gcc-4.8/libjava/java/io/VMObjectInputStream.java
new file mode 100644
index 000000000..77bdf7170
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/VMObjectInputStream.java
@@ -0,0 +1,56 @@
+/* ObjectInputStream.java -- Class used to read serialized objects
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import gnu.classpath.Configuration;
+import java.lang.reflect.Constructor;
+
+final class VMObjectInputStream
+{
+ /**
+ * Allocates a new Object of type clazz but without running the
+ * default constructor on it. It then calls the given constructor on
+ * it. The given constructor method comes from the constr_clazz
+ * which is a super class of the given clazz.
+ */
+ static native Object allocateObject(Class clazz, Class constr_clazz,
+ Constructor constructor)
+ throws InstantiationException;
+}
diff --git a/gcc-4.8/libjava/java/io/VMObjectStreamClass.h b/gcc-4.8/libjava/java/io/VMObjectStreamClass.h
new file mode 100644
index 000000000..5f2ef2cb0
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/VMObjectStreamClass.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_VMObjectStreamClass__
+#define __java_io_VMObjectStreamClass__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::io::VMObjectStreamClass : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMObjectStreamClass();
+ static jboolean hasClassInitializer(::java::lang::Class *);
+ static void setDoubleNative(::java::lang::reflect::Field *, ::java::lang::Object *, jdouble);
+ static void setFloatNative(::java::lang::reflect::Field *, ::java::lang::Object *, jfloat);
+ static void setLongNative(::java::lang::reflect::Field *, ::java::lang::Object *, jlong);
+ static void setIntNative(::java::lang::reflect::Field *, ::java::lang::Object *, jint);
+ static void setShortNative(::java::lang::reflect::Field *, ::java::lang::Object *, jshort);
+ static void setCharNative(::java::lang::reflect::Field *, ::java::lang::Object *, jchar);
+ static void setByteNative(::java::lang::reflect::Field *, ::java::lang::Object *, jbyte);
+ static void setBooleanNative(::java::lang::reflect::Field *, ::java::lang::Object *, jboolean);
+ static void setObjectNative(::java::lang::reflect::Field *, ::java::lang::Object *, ::java::lang::Object *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_VMObjectStreamClass__
diff --git a/gcc-4.8/libjava/java/io/VMObjectStreamClass.java b/gcc-4.8/libjava/java/io/VMObjectStreamClass.java
new file mode 100644
index 000000000..3900855ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/VMObjectStreamClass.java
@@ -0,0 +1,140 @@
+/* VMObjectStreamClass.java -- VM helper functions for ObjectStreamClass
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import java.lang.reflect.Field;
+
+final class VMObjectStreamClass
+{
+ /**
+ * Returns true if CLAZZ has a static class initializer
+ * (a.k.a. <clinit>).
+ */
+ static native boolean hasClassInitializer (Class clazz);
+
+ /**
+ * Sets the value of the specified "double" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setDoubleNative(Field field, Object obj, double val);
+
+ /**
+ * Sets the value of the specified "float" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setFloatNative(Field field, Object obj, float val);
+
+ /**
+ * Sets the value of the specified "long" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setLongNative(Field field, Object obj, long val);
+
+ /**
+ * Sets the value of the specified "int" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setIntNative(Field field, Object obj, int val);
+
+ /**
+ * Sets the value of the specified "short" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setShortNative(Field field, Object obj, short val);
+
+ /**
+ * Sets the value of the specified "char" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setCharNative(Field field, Object obj, char val);
+
+ /**
+ * Sets the value of the specified "byte" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setByteNative(Field field, Object obj, byte val);
+
+ /**
+ * Sets the value of the specified "boolean" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setBooleanNative(Field field, Object obj, boolean val);
+
+ /**
+ * Sets the value of the specified object field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setObjectNative(Field field, Object obj, Object val);
+}
diff --git a/gcc-4.8/libjava/java/io/WriteAbortedException.h b/gcc-4.8/libjava/java/io/WriteAbortedException.h
new file mode 100644
index 000000000..712c04d0f
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/WriteAbortedException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_WriteAbortedException__
+#define __java_io_WriteAbortedException__
+
+#pragma interface
+
+#include <java/io/ObjectStreamException.h>
+
+class java::io::WriteAbortedException : public ::java::io::ObjectStreamException
+{
+
+public:
+ WriteAbortedException(::java::lang::String *, ::java::lang::Exception *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = -3326426625597282442LL;
+public:
+ ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::io::ObjectStreamException)))) detail;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_WriteAbortedException__
diff --git a/gcc-4.8/libjava/java/io/Writer.h b/gcc-4.8/libjava/java/io/Writer.h
new file mode 100644
index 000000000..148501ac6
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/Writer.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_io_Writer__
+#define __java_io_Writer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::io::Writer : public ::java::lang::Object
+{
+
+public: // actually protected
+ Writer();
+ Writer(::java::lang::Object *);
+public:
+ virtual void flush() = 0;
+ virtual void close() = 0;
+ virtual void write(jint);
+ virtual void write(JArray< jchar > *);
+ virtual void write(JArray< jchar > *, jint, jint) = 0;
+ virtual void write(::java::lang::String *);
+ virtual void write(::java::lang::String *, jint, jint);
+ virtual ::java::io::Writer * Writer$append(jchar);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+public: // actually protected
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lock;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_io_Writer__
diff --git a/gcc-4.8/libjava/java/io/natFilePosix.cc b/gcc-4.8/libjava/java/io/natFilePosix.cc
new file mode 100644
index 000000000..2c255beac
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/natFilePosix.cc
@@ -0,0 +1,509 @@
+// natFile.cc - Native part of File class for POSIX.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2008, 2012
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <errno.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <stdlib.h>
+#ifdef HAVE_DIRENT_H
+#include <dirent.h>
+#endif
+#include <string.h>
+#include <utime.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/io/File.h>
+#include <java/io/IOException.h>
+#include <java/util/ArrayList.h>
+#include <java/lang/String.h>
+#include <java/io/FilenameFilter.h>
+#include <java/io/FileFilter.h>
+#include <java/lang/System.h>
+
+jboolean
+java::io::File::access (jint query)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+ JvAssert (query == READ || query == WRITE || query == EXISTS
+ || query == EXEC);
+#ifdef HAVE_ACCESS
+ int mode;
+ if (query == READ)
+ mode = R_OK;
+ else if (query == WRITE)
+ mode = W_OK;
+ else if (query == EXISTS)
+ mode = F_OK;
+ else
+ mode = X_OK;
+ return ::access (buf, mode) == 0;
+#else
+ return false;
+#endif
+}
+
+jboolean
+java::io::File::stat (jint query)
+{
+ if (query == ISHIDDEN)
+ return getName()->charAt(0) == '.';
+
+#ifdef HAVE_STAT
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+ struct stat sb;
+ if (::stat (buf, &sb))
+ return false;
+
+ JvAssert (query == DIRECTORY || query == ISFILE);
+ jboolean r = S_ISDIR (sb.st_mode);
+ return query == DIRECTORY ? r : ! r;
+#else
+ return false;
+#endif
+}
+
+jlong
+java::io::File::attr (jint query)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+#ifdef HAVE_STAT
+ struct stat sb;
+ // FIXME: not sure about return value here.
+ if (::stat (buf, &sb))
+ return 0;
+
+ JvAssert (query == MODIFIED || query == LENGTH);
+ return query == MODIFIED ? (jlong)sb.st_mtime * 1000 : sb.st_size;
+#else
+ // There's no good choice here.
+ return 23;
+#endif
+}
+
+// These two methods are used to maintain dynamically allocated
+// buffers for getCanonicalPath without the overhead of calling
+// realloc every time a buffer is modified. Buffers are sized
+// at the smallest multiple of CHUNKSIZ that is greater than or
+// equal to the desired length. The default CHUNKSIZ is 256,
+// longer than most paths, so in most cases a getCanonicalPath
+// will require only one malloc per buffer.
+
+#define CHUNKLOG 8
+#define CHUNKSIZ (1 << CHUNKLOG)
+
+static int
+nextChunkSize (int size)
+{
+ return ((size >> CHUNKLOG) + ((size & (CHUNKSIZ - 1)) ? 1 : 0)) << CHUNKLOG;
+}
+
+static char *
+maybeGrowBuf (char *buf, int *size, int required)
+{
+ if (required > *size)
+ {
+ *size = nextChunkSize (required);
+ buf = (char *) _Jv_Realloc (buf, *size);
+ }
+ return buf;
+}
+
+// Return a canonical representation of the pathname of this file. On
+// the GNU system this involves the removal of redundant separators,
+// references to "." and "..", and symbolic links.
+//
+// The conversion proceeds on a component-by-component basis: symbolic
+// links and references to ".." are resolved as and when they occur.
+// This means that if "/foo/bar" is a symbolic link to "/baz" then the
+// canonical form of "/foo/bar/.." is "/" and not "/foo".
+//
+// In order to mimic the behaviour of proprietary JVMs, non-existant
+// path components are allowed (a departure from the normal GNU system
+// convention). This means that if "/foo/bar" is a symbolic link to
+// "/baz", the canonical form of "/non-existant-directory/../foo/bar"
+// is "/baz".
+
+jstring
+java::io::File::getCanonicalPath (void)
+{
+ jstring path = getAbsolutePath ();
+
+ int len = JvGetStringUTFLength (path);
+ int srcl = nextChunkSize (len + 1);
+ char *src = (char *) _Jv_Malloc (srcl);
+ JvGetStringUTFRegion (path, 0, path->length(), src);
+ src[len] = '\0';
+ int srci = 1;
+
+ int dstl = nextChunkSize (2);
+ char *dst = (char *) _Jv_Malloc (dstl);
+ dst[0] = '/';
+ int dsti = 1;
+
+ bool fschecks = true;
+
+ while (src[srci] != '\0')
+ {
+ // Skip slashes.
+ while (src[srci] == '/')
+ srci++;
+ int tmpi = srci;
+ // Find next slash.
+ while (src[srci] != '/' && src[srci] != '\0')
+ srci++;
+ if (srci == tmpi)
+ // We hit the end.
+ break;
+ len = srci - tmpi;
+
+ // Handle "." and "..".
+ if (len == 1 && src[tmpi] == '.')
+ continue;
+ if (len == 2 && src[tmpi] == '.' && src[tmpi + 1] == '.')
+ {
+ while (dsti > 1 && dst[dsti - 1] != '/')
+ dsti--;
+ if (dsti != 1)
+ dsti--;
+ // Reenable filesystem checking if disabled, as we might
+ // have reversed over whatever caused the problem before.
+ // At least one proprietary JVM has inconsistencies because
+ // it does not do this.
+ fschecks = true;
+ continue;
+ }
+
+ // Handle real path components.
+ dst = maybeGrowBuf (dst, &dstl, dsti + (dsti > 1 ? 1 : 0) + len + 1);
+ int dsti_save = dsti;
+ if (dsti > 1)
+ dst[dsti++] = '/';
+ strncpy (&dst[dsti], &src[tmpi], len);
+ dsti += len;
+ if (fschecks == false)
+ continue;
+
+#if defined (HAVE_LSTAT) && defined (HAVE_READLINK)
+ struct stat sb;
+ dst[dsti] = '\0';
+ if (::lstat (dst, &sb) == 0)
+ {
+ if (S_ISLNK (sb.st_mode))
+ {
+ int tmpl = CHUNKSIZ;
+ char *tmp = (char *) _Jv_Malloc (tmpl);
+
+ while (1)
+ {
+ tmpi = ::readlink (dst, tmp, tmpl);
+ if (tmpi < 1)
+ {
+ _Jv_Free (src);
+ _Jv_Free (dst);
+ _Jv_Free (tmp);
+ throw new IOException (
+ JvNewStringLatin1 ("readlink failed"));
+ }
+ if (tmpi < tmpl)
+ break;
+ tmpl += CHUNKSIZ;
+ tmp = (char *) _Jv_Realloc (tmp, tmpl);
+ }
+
+ // Prepend the link's path to src.
+ tmp = maybeGrowBuf (tmp, &tmpl, tmpi + strlen (&src[srci]) + 1);
+ strcpy(&tmp[tmpi], &src[srci]);
+ _Jv_Free (src);
+ src = tmp;
+ srcl = tmpl;
+ srci = 0;
+
+ // Either replace or append dst depending on whether the
+ // link is relative or absolute.
+ dsti = src[0] == '/' ? 1 : dsti_save;
+ }
+ }
+ else
+ {
+ // Something doesn't exist, or we don't have permission to
+ // read it, or a previous path component is a directory, or
+ // a symlink is looped. Whatever, we can't check the
+ // filesystem any more.
+ fschecks = false;
+ }
+#endif // HAVE_LSTAT && HAVE_READLINK
+ }
+ dst[dsti] = '\0';
+
+ // FIXME: what encoding to assume for file names? This affects many
+ // calls.
+ path = JvNewStringUTF (dst);
+ _Jv_Free (src);
+ _Jv_Free (dst);
+ return path;
+}
+
+jboolean
+java::io::File::isAbsolute (void)
+{
+ return path->length() > 0 && path->charAt(0) == '/';
+}
+
+jobjectArray
+java::io::File::performList (java::io::FilenameFilter *filter,
+ java::io::FileFilter *fileFilter,
+ java::lang::Class *result_type)
+{
+ /* Some systems have dirent.h, but no directory reading functions like
+ opendir. */
+#if defined(HAVE_DIRENT_H) && defined(HAVE_OPENDIR)
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+ DIR *dir = opendir (buf);
+ if (! dir)
+ return NULL;
+
+ java::util::ArrayList *list = new java::util::ArrayList ();
+ struct dirent *d;
+ while ((d = readdir (dir)) != NULL)
+ {
+ // Omit "." and "..".
+ if (d->d_name[0] == '.'
+ && (d->d_name[1] == '\0'
+ || (d->d_name[1] == '.' && d->d_name[2] == '\0')))
+ continue;
+
+ jstring name = JvNewStringUTF (d->d_name);
+ if (filter && ! filter->accept(this, name))
+ continue;
+
+ if (result_type == &java::io::File::class$)
+ {
+ java::io::File *file = new java::io::File (this, name);
+ if (fileFilter && ! fileFilter->accept(file))
+ continue;
+
+ list->add(file);
+ }
+ else
+ list->add(name);
+ }
+
+ closedir (dir);
+
+ jobjectArray ret = JvNewObjectArray (list->size(), result_type, NULL);
+ list->toArray(ret);
+ return ret;
+#else /* HAVE_DIRENT_H && HAVE_OPENDIR */
+ return NULL;
+#endif /* HAVE_DIRENT_H && HAVE_OPENDIR */
+}
+
+jboolean
+java::io::File::performMkdir (void)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+#ifdef HAVE_MKDIR
+ return ::mkdir (buf, 0755) == 0;
+#else
+ return false;
+#endif
+}
+
+jboolean
+java::io::File::setFilePermissions (jboolean enable,
+ jboolean ownerOnly,
+ jint permissions)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+ JvAssert (permissions == READ || permissions == WRITE || permissions == EXEC);
+#if defined (HAVE_STAT) && defined (HAVE_CHMOD)
+ mode_t mode = 0;
+
+ struct stat sb;
+ if (::stat (buf, &sb))
+ return false;
+
+ if (ownerOnly)
+ {
+ if (permissions == READ)
+ mode |= S_IRUSR;
+ else if (permissions == WRITE)
+ mode |= S_IWUSR;
+ else if (permissions == EXEC)
+ mode |= S_IXUSR;
+ }
+ else
+ {
+ if (permissions == READ)
+ mode |= (S_IRUSR | S_IRGRP | S_IROTH);
+ else if (permissions == WRITE)
+ mode |= (S_IWUSR | S_IWGRP | S_IWOTH);
+ else if (permissions == EXEC)
+ mode |= (S_IXUSR | S_IXGRP | S_IXOTH);
+ }
+
+ if (enable)
+ mode = sb.st_mode | mode;
+ else
+ mode = sb.st_mode & ~mode;
+
+ if (::chmod(buf, mode) < 0)
+ return false;
+ return true;
+#else
+ return false;
+#endif
+}
+
+jboolean
+java::io::File::performSetReadOnly (void)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+#if defined (HAVE_STAT) && defined (HAVE_CHMOD)
+ struct stat sb;
+ if (::stat (buf, &sb))
+ return false;
+
+ if (::chmod(buf, sb.st_mode & 0555))
+ return false;
+ return true;
+#else
+ return false;
+#endif
+}
+
+JArray< ::java::io::File *>*
+java::io::File::performListRoots ()
+{
+ ::java::io::File *f = new ::java::io::File (JvNewStringLatin1 ("/"));
+ JArray<java::io::File *> *unixroot
+ = reinterpret_cast <JArray<java::io::File *>*>
+ (JvNewObjectArray (1, &java::io::File::class$, f));
+ elements (unixroot) [0] = f;
+ return unixroot;
+}
+
+jboolean
+java::io::File::performRenameTo (File *dest)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+ char *buf2
+ = (char *) __builtin_alloca (JvGetStringUTFLength (dest->path) + 1);
+ total = JvGetStringUTFRegion (dest->path, 0, dest->path->length(), buf2);
+ buf2[total] = '\0';
+
+#ifdef HAVE_RENAME
+ return ::rename (buf, buf2) == 0;
+#else
+ return false;
+#endif
+}
+
+jboolean
+java::io::File::performSetLastModified (jlong time)
+{
+#ifdef HAVE_UTIME
+ utimbuf tb;
+
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+ tb.actime = time / 1000;
+ tb.modtime = time / 1000;
+ return (::utime (buf, &tb) == 0);
+#else
+ return false;
+#endif
+}
+
+jboolean
+java::io::File::performCreate (void)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+ int fd = ::open (buf, O_CREAT | O_EXCL, 0644);
+
+ if (fd < 0)
+ {
+ if (errno == EEXIST)
+ return false;
+ throw new IOException (JvNewStringLatin1 (strerror (errno)));
+ }
+ else
+ {
+ ::close (fd);
+ return true;
+ }
+}
+
+jboolean
+java::io::File::performDelete (void)
+{
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
+ buf[total] = '\0';
+
+#ifdef HAVE_UNLINK
+#ifdef HAVE_RMDIR
+ if (! ::rmdir (buf))
+ return true;
+ if (errno == ENOTDIR)
+#endif // HAVE_RMDIR
+ return ::unlink (buf) == 0;
+#endif // HAVE_UNLINK
+ return false;
+}
+
+void
+java::io::File::init_native ()
+{
+#ifdef MAXPATHLEN
+ maxPathLen = MAXPATHLEN;
+#else
+ /* Some systems do not have a limit on the length of a file name,
+ the GNU system is one such example. */
+ maxPathLen = 0;
+#endif
+ caseSensitive = true;
+}
diff --git a/gcc-4.8/libjava/java/io/natFileWin32.cc b/gcc-4.8/libjava/java/io/natFileWin32.cc
new file mode 100644
index 000000000..a8e887892
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/natFileWin32.cc
@@ -0,0 +1,374 @@
+// natFileWin32.cc - Native part of File class for Win32.
+
+/* Copyright (C) 1998, 1999, 2002, 2003, 2012 Free Software Foundation, Inc.
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#undef STRICT
+
+#include <java/io/File.h>
+#include <java/io/IOException.h>
+#include <java/util/Vector.h>
+#include <java/lang/String.h>
+#include <java/io/FilenameFilter.h>
+#include <java/io/FileFilter.h>
+#include <java/lang/System.h>
+
+// Java timestamps are milliseconds since the UNIX epoch (00:00:00 UTC on
+// January 1, 1970) while Win32 file-times are 100-nanosecond intervals
+// since the Win32 epoch (00:00:00 UTC on January 1, 1601). The following
+// constant represents the number of milliseconds to be added to a
+// Java timestamp to base it on the Win32 epoch.
+//
+// There were 369 years between 1601 and 1970, including 89 leap years
+// (since 1700, 1800 and 1900 were not leap years):
+//
+// (89*366 + 280*365) days * 86400 seconds/day = 11644473600 seconds
+//
+#define WIN32_EPOCH_MILLIS 11644473600000LL
+
+jboolean
+java::io::File::access (jint query)
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ JvAssert (query == READ || query == WRITE || query == EXISTS
+ || query == EXEC);
+
+ // FIXME: Is it possible to differentiate between existing and reading?
+ // If the file exists but cannot be read because of the secuirty attributes
+ // on an NTFS disk this wont work (it reports it can be read but cant)
+ // Could we use something from the security API?
+ DWORD attributes = GetFileAttributes (canon);
+ // FIXME: handle EXEC
+ if (query == EXEC)
+ return false;
+ if ((query == EXISTS) || (query == READ))
+ return (attributes == 0xffffffff) ? false : true;
+ else
+ return ((attributes != 0xffffffff) &&
+ ((attributes & FILE_ATTRIBUTE_READONLY) == 0)) ? true : false;
+}
+
+jboolean
+java::io::File::stat (jint query)
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ JvAssert (query == DIRECTORY || query == ISFILE);
+
+ DWORD attributes = GetFileAttributes (canon);
+ if (attributes == 0xffffffff)
+ return false;
+
+ if (query == DIRECTORY)
+ return attributes & FILE_ATTRIBUTE_DIRECTORY ? true : false;
+ else
+ return attributes & FILE_ATTRIBUTE_DIRECTORY ? false : true;
+}
+
+jlong
+java::io::File::attr (jint query)
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ JvAssert (query == MODIFIED || query == LENGTH);
+
+ WIN32_FIND_DATA info;
+ HANDLE sHandle;
+ if ( ( sHandle = FindFirstFile( canon, &info)) == INVALID_HANDLE_VALUE)
+ return 0;
+
+ FindClose( sHandle);
+
+ if (query == LENGTH)
+ return ((long long)info.nFileSizeHigh) << 32
+ | (unsigned long long)info.nFileSizeLow;
+ else
+ {
+ // The file time as returned by Windows is in terms of the number
+ // of 100-nanosecond intervals since 00:00:00 UTC, January 1, 1601.
+ return (((((long long)info.ftLastWriteTime.dwHighDateTime) << 32)
+ | ((unsigned long long)info.ftLastWriteTime.dwLowDateTime))
+ - WIN32_EPOCH_MILLIS*10000LL) / 10000LL;
+ }
+}
+
+jstring
+java::io::File::getCanonicalPath (void)
+{
+ JV_TEMP_STRING_WIN32 (cpath, path);
+
+ // If the filename is blank, use the current directory.
+ LPCTSTR thepath = cpath.buf();
+ if (*thepath == 0)
+ thepath = _T(".");
+
+ LPTSTR unused;
+ TCHAR buf2[MAX_PATH];
+ if(!GetFullPathName(thepath, MAX_PATH, buf2, &unused))
+ throw new IOException (JvNewStringLatin1 ("GetFullPathName failed"));
+
+ return _Jv_Win32NewString (buf2);
+}
+
+jboolean
+java::io::File::isAbsolute (void)
+{
+ // See if the path represents a Windows UNC network path.
+ if (path->length () > 2
+ && (path->charAt (0) == '\\') && (path->charAt (1) == '\\'))
+ return true;
+
+ // Note that the path is not an absolute path even if it starts with
+ // a '/' or a '\' because it lacks a drive specifier.
+
+ if (path->length() < 3)
+ return false;
+ // Hard-code A-Za-z because Windows (I think) can't use non-ASCII
+ // letters as drive names.
+ if ((path->charAt(0) < 'a' || path->charAt(0) > 'z')
+ && (path->charAt(0) < 'A' || path->charAt(0) > 'Z'))
+ return false;
+ return (path->charAt(1) == ':'
+ && (path->charAt(2) == '/' || path->charAt(2) == '\\'));
+}
+
+void java::io::File::init_native ()
+{
+ maxPathLen = MAX_PATH;
+ caseSensitive = false;
+}
+
+jobjectArray
+java::io::File::performList (java::io::FilenameFilter *filter,
+ java::io::FileFilter *fileFilter,
+ java::lang::Class *clazz)
+{
+ jstring canon = getCanonicalPath();
+ if (! canon)
+ return NULL;
+
+ int len = canon->length();
+ TCHAR buf[len + 5];
+
+ JV_TEMP_STRING_WIN32(canonstr, canon);
+
+ _tcscpy(buf, canonstr);
+ if (buf[len - 1] == _T('\\'))
+ _tcscpy (&buf[len], _T("*.*"));
+ else
+ _tcscpy (&buf[len], _T("\\*.*"));
+
+ WIN32_FIND_DATA data;
+ HANDLE handle = FindFirstFile (buf, &data);
+ if (handle == INVALID_HANDLE_VALUE)
+ return NULL;
+
+ java::util::Vector *vec = new java::util::Vector ();
+
+ do
+ {
+ if (_tcscmp (data.cFileName, _T(".")) &&
+ _tcscmp (data.cFileName, _T("..")))
+ {
+ jstring name = _Jv_Win32NewString (data.cFileName);
+
+ if (filter && !filter->accept(this, name))
+ continue;
+ if (clazz == &java::io::File::class$)
+ {
+ java::io::File *file = new java::io::File (this, name);
+ if (fileFilter && !fileFilter->accept(file))
+ continue;
+ vec->addElement (file);
+ }
+ else
+ vec->addElement (name);
+ }
+ }
+ while (FindNextFile (handle, &data));
+
+ if (GetLastError () != ERROR_NO_MORE_FILES)
+ return NULL;
+
+ FindClose (handle);
+
+ jobjectArray ret = JvNewObjectArray (vec->size(), clazz, NULL);
+ vec->copyInto (ret);
+ return ret;
+}
+
+jboolean
+java::io::File::setFilePermissions (jboolean enable,
+ jboolean ownerOnly,
+ jint permissions)
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ DWORD attrs = GetFileAttributes (canon);
+ if (attrs != INVALID_FILE_ATTRIBUTES)
+ {
+ // FIXME: implement
+ return false;
+ }
+ else
+ return false;
+}
+
+jboolean
+java::io::File::performMkdir (void)
+{
+ JV_TEMP_STRING_WIN32 (cpath, path);
+ return (CreateDirectory(cpath, NULL)) ? true : false;
+}
+
+jboolean
+java::io::File::performRenameTo (File *dest)
+{
+ JV_TEMP_STRING_WIN32 (pathFrom, path);
+ JV_TEMP_STRING_WIN32 (pathTo, dest->path);
+ return (MoveFile(pathFrom, pathTo)) ? true : false;
+}
+
+jboolean
+java::io::File::performDelete ()
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ DWORD attributes = GetFileAttributes (canon);
+ if (attributes == 0xffffffff)
+ return false;
+
+ if (attributes & FILE_ATTRIBUTE_DIRECTORY)
+ return (RemoveDirectory (canon)) ? true : false;
+ else
+ return (DeleteFile (canon)) ? true : false;
+}
+
+jboolean java::io::File::performCreate (void)
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ HANDLE h = CreateFile (canon, 0, 0, NULL, CREATE_NEW,
+ FILE_ATTRIBUTE_NORMAL, NULL);
+ if (h != INVALID_HANDLE_VALUE)
+ {
+ CloseHandle (h);
+ return true;
+ }
+ else
+ {
+ if (GetLastError () == ERROR_ALREADY_EXISTS)
+ return false;
+ else
+ throw new IOException (JvNewStringLatin1 ("CreateFile failed"));
+ }
+}
+
+jboolean java::io::File::performSetReadOnly ()
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ DWORD attrs = GetFileAttributes (canon);
+ if (attrs != INVALID_FILE_ATTRIBUTES)
+ {
+ if (SetFileAttributes (canon, attrs | FILE_ATTRIBUTE_READONLY) != 0)
+ return true;
+ else
+ return false;
+ }
+ else
+ return false;
+}
+
+jboolean java::io::File::performSetLastModified (jlong time)
+{
+ JV_TEMP_STRING_WIN32 (canon, getCanonicalPath());
+ if (!canon)
+ return false;
+
+ FILETIME modTime;
+ long long mTime100ns = ((long long) time /* Ha! */
+ + WIN32_EPOCH_MILLIS) * 10000LL;
+
+ modTime.dwLowDateTime = (DWORD) mTime100ns;
+ modTime.dwHighDateTime = (DWORD) (mTime100ns >> 32);
+
+ jboolean retVal = false;
+ HANDLE h = CreateFile (canon, FILE_WRITE_ATTRIBUTES,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL, OPEN_EXISTING, 0, NULL);
+
+ if (h != INVALID_HANDLE_VALUE)
+ {
+ if (SetFileTime (h, NULL, &modTime, &modTime) != 0)
+ retVal = true;
+
+ CloseHandle (h);
+ }
+
+ return retVal;
+}
+
+JArray<java::io::File*>* java::io::File::performListRoots ()
+{
+ DWORD drivesBitmap = GetLogicalDrives ();
+ DWORD mask;
+
+ // Possible drive letters are from ASCII 'A'-'Z'.
+ int numDrives = 0;
+ mask = 1;
+ for (int i = 0; i < 26; i++)
+ {
+ if ((drivesBitmap & mask) != 0)
+ numDrives++;
+ mask <<= 1;
+ }
+
+ JArray<java::io::File *> *roots
+ = reinterpret_cast <JArray<java::io::File *>*>
+ (JvNewObjectArray (numDrives, &java::io::File::class$, NULL));
+
+ ::java::io::File **rootsArray = elements (roots);
+
+ char aDriveRoot[] = {'A', ':', '\\', '\0'};
+ mask = 1;
+ for (int i = 0, j = 0; i < 26; i++)
+ {
+ if ((drivesBitmap & mask) != 0)
+ {
+ rootsArray[j]
+ = new ::java::io::File (JvNewStringLatin1 (aDriveRoot));
+ j++;
+ }
+ mask <<= 1;
+ aDriveRoot[0]++;
+ }
+
+ return roots;
+}
diff --git a/gcc-4.8/libjava/java/io/natVMConsole.cc b/gcc-4.8/libjava/java/io/natVMConsole.cc
new file mode 100644
index 000000000..4007c8632
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/natVMConsole.cc
@@ -0,0 +1,49 @@
+// natVMConsole.cc - Native part of VMConsole class.
+
+/* Copyright (C) 2012
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <termios.h>
+#include <unistd.h>
+
+#include <gcj/cni.h>
+
+#include <java/io/Console.h>
+#include <java/io/VMConsole.h>
+
+#ifndef IUCLC
+#define IUCLC 0
+#endif
+
+#define TERMIOS_ECHO_IFLAGS (IUCLC|IXON|IXOFF|IXANY)
+#define TERMIOS_ECHO_LFLAGS (ECHO|ECHOE|ECHOK|ECHONL|TOSTOP)
+
+jstring
+java::io::VMConsole::readPassword(::java::io::Console *con)
+{
+ struct termios oldt, newt;
+ jstring result;
+
+ tcgetattr (STDIN_FILENO, &oldt);
+
+ tcgetattr (STDIN_FILENO, &newt);
+
+ newt.c_iflag &= ~TERMIOS_ECHO_IFLAGS;
+ newt.c_lflag &= ~TERMIOS_ECHO_LFLAGS;
+
+ tcsetattr (STDIN_FILENO, TCSANOW, &newt);
+
+ result = con->readLine ();
+
+ tcsetattr (STDIN_FILENO, TCSANOW, &oldt);
+
+ return result;
+}
diff --git a/gcc-4.8/libjava/java/io/natVMObjectInputStream.cc b/gcc-4.8/libjava/java/io/natVMObjectInputStream.cc
new file mode 100644
index 000000000..eccf0eb02
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/natVMObjectInputStream.cc
@@ -0,0 +1,71 @@
+// natVMObjectInputStream.cc - Native part of VMObjectInputStream class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2005, 2006, 2007
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <gcj/method.h>
+
+#include <java/io/VMObjectInputStream.h>
+#include <java/io/IOException.h>
+#include <java/lang/Class.h>
+#include <java/lang/reflect/Modifier.h>
+#include <java/lang/reflect/Method.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/SecurityManager.h>
+#include <java/lang/reflect/Constructor.h>
+#include <java/lang/reflect/Method.h>
+#include <java-stack.h>
+
+#ifdef __GCJ_DEBUG
+#include <java/lang/System.h>
+#include <java/io/PrintStream.h>
+#endif
+
+jobject
+java::io::VMObjectInputStream::allocateObject (jclass klass, jclass,
+ ::java::lang::reflect::Constructor *ctr)
+{
+ jobject obj = NULL;
+ using namespace java::lang::reflect;
+
+ try
+ {
+ JvAssert (klass && ! klass->isArray ());
+ if (klass->isInterface() || Modifier::isAbstract(klass->getModifiers()))
+ obj = NULL;
+ else
+ {
+ obj = _Jv_AllocObject (klass);
+ }
+ }
+ catch (jthrowable t)
+ {
+ return NULL;
+ }
+
+ jmethodID meth = _Jv_FromReflectedConstructor (ctr);
+
+ // This is a bit inefficient, and a bit of a hack, since we don't
+ // actually use the Method and since what is returned isn't
+ // technically a Method. We can't use Method.invoke as it looks up
+ // the declared method.
+ JArray<jclass> *arg_types
+ = (JArray<jclass> *) JvNewObjectArray (0, &java::lang::Class::class$,
+ NULL);
+
+ // We lie about this being a constructor. If we put `true' here
+ // then _Jv_CallAnyMethodA would try to allocate the object for us.
+ _Jv_CallAnyMethodA (obj, JvPrimClass (void), meth, false, arg_types, NULL);
+
+ return obj;
+}
diff --git a/gcc-4.8/libjava/java/io/natVMObjectStreamClass.cc b/gcc-4.8/libjava/java/io/natVMObjectStreamClass.cc
new file mode 100644
index 000000000..847b540f0
--- /dev/null
+++ b/gcc-4.8/libjava/java/io/natVMObjectStreamClass.cc
@@ -0,0 +1,87 @@
+// natVMObjectStreamClass.cc - Native part of VMObjectStreamClass class.
+
+/* Copyright (C) 2003 Free Software Foundation
+
+ This VMObjectStreamClass is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for
+details. */
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/io/VMObjectStreamClass.h>
+#include <java/lang/Class.h>
+#include <java/lang/reflect/Field.h>
+
+using namespace java::lang::reflect;
+
+jboolean
+java::io::VMObjectStreamClass::hasClassInitializer (jclass klass)
+{
+ if (klass->isPrimitive())
+ return false;
+ _Jv_Method *meth = _Jv_GetMethodLocal(klass, gcj::clinit_name,
+ gcj::void_signature);
+ return (meth != NULL);
+}
+
+void
+java::io::VMObjectStreamClass::setDoubleNative (Field *f, jobject obj,
+ jdouble val)
+{
+ f->setDouble (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setFloatNative (Field *f, jobject obj,
+ jfloat val)
+{
+ f->setFloat (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setLongNative (Field *f, jobject obj, jlong val)
+{
+ f->setLong (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setIntNative (Field *f, jobject obj, jint val)
+{
+ f->setInt (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setShortNative (Field *f, jobject obj,
+ jshort val)
+{
+ f->setShort (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setCharNative (Field *f, jobject obj, jchar val)
+{
+ f->setChar (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setByteNative (Field *f, jobject obj, jbyte val)
+{
+ f->setByte (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setBooleanNative (Field *f, jobject obj,
+ jboolean val)
+{
+ f->setBoolean (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setObjectNative (Field *f, jobject obj,
+ jobject val)
+{
+ f->set (NULL, obj, val, f->getType(), false);
+}
diff --git a/gcc-4.8/libjava/java/lang/AbstractMethodError.h b/gcc-4.8/libjava/java/lang/AbstractMethodError.h
new file mode 100644
index 000000000..92a757da2
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/AbstractMethodError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_AbstractMethodError__
+#define __java_lang_AbstractMethodError__
+
+#pragma interface
+
+#include <java/lang/IncompatibleClassChangeError.h>
+
+class java::lang::AbstractMethodError : public ::java::lang::IncompatibleClassChangeError
+{
+
+public:
+ AbstractMethodError();
+ AbstractMethodError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -1654391082989018462LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_AbstractMethodError__
diff --git a/gcc-4.8/libjava/java/lang/AbstractStringBuffer.h b/gcc-4.8/libjava/java/lang/AbstractStringBuffer.h
new file mode 100644
index 000000000..256004c24
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/AbstractStringBuffer.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_AbstractStringBuffer__
+#define __java_lang_AbstractStringBuffer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::AbstractStringBuffer : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractStringBuffer();
+ AbstractStringBuffer(jint);
+ AbstractStringBuffer(::java::lang::String *);
+ AbstractStringBuffer(::java::lang::CharSequence *);
+public:
+ virtual void ensureCapacity(jint);
+ virtual void setLength(jint);
+ virtual jchar charAt(jint);
+ virtual jint codePointAt(jint);
+ virtual jint codePointBefore(jint);
+ virtual void getChars(jint, jint, JArray< jchar > *, jint);
+ virtual void setCharAt(jint, jchar);
+ virtual ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+ virtual ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+ virtual ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+ virtual ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+ virtual ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * append(jboolean);
+ virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+ virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
+ virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * append(jint);
+ virtual ::java::lang::AbstractStringBuffer * append(jlong);
+ virtual ::java::lang::AbstractStringBuffer * append(jfloat);
+ virtual ::java::lang::AbstractStringBuffer * append(jdouble);
+ virtual ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
+ virtual ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+ virtual ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+ virtual jint indexOf(::java::lang::String *);
+ virtual jint indexOf(::java::lang::String *, jint);
+ virtual jint lastIndexOf(::java::lang::String *);
+ virtual jint lastIndexOf(::java::lang::String *, jint);
+ virtual ::java::lang::AbstractStringBuffer * reverse();
+ virtual void trimToSize();
+ virtual jint codePointCount(jint, jint);
+ virtual jint offsetByCodePoints(jint, jint);
+public: // actually package-private
+ virtual void ensureCapacity_unsynchronized(jint);
+private:
+ jboolean regionMatches(jint, ::java::lang::String *);
+public:
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+ virtual jint length() = 0;
+ virtual ::java::lang::CharSequence * subSequence(jint, jint) = 0;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ JArray< jchar > * value;
+private:
+ static const jint DEFAULT_CAPACITY = 16;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_AbstractStringBuffer__
diff --git a/gcc-4.8/libjava/java/lang/AbstractStringBuffer.java b/gcc-4.8/libjava/java/lang/AbstractStringBuffer.java
new file mode 100644
index 000000000..fe128b8af
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/AbstractStringBuffer.java
@@ -0,0 +1,1027 @@
+/* AbstractStringBuffer.java -- Growable strings
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on gnu.classpath.ClasspathStringBuffer but
+ * is package-private to java.lang so it can be used as the basis
+ * for StringBuffer and StringBuilder.
+ * If you modify this, please consider also modifying that code.
+ */
+abstract class AbstractStringBuffer
+ implements Serializable, CharSequence, Appendable
+{
+
+ /**
+ * Index of next available character (and thus the size of the current
+ * string contents). Note that this has permissions set this way so that
+ * String can get the value.
+ *
+ * @serial the number of characters in the buffer
+ */
+ int count;
+
+ /**
+ * The buffer. Note that this has permissions set this way so that String
+ * can get the value.
+ *
+ * @serial the buffer
+ */
+ char[] value;
+
+ /**
+ * The default capacity of a buffer.
+ */
+ private static final int DEFAULT_CAPACITY = 16;
+
+ /**
+ * Create a new AbstractStringBuffer with default capacity 16.
+ */
+ AbstractStringBuffer()
+ {
+ this(DEFAULT_CAPACITY);
+ }
+
+ /**
+ * Create an empty <code>StringBuffer</code> with the specified initial
+ * capacity.
+ *
+ * @param capacity the initial capacity
+ * @throws NegativeArraySizeException if capacity is negative
+ */
+ AbstractStringBuffer(int capacity)
+ {
+ value = new char[capacity];
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>String</code>. Initial capacity will be the size of the
+ * String plus 16.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ AbstractStringBuffer(String str)
+ {
+ count = str.count;
+ value = new char[count + DEFAULT_CAPACITY];
+ str.getChars(0, count, value, 0);
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>CharSequence</code>. Initial capacity will be the
+ * length of the sequence plus 16; if the sequence reports a length
+ * less than or equal to 0, then the initial capacity will be 16.
+ *
+ * @param seq the initializing <code>CharSequence</code>
+ * @throws NullPointerException if str is null
+ * @since 1.5
+ */
+ AbstractStringBuffer(CharSequence seq)
+ {
+ int len = seq.length();
+ count = len <= 0 ? 0 : len;
+ value = new char[count + DEFAULT_CAPACITY];
+ for (int i = 0; i < len; ++i)
+ value[i] = seq.charAt(i);
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuffer</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ public void ensureCapacity(int minimumCapacity)
+ {
+ ensureCapacity_unsynchronized(minimumCapacity);
+ }
+
+ /**
+ * Set the length of this StringBuffer. If the new length is greater than
+ * the current length, all the new characters are set to '\0'. If the new
+ * length is less than the current length, the first <code>newLength</code>
+ * characters of the old array will be preserved, and the remaining
+ * characters are truncated.
+ *
+ * @param newLength the new length
+ * @throws IndexOutOfBoundsException if the new length is negative
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #length()
+ */
+ public void setLength(int newLength)
+ {
+ if (newLength < 0)
+ throw new StringIndexOutOfBoundsException(newLength);
+
+ int valueLength = value.length;
+
+ /* Always call ensureCapacity_unsynchronized in order to preserve
+ copy-on-write semantics. */
+ ensureCapacity_unsynchronized(newLength);
+
+ if (newLength < valueLength)
+ {
+ /* If the StringBuffer's value just grew, then we know that
+ value is newly allocated and the region between count and
+ newLength is filled with '\0'. */
+ count = newLength;
+ }
+ else
+ {
+ /* The StringBuffer's value doesn't need to grow. However,
+ we should clear out any cruft that may exist. */
+ while (count < newLength)
+ value[count++] = '\0';
+ }
+ }
+
+ /**
+ * Get the character at the specified index.
+ *
+ * @param index the index of the character to get, starting at 0
+ * @return the character at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public char charAt(int index)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ return value[index];
+ }
+
+ /**
+ * Get the code point at the specified index. This is like #charAt(int),
+ * but if the character is the start of a surrogate pair, and the
+ * following character completes the pair, then the corresponding
+ * supplementary code point is returned.
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointAt(int index)
+ {
+ return Character.codePointAt(value, index, count);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(int), but checks the characters at <code>index-1</code> and
+ * <code>index-2</code> to see if they form a supplementary code point.
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointBefore(int index)
+ {
+ // Character.codePointBefore() doesn't perform this check. We
+ // could use the CharSequence overload, but this is just as easy.
+ if (index >= count)
+ throw new IndexOutOfBoundsException();
+ return Character.codePointBefore(value, index, 1);
+ }
+
+ /**
+ * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+ * characters will be copied into the array you pass in.
+ *
+ * @param srcOffset the index to start copying from (inclusive)
+ * @param srcEnd the index to stop copying from (exclusive)
+ * @param dst the array to copy into
+ * @param dstOffset the index to start copying into
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any source or target indices are
+ * out of range (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dest problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see System#arraycopy(Object, int, Object, int, int)
+ */
+ public void getChars(int srcOffset, int srcEnd,
+ char[] dst, int dstOffset)
+ {
+ if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+ throw new StringIndexOutOfBoundsException();
+ System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+ }
+
+ /**
+ * Set the character at the specified index.
+ *
+ * @param index the index of the character to set starting at 0
+ * @param ch the value to set that character to
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public void setCharAt(int index, char ch)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity_unsynchronized(count);
+ value[index] = ch;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param obj the <code>Object</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(Object)
+ * @see #append(String)
+ */
+ public AbstractStringBuffer append(Object obj)
+ {
+ return append(String.valueOf(obj));
+ }
+
+ /**
+ * Append the <code>String</code> to this <code>StringBuffer</code>. If
+ * str is null, the String "null" is appended.
+ *
+ * @param str the <code>String</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer append(String str)
+ {
+ if (str == null)
+ str = "null";
+ int len = str.count;
+ ensureCapacity_unsynchronized(count + len);
+ str.getChars(0, len, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Append the <code>StringBuilder</code> value of the argument to this
+ * <code>StringBuilder</code>. This behaves the same as
+ * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+ *
+ * @param stringBuffer the <code>StringBuilder</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see #append(Object)
+ */
+ public AbstractStringBuffer append(StringBuffer stringBuffer)
+ {
+ if (stringBuffer == null)
+ return append("null");
+ synchronized (stringBuffer)
+ {
+ int len = stringBuffer.count;
+ ensureCapacity(count + len);
+ System.arraycopy(stringBuffer.value, 0, value, count, len);
+ count += len;
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> array to this <code>StringBuffer</code>.
+ * This is similar (but more efficient) than
+ * <code>append(new String(data))</code>, except in the case of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @see #append(char[], int, int)
+ */
+ public AbstractStringBuffer append(char[] data)
+ {
+ return append(data, 0, data.length);
+ }
+
+ /**
+ * Append part of the <code>char</code> array to this
+ * <code>StringBuffer</code>. This is similar (but more efficient) than
+ * <code>append(new String(data, offset, count))</code>, except in the case
+ * of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @param offset the start location in <code>str</code>
+ * @param count the number of characters to get from <code>str</code>
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if offset or count is out of range
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public AbstractStringBuffer append(char[] data, int offset, int count)
+ {
+ if (offset < 0 || count < 0 || offset > data.length - count)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity_unsynchronized(this.count + count);
+ System.arraycopy(data, offset, value, this.count, count);
+ this.count += count;
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param bool the <code>boolean</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(boolean)
+ */
+ public AbstractStringBuffer append(boolean bool)
+ {
+ return append(bool ? "true" : "false");
+ }
+
+ /**
+ * Append the <code>char</code> to this <code>StringBuffer</code>.
+ *
+ * @param ch the <code>char</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer append(char ch)
+ {
+ ensureCapacity_unsynchronized(count + 1);
+ value[count++] = ch;
+ return this;
+ }
+
+ /**
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public AbstractStringBuffer append(CharSequence seq)
+ {
+ return append(seq, 0, seq.length());
+ }
+
+ /**
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the <code>seq</code> is assumed
+ * to be equal to the string <code>"null"</code>.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @param start the starting index
+ * @param end one past the final index
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public AbstractStringBuffer append(CharSequence seq, int start, int end)
+ {
+ if (seq == null)
+ seq = "null";
+ if (end - start > 0)
+ {
+ ensureCapacity_unsynchronized(count + end - start);
+ for (; start < end; ++start)
+ value[count++] = seq.charAt(start);
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param inum the <code>int</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(int)
+ */
+ // GCJ LOCAL: this is native for efficiency.
+ public native AbstractStringBuffer append (int inum);
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param lnum the <code>long</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(long)
+ */
+ public AbstractStringBuffer append(long lnum)
+ {
+ return append(Long.toString(lnum, 10));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param fnum the <code>float</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(float)
+ */
+ public AbstractStringBuffer append(float fnum)
+ {
+ return append(Float.toString(fnum));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param dnum the <code>double</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(double)
+ */
+ public AbstractStringBuffer append(double dnum)
+ {
+ return append(Double.toString(dnum));
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public AbstractStringBuffer appendCodePoint(int code)
+ {
+ int len = Character.charCount(code);
+ ensureCapacity_unsynchronized(count + len);
+ Character.toChars(code, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Delete characters from this <code>StringBuffer</code>.
+ * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+ * harmless for end to be larger than length().
+ *
+ * @param start the first character to delete
+ * @param end the index after the last character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer delete(int start, int end)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+ if (end > count)
+ end = count;
+ ensureCapacity_unsynchronized(count);
+ if (count - end != 0)
+ System.arraycopy(value, end, value, start, count - end);
+ count -= end - start;
+ return this;
+ }
+
+ /**
+ * Delete a character from this <code>StringBuffer</code>.
+ *
+ * @param index the index of the character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if index is out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer deleteCharAt(int index)
+ {
+ return delete(index, index + 1);
+ }
+
+ /**
+ * Replace characters between index <code>start</code> (inclusive) and
+ * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+ * is larger than the size of this StringBuffer, all characters after
+ * <code>start</code> are replaced.
+ *
+ * @param start the beginning index of characters to delete (inclusive)
+ * @param end the ending index of characters to delete (exclusive)
+ * @param str the new <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @throws NullPointerException if str is null
+ * @since 1.2
+ */
+ public AbstractStringBuffer replace(int start, int end, String str)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+
+ int len = str.count;
+ // Calculate the difference in 'count' after the replace.
+ int delta = len - (end > count ? count : end) + start;
+ ensureCapacity_unsynchronized(count + delta);
+
+ if (delta != 0 && end < count)
+ System.arraycopy(value, end, value, end + delta, count - end);
+
+ str.getChars(0, len, value, start);
+ count += delta;
+ return this;
+ }
+
+ /**
+ * Insert a subarray of the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>char[]</code> to insert
+ * @param str_offset the index in <code>str</code> to start inserting from
+ * @param len the number of characters to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if any index is out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer insert(int offset, char[] str, int str_offset, int len)
+ {
+ if (offset < 0 || offset > count || len < 0
+ || str_offset < 0 || str_offset > str.length - len)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity_unsynchronized(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ System.arraycopy(str, str_offset, value, offset, len);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param obj the <code>Object</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @exception StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(Object)
+ */
+ public AbstractStringBuffer insert(int offset, Object obj)
+ {
+ return insert(offset, obj == null ? "null" : obj.toString());
+ }
+
+ /**
+ * Insert the <code>String</code> argument into this
+ * <code>StringBuffer</code>. If str is null, the String "null" is used
+ * instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public AbstractStringBuffer insert(int offset, String str)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ if (str == null)
+ str = "null";
+ int len = str.count;
+ ensureCapacity_unsynchronized(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ str.getChars(0, len, value, offset);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset is out of bounds
+ * @since 1.5
+ */
+ public AbstractStringBuffer insert(int offset, CharSequence sequence)
+ {
+ if (sequence == null)
+ sequence = "null";
+ return insert(offset, sequence, 0, sequence.length());
+ }
+
+ /**
+ * Insert a subsequence of the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @param start the starting index of the subsequence
+ * @param end one past the ending index of the subsequence
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset, start,
+ * or end are out of bounds
+ * @since 1.5
+ */
+ public AbstractStringBuffer insert(int offset, CharSequence sequence, int start, int end)
+ {
+ if (sequence == null)
+ sequence = "null";
+ if (start < 0 || end < 0 || start > end || end > sequence.length())
+ throw new IndexOutOfBoundsException();
+ int len = end - start;
+ ensureCapacity_unsynchronized(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ for (int i = start; i < end; ++i)
+ value[offset++] = sequence.charAt(i);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param data the <code>char[]</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see #insert(int, char[], int, int)
+ */
+ public AbstractStringBuffer insert(int offset, char[] data)
+ {
+ return insert(offset, data, 0, data.length);
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param bool the <code>boolean</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(boolean)
+ */
+ public AbstractStringBuffer insert(int offset, boolean bool)
+ {
+ return insert(offset, bool ? "true" : "false");
+ }
+
+ /**
+ * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param ch the <code>char</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public AbstractStringBuffer insert(int offset, char ch)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ ensureCapacity_unsynchronized(count + 1);
+ System.arraycopy(value, offset, value, offset + 1, count - offset);
+ value[offset] = ch;
+ count++;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param inum the <code>int</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(int)
+ */
+ public AbstractStringBuffer insert(int offset, int inum)
+ {
+ return insert(offset, String.valueOf(inum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param lnum the <code>long</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(long)
+ */
+ public AbstractStringBuffer insert(int offset, long lnum)
+ {
+ return insert(offset, Long.toString(lnum, 10));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param fnum the <code>float</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(float)
+ */
+ public AbstractStringBuffer insert(int offset, float fnum)
+ {
+ return insert(offset, Float.toString(fnum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param dnum the <code>double</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(double)
+ */
+ public AbstractStringBuffer insert(int offset, double dnum)
+ {
+ return insert(offset, Double.toString(dnum));
+ }
+
+ /**
+ * Finds the first instance of a substring in this StringBuilder.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #indexOf(String, int)
+ */
+ public int indexOf(String str)
+ {
+ return indexOf(str, 0);
+ }
+
+ /**
+ * Finds the first instance of a String in this StringBuffer, starting at
+ * a given index. If starting index is less than 0, the search starts at
+ * the beginning of this String. If the starting index is greater than the
+ * length of this String, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int indexOf(String str, int fromIndex)
+ {
+ if (fromIndex < 0)
+ fromIndex = 0;
+ int limit = count - str.count;
+ for ( ; fromIndex <= limit; fromIndex++)
+ if (regionMatches(fromIndex, str))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Finds the last instance of a substring in this StringBuffer.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #lastIndexOf(String, int)
+ * @since 1.4
+ */
+ public int lastIndexOf(String str)
+ {
+ return lastIndexOf(str, count - str.count);
+ }
+
+ /**
+ * Finds the last instance of a String in this StringBuffer, starting at a
+ * given index. If starting index is greater than the maximum valid index,
+ * then the search begins at the end of this String. If the starting index
+ * is less than zero, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int lastIndexOf(String str, int fromIndex)
+ {
+ fromIndex = Math.min(fromIndex, count - str.count);
+ for ( ; fromIndex >= 0; fromIndex--)
+ if (regionMatches(fromIndex, str))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Reverse the characters in this StringBuffer. The same sequence of
+ * characters exists, but in the reverse index ordering.
+ *
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer reverse()
+ {
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity_unsynchronized(count);
+ for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+ {
+ char c = value[i];
+ value[i] = value[j];
+ value[j] = c;
+ }
+ return this;
+ }
+
+ /**
+ * This may reduce the amount of memory used by the StringBuffer,
+ * by resizing the internal array to remove unused space. However,
+ * this method is not required to resize, so this behavior cannot
+ * be relied upon.
+ * @since 1.5
+ */
+ public void trimToSize()
+ {
+ int wouldSave = value.length - count;
+ // Some random heuristics: if we save less than 20 characters, who
+ // cares.
+ if (wouldSave < 20)
+ return;
+ // If we save more than 200 characters, shrink.
+ // If we save more than 1/4 of the buffer, shrink.
+ if (wouldSave > 200 || wouldSave * 4 > value.length)
+ {
+ char[] newValue = new char[count];
+ System.arraycopy(value, 0, newValue, 0, count);
+ value = newValue;
+ }
+ }
+
+ /**
+ * Return the number of code points between two indices in the
+ * <code>StringBuffer</code>. An unpaired surrogate counts as a
+ * code point for this purpose. Characters outside the indicated
+ * range are not examined, even if the range ends in the middle of a
+ * surrogate pair.
+ *
+ * @param start the starting index
+ * @param end one past the ending index
+ * @return the number of code points
+ * @since 1.5
+ */
+ public int codePointCount(int start, int end)
+ {
+ if (start < 0 || end >= count || start > end)
+ throw new StringIndexOutOfBoundsException();
+
+ int count = 0;
+ while (start < end)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == end
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ ++count;
+ }
+ return count;
+ }
+
+ /**
+ * Starting at the given index, this counts forward by the indicated
+ * number of code points, and then returns the resulting index. An
+ * unpaired surrogate counts as a single code point for this
+ * purpose.
+ *
+ * @param start the starting index
+ * @param codePoints the number of code points
+ * @return the resulting index
+ * @since 1.5
+ */
+ public int offsetByCodePoints(int start, int codePoints)
+ {
+ while (codePoints > 0)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ --codePoints;
+ }
+ return start;
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuilder</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ void ensureCapacity_unsynchronized(int minimumCapacity)
+ {
+ if (minimumCapacity > value.length)
+ {
+ int max = value.length * 2 + 2;
+ minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+ char[] nb = new char[minimumCapacity];
+ System.arraycopy(value, 0, nb, 0, count);
+ value = nb;
+ }
+ }
+
+ /**
+ * Predicate which determines if a substring of this matches another String
+ * starting at a specified offset for each String and continuing for a
+ * specified length. This is more efficient than creating a String to call
+ * indexOf on.
+ *
+ * @param toffset index to start comparison at for this String
+ * @param other non-null String to compare to region of this
+ * @return true if regions match, false otherwise
+ * @see #indexOf(String, int)
+ * @see #lastIndexOf(String, int)
+ * @see String#regionMatches(boolean, int, String, int, int)
+ */
+ // GCJ LOCAL: native for gcj.
+ private native boolean regionMatches(int toffset, String other);
+
+}
diff --git a/gcc-4.8/libjava/java/lang/Appendable.h b/gcc-4.8/libjava/java/lang/Appendable.h
new file mode 100644
index 000000000..d304ff9cf
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Appendable.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Appendable__
+#define __java_lang_Appendable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Appendable : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Appendable * append(jchar) = 0;
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *) = 0;
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Appendable__
diff --git a/gcc-4.8/libjava/java/lang/ArithmeticException.h b/gcc-4.8/libjava/java/lang/ArithmeticException.h
new file mode 100644
index 000000000..8d784adb7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ArithmeticException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ArithmeticException__
+#define __java_lang_ArithmeticException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::ArithmeticException : public ::java::lang::RuntimeException
+{
+
+public:
+ ArithmeticException();
+ ArithmeticException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 2256477558314496007LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ArithmeticException__
diff --git a/gcc-4.8/libjava/java/lang/ArrayIndexOutOfBoundsException.h b/gcc-4.8/libjava/java/lang/ArrayIndexOutOfBoundsException.h
new file mode 100644
index 000000000..8e65f70f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ArrayIndexOutOfBoundsException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ArrayIndexOutOfBoundsException__
+#define __java_lang_ArrayIndexOutOfBoundsException__
+
+#pragma interface
+
+#include <java/lang/IndexOutOfBoundsException.h>
+
+class java::lang::ArrayIndexOutOfBoundsException : public ::java::lang::IndexOutOfBoundsException
+{
+
+public:
+ ArrayIndexOutOfBoundsException();
+ ArrayIndexOutOfBoundsException(::java::lang::String *);
+ ArrayIndexOutOfBoundsException(jint);
+private:
+ static const jlong serialVersionUID = -5116101128118950844LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ArrayIndexOutOfBoundsException__
diff --git a/gcc-4.8/libjava/java/lang/ArrayStoreException.h b/gcc-4.8/libjava/java/lang/ArrayStoreException.h
new file mode 100644
index 000000000..8e120d11c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ArrayStoreException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ArrayStoreException__
+#define __java_lang_ArrayStoreException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::ArrayStoreException : public ::java::lang::RuntimeException
+{
+
+public:
+ ArrayStoreException();
+ ArrayStoreException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4522193890499838241LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ArrayStoreException__
diff --git a/gcc-4.8/libjava/java/lang/AssertionError.h b/gcc-4.8/libjava/java/lang/AssertionError.h
new file mode 100644
index 000000000..15c4672e7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/AssertionError.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_AssertionError__
+#define __java_lang_AssertionError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::lang::AssertionError : public ::java::lang::Error
+{
+
+public:
+ AssertionError();
+ AssertionError(::java::lang::Object *);
+ AssertionError(jboolean);
+ AssertionError(jchar);
+ AssertionError(jint);
+ AssertionError(jlong);
+ AssertionError(jfloat);
+ AssertionError(jdouble);
+ AssertionError(::java::lang::String *, ::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -5013299493970297370LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_AssertionError__
diff --git a/gcc-4.8/libjava/java/lang/AutoCloseable.h b/gcc-4.8/libjava/java/lang/AutoCloseable.h
new file mode 100644
index 000000000..023538f1f
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/AutoCloseable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_AutoCloseable__
+#define __java_lang_AutoCloseable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::AutoCloseable : public ::java::lang::Object
+{
+
+public:
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_AutoCloseable__
diff --git a/gcc-4.8/libjava/java/lang/Boolean.h b/gcc-4.8/libjava/java/lang/Boolean.h
new file mode 100644
index 000000000..8a764b9b6
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Boolean.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Boolean__
+#define __java_lang_Boolean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Boolean : public ::java::lang::Object
+{
+
+public:
+ Boolean(jboolean);
+ Boolean(::java::lang::String *);
+ jboolean booleanValue();
+ static ::java::lang::Boolean * valueOf(jboolean);
+ static ::java::lang::Boolean * valueOf(::java::lang::String *);
+ static ::java::lang::String * toString(jboolean);
+ ::java::lang::String * toString();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ static jboolean getBoolean(::java::lang::String *);
+ jint Boolean$compareTo(::java::lang::Boolean *);
+ static jint compare(jboolean, jboolean);
+ static jboolean parseBoolean(::java::lang::String *);
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -3665804199014368530LL;
+public:
+ static ::java::lang::Boolean * TRUE;
+ static ::java::lang::Boolean * FALSE;
+ static ::java::lang::Class * TYPE;
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Boolean__
diff --git a/gcc-4.8/libjava/java/lang/Byte.h b/gcc-4.8/libjava/java/lang/Byte.h
new file mode 100644
index 000000000..547e08f51
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Byte.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Byte__
+#define __java_lang_Byte__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+#include <gcj/array.h>
+
+
+class java::lang::Byte : public ::java::lang::Number
+{
+
+public:
+ Byte(jbyte);
+ Byte(::java::lang::String *);
+ static ::java::lang::String * toString(jbyte);
+ static jbyte parseByte(::java::lang::String *);
+ static jbyte parseByte(::java::lang::String *, jint);
+ static ::java::lang::Byte * valueOf(::java::lang::String *, jint);
+ static ::java::lang::Byte * valueOf(::java::lang::String *);
+ static ::java::lang::Byte * valueOf(jbyte);
+ static ::java::lang::Byte * decode(::java::lang::String *);
+ jbyte byteValue();
+ jshort shortValue();
+ jint intValue();
+ jlong longValue();
+ jfloat floatValue();
+ jdouble doubleValue();
+ ::java::lang::String * toString();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ jint Byte$compareTo(::java::lang::Byte *);
+ static jint compare(jbyte, jbyte);
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -7183698231559129828LL;
+public:
+ static const jbyte MIN_VALUE = -128;
+ static const jbyte MAX_VALUE = 127;
+ static ::java::lang::Class * TYPE;
+ static const jint SIZE = 8;
+private:
+ static JArray< ::java::lang::Byte * > * byteCache;
+ jbyte __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Byte__
diff --git a/gcc-4.8/libjava/java/lang/CharSequence.h b/gcc-4.8/libjava/java/lang/CharSequence.h
new file mode 100644
index 000000000..1348b564d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/CharSequence.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_CharSequence__
+#define __java_lang_CharSequence__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::CharSequence : public ::java::lang::Object
+{
+
+public:
+ virtual jchar charAt(jint) = 0;
+ virtual jint length() = 0;
+ virtual ::java::lang::CharSequence * subSequence(jint, jint) = 0;
+ virtual ::java::lang::String * toString() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_CharSequence__
diff --git a/gcc-4.8/libjava/java/lang/Character$Subset.h b/gcc-4.8/libjava/java/lang/Character$Subset.h
new file mode 100644
index 000000000..93f2ba1cb
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Character$Subset.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Character$Subset__
+#define __java_lang_Character$Subset__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Character$Subset : public ::java::lang::Object
+{
+
+public: // actually protected
+ Character$Subset(::java::lang::String *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Character$Subset__
diff --git a/gcc-4.8/libjava/java/lang/Character$UnicodeBlock$NameType.h b/gcc-4.8/libjava/java/lang/Character$UnicodeBlock$NameType.h
new file mode 100644
index 000000000..2b83115b0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Character$UnicodeBlock$NameType.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Character$UnicodeBlock$NameType__
+#define __java_lang_Character$UnicodeBlock$NameType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::lang::Character$UnicodeBlock$NameType : public ::java::lang::Enum
+{
+
+ Character$UnicodeBlock$NameType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::lang::Character$UnicodeBlock$NameType * > * values();
+ static ::java::lang::Character$UnicodeBlock$NameType * valueOf(::java::lang::String *);
+ static ::java::lang::Character$UnicodeBlock$NameType * CANONICAL;
+ static ::java::lang::Character$UnicodeBlock$NameType * NO_SPACES;
+ static ::java::lang::Character$UnicodeBlock$NameType * CONSTANT;
+private:
+ static JArray< ::java::lang::Character$UnicodeBlock$NameType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Character$UnicodeBlock$NameType__
diff --git a/gcc-4.8/libjava/java/lang/Character$UnicodeBlock.h b/gcc-4.8/libjava/java/lang/Character$UnicodeBlock.h
new file mode 100644
index 000000000..b32f2121e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Character$UnicodeBlock.h
@@ -0,0 +1,161 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Character$UnicodeBlock__
+#define __java_lang_Character$UnicodeBlock__
+
+#pragma interface
+
+#include <java/lang/Character$Subset.h>
+#include <gcj/array.h>
+
+
+class java::lang::Character$UnicodeBlock : public ::java::lang::Character$Subset
+{
+
+ Character$UnicodeBlock(jint, jint, ::java::lang::String *, ::java::lang::String *);
+public:
+ static ::java::lang::Character$UnicodeBlock * of(jchar);
+ static ::java::lang::Character$UnicodeBlock * of(jint);
+ static ::java::lang::Character$UnicodeBlock * forName(::java::lang::String *);
+public: // actually package-private
+ static JArray< jint > * $SWITCH_TABLE$java$lang$Character$UnicodeBlock$NameType();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Character$Subset)))) start;
+ jint end;
+ ::java::lang::String * canonicalName;
+public:
+ static ::java::lang::Character$UnicodeBlock * BASIC_LATIN;
+ static ::java::lang::Character$UnicodeBlock * LATIN_1_SUPPLEMENT;
+ static ::java::lang::Character$UnicodeBlock * LATIN_EXTENDED_A;
+ static ::java::lang::Character$UnicodeBlock * LATIN_EXTENDED_B;
+ static ::java::lang::Character$UnicodeBlock * IPA_EXTENSIONS;
+ static ::java::lang::Character$UnicodeBlock * SPACING_MODIFIER_LETTERS;
+ static ::java::lang::Character$UnicodeBlock * COMBINING_DIACRITICAL_MARKS;
+ static ::java::lang::Character$UnicodeBlock * GREEK;
+ static ::java::lang::Character$UnicodeBlock * CYRILLIC;
+ static ::java::lang::Character$UnicodeBlock * CYRILLIC_SUPPLEMENTARY;
+ static ::java::lang::Character$UnicodeBlock * ARMENIAN;
+ static ::java::lang::Character$UnicodeBlock * HEBREW;
+ static ::java::lang::Character$UnicodeBlock * ARABIC;
+ static ::java::lang::Character$UnicodeBlock * SYRIAC;
+ static ::java::lang::Character$UnicodeBlock * THAANA;
+ static ::java::lang::Character$UnicodeBlock * DEVANAGARI;
+ static ::java::lang::Character$UnicodeBlock * BENGALI;
+ static ::java::lang::Character$UnicodeBlock * GURMUKHI;
+ static ::java::lang::Character$UnicodeBlock * GUJARATI;
+ static ::java::lang::Character$UnicodeBlock * ORIYA;
+ static ::java::lang::Character$UnicodeBlock * TAMIL;
+ static ::java::lang::Character$UnicodeBlock * TELUGU;
+ static ::java::lang::Character$UnicodeBlock * KANNADA;
+ static ::java::lang::Character$UnicodeBlock * MALAYALAM;
+ static ::java::lang::Character$UnicodeBlock * SINHALA;
+ static ::java::lang::Character$UnicodeBlock * THAI;
+ static ::java::lang::Character$UnicodeBlock * LAO;
+ static ::java::lang::Character$UnicodeBlock * TIBETAN;
+ static ::java::lang::Character$UnicodeBlock * MYANMAR;
+ static ::java::lang::Character$UnicodeBlock * GEORGIAN;
+ static ::java::lang::Character$UnicodeBlock * HANGUL_JAMO;
+ static ::java::lang::Character$UnicodeBlock * ETHIOPIC;
+ static ::java::lang::Character$UnicodeBlock * CHEROKEE;
+ static ::java::lang::Character$UnicodeBlock * UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
+ static ::java::lang::Character$UnicodeBlock * OGHAM;
+ static ::java::lang::Character$UnicodeBlock * RUNIC;
+ static ::java::lang::Character$UnicodeBlock * TAGALOG;
+ static ::java::lang::Character$UnicodeBlock * HANUNOO;
+ static ::java::lang::Character$UnicodeBlock * BUHID;
+ static ::java::lang::Character$UnicodeBlock * TAGBANWA;
+ static ::java::lang::Character$UnicodeBlock * KHMER;
+ static ::java::lang::Character$UnicodeBlock * MONGOLIAN;
+ static ::java::lang::Character$UnicodeBlock * LIMBU;
+ static ::java::lang::Character$UnicodeBlock * TAI_LE;
+ static ::java::lang::Character$UnicodeBlock * KHMER_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * PHONETIC_EXTENSIONS;
+ static ::java::lang::Character$UnicodeBlock * LATIN_EXTENDED_ADDITIONAL;
+ static ::java::lang::Character$UnicodeBlock * GREEK_EXTENDED;
+ static ::java::lang::Character$UnicodeBlock * GENERAL_PUNCTUATION;
+ static ::java::lang::Character$UnicodeBlock * SUPERSCRIPTS_AND_SUBSCRIPTS;
+ static ::java::lang::Character$UnicodeBlock * CURRENCY_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * COMBINING_MARKS_FOR_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * LETTERLIKE_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * NUMBER_FORMS;
+ static ::java::lang::Character$UnicodeBlock * ARROWS;
+ static ::java::lang::Character$UnicodeBlock * MATHEMATICAL_OPERATORS;
+ static ::java::lang::Character$UnicodeBlock * MISCELLANEOUS_TECHNICAL;
+ static ::java::lang::Character$UnicodeBlock * CONTROL_PICTURES;
+ static ::java::lang::Character$UnicodeBlock * OPTICAL_CHARACTER_RECOGNITION;
+ static ::java::lang::Character$UnicodeBlock * ENCLOSED_ALPHANUMERICS;
+ static ::java::lang::Character$UnicodeBlock * BOX_DRAWING;
+ static ::java::lang::Character$UnicodeBlock * BLOCK_ELEMENTS;
+ static ::java::lang::Character$UnicodeBlock * GEOMETRIC_SHAPES;
+ static ::java::lang::Character$UnicodeBlock * MISCELLANEOUS_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * DINGBATS;
+ static ::java::lang::Character$UnicodeBlock * MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
+ static ::java::lang::Character$UnicodeBlock * SUPPLEMENTAL_ARROWS_A;
+ static ::java::lang::Character$UnicodeBlock * BRAILLE_PATTERNS;
+ static ::java::lang::Character$UnicodeBlock * SUPPLEMENTAL_ARROWS_B;
+ static ::java::lang::Character$UnicodeBlock * MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
+ static ::java::lang::Character$UnicodeBlock * SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
+ static ::java::lang::Character$UnicodeBlock * MISCELLANEOUS_SYMBOLS_AND_ARROWS;
+ static ::java::lang::Character$UnicodeBlock * CJK_RADICALS_SUPPLEMENT;
+ static ::java::lang::Character$UnicodeBlock * KANGXI_RADICALS;
+ static ::java::lang::Character$UnicodeBlock * IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
+ static ::java::lang::Character$UnicodeBlock * CJK_SYMBOLS_AND_PUNCTUATION;
+ static ::java::lang::Character$UnicodeBlock * HIRAGANA;
+ static ::java::lang::Character$UnicodeBlock * KATAKANA;
+ static ::java::lang::Character$UnicodeBlock * BOPOMOFO;
+ static ::java::lang::Character$UnicodeBlock * HANGUL_COMPATIBILITY_JAMO;
+ static ::java::lang::Character$UnicodeBlock * KANBUN;
+ static ::java::lang::Character$UnicodeBlock * BOPOMOFO_EXTENDED;
+ static ::java::lang::Character$UnicodeBlock * KATAKANA_PHONETIC_EXTENSIONS;
+ static ::java::lang::Character$UnicodeBlock * ENCLOSED_CJK_LETTERS_AND_MONTHS;
+ static ::java::lang::Character$UnicodeBlock * CJK_COMPATIBILITY;
+ static ::java::lang::Character$UnicodeBlock * CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
+ static ::java::lang::Character$UnicodeBlock * YIJING_HEXAGRAM_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * CJK_UNIFIED_IDEOGRAPHS;
+ static ::java::lang::Character$UnicodeBlock * YI_SYLLABLES;
+ static ::java::lang::Character$UnicodeBlock * YI_RADICALS;
+ static ::java::lang::Character$UnicodeBlock * HANGUL_SYLLABLES;
+ static ::java::lang::Character$UnicodeBlock * HIGH_SURROGATES;
+ static ::java::lang::Character$UnicodeBlock * HIGH_PRIVATE_USE_SURROGATES;
+ static ::java::lang::Character$UnicodeBlock * LOW_SURROGATES;
+ static ::java::lang::Character$UnicodeBlock * PRIVATE_USE_AREA;
+ static ::java::lang::Character$UnicodeBlock * CJK_COMPATIBILITY_IDEOGRAPHS;
+ static ::java::lang::Character$UnicodeBlock * ALPHABETIC_PRESENTATION_FORMS;
+ static ::java::lang::Character$UnicodeBlock * ARABIC_PRESENTATION_FORMS_A;
+ static ::java::lang::Character$UnicodeBlock * VARIATION_SELECTORS;
+ static ::java::lang::Character$UnicodeBlock * COMBINING_HALF_MARKS;
+ static ::java::lang::Character$UnicodeBlock * CJK_COMPATIBILITY_FORMS;
+ static ::java::lang::Character$UnicodeBlock * SMALL_FORM_VARIANTS;
+ static ::java::lang::Character$UnicodeBlock * ARABIC_PRESENTATION_FORMS_B;
+ static ::java::lang::Character$UnicodeBlock * HALFWIDTH_AND_FULLWIDTH_FORMS;
+ static ::java::lang::Character$UnicodeBlock * SPECIALS;
+ static ::java::lang::Character$UnicodeBlock * LINEAR_B_SYLLABARY;
+ static ::java::lang::Character$UnicodeBlock * LINEAR_B_IDEOGRAMS;
+ static ::java::lang::Character$UnicodeBlock * AEGEAN_NUMBERS;
+ static ::java::lang::Character$UnicodeBlock * OLD_ITALIC;
+ static ::java::lang::Character$UnicodeBlock * GOTHIC;
+ static ::java::lang::Character$UnicodeBlock * UGARITIC;
+ static ::java::lang::Character$UnicodeBlock * DESERET;
+ static ::java::lang::Character$UnicodeBlock * SHAVIAN;
+ static ::java::lang::Character$UnicodeBlock * OSMANYA;
+ static ::java::lang::Character$UnicodeBlock * CYPRIOT_SYLLABARY;
+ static ::java::lang::Character$UnicodeBlock * BYZANTINE_MUSICAL_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * MUSICAL_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * TAI_XUAN_JING_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
+ static ::java::lang::Character$UnicodeBlock * CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
+ static ::java::lang::Character$UnicodeBlock * CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
+ static ::java::lang::Character$UnicodeBlock * TAGS;
+ static ::java::lang::Character$UnicodeBlock * VARIATION_SELECTORS_SUPPLEMENT;
+ static ::java::lang::Character$UnicodeBlock * SUPPLEMENTARY_PRIVATE_USE_AREA_A;
+ static ::java::lang::Character$UnicodeBlock * SUPPLEMENTARY_PRIVATE_USE_AREA_B;
+ static ::java::lang::Character$UnicodeBlock * SURROGATES_AREA;
+private:
+ static JArray< ::java::lang::Character$UnicodeBlock * > * sets;
+ static JArray< jint > * $SWITCH_TABLE$java$lang$Character$UnicodeBlock$NameType__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Character$UnicodeBlock__
diff --git a/gcc-4.8/libjava/java/lang/Character.h b/gcc-4.8/libjava/java/lang/Character.h
new file mode 100644
index 000000000..a21447098
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Character.h
@@ -0,0 +1,179 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Character__
+#define __java_lang_Character__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::Character : public ::java::lang::Object
+{
+
+ static jchar readChar(jchar);
+ static jchar readCodePoint(jint);
+public:
+ Character(jchar);
+ jchar charValue();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::String * toString();
+ static ::java::lang::String * toString(jchar);
+ static jboolean isLowerCase(jchar);
+ static jboolean isLowerCase(jint);
+ static jboolean isUpperCase(jchar);
+ static jboolean isUpperCase(jint);
+ static jboolean isTitleCase(jchar);
+ static jboolean isTitleCase(jint);
+ static jboolean isDigit(jchar);
+ static jboolean isDigit(jint);
+ static jboolean isDefined(jchar);
+ static jboolean isDefined(jint);
+ static jboolean isLetter(jchar);
+ static jboolean isLetter(jint);
+ static jint offsetByCodePoints(::java::lang::CharSequence *, jint, jint);
+ static jint offsetByCodePoints(JArray< jchar > *, jint, jint, jint, jint);
+ static jint codePointCount(::java::lang::CharSequence *, jint, jint);
+ static jint codePointCount(JArray< jchar > *, jint, jint);
+ static jboolean isLetterOrDigit(jchar);
+ static jboolean isLetterOrDigit(jint);
+ static jboolean isJavaLetter(jchar);
+ static jboolean isJavaIdentifierStart(jint);
+ static jboolean isJavaLetterOrDigit(jchar);
+ static jboolean isJavaIdentifierStart(jchar);
+ static jboolean isJavaIdentifierPart(jchar);
+ static jboolean isJavaIdentifierPart(jint);
+ static jboolean isUnicodeIdentifierStart(jchar);
+ static jboolean isUnicodeIdentifierStart(jint);
+ static jboolean isUnicodeIdentifierPart(jchar);
+ static jboolean isUnicodeIdentifierPart(jint);
+ static jboolean isIdentifierIgnorable(jchar);
+ static jboolean isIdentifierIgnorable(jint);
+ static jchar toLowerCase(jchar);
+ static jint toLowerCase(jint);
+ static jchar toUpperCase(jchar);
+ static jint toUpperCase(jint);
+ static jchar toTitleCase(jchar);
+ static jint toTitleCase(jint);
+ static jint digit(jchar, jint);
+ static jint digit(jint, jint);
+ static jint getNumericValue(jchar);
+ static jint getNumericValue(jint);
+ static jboolean isSpace(jchar);
+ static jboolean isSpaceChar(jchar);
+ static jboolean isSpaceChar(jint);
+ static jboolean isWhitespace(jchar);
+ static jboolean isWhitespace(jint);
+ static jboolean isISOControl(jchar);
+ static jboolean isISOControl(jint);
+ static jint getType(jchar);
+ static jint getType(jint);
+ static jchar forDigit(jint, jint);
+ static jbyte getDirectionality(jchar);
+ static jbyte getDirectionality(jint);
+ static jboolean isMirrored(jchar);
+ static jboolean isMirrored(jint);
+ jint Character$compareTo(::java::lang::Character *);
+ static ::java::lang::Character * valueOf(jchar);
+ static jchar reverseBytes(jchar);
+ static JArray< jchar > * toChars(jint);
+ static jint toChars(jint, JArray< jchar > *, jint);
+ static jint charCount(jint);
+ static jboolean isSupplementaryCodePoint(jint);
+ static jboolean isValidCodePoint(jint);
+ static jboolean isHighSurrogate(jchar);
+ static jboolean isLowSurrogate(jchar);
+ static jboolean isSurrogatePair(jchar, jchar);
+ static jint toCodePoint(jchar, jchar);
+ static jint codePointAt(::java::lang::CharSequence *, jint);
+ static jint codePointAt(JArray< jchar > *, jint);
+ static jint codePointAt(JArray< jchar > *, jint, jint);
+ static jint codePointBefore(JArray< jchar > *, jint);
+ static jint codePointBefore(JArray< jchar > *, jint, jint);
+ static jint codePointBefore(::java::lang::CharSequence *, jint);
+ jint compareTo(::java::lang::Object *);
+private:
+ jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
+ static const jlong serialVersionUID = 3786198910865385080LL;
+public:
+ static const jint MIN_RADIX = 2;
+ static const jint MAX_RADIX = 36;
+ static const jchar MIN_VALUE = 0;
+ static const jchar MAX_VALUE = 65535;
+ static const jint MIN_CODE_POINT = 0;
+ static const jint MAX_CODE_POINT = 1114111;
+ static const jchar MIN_HIGH_SURROGATE = 55296;
+ static const jchar MAX_HIGH_SURROGATE = 56319;
+ static const jchar MIN_LOW_SURROGATE = 56320;
+ static const jchar MAX_LOW_SURROGATE = 57343;
+ static const jchar MIN_SURROGATE = 55296;
+ static const jchar MAX_SURROGATE = 57343;
+ static const jint MIN_SUPPLEMENTARY_CODE_POINT = 65536;
+ static ::java::lang::Class * TYPE;
+ static const jint SIZE = 16;
+private:
+ static const jint MAX_CACHE = 127;
+ static JArray< ::java::lang::Character * > * charCache;
+public:
+ static const jbyte UPPERCASE_LETTER = 1;
+ static const jbyte LOWERCASE_LETTER = 2;
+ static const jbyte TITLECASE_LETTER = 3;
+ static const jbyte NON_SPACING_MARK = 6;
+ static const jbyte COMBINING_SPACING_MARK = 8;
+ static const jbyte ENCLOSING_MARK = 7;
+ static const jbyte DECIMAL_DIGIT_NUMBER = 9;
+ static const jbyte LETTER_NUMBER = 10;
+ static const jbyte OTHER_NUMBER = 11;
+ static const jbyte SPACE_SEPARATOR = 12;
+ static const jbyte LINE_SEPARATOR = 13;
+ static const jbyte PARAGRAPH_SEPARATOR = 14;
+ static const jbyte CONTROL = 15;
+ static const jbyte FORMAT = 16;
+ static const jbyte SURROGATE = 19;
+ static const jbyte PRIVATE_USE = 18;
+ static const jbyte UNASSIGNED = 0;
+ static const jbyte MODIFIER_LETTER = 4;
+ static const jbyte OTHER_LETTER = 5;
+ static const jbyte CONNECTOR_PUNCTUATION = 23;
+ static const jbyte DASH_PUNCTUATION = 20;
+ static const jbyte START_PUNCTUATION = 21;
+ static const jbyte END_PUNCTUATION = 22;
+ static const jbyte INITIAL_QUOTE_PUNCTUATION = 29;
+ static const jbyte FINAL_QUOTE_PUNCTUATION = 30;
+ static const jbyte OTHER_PUNCTUATION = 24;
+ static const jbyte MATH_SYMBOL = 25;
+ static const jbyte CURRENCY_SYMBOL = 26;
+ static const jbyte MODIFIER_SYMBOL = 27;
+ static const jbyte OTHER_SYMBOL = 28;
+ static const jbyte DIRECTIONALITY_UNDEFINED = -1;
+ static const jbyte DIRECTIONALITY_LEFT_TO_RIGHT = 0;
+ static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT = 1;
+ static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 2;
+ static const jbyte DIRECTIONALITY_EUROPEAN_NUMBER = 3;
+ static const jbyte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 4;
+ static const jbyte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 5;
+ static const jbyte DIRECTIONALITY_ARABIC_NUMBER = 6;
+ static const jbyte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 7;
+ static const jbyte DIRECTIONALITY_NONSPACING_MARK = 8;
+ static const jbyte DIRECTIONALITY_BOUNDARY_NEUTRAL = 9;
+ static const jbyte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 10;
+ static const jbyte DIRECTIONALITY_SEGMENT_SEPARATOR = 11;
+ static const jbyte DIRECTIONALITY_WHITESPACE = 12;
+ static const jbyte DIRECTIONALITY_OTHER_NEUTRALS = 13;
+ static const jbyte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 14;
+ static const jbyte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 15;
+ static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 16;
+ static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 17;
+ static const jbyte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 18;
+private:
+ static const jint TYPE_MASK = 31;
+ static const jint NO_BREAK_MASK = 32;
+ static const jint MIRROR_MASK = 64;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Character__
diff --git a/gcc-4.8/libjava/java/lang/Character.java b/gcc-4.8/libjava/java/lang/Character.java
new file mode 100644
index 000000000..2edf72e67
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Character.java
@@ -0,0 +1,4051 @@
+/* java.lang.Character -- Wrapper class for char, and Unicode subsets
+ Copyright (C) 1998, 1999, 2001, 2002, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+/*
+ * Note: This class must not be merged with Classpath. Gcj uses C-style
+ * arrays (see include/java-chartables.h) to store the Unicode character
+ * database, whereas Classpath uses Java objects (char[] extracted from
+ * String constants) in gnu.java.lang.CharData. Gcj's approach is more
+ * efficient, because there is no vtable or data relocation to worry about.
+ * However, despite the difference in the database interface, the two
+ * versions share identical algorithms.
+ */
+
+package java.lang;
+
+import java.io.Serializable;
+import java.text.Collator;
+import java.util.Locale;
+
+/**
+ * Wrapper class for the primitive char data type. In addition, this class
+ * allows one to retrieve property information and perform transformations
+ * on the defined characters in the Unicode Standard, Version 4.0.0.
+ * java.lang.Character is designed to be very dynamic, and as such, it
+ * retrieves information on the Unicode character set from a separate
+ * database, gnu.java.lang.CharData, which can be easily upgraded.
+ *
+ * <p>For predicates, boundaries are used to describe
+ * the set of characters for which the method will return true.
+ * This syntax uses fairly normal regular expression notation.
+ * See 5.13 of the Unicode Standard, Version 4.0, for the
+ * boundary specification.
+ *
+ * <p>See <a href="http://www.unicode.org">http://www.unicode.org</a>
+ * for more information on the Unicode Standard.
+ *
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Paul N. Fisher
+ * @author Jochen Hoenicke
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.0
+ * @status partly updated to 1.5; some things still missing
+ */
+public final class Character implements Serializable, Comparable<Character>
+{
+ /**
+ * A subset of Unicode blocks.
+ *
+ * @author Paul N. Fisher
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @since 1.2
+ */
+ public static class Subset
+ {
+ /** The name of the subset. */
+ private final String name;
+
+ /**
+ * Construct a new subset of characters.
+ *
+ * @param name the name of the subset
+ * @throws NullPointerException if name is null
+ */
+ protected Subset(String name)
+ {
+ // Note that name.toString() is name, unless name was null.
+ this.name = name.toString();
+ }
+
+ /**
+ * Compares two Subsets for equality. This is <code>final</code>, and
+ * restricts the comparison on the <code>==</code> operator, so it returns
+ * true only for the same object.
+ *
+ * @param o the object to compare
+ * @return true if o is this
+ */
+ public final boolean equals(Object o)
+ {
+ return o == this;
+ }
+
+ /**
+ * Makes the original hashCode of Object final, to be consistent with
+ * equals.
+ *
+ * @return the hash code for this object
+ */
+ public final int hashCode()
+ {
+ return super.hashCode();
+ }
+
+ /**
+ * Returns the name of the subset.
+ *
+ * @return the name
+ */
+ public final String toString()
+ {
+ return name;
+ }
+ } // class Subset
+
+ /**
+ * A family of character subsets in the Unicode specification. A character
+ * is in at most one of these blocks.
+ *
+ * This inner class was generated automatically from
+ * <code>libjava/gnu/gcj/convert/Blocks-3.txt</code>, by some perl scripts.
+ * This Unicode definition file can be found on the
+ * <a href="http://www.unicode.org">http://www.unicode.org</a> website.
+ * JDK 1.4 uses Unicode version 3.0.0.
+ *
+ * @author scripts/unicode-blocks.pl (written by Eric Blake)
+ * @since 1.2
+ */
+ public static final class UnicodeBlock extends Subset
+ {
+ /** The start of the subset. */
+ private final int start;
+
+ /** The end of the subset. */
+ private final int end;
+
+ /** The canonical name of the block according to the Unicode standard. */
+ private final String canonicalName;
+
+ /** Enumeration for the <code>forName()</code> method */
+ private enum NameType { CANONICAL, NO_SPACES, CONSTANT; }
+
+ /**
+ * Constructor for strictly defined blocks.
+ *
+ * @param start the start character of the range
+ * @param end the end character of the range
+ * @param name the block name
+ */
+ private UnicodeBlock(int start, int end, String name,
+ String canonicalName)
+ {
+ super(name);
+ this.start = start;
+ this.end = end;
+ this.canonicalName = canonicalName;
+ }
+
+ /**
+ * Returns the Unicode character block which a character belongs to.
+ * <strong>Note</strong>: This method does not support the use of
+ * supplementary characters. For such support, <code>of(int)</code>
+ * should be used instead.
+ *
+ * @param ch the character to look up
+ * @return the set it belongs to, or null if it is not in one
+ */
+ public static UnicodeBlock of(char ch)
+ {
+ return of((int) ch);
+ }
+
+ /**
+ * Returns the Unicode character block which a code point belongs to.
+ *
+ * @param codePoint the character to look up
+ * @return the set it belongs to, or null if it is not in one.
+ * @throws IllegalArgumentException if the specified code point is
+ * invalid.
+ * @since 1.5
+ */
+ public static UnicodeBlock of(int codePoint)
+ {
+ if (codePoint > MAX_CODE_POINT)
+ throw new IllegalArgumentException("The supplied integer value is " +
+ "too large to be a codepoint.");
+ // Simple binary search for the correct block.
+ int low = 0;
+ int hi = sets.length - 1;
+ while (low <= hi)
+ {
+ int mid = (low + hi) >> 1;
+ UnicodeBlock b = sets[mid];
+ if (codePoint < b.start)
+ hi = mid - 1;
+ else if (codePoint > b.end)
+ low = mid + 1;
+ else
+ return b;
+ }
+ return null;
+ }
+
+ /**
+ * <p>
+ * Returns the <code>UnicodeBlock</code> with the given name, as defined
+ * by the Unicode standard. The version of Unicode in use is defined by
+ * the <code>Character</code> class, and the names are given in the
+ * <code>Blocks-<version>.txt</code> file corresponding to that version.
+ * The name may be specified in one of three ways:
+ * </p>
+ * <ol>
+ * <li>The canonical, human-readable name used by the Unicode standard.
+ * This is the name with all spaces and hyphens retained. For example,
+ * `Basic Latin' retrieves the block, UnicodeBlock.BASIC_LATIN.</li>
+ * <li>The canonical name with all spaces removed e.g. `BasicLatin'.</li>
+ * <li>The name used for the constants specified by this class, which
+ * is the canonical name with all spaces and hyphens replaced with
+ * underscores e.g. `BASIC_LATIN'</li>
+ * </ol>
+ * <p>
+ * The names are compared case-insensitively using the case comparison
+ * associated with the U.S. English locale. The method recognises the
+ * previous names used for blocks as well as the current ones. At
+ * present, this simply means that the deprecated `SURROGATES_AREA'
+ * will be recognised by this method (the <code>of()</code> methods
+ * only return one of the three new surrogate blocks).
+ * </p>
+ *
+ * @param blockName the name of the block to look up.
+ * @return the specified block.
+ * @throws NullPointerException if the <code>blockName</code> is
+ * <code>null</code>.
+ * @throws IllegalArgumentException if the name does not match any Unicode
+ * block.
+ * @since 1.5
+ */
+ public static final UnicodeBlock forName(String blockName)
+ {
+ NameType type;
+ if (blockName.indexOf(' ') != -1)
+ type = NameType.CANONICAL;
+ else if (blockName.indexOf('_') != -1)
+ type = NameType.CONSTANT;
+ else
+ type = NameType.NO_SPACES;
+ Collator usCollator = Collator.getInstance(Locale.US);
+ usCollator.setStrength(Collator.PRIMARY);
+ /* Special case for deprecated blocks not in sets */
+ switch (type)
+ {
+ case CANONICAL:
+ if (usCollator.compare(blockName, "Surrogates Area") == 0)
+ return SURROGATES_AREA;
+ break;
+ case NO_SPACES:
+ if (usCollator.compare(blockName, "SurrogatesArea") == 0)
+ return SURROGATES_AREA;
+ break;
+ case CONSTANT:
+ if (usCollator.compare(blockName, "SURROGATES_AREA") == 0)
+ return SURROGATES_AREA;
+ break;
+ }
+ /* Other cases */
+ switch (type)
+ {
+ case CANONICAL:
+ for (UnicodeBlock block : sets)
+ if (usCollator.compare(blockName, block.canonicalName) == 0)
+ return block;
+ break;
+ case NO_SPACES:
+ for (UnicodeBlock block : sets)
+ {
+ String nsName = block.canonicalName.replaceAll(" ","");
+ if (usCollator.compare(blockName, nsName) == 0)
+ return block;
+ }
+ break;
+ case CONSTANT:
+ for (UnicodeBlock block : sets)
+ if (usCollator.compare(blockName, block.toString()) == 0)
+ return block;
+ break;
+ }
+ throw new IllegalArgumentException("No Unicode block found for " +
+ blockName + ".");
+ }
+
+ /**
+ * Basic Latin.
+ * 0x0000 - 0x007F.
+ */
+ public static final UnicodeBlock BASIC_LATIN
+ = new UnicodeBlock(0x0000, 0x007F,
+ "BASIC_LATIN",
+ "Basic Latin");
+
+ /**
+ * Latin-1 Supplement.
+ * 0x0080 - 0x00FF.
+ */
+ public static final UnicodeBlock LATIN_1_SUPPLEMENT
+ = new UnicodeBlock(0x0080, 0x00FF,
+ "LATIN_1_SUPPLEMENT",
+ "Latin-1 Supplement");
+
+ /**
+ * Latin Extended-A.
+ * 0x0100 - 0x017F.
+ */
+ public static final UnicodeBlock LATIN_EXTENDED_A
+ = new UnicodeBlock(0x0100, 0x017F,
+ "LATIN_EXTENDED_A",
+ "Latin Extended-A");
+
+ /**
+ * Latin Extended-B.
+ * 0x0180 - 0x024F.
+ */
+ public static final UnicodeBlock LATIN_EXTENDED_B
+ = new UnicodeBlock(0x0180, 0x024F,
+ "LATIN_EXTENDED_B",
+ "Latin Extended-B");
+
+ /**
+ * IPA Extensions.
+ * 0x0250 - 0x02AF.
+ */
+ public static final UnicodeBlock IPA_EXTENSIONS
+ = new UnicodeBlock(0x0250, 0x02AF,
+ "IPA_EXTENSIONS",
+ "IPA Extensions");
+
+ /**
+ * Spacing Modifier Letters.
+ * 0x02B0 - 0x02FF.
+ */
+ public static final UnicodeBlock SPACING_MODIFIER_LETTERS
+ = new UnicodeBlock(0x02B0, 0x02FF,
+ "SPACING_MODIFIER_LETTERS",
+ "Spacing Modifier Letters");
+
+ /**
+ * Combining Diacritical Marks.
+ * 0x0300 - 0x036F.
+ */
+ public static final UnicodeBlock COMBINING_DIACRITICAL_MARKS
+ = new UnicodeBlock(0x0300, 0x036F,
+ "COMBINING_DIACRITICAL_MARKS",
+ "Combining Diacritical Marks");
+
+ /**
+ * Greek.
+ * 0x0370 - 0x03FF.
+ */
+ public static final UnicodeBlock GREEK
+ = new UnicodeBlock(0x0370, 0x03FF,
+ "GREEK",
+ "Greek");
+
+ /**
+ * Cyrillic.
+ * 0x0400 - 0x04FF.
+ */
+ public static final UnicodeBlock CYRILLIC
+ = new UnicodeBlock(0x0400, 0x04FF,
+ "CYRILLIC",
+ "Cyrillic");
+
+ /**
+ * Cyrillic Supplementary.
+ * 0x0500 - 0x052F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock CYRILLIC_SUPPLEMENTARY
+ = new UnicodeBlock(0x0500, 0x052F,
+ "CYRILLIC_SUPPLEMENTARY",
+ "Cyrillic Supplementary");
+
+ /**
+ * Armenian.
+ * 0x0530 - 0x058F.
+ */
+ public static final UnicodeBlock ARMENIAN
+ = new UnicodeBlock(0x0530, 0x058F,
+ "ARMENIAN",
+ "Armenian");
+
+ /**
+ * Hebrew.
+ * 0x0590 - 0x05FF.
+ */
+ public static final UnicodeBlock HEBREW
+ = new UnicodeBlock(0x0590, 0x05FF,
+ "HEBREW",
+ "Hebrew");
+
+ /**
+ * Arabic.
+ * 0x0600 - 0x06FF.
+ */
+ public static final UnicodeBlock ARABIC
+ = new UnicodeBlock(0x0600, 0x06FF,
+ "ARABIC",
+ "Arabic");
+
+ /**
+ * Syriac.
+ * 0x0700 - 0x074F.
+ * @since 1.4
+ */
+ public static final UnicodeBlock SYRIAC
+ = new UnicodeBlock(0x0700, 0x074F,
+ "SYRIAC",
+ "Syriac");
+
+ /**
+ * Thaana.
+ * 0x0780 - 0x07BF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock THAANA
+ = new UnicodeBlock(0x0780, 0x07BF,
+ "THAANA",
+ "Thaana");
+
+ /**
+ * Devanagari.
+ * 0x0900 - 0x097F.
+ */
+ public static final UnicodeBlock DEVANAGARI
+ = new UnicodeBlock(0x0900, 0x097F,
+ "DEVANAGARI",
+ "Devanagari");
+
+ /**
+ * Bengali.
+ * 0x0980 - 0x09FF.
+ */
+ public static final UnicodeBlock BENGALI
+ = new UnicodeBlock(0x0980, 0x09FF,
+ "BENGALI",
+ "Bengali");
+
+ /**
+ * Gurmukhi.
+ * 0x0A00 - 0x0A7F.
+ */
+ public static final UnicodeBlock GURMUKHI
+ = new UnicodeBlock(0x0A00, 0x0A7F,
+ "GURMUKHI",
+ "Gurmukhi");
+
+ /**
+ * Gujarati.
+ * 0x0A80 - 0x0AFF.
+ */
+ public static final UnicodeBlock GUJARATI
+ = new UnicodeBlock(0x0A80, 0x0AFF,
+ "GUJARATI",
+ "Gujarati");
+
+ /**
+ * Oriya.
+ * 0x0B00 - 0x0B7F.
+ */
+ public static final UnicodeBlock ORIYA
+ = new UnicodeBlock(0x0B00, 0x0B7F,
+ "ORIYA",
+ "Oriya");
+
+ /**
+ * Tamil.
+ * 0x0B80 - 0x0BFF.
+ */
+ public static final UnicodeBlock TAMIL
+ = new UnicodeBlock(0x0B80, 0x0BFF,
+ "TAMIL",
+ "Tamil");
+
+ /**
+ * Telugu.
+ * 0x0C00 - 0x0C7F.
+ */
+ public static final UnicodeBlock TELUGU
+ = new UnicodeBlock(0x0C00, 0x0C7F,
+ "TELUGU",
+ "Telugu");
+
+ /**
+ * Kannada.
+ * 0x0C80 - 0x0CFF.
+ */
+ public static final UnicodeBlock KANNADA
+ = new UnicodeBlock(0x0C80, 0x0CFF,
+ "KANNADA",
+ "Kannada");
+
+ /**
+ * Malayalam.
+ * 0x0D00 - 0x0D7F.
+ */
+ public static final UnicodeBlock MALAYALAM
+ = new UnicodeBlock(0x0D00, 0x0D7F,
+ "MALAYALAM",
+ "Malayalam");
+
+ /**
+ * Sinhala.
+ * 0x0D80 - 0x0DFF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock SINHALA
+ = new UnicodeBlock(0x0D80, 0x0DFF,
+ "SINHALA",
+ "Sinhala");
+
+ /**
+ * Thai.
+ * 0x0E00 - 0x0E7F.
+ */
+ public static final UnicodeBlock THAI
+ = new UnicodeBlock(0x0E00, 0x0E7F,
+ "THAI",
+ "Thai");
+
+ /**
+ * Lao.
+ * 0x0E80 - 0x0EFF.
+ */
+ public static final UnicodeBlock LAO
+ = new UnicodeBlock(0x0E80, 0x0EFF,
+ "LAO",
+ "Lao");
+
+ /**
+ * Tibetan.
+ * 0x0F00 - 0x0FFF.
+ */
+ public static final UnicodeBlock TIBETAN
+ = new UnicodeBlock(0x0F00, 0x0FFF,
+ "TIBETAN",
+ "Tibetan");
+
+ /**
+ * Myanmar.
+ * 0x1000 - 0x109F.
+ * @since 1.4
+ */
+ public static final UnicodeBlock MYANMAR
+ = new UnicodeBlock(0x1000, 0x109F,
+ "MYANMAR",
+ "Myanmar");
+
+ /**
+ * Georgian.
+ * 0x10A0 - 0x10FF.
+ */
+ public static final UnicodeBlock GEORGIAN
+ = new UnicodeBlock(0x10A0, 0x10FF,
+ "GEORGIAN",
+ "Georgian");
+
+ /**
+ * Hangul Jamo.
+ * 0x1100 - 0x11FF.
+ */
+ public static final UnicodeBlock HANGUL_JAMO
+ = new UnicodeBlock(0x1100, 0x11FF,
+ "HANGUL_JAMO",
+ "Hangul Jamo");
+
+ /**
+ * Ethiopic.
+ * 0x1200 - 0x137F.
+ * @since 1.4
+ */
+ public static final UnicodeBlock ETHIOPIC
+ = new UnicodeBlock(0x1200, 0x137F,
+ "ETHIOPIC",
+ "Ethiopic");
+
+ /**
+ * Cherokee.
+ * 0x13A0 - 0x13FF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock CHEROKEE
+ = new UnicodeBlock(0x13A0, 0x13FF,
+ "CHEROKEE",
+ "Cherokee");
+
+ /**
+ * Unified Canadian Aboriginal Syllabics.
+ * 0x1400 - 0x167F.
+ * @since 1.4
+ */
+ public static final UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS
+ = new UnicodeBlock(0x1400, 0x167F,
+ "UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS",
+ "Unified Canadian Aboriginal Syllabics");
+
+ /**
+ * Ogham.
+ * 0x1680 - 0x169F.
+ * @since 1.4
+ */
+ public static final UnicodeBlock OGHAM
+ = new UnicodeBlock(0x1680, 0x169F,
+ "OGHAM",
+ "Ogham");
+
+ /**
+ * Runic.
+ * 0x16A0 - 0x16FF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock RUNIC
+ = new UnicodeBlock(0x16A0, 0x16FF,
+ "RUNIC",
+ "Runic");
+
+ /**
+ * Tagalog.
+ * 0x1700 - 0x171F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock TAGALOG
+ = new UnicodeBlock(0x1700, 0x171F,
+ "TAGALOG",
+ "Tagalog");
+
+ /**
+ * Hanunoo.
+ * 0x1720 - 0x173F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock HANUNOO
+ = new UnicodeBlock(0x1720, 0x173F,
+ "HANUNOO",
+ "Hanunoo");
+
+ /**
+ * Buhid.
+ * 0x1740 - 0x175F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock BUHID
+ = new UnicodeBlock(0x1740, 0x175F,
+ "BUHID",
+ "Buhid");
+
+ /**
+ * Tagbanwa.
+ * 0x1760 - 0x177F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock TAGBANWA
+ = new UnicodeBlock(0x1760, 0x177F,
+ "TAGBANWA",
+ "Tagbanwa");
+
+ /**
+ * Khmer.
+ * 0x1780 - 0x17FF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock KHMER
+ = new UnicodeBlock(0x1780, 0x17FF,
+ "KHMER",
+ "Khmer");
+
+ /**
+ * Mongolian.
+ * 0x1800 - 0x18AF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock MONGOLIAN
+ = new UnicodeBlock(0x1800, 0x18AF,
+ "MONGOLIAN",
+ "Mongolian");
+
+ /**
+ * Limbu.
+ * 0x1900 - 0x194F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock LIMBU
+ = new UnicodeBlock(0x1900, 0x194F,
+ "LIMBU",
+ "Limbu");
+
+ /**
+ * Tai Le.
+ * 0x1950 - 0x197F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock TAI_LE
+ = new UnicodeBlock(0x1950, 0x197F,
+ "TAI_LE",
+ "Tai Le");
+
+ /**
+ * Khmer Symbols.
+ * 0x19E0 - 0x19FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock KHMER_SYMBOLS
+ = new UnicodeBlock(0x19E0, 0x19FF,
+ "KHMER_SYMBOLS",
+ "Khmer Symbols");
+
+ /**
+ * Phonetic Extensions.
+ * 0x1D00 - 0x1D7F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock PHONETIC_EXTENSIONS
+ = new UnicodeBlock(0x1D00, 0x1D7F,
+ "PHONETIC_EXTENSIONS",
+ "Phonetic Extensions");
+
+ /**
+ * Latin Extended Additional.
+ * 0x1E00 - 0x1EFF.
+ */
+ public static final UnicodeBlock LATIN_EXTENDED_ADDITIONAL
+ = new UnicodeBlock(0x1E00, 0x1EFF,
+ "LATIN_EXTENDED_ADDITIONAL",
+ "Latin Extended Additional");
+
+ /**
+ * Greek Extended.
+ * 0x1F00 - 0x1FFF.
+ */
+ public static final UnicodeBlock GREEK_EXTENDED
+ = new UnicodeBlock(0x1F00, 0x1FFF,
+ "GREEK_EXTENDED",
+ "Greek Extended");
+
+ /**
+ * General Punctuation.
+ * 0x2000 - 0x206F.
+ */
+ public static final UnicodeBlock GENERAL_PUNCTUATION
+ = new UnicodeBlock(0x2000, 0x206F,
+ "GENERAL_PUNCTUATION",
+ "General Punctuation");
+
+ /**
+ * Superscripts and Subscripts.
+ * 0x2070 - 0x209F.
+ */
+ public static final UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS
+ = new UnicodeBlock(0x2070, 0x209F,
+ "SUPERSCRIPTS_AND_SUBSCRIPTS",
+ "Superscripts and Subscripts");
+
+ /**
+ * Currency Symbols.
+ * 0x20A0 - 0x20CF.
+ */
+ public static final UnicodeBlock CURRENCY_SYMBOLS
+ = new UnicodeBlock(0x20A0, 0x20CF,
+ "CURRENCY_SYMBOLS",
+ "Currency Symbols");
+
+ /**
+ * Combining Marks for Symbols.
+ * 0x20D0 - 0x20FF.
+ */
+ public static final UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS
+ = new UnicodeBlock(0x20D0, 0x20FF,
+ "COMBINING_MARKS_FOR_SYMBOLS",
+ "Combining Marks for Symbols");
+
+ /**
+ * Letterlike Symbols.
+ * 0x2100 - 0x214F.
+ */
+ public static final UnicodeBlock LETTERLIKE_SYMBOLS
+ = new UnicodeBlock(0x2100, 0x214F,
+ "LETTERLIKE_SYMBOLS",
+ "Letterlike Symbols");
+
+ /**
+ * Number Forms.
+ * 0x2150 - 0x218F.
+ */
+ public static final UnicodeBlock NUMBER_FORMS
+ = new UnicodeBlock(0x2150, 0x218F,
+ "NUMBER_FORMS",
+ "Number Forms");
+
+ /**
+ * Arrows.
+ * 0x2190 - 0x21FF.
+ */
+ public static final UnicodeBlock ARROWS
+ = new UnicodeBlock(0x2190, 0x21FF,
+ "ARROWS",
+ "Arrows");
+
+ /**
+ * Mathematical Operators.
+ * 0x2200 - 0x22FF.
+ */
+ public static final UnicodeBlock MATHEMATICAL_OPERATORS
+ = new UnicodeBlock(0x2200, 0x22FF,
+ "MATHEMATICAL_OPERATORS",
+ "Mathematical Operators");
+
+ /**
+ * Miscellaneous Technical.
+ * 0x2300 - 0x23FF.
+ */
+ public static final UnicodeBlock MISCELLANEOUS_TECHNICAL
+ = new UnicodeBlock(0x2300, 0x23FF,
+ "MISCELLANEOUS_TECHNICAL",
+ "Miscellaneous Technical");
+
+ /**
+ * Control Pictures.
+ * 0x2400 - 0x243F.
+ */
+ public static final UnicodeBlock CONTROL_PICTURES
+ = new UnicodeBlock(0x2400, 0x243F,
+ "CONTROL_PICTURES",
+ "Control Pictures");
+
+ /**
+ * Optical Character Recognition.
+ * 0x2440 - 0x245F.
+ */
+ public static final UnicodeBlock OPTICAL_CHARACTER_RECOGNITION
+ = new UnicodeBlock(0x2440, 0x245F,
+ "OPTICAL_CHARACTER_RECOGNITION",
+ "Optical Character Recognition");
+
+ /**
+ * Enclosed Alphanumerics.
+ * 0x2460 - 0x24FF.
+ */
+ public static final UnicodeBlock ENCLOSED_ALPHANUMERICS
+ = new UnicodeBlock(0x2460, 0x24FF,
+ "ENCLOSED_ALPHANUMERICS",
+ "Enclosed Alphanumerics");
+
+ /**
+ * Box Drawing.
+ * 0x2500 - 0x257F.
+ */
+ public static final UnicodeBlock BOX_DRAWING
+ = new UnicodeBlock(0x2500, 0x257F,
+ "BOX_DRAWING",
+ "Box Drawing");
+
+ /**
+ * Block Elements.
+ * 0x2580 - 0x259F.
+ */
+ public static final UnicodeBlock BLOCK_ELEMENTS
+ = new UnicodeBlock(0x2580, 0x259F,
+ "BLOCK_ELEMENTS",
+ "Block Elements");
+
+ /**
+ * Geometric Shapes.
+ * 0x25A0 - 0x25FF.
+ */
+ public static final UnicodeBlock GEOMETRIC_SHAPES
+ = new UnicodeBlock(0x25A0, 0x25FF,
+ "GEOMETRIC_SHAPES",
+ "Geometric Shapes");
+
+ /**
+ * Miscellaneous Symbols.
+ * 0x2600 - 0x26FF.
+ */
+ public static final UnicodeBlock MISCELLANEOUS_SYMBOLS
+ = new UnicodeBlock(0x2600, 0x26FF,
+ "MISCELLANEOUS_SYMBOLS",
+ "Miscellaneous Symbols");
+
+ /**
+ * Dingbats.
+ * 0x2700 - 0x27BF.
+ */
+ public static final UnicodeBlock DINGBATS
+ = new UnicodeBlock(0x2700, 0x27BF,
+ "DINGBATS",
+ "Dingbats");
+
+ /**
+ * Miscellaneous Mathematical Symbols-A.
+ * 0x27C0 - 0x27EF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A
+ = new UnicodeBlock(0x27C0, 0x27EF,
+ "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A",
+ "Miscellaneous Mathematical Symbols-A");
+
+ /**
+ * Supplemental Arrows-A.
+ * 0x27F0 - 0x27FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock SUPPLEMENTAL_ARROWS_A
+ = new UnicodeBlock(0x27F0, 0x27FF,
+ "SUPPLEMENTAL_ARROWS_A",
+ "Supplemental Arrows-A");
+
+ /**
+ * Braille Patterns.
+ * 0x2800 - 0x28FF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock BRAILLE_PATTERNS
+ = new UnicodeBlock(0x2800, 0x28FF,
+ "BRAILLE_PATTERNS",
+ "Braille Patterns");
+
+ /**
+ * Supplemental Arrows-B.
+ * 0x2900 - 0x297F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock SUPPLEMENTAL_ARROWS_B
+ = new UnicodeBlock(0x2900, 0x297F,
+ "SUPPLEMENTAL_ARROWS_B",
+ "Supplemental Arrows-B");
+
+ /**
+ * Miscellaneous Mathematical Symbols-B.
+ * 0x2980 - 0x29FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B
+ = new UnicodeBlock(0x2980, 0x29FF,
+ "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B",
+ "Miscellaneous Mathematical Symbols-B");
+
+ /**
+ * Supplemental Mathematical Operators.
+ * 0x2A00 - 0x2AFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS
+ = new UnicodeBlock(0x2A00, 0x2AFF,
+ "SUPPLEMENTAL_MATHEMATICAL_OPERATORS",
+ "Supplemental Mathematical Operators");
+
+ /**
+ * Miscellaneous Symbols and Arrows.
+ * 0x2B00 - 0x2BFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS
+ = new UnicodeBlock(0x2B00, 0x2BFF,
+ "MISCELLANEOUS_SYMBOLS_AND_ARROWS",
+ "Miscellaneous Symbols and Arrows");
+
+ /**
+ * CJK Radicals Supplement.
+ * 0x2E80 - 0x2EFF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock CJK_RADICALS_SUPPLEMENT
+ = new UnicodeBlock(0x2E80, 0x2EFF,
+ "CJK_RADICALS_SUPPLEMENT",
+ "CJK Radicals Supplement");
+
+ /**
+ * Kangxi Radicals.
+ * 0x2F00 - 0x2FDF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock KANGXI_RADICALS
+ = new UnicodeBlock(0x2F00, 0x2FDF,
+ "KANGXI_RADICALS",
+ "Kangxi Radicals");
+
+ /**
+ * Ideographic Description Characters.
+ * 0x2FF0 - 0x2FFF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS
+ = new UnicodeBlock(0x2FF0, 0x2FFF,
+ "IDEOGRAPHIC_DESCRIPTION_CHARACTERS",
+ "Ideographic Description Characters");
+
+ /**
+ * CJK Symbols and Punctuation.
+ * 0x3000 - 0x303F.
+ */
+ public static final UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION
+ = new UnicodeBlock(0x3000, 0x303F,
+ "CJK_SYMBOLS_AND_PUNCTUATION",
+ "CJK Symbols and Punctuation");
+
+ /**
+ * Hiragana.
+ * 0x3040 - 0x309F.
+ */
+ public static final UnicodeBlock HIRAGANA
+ = new UnicodeBlock(0x3040, 0x309F,
+ "HIRAGANA",
+ "Hiragana");
+
+ /**
+ * Katakana.
+ * 0x30A0 - 0x30FF.
+ */
+ public static final UnicodeBlock KATAKANA
+ = new UnicodeBlock(0x30A0, 0x30FF,
+ "KATAKANA",
+ "Katakana");
+
+ /**
+ * Bopomofo.
+ * 0x3100 - 0x312F.
+ */
+ public static final UnicodeBlock BOPOMOFO
+ = new UnicodeBlock(0x3100, 0x312F,
+ "BOPOMOFO",
+ "Bopomofo");
+
+ /**
+ * Hangul Compatibility Jamo.
+ * 0x3130 - 0x318F.
+ */
+ public static final UnicodeBlock HANGUL_COMPATIBILITY_JAMO
+ = new UnicodeBlock(0x3130, 0x318F,
+ "HANGUL_COMPATIBILITY_JAMO",
+ "Hangul Compatibility Jamo");
+
+ /**
+ * Kanbun.
+ * 0x3190 - 0x319F.
+ */
+ public static final UnicodeBlock KANBUN
+ = new UnicodeBlock(0x3190, 0x319F,
+ "KANBUN",
+ "Kanbun");
+
+ /**
+ * Bopomofo Extended.
+ * 0x31A0 - 0x31BF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock BOPOMOFO_EXTENDED
+ = new UnicodeBlock(0x31A0, 0x31BF,
+ "BOPOMOFO_EXTENDED",
+ "Bopomofo Extended");
+
+ /**
+ * Katakana Phonetic Extensions.
+ * 0x31F0 - 0x31FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS
+ = new UnicodeBlock(0x31F0, 0x31FF,
+ "KATAKANA_PHONETIC_EXTENSIONS",
+ "Katakana Phonetic Extensions");
+
+ /**
+ * Enclosed CJK Letters and Months.
+ * 0x3200 - 0x32FF.
+ */
+ public static final UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS
+ = new UnicodeBlock(0x3200, 0x32FF,
+ "ENCLOSED_CJK_LETTERS_AND_MONTHS",
+ "Enclosed CJK Letters and Months");
+
+ /**
+ * CJK Compatibility.
+ * 0x3300 - 0x33FF.
+ */
+ public static final UnicodeBlock CJK_COMPATIBILITY
+ = new UnicodeBlock(0x3300, 0x33FF,
+ "CJK_COMPATIBILITY",
+ "CJK Compatibility");
+
+ /**
+ * CJK Unified Ideographs Extension A.
+ * 0x3400 - 0x4DBF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
+ = new UnicodeBlock(0x3400, 0x4DBF,
+ "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A",
+ "CJK Unified Ideographs Extension A");
+
+ /**
+ * Yijing Hexagram Symbols.
+ * 0x4DC0 - 0x4DFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock YIJING_HEXAGRAM_SYMBOLS
+ = new UnicodeBlock(0x4DC0, 0x4DFF,
+ "YIJING_HEXAGRAM_SYMBOLS",
+ "Yijing Hexagram Symbols");
+
+ /**
+ * CJK Unified Ideographs.
+ * 0x4E00 - 0x9FFF.
+ */
+ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS
+ = new UnicodeBlock(0x4E00, 0x9FFF,
+ "CJK_UNIFIED_IDEOGRAPHS",
+ "CJK Unified Ideographs");
+
+ /**
+ * Yi Syllables.
+ * 0xA000 - 0xA48F.
+ * @since 1.4
+ */
+ public static final UnicodeBlock YI_SYLLABLES
+ = new UnicodeBlock(0xA000, 0xA48F,
+ "YI_SYLLABLES",
+ "Yi Syllables");
+
+ /**
+ * Yi Radicals.
+ * 0xA490 - 0xA4CF.
+ * @since 1.4
+ */
+ public static final UnicodeBlock YI_RADICALS
+ = new UnicodeBlock(0xA490, 0xA4CF,
+ "YI_RADICALS",
+ "Yi Radicals");
+
+ /**
+ * Hangul Syllables.
+ * 0xAC00 - 0xD7AF.
+ */
+ public static final UnicodeBlock HANGUL_SYLLABLES
+ = new UnicodeBlock(0xAC00, 0xD7AF,
+ "HANGUL_SYLLABLES",
+ "Hangul Syllables");
+
+ /**
+ * High Surrogates.
+ * 0xD800 - 0xDB7F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock HIGH_SURROGATES
+ = new UnicodeBlock(0xD800, 0xDB7F,
+ "HIGH_SURROGATES",
+ "High Surrogates");
+
+ /**
+ * High Private Use Surrogates.
+ * 0xDB80 - 0xDBFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock HIGH_PRIVATE_USE_SURROGATES
+ = new UnicodeBlock(0xDB80, 0xDBFF,
+ "HIGH_PRIVATE_USE_SURROGATES",
+ "High Private Use Surrogates");
+
+ /**
+ * Low Surrogates.
+ * 0xDC00 - 0xDFFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock LOW_SURROGATES
+ = new UnicodeBlock(0xDC00, 0xDFFF,
+ "LOW_SURROGATES",
+ "Low Surrogates");
+
+ /**
+ * Private Use Area.
+ * 0xE000 - 0xF8FF.
+ */
+ public static final UnicodeBlock PRIVATE_USE_AREA
+ = new UnicodeBlock(0xE000, 0xF8FF,
+ "PRIVATE_USE_AREA",
+ "Private Use Area");
+
+ /**
+ * CJK Compatibility Ideographs.
+ * 0xF900 - 0xFAFF.
+ */
+ public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS
+ = new UnicodeBlock(0xF900, 0xFAFF,
+ "CJK_COMPATIBILITY_IDEOGRAPHS",
+ "CJK Compatibility Ideographs");
+
+ /**
+ * Alphabetic Presentation Forms.
+ * 0xFB00 - 0xFB4F.
+ */
+ public static final UnicodeBlock ALPHABETIC_PRESENTATION_FORMS
+ = new UnicodeBlock(0xFB00, 0xFB4F,
+ "ALPHABETIC_PRESENTATION_FORMS",
+ "Alphabetic Presentation Forms");
+
+ /**
+ * Arabic Presentation Forms-A.
+ * 0xFB50 - 0xFDFF.
+ */
+ public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_A
+ = new UnicodeBlock(0xFB50, 0xFDFF,
+ "ARABIC_PRESENTATION_FORMS_A",
+ "Arabic Presentation Forms-A");
+
+ /**
+ * Variation Selectors.
+ * 0xFE00 - 0xFE0F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock VARIATION_SELECTORS
+ = new UnicodeBlock(0xFE00, 0xFE0F,
+ "VARIATION_SELECTORS",
+ "Variation Selectors");
+
+ /**
+ * Combining Half Marks.
+ * 0xFE20 - 0xFE2F.
+ */
+ public static final UnicodeBlock COMBINING_HALF_MARKS
+ = new UnicodeBlock(0xFE20, 0xFE2F,
+ "COMBINING_HALF_MARKS",
+ "Combining Half Marks");
+
+ /**
+ * CJK Compatibility Forms.
+ * 0xFE30 - 0xFE4F.
+ */
+ public static final UnicodeBlock CJK_COMPATIBILITY_FORMS
+ = new UnicodeBlock(0xFE30, 0xFE4F,
+ "CJK_COMPATIBILITY_FORMS",
+ "CJK Compatibility Forms");
+
+ /**
+ * Small Form Variants.
+ * 0xFE50 - 0xFE6F.
+ */
+ public static final UnicodeBlock SMALL_FORM_VARIANTS
+ = new UnicodeBlock(0xFE50, 0xFE6F,
+ "SMALL_FORM_VARIANTS",
+ "Small Form Variants");
+
+ /**
+ * Arabic Presentation Forms-B.
+ * 0xFE70 - 0xFEFF.
+ */
+ public static final UnicodeBlock ARABIC_PRESENTATION_FORMS_B
+ = new UnicodeBlock(0xFE70, 0xFEFF,
+ "ARABIC_PRESENTATION_FORMS_B",
+ "Arabic Presentation Forms-B");
+
+ /**
+ * Halfwidth and Fullwidth Forms.
+ * 0xFF00 - 0xFFEF.
+ */
+ public static final UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS
+ = new UnicodeBlock(0xFF00, 0xFFEF,
+ "HALFWIDTH_AND_FULLWIDTH_FORMS",
+ "Halfwidth and Fullwidth Forms");
+
+ /**
+ * Specials.
+ * 0xFFF0 - 0xFFFF.
+ */
+ public static final UnicodeBlock SPECIALS
+ = new UnicodeBlock(0xFFF0, 0xFFFF,
+ "SPECIALS",
+ "Specials");
+
+ /**
+ * Linear B Syllabary.
+ * 0x10000 - 0x1007F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock LINEAR_B_SYLLABARY
+ = new UnicodeBlock(0x10000, 0x1007F,
+ "LINEAR_B_SYLLABARY",
+ "Linear B Syllabary");
+
+ /**
+ * Linear B Ideograms.
+ * 0x10080 - 0x100FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock LINEAR_B_IDEOGRAMS
+ = new UnicodeBlock(0x10080, 0x100FF,
+ "LINEAR_B_IDEOGRAMS",
+ "Linear B Ideograms");
+
+ /**
+ * Aegean Numbers.
+ * 0x10100 - 0x1013F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock AEGEAN_NUMBERS
+ = new UnicodeBlock(0x10100, 0x1013F,
+ "AEGEAN_NUMBERS",
+ "Aegean Numbers");
+
+ /**
+ * Old Italic.
+ * 0x10300 - 0x1032F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock OLD_ITALIC
+ = new UnicodeBlock(0x10300, 0x1032F,
+ "OLD_ITALIC",
+ "Old Italic");
+
+ /**
+ * Gothic.
+ * 0x10330 - 0x1034F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock GOTHIC
+ = new UnicodeBlock(0x10330, 0x1034F,
+ "GOTHIC",
+ "Gothic");
+
+ /**
+ * Ugaritic.
+ * 0x10380 - 0x1039F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock UGARITIC
+ = new UnicodeBlock(0x10380, 0x1039F,
+ "UGARITIC",
+ "Ugaritic");
+
+ /**
+ * Deseret.
+ * 0x10400 - 0x1044F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock DESERET
+ = new UnicodeBlock(0x10400, 0x1044F,
+ "DESERET",
+ "Deseret");
+
+ /**
+ * Shavian.
+ * 0x10450 - 0x1047F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock SHAVIAN
+ = new UnicodeBlock(0x10450, 0x1047F,
+ "SHAVIAN",
+ "Shavian");
+
+ /**
+ * Osmanya.
+ * 0x10480 - 0x104AF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock OSMANYA
+ = new UnicodeBlock(0x10480, 0x104AF,
+ "OSMANYA",
+ "Osmanya");
+
+ /**
+ * Cypriot Syllabary.
+ * 0x10800 - 0x1083F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock CYPRIOT_SYLLABARY
+ = new UnicodeBlock(0x10800, 0x1083F,
+ "CYPRIOT_SYLLABARY",
+ "Cypriot Syllabary");
+
+ /**
+ * Byzantine Musical Symbols.
+ * 0x1D000 - 0x1D0FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS
+ = new UnicodeBlock(0x1D000, 0x1D0FF,
+ "BYZANTINE_MUSICAL_SYMBOLS",
+ "Byzantine Musical Symbols");
+
+ /**
+ * Musical Symbols.
+ * 0x1D100 - 0x1D1FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock MUSICAL_SYMBOLS
+ = new UnicodeBlock(0x1D100, 0x1D1FF,
+ "MUSICAL_SYMBOLS",
+ "Musical Symbols");
+
+ /**
+ * Tai Xuan Jing Symbols.
+ * 0x1D300 - 0x1D35F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock TAI_XUAN_JING_SYMBOLS
+ = new UnicodeBlock(0x1D300, 0x1D35F,
+ "TAI_XUAN_JING_SYMBOLS",
+ "Tai Xuan Jing Symbols");
+
+ /**
+ * Mathematical Alphanumeric Symbols.
+ * 0x1D400 - 0x1D7FF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS
+ = new UnicodeBlock(0x1D400, 0x1D7FF,
+ "MATHEMATICAL_ALPHANUMERIC_SYMBOLS",
+ "Mathematical Alphanumeric Symbols");
+
+ /**
+ * CJK Unified Ideographs Extension B.
+ * 0x20000 - 0x2A6DF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
+ = new UnicodeBlock(0x20000, 0x2A6DF,
+ "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B",
+ "CJK Unified Ideographs Extension B");
+
+ /**
+ * CJK Compatibility Ideographs Supplement.
+ * 0x2F800 - 0x2FA1F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT
+ = new UnicodeBlock(0x2F800, 0x2FA1F,
+ "CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT",
+ "CJK Compatibility Ideographs Supplement");
+
+ /**
+ * Tags.
+ * 0xE0000 - 0xE007F.
+ * @since 1.5
+ */
+ public static final UnicodeBlock TAGS
+ = new UnicodeBlock(0xE0000, 0xE007F,
+ "TAGS",
+ "Tags");
+
+ /**
+ * Variation Selectors Supplement.
+ * 0xE0100 - 0xE01EF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT
+ = new UnicodeBlock(0xE0100, 0xE01EF,
+ "VARIATION_SELECTORS_SUPPLEMENT",
+ "Variation Selectors Supplement");
+
+ /**
+ * Supplementary Private Use Area-A.
+ * 0xF0000 - 0xFFFFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A
+ = new UnicodeBlock(0xF0000, 0xFFFFF,
+ "SUPPLEMENTARY_PRIVATE_USE_AREA_A",
+ "Supplementary Private Use Area-A");
+
+ /**
+ * Supplementary Private Use Area-B.
+ * 0x100000 - 0x10FFFF.
+ * @since 1.5
+ */
+ public static final UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B
+ = new UnicodeBlock(0x100000, 0x10FFFF,
+ "SUPPLEMENTARY_PRIVATE_USE_AREA_B",
+ "Supplementary Private Use Area-B");
+
+ /**
+ * Surrogates Area.
+ * 'D800' - 'DFFF'.
+ * @deprecated As of 1.5, the three areas,
+ * <a href="#HIGH_SURROGATES">HIGH_SURROGATES</a>,
+ * <a href="#HIGH_PRIVATE_USE_SURROGATES">HIGH_PRIVATE_USE_SURROGATES</a>
+ * and <a href="#LOW_SURROGATES">LOW_SURROGATES</a>, as defined
+ * by the Unicode standard, should be used in preference to
+ * this. These are also returned from calls to <code>of(int)</code>
+ * and <code>of(char)</code>.
+ */
+ @Deprecated
+ public static final UnicodeBlock SURROGATES_AREA
+ = new UnicodeBlock(0xD800, 0xDFFF,
+ "SURROGATES_AREA",
+ "Surrogates Area");
+
+ /**
+ * The defined subsets.
+ */
+ private static final UnicodeBlock sets[] = {
+ BASIC_LATIN,
+ LATIN_1_SUPPLEMENT,
+ LATIN_EXTENDED_A,
+ LATIN_EXTENDED_B,
+ IPA_EXTENSIONS,
+ SPACING_MODIFIER_LETTERS,
+ COMBINING_DIACRITICAL_MARKS,
+ GREEK,
+ CYRILLIC,
+ CYRILLIC_SUPPLEMENTARY,
+ ARMENIAN,
+ HEBREW,
+ ARABIC,
+ SYRIAC,
+ THAANA,
+ DEVANAGARI,
+ BENGALI,
+ GURMUKHI,
+ GUJARATI,
+ ORIYA,
+ TAMIL,
+ TELUGU,
+ KANNADA,
+ MALAYALAM,
+ SINHALA,
+ THAI,
+ LAO,
+ TIBETAN,
+ MYANMAR,
+ GEORGIAN,
+ HANGUL_JAMO,
+ ETHIOPIC,
+ CHEROKEE,
+ UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS,
+ OGHAM,
+ RUNIC,
+ TAGALOG,
+ HANUNOO,
+ BUHID,
+ TAGBANWA,
+ KHMER,
+ MONGOLIAN,
+ LIMBU,
+ TAI_LE,
+ KHMER_SYMBOLS,
+ PHONETIC_EXTENSIONS,
+ LATIN_EXTENDED_ADDITIONAL,
+ GREEK_EXTENDED,
+ GENERAL_PUNCTUATION,
+ SUPERSCRIPTS_AND_SUBSCRIPTS,
+ CURRENCY_SYMBOLS,
+ COMBINING_MARKS_FOR_SYMBOLS,
+ LETTERLIKE_SYMBOLS,
+ NUMBER_FORMS,
+ ARROWS,
+ MATHEMATICAL_OPERATORS,
+ MISCELLANEOUS_TECHNICAL,
+ CONTROL_PICTURES,
+ OPTICAL_CHARACTER_RECOGNITION,
+ ENCLOSED_ALPHANUMERICS,
+ BOX_DRAWING,
+ BLOCK_ELEMENTS,
+ GEOMETRIC_SHAPES,
+ MISCELLANEOUS_SYMBOLS,
+ DINGBATS,
+ MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A,
+ SUPPLEMENTAL_ARROWS_A,
+ BRAILLE_PATTERNS,
+ SUPPLEMENTAL_ARROWS_B,
+ MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B,
+ SUPPLEMENTAL_MATHEMATICAL_OPERATORS,
+ MISCELLANEOUS_SYMBOLS_AND_ARROWS,
+ CJK_RADICALS_SUPPLEMENT,
+ KANGXI_RADICALS,
+ IDEOGRAPHIC_DESCRIPTION_CHARACTERS,
+ CJK_SYMBOLS_AND_PUNCTUATION,
+ HIRAGANA,
+ KATAKANA,
+ BOPOMOFO,
+ HANGUL_COMPATIBILITY_JAMO,
+ KANBUN,
+ BOPOMOFO_EXTENDED,
+ KATAKANA_PHONETIC_EXTENSIONS,
+ ENCLOSED_CJK_LETTERS_AND_MONTHS,
+ CJK_COMPATIBILITY,
+ CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A,
+ YIJING_HEXAGRAM_SYMBOLS,
+ CJK_UNIFIED_IDEOGRAPHS,
+ YI_SYLLABLES,
+ YI_RADICALS,
+ HANGUL_SYLLABLES,
+ HIGH_SURROGATES,
+ HIGH_PRIVATE_USE_SURROGATES,
+ LOW_SURROGATES,
+ PRIVATE_USE_AREA,
+ CJK_COMPATIBILITY_IDEOGRAPHS,
+ ALPHABETIC_PRESENTATION_FORMS,
+ ARABIC_PRESENTATION_FORMS_A,
+ VARIATION_SELECTORS,
+ COMBINING_HALF_MARKS,
+ CJK_COMPATIBILITY_FORMS,
+ SMALL_FORM_VARIANTS,
+ ARABIC_PRESENTATION_FORMS_B,
+ HALFWIDTH_AND_FULLWIDTH_FORMS,
+ SPECIALS,
+ LINEAR_B_SYLLABARY,
+ LINEAR_B_IDEOGRAMS,
+ AEGEAN_NUMBERS,
+ OLD_ITALIC,
+ GOTHIC,
+ UGARITIC,
+ DESERET,
+ SHAVIAN,
+ OSMANYA,
+ CYPRIOT_SYLLABARY,
+ BYZANTINE_MUSICAL_SYMBOLS,
+ MUSICAL_SYMBOLS,
+ TAI_XUAN_JING_SYMBOLS,
+ MATHEMATICAL_ALPHANUMERIC_SYMBOLS,
+ CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B,
+ CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT,
+ TAGS,
+ VARIATION_SELECTORS_SUPPLEMENT,
+ SUPPLEMENTARY_PRIVATE_USE_AREA_A,
+ SUPPLEMENTARY_PRIVATE_USE_AREA_B,
+ };
+ } // class UnicodeBlock
+
+ /**
+ * The immutable value of this Character.
+ *
+ * @serial the value of this Character
+ */
+ private final char value;
+
+ /**
+ * Compatible with JDK 1.0+.
+ */
+ private static final long serialVersionUID = 3786198910865385080L;
+
+ /**
+ * Smallest value allowed for radix arguments in Java. This value is 2.
+ *
+ * @see #digit(char, int)
+ * @see #forDigit(int, int)
+ * @see Integer#toString(int, int)
+ * @see Integer#valueOf(String)
+ */
+ public static final int MIN_RADIX = 2;
+
+ /**
+ * Largest value allowed for radix arguments in Java. This value is 36.
+ *
+ * @see #digit(char, int)
+ * @see #forDigit(int, int)
+ * @see Integer#toString(int, int)
+ * @see Integer#valueOf(String)
+ */
+ public static final int MAX_RADIX = 36;
+
+ /**
+ * The minimum value the char data type can hold.
+ * This value is <code>'\\u0000'</code>.
+ */
+ public static final char MIN_VALUE = '\u0000';
+
+ /**
+ * The maximum value the char data type can hold.
+ * This value is <code>'\\uFFFF'</code>.
+ */
+ public static final char MAX_VALUE = '\uFFFF';
+
+ /**
+ * The minimum Unicode 4.0 code point. This value is <code>0</code>.
+ * @since 1.5
+ */
+ public static final int MIN_CODE_POINT = 0;
+
+ /**
+ * The maximum Unicode 4.0 code point, which is greater than the range
+ * of the char data type.
+ * This value is <code>0x10FFFF</code>.
+ * @since 1.5
+ */
+ public static final int MAX_CODE_POINT = 0x10FFFF;
+
+ /**
+ * The minimum Unicode high surrogate code unit, or
+ * <emph>leading-surrogate</emph>, in the UTF-16 character encoding.
+ * This value is <code>'\uD800'</code>.
+ * @since 1.5
+ */
+ public static final char MIN_HIGH_SURROGATE = '\uD800';
+
+ /**
+ * The maximum Unicode high surrogate code unit, or
+ * <emph>leading-surrogate</emph>, in the UTF-16 character encoding.
+ * This value is <code>'\uDBFF'</code>.
+ * @since 1.5
+ */
+ public static final char MAX_HIGH_SURROGATE = '\uDBFF';
+
+ /**
+ * The minimum Unicode low surrogate code unit, or
+ * <emph>trailing-surrogate</emph>, in the UTF-16 character encoding.
+ * This value is <code>'\uDC00'</code>.
+ * @since 1.5
+ */
+ public static final char MIN_LOW_SURROGATE = '\uDC00';
+
+ /**
+ * The maximum Unicode low surrogate code unit, or
+ * <emph>trailing-surrogate</emph>, in the UTF-16 character encoding.
+ * This value is <code>'\uDFFF'</code>.
+ * @since 1.5
+ */
+ public static final char MAX_LOW_SURROGATE = '\uDFFF';
+
+ /**
+ * The minimum Unicode surrogate code unit in the UTF-16 character encoding.
+ * This value is <code>'\uD800'</code>.
+ * @since 1.5
+ */
+ public static final char MIN_SURROGATE = MIN_HIGH_SURROGATE;
+
+ /**
+ * The maximum Unicode surrogate code unit in the UTF-16 character encoding.
+ * This value is <code>'\uDFFF'</code>.
+ * @since 1.5
+ */
+ public static final char MAX_SURROGATE = MAX_LOW_SURROGATE;
+
+ /**
+ * The lowest possible supplementary Unicode code point (the first code
+ * point outside the basic multilingual plane (BMP)).
+ * This value is <code>0x10000</code>.
+ */
+ public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x10000;
+
+ /**
+ * Class object representing the primitive char data type.
+ *
+ * @since 1.1
+ */
+ public static final Class<Character> TYPE = (Class<Character>) VMClassLoader.getPrimitiveClass('C');
+
+ /**
+ * The number of bits needed to represent a <code>char</code>.
+ * @since 1.5
+ */
+ public static final int SIZE = 16;
+
+ // This caches some Character values, and is used by boxing
+ // conversions via valueOf(). We must cache at least 0..127;
+ // this constant controls how much we actually cache.
+ private static final int MAX_CACHE = 127;
+ private static Character[] charCache = new Character[MAX_CACHE + 1];
+
+ /**
+ * Lu = Letter, Uppercase (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte UPPERCASE_LETTER = 1;
+
+ /**
+ * Ll = Letter, Lowercase (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte LOWERCASE_LETTER = 2;
+
+ /**
+ * Lt = Letter, Titlecase (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte TITLECASE_LETTER = 3;
+
+ /**
+ * Mn = Mark, Non-Spacing (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte NON_SPACING_MARK = 6;
+
+ /**
+ * Mc = Mark, Spacing Combining (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte COMBINING_SPACING_MARK = 8;
+
+ /**
+ * Me = Mark, Enclosing (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte ENCLOSING_MARK = 7;
+
+ /**
+ * Nd = Number, Decimal Digit (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte DECIMAL_DIGIT_NUMBER = 9;
+
+ /**
+ * Nl = Number, Letter (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte LETTER_NUMBER = 10;
+
+ /**
+ * No = Number, Other (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte OTHER_NUMBER = 11;
+
+ /**
+ * Zs = Separator, Space (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte SPACE_SEPARATOR = 12;
+
+ /**
+ * Zl = Separator, Line (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte LINE_SEPARATOR = 13;
+
+ /**
+ * Zp = Separator, Paragraph (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte PARAGRAPH_SEPARATOR = 14;
+
+ /**
+ * Cc = Other, Control (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte CONTROL = 15;
+
+ /**
+ * Cf = Other, Format (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte FORMAT = 16;
+
+ /**
+ * Cs = Other, Surrogate (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte SURROGATE = 19;
+
+ /**
+ * Co = Other, Private Use (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte PRIVATE_USE = 18;
+
+ /**
+ * Cn = Other, Not Assigned (Normative).
+ *
+ * @since 1.1
+ */
+ public static final byte UNASSIGNED = 0;
+
+ /**
+ * Lm = Letter, Modifier (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte MODIFIER_LETTER = 4;
+
+ /**
+ * Lo = Letter, Other (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte OTHER_LETTER = 5;
+
+ /**
+ * Pc = Punctuation, Connector (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte CONNECTOR_PUNCTUATION = 23;
+
+ /**
+ * Pd = Punctuation, Dash (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte DASH_PUNCTUATION = 20;
+
+ /**
+ * Ps = Punctuation, Open (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte START_PUNCTUATION = 21;
+
+ /**
+ * Pe = Punctuation, Close (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte END_PUNCTUATION = 22;
+
+ /**
+ * Pi = Punctuation, Initial Quote (Informative).
+ *
+ * @since 1.4
+ */
+ public static final byte INITIAL_QUOTE_PUNCTUATION = 29;
+
+ /**
+ * Pf = Punctuation, Final Quote (Informative).
+ *
+ * @since 1.4
+ */
+ public static final byte FINAL_QUOTE_PUNCTUATION = 30;
+
+ /**
+ * Po = Punctuation, Other (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte OTHER_PUNCTUATION = 24;
+
+ /**
+ * Sm = Symbol, Math (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte MATH_SYMBOL = 25;
+
+ /**
+ * Sc = Symbol, Currency (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte CURRENCY_SYMBOL = 26;
+
+ /**
+ * Sk = Symbol, Modifier (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte MODIFIER_SYMBOL = 27;
+
+ /**
+ * So = Symbol, Other (Informative).
+ *
+ * @since 1.1
+ */
+ public static final byte OTHER_SYMBOL = 28;
+
+ /**
+ * Undefined bidirectional character type. Undefined char values have
+ * undefined directionality in the Unicode specification.
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_UNDEFINED = -1;
+
+ /**
+ * Strong bidirectional character type "L".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = 0;
+
+ /**
+ * Strong bidirectional character type "R".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = 1;
+
+ /**
+ * Strong bidirectional character type "AL".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 2;
+
+ /**
+ * Weak bidirectional character type "EN".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = 3;
+
+ /**
+ * Weak bidirectional character type "ES".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 4;
+
+ /**
+ * Weak bidirectional character type "ET".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 5;
+
+ /**
+ * Weak bidirectional character type "AN".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_ARABIC_NUMBER = 6;
+
+ /**
+ * Weak bidirectional character type "CS".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 7;
+
+ /**
+ * Weak bidirectional character type "NSM".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_NONSPACING_MARK = 8;
+
+ /**
+ * Weak bidirectional character type "BN".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = 9;
+
+ /**
+ * Neutral bidirectional character type "B".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 10;
+
+ /**
+ * Neutral bidirectional character type "S".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = 11;
+
+ /**
+ * Strong bidirectional character type "WS".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_WHITESPACE = 12;
+
+ /**
+ * Neutral bidirectional character type "ON".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_OTHER_NEUTRALS = 13;
+
+ /**
+ * Strong bidirectional character type "LRE".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 14;
+
+ /**
+ * Strong bidirectional character type "LRO".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 15;
+
+ /**
+ * Strong bidirectional character type "RLE".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 16;
+
+ /**
+ * Strong bidirectional character type "RLO".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 17;
+
+ /**
+ * Weak bidirectional character type "PDF".
+ *
+ * @since 1.4
+ */
+ public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 18;
+
+ /**
+ * Mask for grabbing the type out of the result of readChar.
+ * @see #readChar(char)
+ */
+ private static final int TYPE_MASK = 0x1F;
+
+ /**
+ * Mask for grabbing the non-breaking space flag out of the result of
+ * readChar.
+ * @see #readChar(char)
+ */
+ private static final int NO_BREAK_MASK = 0x20;
+
+ /**
+ * Mask for grabbing the mirrored directionality flag out of the result
+ * of readChar.
+ * @see #readChar(char)
+ */
+ private static final int MIRROR_MASK = 0x40;
+
+ /**
+ * Grabs an attribute offset from the Unicode attribute database. The lower
+ * 5 bits are the character type, the next 2 bits are flags, and the top
+ * 9 bits are the offset into the attribute tables. Note that the top 9
+ * bits are meaningless in this context; they are useful only in the native
+ * code.
+ *
+ * @param ch the character to look up
+ * @return the character's attribute offset and type
+ * @see #TYPE_MASK
+ * @see #NO_BREAK_MASK
+ * @see #MIRROR_MASK
+ */
+ private static native char readChar(char ch);
+
+ /**
+ * Grabs an attribute offset from the Unicode attribute database. The lower
+ * 5 bits are the character type, the next 2 bits are flags, and the top
+ * 9 bits are the offset into the attribute tables. Note that the top 9
+ * bits are meaningless in this context; they are useful only in the native
+ * code.
+ *
+ * @param codePoint the character to look up
+ * @return the character's attribute offset and type
+ * @see #TYPE_MASK
+ * @see #NO_BREAK_MASK
+ * @see #MIRROR_MASK
+ */
+ private static native char readCodePoint(int codePoint);
+
+ /**
+ * Wraps up a character.
+ *
+ * @param value the character to wrap
+ */
+ public Character(char value)
+ {
+ this.value = value;
+ }
+
+ /**
+ * Returns the character which has been wrapped by this class.
+ *
+ * @return the character wrapped
+ */
+ public char charValue()
+ {
+ return value;
+ }
+
+ /**
+ * Returns the numerical value (unsigned) of the wrapped character.
+ * Range of returned values: 0x0000-0xFFFF.
+ *
+ * @return the value of the wrapped character
+ */
+ public int hashCode()
+ {
+ return value;
+ }
+
+ /**
+ * Determines if an object is equal to this object. This is only true for
+ * another Character object wrapping the same value.
+ *
+ * @param o object to compare
+ * @return true if o is a Character with the same value
+ */
+ public boolean equals(Object o)
+ {
+ return o instanceof Character && value == ((Character) o).value;
+ }
+
+ /**
+ * Converts the wrapped character into a String.
+ *
+ * @return a String containing one character -- the wrapped character
+ * of this instance
+ */
+ public String toString()
+ {
+ // This assumes that String.valueOf(char) can create a single-character
+ // String more efficiently than through the public API.
+ return String.valueOf(value);
+ }
+
+ /**
+ * Returns a String of length 1 representing the specified character.
+ *
+ * @param ch the character to convert
+ * @return a String containing the character
+ * @since 1.4
+ */
+ public static String toString(char ch)
+ {
+ // This assumes that String.valueOf(char) can create a single-character
+ // String more efficiently than through the public API.
+ return String.valueOf(ch);
+ }
+
+ /**
+ * Determines if a character is a Unicode lowercase letter. For example,
+ * <code>'a'</code> is lowercase.
+ * <br>
+ * lowercase = [Ll]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode lowercase letter, else false
+ * @see #isUpperCase(char)
+ * @see #isTitleCase(char)
+ * @see #toLowerCase(char)
+ * @see #getType(char)
+ */
+ public static boolean isLowerCase(char ch)
+ {
+ return getType(ch) == LOWERCASE_LETTER;
+ }
+
+ /**
+ * Determines if a character is a Unicode lowercase letter. For example,
+ * <code>'a'</code> is lowercase. Unlike isLowerCase(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * lowercase = [Ll]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode lowercase letter, else false
+ * @see #isUpperCase(int)
+ * @see #isTitleCase(int)
+ * @see #toLowerCase(int)
+ * @see #getType(int)
+ * @since 1.5
+ */
+ public static boolean isLowerCase(int codePoint)
+ {
+ return getType(codePoint) == LOWERCASE_LETTER;
+ }
+
+ /**
+ * Determines if a character is a Unicode uppercase letter. For example,
+ * <code>'A'</code> is uppercase.
+ * <br>
+ * uppercase = [Lu]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode uppercase letter, else false
+ * @see #isLowerCase(char)
+ * @see #isTitleCase(char)
+ * @see #toUpperCase(char)
+ * @see #getType(char)
+ */
+ public static boolean isUpperCase(char ch)
+ {
+ return getType(ch) == UPPERCASE_LETTER;
+ }
+
+ /**
+ * Determines if a character is a Unicode uppercase letter. For example,
+ * <code>'A'</code> is uppercase. Unlike isUpperCase(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * uppercase = [Lu]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode uppercase letter, else false
+ * @see #isLowerCase(int)
+ * @see #isTitleCase(int)
+ * @see #toUpperCase(int)
+ * @see #getType(int)
+ * @since 1.5
+ */
+ public static boolean isUpperCase(int codePoint)
+ {
+ return getType(codePoint) == UPPERCASE_LETTER;
+ }
+
+ /**
+ * Determines if a character is a Unicode titlecase letter. For example,
+ * the character "Lj" (Latin capital L with small letter j) is titlecase.
+ * <br>
+ * titlecase = [Lt]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode titlecase letter, else false
+ * @see #isLowerCase(char)
+ * @see #isUpperCase(char)
+ * @see #toTitleCase(char)
+ * @see #getType(char)
+ */
+ public static boolean isTitleCase(char ch)
+ {
+ return getType(ch) == TITLECASE_LETTER;
+ }
+
+ /**
+ * Determines if a character is a Unicode titlecase letter. For example,
+ * the character "Lj" (Latin capital L with small letter j) is titlecase.
+ * Unlike isTitleCase(char), this method supports supplementary Unicode
+ * code points.
+ * <br>
+ * titlecase = [Lt]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode titlecase letter, else false
+ * @see #isLowerCase(int)
+ * @see #isUpperCase(int)
+ * @see #toTitleCase(int)
+ * @see #getType(int)
+ * @since 1.5
+ */
+ public static boolean isTitleCase(int codePoint)
+ {
+ return getType(codePoint) == TITLECASE_LETTER;
+ }
+
+ /**
+ * Determines if a character is a Unicode decimal digit. For example,
+ * <code>'0'</code> is a digit.
+ * <br>
+ * Unicode decimal digit = [Nd]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode decimal digit, else false
+ * @see #digit(char, int)
+ * @see #forDigit(int, int)
+ * @see #getType(char)
+ */
+ public static boolean isDigit(char ch)
+ {
+ return getType(ch) == DECIMAL_DIGIT_NUMBER;
+ }
+
+ /**
+ * Determines if a character is a Unicode decimal digit. For example,
+ * <code>'0'</code> is a digit. Unlike isDigit(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * Unicode decimal digit = [Nd]
+ *
+ * @param codePoint character to test
+ * @return true if ccodePoint is a Unicode decimal digit, else false
+ * @see #digit(int, int)
+ * @see #forDigit(int, int)
+ * @see #getType(int)
+ * @since 1.5
+ */
+ public static boolean isDigit(int codePoint)
+ {
+ return getType(codePoint) == DECIMAL_DIGIT_NUMBER;
+ }
+
+ /**
+ * Determines if a character is part of the Unicode Standard. This is an
+ * evolving standard, but covers every character in the data file.
+ * <br>
+ * defined = not [Cn]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode character, else false
+ * @see #isDigit(char)
+ * @see #isLetter(char)
+ * @see #isLetterOrDigit(char)
+ * @see #isLowerCase(char)
+ * @see #isTitleCase(char)
+ * @see #isUpperCase(char)
+ */
+ public static boolean isDefined(char ch)
+ {
+ return getType(ch) != UNASSIGNED;
+ }
+
+ /**
+ * Determines if a character is part of the Unicode Standard. This is an
+ * evolving standard, but covers every character in the data file. Unlike
+ * isDefined(char), this method supports supplementary Unicode code points.
+ * <br>
+ * defined = not [Cn]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode character, else false
+ * @see #isDigit(int)
+ * @see #isLetter(int)
+ * @see #isLetterOrDigit(int)
+ * @see #isLowerCase(int)
+ * @see #isTitleCase(int)
+ * @see #isUpperCase(int)
+ * @since 1.5
+ */
+ public static boolean isDefined(int codePoint)
+ {
+ return getType(codePoint) != UNASSIGNED;
+ }
+
+ /**
+ * Determines if a character is a Unicode letter. Not all letters have case,
+ * so this may return true when isLowerCase and isUpperCase return false.
+ * <br>
+ * letter = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode letter, else false
+ * @see #isDigit(char)
+ * @see #isJavaIdentifierStart(char)
+ * @see #isJavaLetter(char)
+ * @see #isJavaLetterOrDigit(char)
+ * @see #isLetterOrDigit(char)
+ * @see #isLowerCase(char)
+ * @see #isTitleCase(char)
+ * @see #isUnicodeIdentifierStart(char)
+ * @see #isUpperCase(char)
+ */
+ public static boolean isLetter(char ch)
+ {
+ return ((1 << getType(ch))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER))) != 0;
+ }
+
+ /**
+ * Determines if a character is a Unicode letter. Not all letters have case,
+ * so this may return true when isLowerCase and isUpperCase return false.
+ * Unlike isLetter(char), this method supports supplementary Unicode code
+ * points.
+ * <br>
+ * letter = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode letter, else false
+ * @see #isDigit(int)
+ * @see #isJavaIdentifierStart(int)
+ * @see #isJavaLetter(int)
+ * @see #isJavaLetterOrDigit(int)
+ * @see #isLetterOrDigit(int)
+ * @see #isLowerCase(int)
+ * @see #isTitleCase(int)
+ * @see #isUnicodeIdentifierStart(int)
+ * @see #isUpperCase(int)
+ * @since 1.5
+ */
+ public static boolean isLetter(int codePoint)
+ {
+ return ((1 << getType(codePoint))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER))) != 0;
+ }
+
+ /**
+ * Returns the index into the given CharSequence that is offset
+ * <code>codePointOffset</code> code points from <code>index</code>.
+ * @param seq the CharSequence
+ * @param index the start position in the CharSequence
+ * @param codePointOffset the number of code points offset from the start
+ * position
+ * @return the index into the CharSequence that is codePointOffset code
+ * points offset from index
+ *
+ * @throws NullPointerException if seq is null
+ * @throws IndexOutOfBoundsException if index is negative or greater than the
+ * length of the sequence.
+ * @throws IndexOutOfBoundsException if codePointOffset is positive and the
+ * subsequence from index to the end of seq has fewer than codePointOffset
+ * code points
+ * @throws IndexOutOfBoundsException if codePointOffset is negative and the
+ * subsequence from the start of seq to index has fewer than
+ * (-codePointOffset) code points
+ * @since 1.5
+ */
+ public static int offsetByCodePoints(CharSequence seq,
+ int index,
+ int codePointOffset)
+ {
+ int len = seq.length();
+ if (index < 0 || index > len)
+ throw new IndexOutOfBoundsException();
+
+ int numToGo = codePointOffset;
+ int offset = index;
+ int adjust = 1;
+ if (numToGo >= 0)
+ {
+ for (; numToGo > 0; offset++)
+ {
+ numToGo--;
+ if (Character.isHighSurrogate(seq.charAt(offset))
+ && (offset + 1) < len
+ && Character.isLowSurrogate(seq.charAt(offset + 1)))
+ offset++;
+ }
+ return offset;
+ }
+ else
+ {
+ numToGo *= -1;
+ for (; numToGo > 0;)
+ {
+ numToGo--;
+ offset--;
+ if (Character.isLowSurrogate(seq.charAt(offset))
+ && (offset - 1) >= 0
+ && Character.isHighSurrogate(seq.charAt(offset - 1)))
+ offset--;
+ }
+ return offset;
+ }
+ }
+
+ /**
+ * Returns the index into the given char subarray that is offset
+ * <code>codePointOffset</code> code points from <code>index</code>.
+ * @param a the char array
+ * @param start the start index of the subarray
+ * @param count the length of the subarray
+ * @param index the index to be offset
+ * @param codePointOffset the number of code points offset from <code>index
+ * </code>
+ * @return the index into the char array
+ *
+ * @throws NullPointerException if a is null
+ * @throws IndexOutOfBoundsException if start or count is negative or if
+ * start + count is greater than the length of the array
+ * @throws IndexOutOfBoundsException if index is less than start or larger
+ * than start + count
+ * @throws IndexOutOfBoundsException if codePointOffset is positive and the
+ * subarray from index to start + count - 1 has fewer than codePointOffset
+ * code points.
+ * @throws IndexOutOfBoundsException if codePointOffset is negative and the
+ * subarray from start to index - 1 has fewer than (-codePointOffset) code
+ * points
+ * @since 1.5
+
+ */
+ public static int offsetByCodePoints(char[] a,
+ int start,
+ int count,
+ int index,
+ int codePointOffset)
+ {
+ int len = a.length;
+ int end = start + count;
+ if (start < 0 || count < 0 || end > len || index < start || index > end)
+ throw new IndexOutOfBoundsException();
+
+ int numToGo = codePointOffset;
+ int offset = index;
+ int adjust = 1;
+ if (numToGo >= 0)
+ {
+ for (; numToGo > 0; offset++)
+ {
+ numToGo--;
+ if (Character.isHighSurrogate(a[offset])
+ && (offset + 1) < len
+ && Character.isLowSurrogate(a[offset + 1]))
+ offset++;
+ }
+ return offset;
+ }
+ else
+ {
+ numToGo *= -1;
+ for (; numToGo > 0;)
+ {
+ numToGo--;
+ offset--;
+ if (Character.isLowSurrogate(a[offset])
+ && (offset - 1) >= 0
+ && Character.isHighSurrogate(a[offset - 1]))
+ offset--;
+ if (offset < start)
+ throw new IndexOutOfBoundsException();
+ }
+ return offset;
+ }
+
+ }
+
+ /**
+ * Returns the number of Unicode code points in the specified range of the
+ * given CharSequence. The first char in the range is at position
+ * beginIndex and the last one is at position endIndex - 1. Paired
+ * surrogates (supplementary characters are represented by a pair of chars -
+ * one from the high surrogates and one from the low surrogates)
+ * count as just one code point.
+ * @param seq the CharSequence to inspect
+ * @param beginIndex the beginning of the range
+ * @param endIndex the end of the range
+ * @return the number of Unicode code points in the given range of the
+ * sequence
+ * @throws NullPointerException if seq is null
+ * @throws IndexOutOfBoundsException if beginIndex is negative, endIndex is
+ * larger than the length of seq, or if beginIndex is greater than endIndex.
+ * @since 1.5
+ */
+ public static int codePointCount(CharSequence seq, int beginIndex,
+ int endIndex)
+ {
+ int len = seq.length();
+ if (beginIndex < 0 || endIndex > len || beginIndex > endIndex)
+ throw new IndexOutOfBoundsException();
+
+ int count = 0;
+ for (int i = beginIndex; i < endIndex; i++)
+ {
+ count++;
+ // If there is a pairing, count it only once.
+ if (isHighSurrogate(seq.charAt(i)) && (i + 1) < endIndex
+ && isLowSurrogate(seq.charAt(i + 1)))
+ i ++;
+ }
+ return count;
+ }
+
+ /**
+ * Returns the number of Unicode code points in the specified range of the
+ * given char array. The first char in the range is at position
+ * offset and the length of the range is count. Paired surrogates
+ * (supplementary characters are represented by a pair of chars -
+ * one from the high surrogates and one from the low surrogates)
+ * count as just one code point.
+ * @param a the char array to inspect
+ * @param offset the beginning of the range
+ * @param count the length of the range
+ * @return the number of Unicode code points in the given range of the
+ * array
+ * @throws NullPointerException if a is null
+ * @throws IndexOutOfBoundsException if offset or count is negative or if
+ * offset + countendIndex is larger than the length of a.
+ * @since 1.5
+ */
+ public static int codePointCount(char[] a, int offset,
+ int count)
+ {
+ int len = a.length;
+ int end = offset + count;
+ if (offset < 0 || count < 0 || end > len)
+ throw new IndexOutOfBoundsException();
+
+ int counter = 0;
+ for (int i = offset; i < end; i++)
+ {
+ counter++;
+ // If there is a pairing, count it only once.
+ if (isHighSurrogate(a[i]) && (i + 1) < end
+ && isLowSurrogate(a[i + 1]))
+ i ++;
+ }
+ return counter;
+ }
+
+ /**
+ * Determines if a character is a Unicode letter or a Unicode digit. This
+ * is the combination of isLetter and isDigit.
+ * <br>
+ * letter or digit = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nd]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode letter or a Unicode digit, else false
+ * @see #isDigit(char)
+ * @see #isJavaIdentifierPart(char)
+ * @see #isJavaLetter(char)
+ * @see #isJavaLetterOrDigit(char)
+ * @see #isLetter(char)
+ * @see #isUnicodeIdentifierPart(char)
+ */
+ public static boolean isLetterOrDigit(char ch)
+ {
+ return ((1 << getType(ch))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << DECIMAL_DIGIT_NUMBER))) != 0;
+ }
+
+ /**
+ * Determines if a character is a Unicode letter or a Unicode digit. This
+ * is the combination of isLetter and isDigit. Unlike isLetterOrDigit(char),
+ * this method supports supplementary Unicode code points.
+ * <br>
+ * letter or digit = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nd]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode letter or a Unicode digit, else false
+ * @see #isDigit(int)
+ * @see #isJavaIdentifierPart(int)
+ * @see #isJavaLetter(int)
+ * @see #isJavaLetterOrDigit(int)
+ * @see #isLetter(int)
+ * @see #isUnicodeIdentifierPart(int)
+ * @since 1.5
+ */
+ public static boolean isLetterOrDigit(int codePoint)
+ {
+ return ((1 << getType(codePoint)
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << DECIMAL_DIGIT_NUMBER))) != 0);
+ }
+
+ /**
+ * Determines if a character can start a Java identifier. This is the
+ * combination of isLetter, any character where getType returns
+ * LETTER_NUMBER, currency symbols (like '$'), and connecting punctuation
+ * (like '_').
+ *
+ * @param ch character to test
+ * @return true if ch can start a Java identifier, else false
+ * @deprecated Replaced by {@link #isJavaIdentifierStart(char)}
+ * @see #isJavaLetterOrDigit(char)
+ * @see #isJavaIdentifierStart(char)
+ * @see #isJavaIdentifierPart(char)
+ * @see #isLetter(char)
+ * @see #isLetterOrDigit(char)
+ * @see #isUnicodeIdentifierStart(char)
+ */
+ public static boolean isJavaLetter(char ch)
+ {
+ return isJavaIdentifierStart(ch);
+ }
+
+ /**
+ * Determines if a character can start a Java identifier. This is the
+ * combination of isLetter, any character where getType returns
+ * LETTER_NUMBER, currency symbols (like '$'), and connecting punctuation
+ * (like '_'). Unlike isJavaIdentifierStart(char), this method supports
+ * supplementary Unicode code points.
+ * <br>
+ * Java identifier start = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]|[Sc]|[Pc]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint can start a Java identifier, else false
+ * @see #isJavaIdentifierPart(int)
+ * @see #isLetter(int)
+ * @see #isUnicodeIdentifierStart(int)
+ * @since 1.5
+ */
+ public static boolean isJavaIdentifierStart(int codePoint)
+ {
+ return ((1 << getType(codePoint))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << LETTER_NUMBER)
+ | (1 << CURRENCY_SYMBOL)
+ | (1 << CONNECTOR_PUNCTUATION))) != 0;
+ }
+
+ /**
+ * Determines if a character can follow the first letter in
+ * a Java identifier. This is the combination of isJavaLetter (isLetter,
+ * type of LETTER_NUMBER, currency, connecting punctuation) and digit,
+ * numeric letter (like Roman numerals), combining marks, non-spacing marks,
+ * or isIdentifierIgnorable.
+ *
+ * @param ch character to test
+ * @return true if ch can follow the first letter in a Java identifier
+ * @deprecated Replaced by {@link #isJavaIdentifierPart(char)}
+ * @see #isJavaLetter(char)
+ * @see #isJavaIdentifierStart(char)
+ * @see #isJavaIdentifierPart(char)
+ * @see #isLetter(char)
+ * @see #isLetterOrDigit(char)
+ * @see #isUnicodeIdentifierPart(char)
+ * @see #isIdentifierIgnorable(char)
+ */
+ public static boolean isJavaLetterOrDigit(char ch)
+ {
+ return isJavaIdentifierPart(ch);
+ }
+
+ /**
+ * Determines if a character can start a Java identifier. This is the
+ * combination of isLetter, any character where getType returns
+ * LETTER_NUMBER, currency symbols (like '$'), and connecting punctuation
+ * (like '_').
+ * <br>
+ * Java identifier start = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]|[Sc]|[Pc]
+ *
+ * @param ch character to test
+ * @return true if ch can start a Java identifier, else false
+ * @see #isJavaIdentifierPart(char)
+ * @see #isLetter(char)
+ * @see #isUnicodeIdentifierStart(char)
+ * @since 1.1
+ */
+ public static boolean isJavaIdentifierStart(char ch)
+ {
+ return ((1 << getType(ch))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << LETTER_NUMBER)
+ | (1 << CURRENCY_SYMBOL)
+ | (1 << CONNECTOR_PUNCTUATION))) != 0;
+ }
+
+ /**
+ * Determines if a character can follow the first letter in
+ * a Java identifier. This is the combination of isJavaLetter (isLetter,
+ * type of LETTER_NUMBER, currency, connecting punctuation) and digit,
+ * numeric letter (like Roman numerals), combining marks, non-spacing marks,
+ * or isIdentifierIgnorable.
+ * <br>
+ * Java identifier extender =
+ * [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]|[Sc]|[Pc]|[Mn]|[Mc]|[Nd]|[Cf]
+ * |U+0000-U+0008|U+000E-U+001B|U+007F-U+009F
+ *
+ * @param ch character to test
+ * @return true if ch can follow the first letter in a Java identifier
+ * @see #isIdentifierIgnorable(char)
+ * @see #isJavaIdentifierStart(char)
+ * @see #isLetterOrDigit(char)
+ * @see #isUnicodeIdentifierPart(char)
+ * @since 1.1
+ */
+ public static boolean isJavaIdentifierPart(char ch)
+ {
+ int category = getType(ch);
+ return ((1 << category)
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << NON_SPACING_MARK)
+ | (1 << COMBINING_SPACING_MARK)
+ | (1 << DECIMAL_DIGIT_NUMBER)
+ | (1 << LETTER_NUMBER)
+ | (1 << CURRENCY_SYMBOL)
+ | (1 << CONNECTOR_PUNCTUATION)
+ | (1 << FORMAT))) != 0
+ || (category == CONTROL && isIdentifierIgnorable(ch));
+ }
+
+ /**
+ * Determines if a character can follow the first letter in
+ * a Java identifier. This is the combination of isJavaLetter (isLetter,
+ * type of LETTER_NUMBER, currency, connecting punctuation) and digit,
+ * numeric letter (like Roman numerals), combining marks, non-spacing marks,
+ * or isIdentifierIgnorable. Unlike isJavaIdentifierPart(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * Java identifier extender =
+ * [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]|[Sc]|[Pc]|[Mn]|[Mc]|[Nd]|[Cf]
+ * |U+0000-U+0008|U+000E-U+001B|U+007F-U+009F
+ *
+ * @param codePoint character to test
+ * @return true if codePoint can follow the first letter in a Java identifier
+ * @see #isIdentifierIgnorable(int)
+ * @see #isJavaIdentifierStart(int)
+ * @see #isLetterOrDigit(int)
+ * @see #isUnicodeIdentifierPart(int)
+ * @since 1.5
+ */
+ public static boolean isJavaIdentifierPart(int codePoint)
+ {
+ int category = getType(codePoint);
+ return ((1 << category)
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << NON_SPACING_MARK)
+ | (1 << COMBINING_SPACING_MARK)
+ | (1 << DECIMAL_DIGIT_NUMBER)
+ | (1 << LETTER_NUMBER)
+ | (1 << CURRENCY_SYMBOL)
+ | (1 << CONNECTOR_PUNCTUATION)
+ | (1 << FORMAT))) != 0
+ || (category == CONTROL && isIdentifierIgnorable(codePoint));
+ }
+
+ /**
+ * Determines if a character can start a Unicode identifier. Only
+ * letters can start a Unicode identifier, but this includes characters
+ * in LETTER_NUMBER.
+ * <br>
+ * Unicode identifier start = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]
+ *
+ * @param ch character to test
+ * @return true if ch can start a Unicode identifier, else false
+ * @see #isJavaIdentifierStart(char)
+ * @see #isLetter(char)
+ * @see #isUnicodeIdentifierPart(char)
+ * @since 1.1
+ */
+ public static boolean isUnicodeIdentifierStart(char ch)
+ {
+ return ((1 << getType(ch))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << LETTER_NUMBER))) != 0;
+ }
+
+ /**
+ * Determines if a character can start a Unicode identifier. Only
+ * letters can start a Unicode identifier, but this includes characters
+ * in LETTER_NUMBER. Unlike isUnicodeIdentifierStart(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * Unicode identifier start = [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint can start a Unicode identifier, else false
+ * @see #isJavaIdentifierStart(int)
+ * @see #isLetter(int)
+ * @see #isUnicodeIdentifierPart(int)
+ * @since 1.5
+ */
+ public static boolean isUnicodeIdentifierStart(int codePoint)
+ {
+ return ((1 << getType(codePoint))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << LETTER_NUMBER))) != 0;
+ }
+
+ /**
+ * Determines if a character can follow the first letter in
+ * a Unicode identifier. This includes letters, connecting punctuation,
+ * digits, numeric letters, combining marks, non-spacing marks, and
+ * isIdentifierIgnorable.
+ * <br>
+ * Unicode identifier extender =
+ * [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]|[Mn]|[Mc]|[Nd]|[Pc]|[Cf]|
+ * |U+0000-U+0008|U+000E-U+001B|U+007F-U+009F
+ *
+ * @param ch character to test
+ * @return true if ch can follow the first letter in a Unicode identifier
+ * @see #isIdentifierIgnorable(char)
+ * @see #isJavaIdentifierPart(char)
+ * @see #isLetterOrDigit(char)
+ * @see #isUnicodeIdentifierStart(char)
+ * @since 1.1
+ */
+ public static boolean isUnicodeIdentifierPart(char ch)
+ {
+ int category = getType(ch);
+ return ((1 << category)
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << NON_SPACING_MARK)
+ | (1 << COMBINING_SPACING_MARK)
+ | (1 << DECIMAL_DIGIT_NUMBER)
+ | (1 << LETTER_NUMBER)
+ | (1 << CONNECTOR_PUNCTUATION)
+ | (1 << FORMAT))) != 0
+ || (category == CONTROL && isIdentifierIgnorable(ch));
+ }
+
+ /**
+ * Determines if a character can follow the first letter in
+ * a Unicode identifier. This includes letters, connecting punctuation,
+ * digits, numeric letters, combining marks, non-spacing marks, and
+ * isIdentifierIgnorable. Unlike isUnicodeIdentifierPart(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * Unicode identifier extender =
+ * [Lu]|[Ll]|[Lt]|[Lm]|[Lo]|[Nl]|[Mn]|[Mc]|[Nd]|[Pc]|[Cf]|
+ * |U+0000-U+0008|U+000E-U+001B|U+007F-U+009F
+ *
+ * @param codePoint character to test
+ * @return true if codePoint can follow the first letter in a Unicode
+ * identifier
+ * @see #isIdentifierIgnorable(int)
+ * @see #isJavaIdentifierPart(int)
+ * @see #isLetterOrDigit(int)
+ * @see #isUnicodeIdentifierStart(int)
+ * @since 1.5
+ */
+ public static boolean isUnicodeIdentifierPart(int codePoint)
+ {
+ int category = getType(codePoint);
+ return ((1 << category)
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << TITLECASE_LETTER)
+ | (1 << MODIFIER_LETTER)
+ | (1 << OTHER_LETTER)
+ | (1 << NON_SPACING_MARK)
+ | (1 << COMBINING_SPACING_MARK)
+ | (1 << DECIMAL_DIGIT_NUMBER)
+ | (1 << LETTER_NUMBER)
+ | (1 << CONNECTOR_PUNCTUATION)
+ | (1 << FORMAT))) != 0
+ || (category == CONTROL && isIdentifierIgnorable(codePoint));
+ }
+
+ /**
+ * Determines if a character is ignorable in a Unicode identifier. This
+ * includes the non-whitespace ISO control characters (<code>'\u0000'</code>
+ * through <code>'\u0008'</code>, <code>'\u000E'</code> through
+ * <code>'\u001B'</code>, and <code>'\u007F'</code> through
+ * <code>'\u009F'</code>), and FORMAT characters.
+ * <br>
+ * Unicode identifier ignorable = [Cf]|U+0000-U+0008|U+000E-U+001B
+ * |U+007F-U+009F
+ *
+ * @param ch character to test
+ * @return true if ch is ignorable in a Unicode or Java identifier
+ * @see #isJavaIdentifierPart(char)
+ * @see #isUnicodeIdentifierPart(char)
+ * @since 1.1
+ */
+ public static boolean isIdentifierIgnorable(char ch)
+ {
+ return (ch <= '\u009F' && (ch < '\t' || ch >= '\u007F'
+ || (ch <= '\u001B' && ch >= '\u000E')))
+ || getType(ch) == FORMAT;
+ }
+
+ /**
+ * Determines if a character is ignorable in a Unicode identifier. This
+ * includes the non-whitespace ISO control characters (<code>'\u0000'</code>
+ * through <code>'\u0008'</code>, <code>'\u000E'</code> through
+ * <code>'\u001B'</code>, and <code>'\u007F'</code> through
+ * <code>'\u009F'</code>), and FORMAT characters. Unlike
+ * isIdentifierIgnorable(char), this method supports supplementary Unicode
+ * code points.
+ * <br>
+ * Unicode identifier ignorable = [Cf]|U+0000-U+0008|U+000E-U+001B
+ * |U+007F-U+009F
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is ignorable in a Unicode or Java identifier
+ * @see #isJavaIdentifierPart(int)
+ * @see #isUnicodeIdentifierPart(int)
+ * @since 1.5
+ */
+ public static boolean isIdentifierIgnorable(int codePoint)
+ {
+ return ((codePoint >= 0 && codePoint <= 0x0008)
+ || (codePoint >= 0x000E && codePoint <= 0x001B)
+ || (codePoint >= 0x007F && codePoint <= 0x009F)
+ || getType(codePoint) == FORMAT);
+ }
+
+ /**
+ * Converts a Unicode character into its lowercase equivalent mapping.
+ * If a mapping does not exist, then the character passed is returned.
+ * Note that isLowerCase(toLowerCase(ch)) does not always return true.
+ *
+ * @param ch character to convert to lowercase
+ * @return lowercase mapping of ch, or ch if lowercase mapping does
+ * not exist
+ * @see #isLowerCase(char)
+ * @see #isUpperCase(char)
+ * @see #toTitleCase(char)
+ * @see #toUpperCase(char)
+ */
+ public static native char toLowerCase(char ch);
+
+ /**
+ * Converts a Unicode character into its lowercase equivalent mapping.
+ * If a mapping does not exist, then the character passed is returned.
+ * Note that isLowerCase(toLowerCase(codePoint)) does not always return true.
+ * Unlike toLowerCase(char), this method supports supplementary Unicode
+ * code points.
+ *
+ * @param codePoint character to convert to lowercase
+ * @return lowercase mapping of codePoint, or codePoint if lowercase
+ * mapping does not exist
+ * @see #isLowerCase(int)
+ * @see #isUpperCase(int)
+ * @see #toTitleCase(int)
+ * @see #toUpperCase(int)
+ * @since 1.5
+ */
+ public static native int toLowerCase(int codePoint);
+
+ /**
+ * Converts a Unicode character into its uppercase equivalent mapping.
+ * If a mapping does not exist, then the character passed is returned.
+ * Note that isUpperCase(toUpperCase(ch)) does not always return true.
+ *
+ * @param ch character to convert to uppercase
+ * @return uppercase mapping of ch, or ch if uppercase mapping does
+ * not exist
+ * @see #isLowerCase(char)
+ * @see #isUpperCase(char)
+ * @see #toLowerCase(char)
+ * @see #toTitleCase(char)
+ */
+ public static native char toUpperCase(char ch);
+
+ /**
+ * Converts a Unicode character into its uppercase equivalent mapping.
+ * If a mapping does not exist, then the character passed is returned.
+ * Note that isUpperCase(toUpperCase(codePoint)) does not always return true.
+ * Unlike toUpperCase(char), this method supports supplementary
+ * Unicode code points.
+ *
+ * @param codePoint character to convert to uppercase
+ * @return uppercase mapping of codePoint, or codePoint if uppercase
+ * mapping does not exist
+ * @see #isLowerCase(int)
+ * @see #isUpperCase(int)
+ * @see #toLowerCase(int)
+ * @see #toTitleCase(int)
+ * @since 1.5
+ */
+ public static native int toUpperCase(int codePoint);
+
+ /**
+ * Converts a Unicode character into its titlecase equivalent mapping.
+ * If a mapping does not exist, then the character passed is returned.
+ * Note that isTitleCase(toTitleCase(ch)) does not always return true.
+ *
+ * @param ch character to convert to titlecase
+ * @return titlecase mapping of ch, or ch if titlecase mapping does
+ * not exist
+ * @see #isTitleCase(char)
+ * @see #toLowerCase(char)
+ * @see #toUpperCase(char)
+ */
+ public static native char toTitleCase(char ch);
+
+ /**
+ * Converts a Unicode character into its titlecase equivalent mapping.
+ * If a mapping does not exist, then the character passed is returned.
+ * Note that isTitleCase(toTitleCase(codePoint)) does not always return true.
+ * Unlike toTitleCase(char), this method supports supplementary
+ * Unicode code points.
+ *
+ * @param codePoint character to convert to titlecase
+ * @return titlecase mapping of codePoint, or codePoint if titlecase
+ * mapping does not exist
+ * @see #isTitleCase(int)
+ * @see #toLowerCase(int)
+ * @see #toUpperCase(int)
+ * @since 1.5
+ */
+ public static native int toTitleCase(int codePoint);
+
+ /**
+ * Converts a character into a digit of the specified radix. If the radix
+ * exceeds MIN_RADIX or MAX_RADIX, or if the result of getNumericValue(ch)
+ * exceeds the radix, or if ch is not a decimal digit or in the case
+ * insensitive set of 'a'-'z', the result is -1.
+ * <br>
+ * character argument boundary = [Nd]|U+0041-U+005A|U+0061-U+007A
+ * |U+FF21-U+FF3A|U+FF41-U+FF5A
+ *
+ * @param ch character to convert into a digit
+ * @param radix radix in which ch is a digit
+ * @return digit which ch represents in radix, or -1 not a valid digit
+ * @see #MIN_RADIX
+ * @see #MAX_RADIX
+ * @see #forDigit(int, int)
+ * @see #isDigit(char)
+ * @see #getNumericValue(char)
+ */
+ public static native int digit(char ch, int radix);
+
+ /**
+ * Converts a character into a digit of the specified radix. If the radix
+ * exceeds MIN_RADIX or MAX_RADIX, or if the result of getNumericValue(int)
+ * exceeds the radix, or if codePoint is not a decimal digit or in the case
+ * insensitive set of 'a'-'z', the result is -1. Unlike digit(char, int),
+ * this method supports supplementary Unicode code points.
+ * <br>
+ * character argument boundary = [Nd]|U+0041-U+005A|U+0061-U+007A
+ * |U+FF21-U+FF3A|U+FF41-U+FF5A
+ *
+ * @param codePoint character to convert into a digit
+ * @param radix radix in which codePoint is a digit
+ * @return digit which codePoint represents in radix, or -1 not a valid digit
+ * @see #MIN_RADIX
+ * @see #MAX_RADIX
+ * @see #forDigit(int, int)
+ * @see #isDigit(int)
+ * @see #getNumericValue(int)
+ * @since 1.5
+ */
+ public static native int digit(int codePoint, int radix);
+
+ /**
+ * Returns the Unicode numeric value property of a character. For example,
+ * <code>'\\u216C'</code> (the Roman numeral fifty) returns 50.
+ *
+ * <p>This method also returns values for the letters A through Z, (not
+ * specified by Unicode), in these ranges: <code>'\u0041'</code>
+ * through <code>'\u005A'</code> (uppercase); <code>'\u0061'</code>
+ * through <code>'\u007A'</code> (lowercase); and <code>'\uFF21'</code>
+ * through <code>'\uFF3A'</code>, <code>'\uFF41'</code> through
+ * <code>'\uFF5A'</code> (full width variants).
+ *
+ * <p>If the character lacks a numeric value property, -1 is returned.
+ * If the character has a numeric value property which is not representable
+ * as a nonnegative integer, such as a fraction, -2 is returned.
+ *
+ * character argument boundary = [Nd]|[Nl]|[No]|U+0041-U+005A|U+0061-U+007A
+ * |U+FF21-U+FF3A|U+FF41-U+FF5A
+ *
+ * @param ch character from which the numeric value property will
+ * be retrieved
+ * @return the numeric value property of ch, or -1 if it does not exist, or
+ * -2 if it is not representable as a nonnegative integer
+ * @see #forDigit(int, int)
+ * @see #digit(char, int)
+ * @see #isDigit(char)
+ * @since 1.1
+ */
+ public static native int getNumericValue(char ch);
+
+ /**
+ * Returns the Unicode numeric value property of a character. For example,
+ * <code>'\\u216C'</code> (the Roman numeral fifty) returns 50.
+ *
+ * <p>This method also returns values for the letters A through Z, (not
+ * specified by Unicode), in these ranges: <code>'\u0041'</code>
+ * through <code>'\u005A'</code> (uppercase); <code>'\u0061'</code>
+ * through <code>'\u007A'</code> (lowercase); and <code>'\uFF21'</code>
+ * through <code>'\uFF3A'</code>, <code>'\uFF41'</code> through
+ * <code>'\uFF5A'</code> (full width variants).
+ *
+ * <p>If the character lacks a numeric value property, -1 is returned.
+ * If the character has a numeric value property which is not representable
+ * as a nonnegative integer, such as a fraction, -2 is returned.
+ *
+ * Unlike getNumericValue(char), this method supports supplementary Unicode
+ * code points.
+ *
+ * character argument boundary = [Nd]|[Nl]|[No]|U+0041-U+005A|U+0061-U+007A
+ * |U+FF21-U+FF3A|U+FF41-U+FF5A
+ *
+ * @param codePoint character from which the numeric value property will
+ * be retrieved
+ * @return the numeric value property of codePoint, or -1 if it does not
+ * exist, or -2 if it is not representable as a nonnegative integer
+ * @see #forDigit(int, int)
+ * @see #digit(int, int)
+ * @see #isDigit(int)
+ * @since 1.5
+ */
+ public static native int getNumericValue(int codePoint);
+
+ /**
+ * Determines if a character is a ISO-LATIN-1 space. This is only the five
+ * characters <code>'\t'</code>, <code>'\n'</code>, <code>'\f'</code>,
+ * <code>'\r'</code>, and <code>' '</code>.
+ * <br>
+ * Java space = U+0020|U+0009|U+000A|U+000C|U+000D
+ *
+ * @param ch character to test
+ * @return true if ch is a space, else false
+ * @deprecated Replaced by {@link #isWhitespace(char)}
+ * @see #isSpaceChar(char)
+ * @see #isWhitespace(char)
+ */
+ public static boolean isSpace(char ch)
+ {
+ // Performing the subtraction up front alleviates need to compare longs.
+ return ch-- <= ' ' && ((1 << ch)
+ & ((1 << (' ' - 1))
+ | (1 << ('\t' - 1))
+ | (1 << ('\n' - 1))
+ | (1 << ('\r' - 1))
+ | (1 << ('\f' - 1)))) != 0;
+ }
+
+ /**
+ * Determines if a character is a Unicode space character. This includes
+ * SPACE_SEPARATOR, LINE_SEPARATOR, and PARAGRAPH_SEPARATOR.
+ * <br>
+ * Unicode space = [Zs]|[Zp]|[Zl]
+ *
+ * @param ch character to test
+ * @return true if ch is a Unicode space, else false
+ * @see #isWhitespace(char)
+ * @since 1.1
+ */
+ public static boolean isSpaceChar(char ch)
+ {
+ return ((1 << getType(ch))
+ & ((1 << SPACE_SEPARATOR)
+ | (1 << LINE_SEPARATOR)
+ | (1 << PARAGRAPH_SEPARATOR))) != 0;
+ }
+
+ /**
+ * Determines if a character is a Unicode space character. This includes
+ * SPACE_SEPARATOR, LINE_SEPARATOR, and PARAGRAPH_SEPARATOR. Unlike
+ * isSpaceChar(char), this method supports supplementary Unicode code points.
+ * <br>
+ * Unicode space = [Zs]|[Zp]|[Zl]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is a Unicode space, else false
+ * @see #isWhitespace(int)
+ * @since 1.5
+ */
+ public static boolean isSpaceChar(int codePoint)
+ {
+ return ((1 << getType(codePoint))
+ & ((1 << SPACE_SEPARATOR)
+ | (1 << LINE_SEPARATOR)
+ | (1 << PARAGRAPH_SEPARATOR))) != 0;
+ }
+
+ /**
+ * Determines if a character is Java whitespace. This includes Unicode
+ * space characters (SPACE_SEPARATOR, LINE_SEPARATOR, and
+ * PARAGRAPH_SEPARATOR) except the non-breaking spaces
+ * (<code>'\u00A0'</code>, <code>'\u2007'</code>, and <code>'\u202F'</code>);
+ * and these characters: <code>'\u0009'</code>, <code>'\u000A'</code>,
+ * <code>'\u000B'</code>, <code>'\u000C'</code>, <code>'\u000D'</code>,
+ * <code>'\u001C'</code>, <code>'\u001D'</code>, <code>'\u001E'</code>,
+ * and <code>'\u001F'</code>.
+ * <br>
+ * Java whitespace = ([Zs] not Nb)|[Zl]|[Zp]|U+0009-U+000D|U+001C-U+001F
+ *
+ * @param ch character to test
+ * @return true if ch is Java whitespace, else false
+ * @see #isSpaceChar(char)
+ * @since 1.1
+ */
+ public static boolean isWhitespace(char ch)
+ {
+ int attr = readChar(ch);
+ return ((((1 << (attr & TYPE_MASK))
+ & ((1 << SPACE_SEPARATOR)
+ | (1 << LINE_SEPARATOR)
+ | (1 << PARAGRAPH_SEPARATOR))) != 0)
+ && (attr & NO_BREAK_MASK) == 0)
+ || (ch <= '\u001F' && ((1 << ch)
+ & ((1 << '\t')
+ | (1 << '\n')
+ | (1 << '\u000B')
+ | (1 << '\u000C')
+ | (1 << '\r')
+ | (1 << '\u001C')
+ | (1 << '\u001D')
+ | (1 << '\u001E')
+ | (1 << '\u001F'))) != 0);
+ }
+
+ /**
+ * Determines if a character is Java whitespace. This includes Unicode
+ * space characters (SPACE_SEPARATOR, LINE_SEPARATOR, and
+ * PARAGRAPH_SEPARATOR) except the non-breaking spaces
+ * (<code>'\u00A0'</code>, <code>'\u2007'</code>, and <code>'\u202F'</code>);
+ * and these characters: <code>'\u0009'</code>, <code>'\u000A'</code>,
+ * <code>'\u000B'</code>, <code>'\u000C'</code>, <code>'\u000D'</code>,
+ * <code>'\u001C'</code>, <code>'\u001D'</code>, <code>'\u001E'</code>,
+ * and <code>'\u001F'</code>. Unlike isWhitespace(char), this method
+ * supports supplementary Unicode code points.
+ * <br>
+ * Java whitespace = ([Zs] not Nb)|[Zl]|[Zp]|U+0009-U+000D|U+001C-U+001F
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is Java whitespace, else false
+ * @see #isSpaceChar(int)
+ * @since 1.5
+ */
+ public static boolean isWhitespace(int codePoint)
+ {
+ int plane = codePoint >>> 16;
+ if (plane > 2 && plane != 14)
+ return false;
+ int attr = readCodePoint(codePoint);
+ return ((((1 << (attr & TYPE_MASK))
+ & ((1 << SPACE_SEPARATOR)
+ | (1 << LINE_SEPARATOR)
+ | (1 << PARAGRAPH_SEPARATOR))) != 0)
+ && (attr & NO_BREAK_MASK) == 0)
+ || (codePoint <= '\u001F' && ((1 << codePoint)
+ & ((1 << '\t')
+ | (1 << '\n')
+ | (1 << '\u000B')
+ | (1 << '\u000C')
+ | (1 << '\r')
+ | (1 << '\u001C')
+ | (1 << '\u001D')
+ | (1 << '\u001E')
+ | (1 << '\u001F'))) != 0);
+ }
+
+ /**
+ * Determines if a character has the ISO Control property.
+ * <br>
+ * ISO Control = [Cc]
+ *
+ * @param ch character to test
+ * @return true if ch is an ISO Control character, else false
+ * @see #isSpaceChar(char)
+ * @see #isWhitespace(char)
+ * @since 1.1
+ */
+ public static boolean isISOControl(char ch)
+ {
+ return getType(ch) == CONTROL;
+ }
+
+ /**
+ * Determines if a character has the ISO Control property. Unlike
+ * isISOControl(char), this method supports supplementary unicode
+ * code points.
+ * <br>
+ * ISO Control = [Cc]
+ *
+ * @param codePoint character to test
+ * @return true if codePoint is an ISO Control character, else false
+ * @see #isSpaceChar(int)
+ * @see #isWhitespace(int)
+ * @since 1.5
+ */
+ public static boolean isISOControl(int codePoint)
+ {
+ return getType(codePoint) == CONTROL;
+ }
+
+ /**
+ * Returns the Unicode general category property of a character.
+ *
+ * @param ch character from which the general category property will
+ * be retrieved
+ * @return the character category property of ch as an integer
+ * @see #UNASSIGNED
+ * @see #UPPERCASE_LETTER
+ * @see #LOWERCASE_LETTER
+ * @see #TITLECASE_LETTER
+ * @see #MODIFIER_LETTER
+ * @see #OTHER_LETTER
+ * @see #NON_SPACING_MARK
+ * @see #ENCLOSING_MARK
+ * @see #COMBINING_SPACING_MARK
+ * @see #DECIMAL_DIGIT_NUMBER
+ * @see #LETTER_NUMBER
+ * @see #OTHER_NUMBER
+ * @see #SPACE_SEPARATOR
+ * @see #LINE_SEPARATOR
+ * @see #PARAGRAPH_SEPARATOR
+ * @see #CONTROL
+ * @see #FORMAT
+ * @see #PRIVATE_USE
+ * @see #SURROGATE
+ * @see #DASH_PUNCTUATION
+ * @see #START_PUNCTUATION
+ * @see #END_PUNCTUATION
+ * @see #CONNECTOR_PUNCTUATION
+ * @see #OTHER_PUNCTUATION
+ * @see #MATH_SYMBOL
+ * @see #CURRENCY_SYMBOL
+ * @see #MODIFIER_SYMBOL
+ * @see #INITIAL_QUOTE_PUNCTUATION
+ * @see #FINAL_QUOTE_PUNCTUATION
+ * @since 1.1
+ */
+ public static native int getType(char ch);
+
+ /**
+ * Returns the Unicode general category property of a character. Supports
+ * supplementary Unicode code points.
+ *
+ * @param codePoint character from which the general category property will
+ * be retrieved
+ * @return the character category property of codePoint as an integer
+ * @see #UNASSIGNED
+ * @see #UPPERCASE_LETTER
+ * @see #LOWERCASE_LETTER
+ * @see #TITLECASE_LETTER
+ * @see #MODIFIER_LETTER
+ * @see #OTHER_LETTER
+ * @see #NON_SPACING_MARK
+ * @see #ENCLOSING_MARK
+ * @see #COMBINING_SPACING_MARK
+ * @see #DECIMAL_DIGIT_NUMBER
+ * @see #LETTER_NUMBER
+ * @see #OTHER_NUMBER
+ * @see #SPACE_SEPARATOR
+ * @see #LINE_SEPARATOR
+ * @see #PARAGRAPH_SEPARATOR
+ * @see #CONTROL
+ * @see #FORMAT
+ * @see #PRIVATE_USE
+ * @see #SURROGATE
+ * @see #DASH_PUNCTUATION
+ * @see #START_PUNCTUATION
+ * @see #END_PUNCTUATION
+ * @see #CONNECTOR_PUNCTUATION
+ * @see #OTHER_PUNCTUATION
+ * @see #MATH_SYMBOL
+ * @see #CURRENCY_SYMBOL
+ * @see #MODIFIER_SYMBOL
+ * @see #INITIAL_QUOTE_PUNCTUATION
+ * @see #FINAL_QUOTE_PUNCTUATION
+ * @since 1.5
+ */
+ public static native int getType(int codePoint);
+
+ /**
+ * Converts a digit into a character which represents that digit
+ * in a specified radix. If the radix exceeds MIN_RADIX or MAX_RADIX,
+ * or the digit exceeds the radix, then the null character <code>'\0'</code>
+ * is returned. Otherwise the return value is in '0'-'9' and 'a'-'z'.
+ * <br>
+ * return value boundary = U+0030-U+0039|U+0061-U+007A
+ *
+ * @param digit digit to be converted into a character
+ * @param radix radix of digit
+ * @return character representing digit in radix, or '\0'
+ * @see #MIN_RADIX
+ * @see #MAX_RADIX
+ * @see #digit(char, int)
+ */
+ public static char forDigit(int digit, int radix)
+ {
+ if (radix < MIN_RADIX || radix > MAX_RADIX
+ || digit < 0 || digit >= radix)
+ return '\0';
+ return (char) (digit < 10 ? ('0' + digit) : ('a' - 10 + digit));
+ }
+
+ /**
+ * Returns the Unicode directionality property of the character. This
+ * is used in the visual ordering of text.
+ *
+ * @param ch the character to look up
+ * @return the directionality constant, or DIRECTIONALITY_UNDEFINED
+ * @see #DIRECTIONALITY_UNDEFINED
+ * @see #DIRECTIONALITY_LEFT_TO_RIGHT
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC
+ * @see #DIRECTIONALITY_EUROPEAN_NUMBER
+ * @see #DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR
+ * @see #DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR
+ * @see #DIRECTIONALITY_ARABIC_NUMBER
+ * @see #DIRECTIONALITY_COMMON_NUMBER_SEPARATOR
+ * @see #DIRECTIONALITY_NONSPACING_MARK
+ * @see #DIRECTIONALITY_BOUNDARY_NEUTRAL
+ * @see #DIRECTIONALITY_PARAGRAPH_SEPARATOR
+ * @see #DIRECTIONALITY_SEGMENT_SEPARATOR
+ * @see #DIRECTIONALITY_WHITESPACE
+ * @see #DIRECTIONALITY_OTHER_NEUTRALS
+ * @see #DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING
+ * @see #DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE
+ * @see #DIRECTIONALITY_POP_DIRECTIONAL_FORMAT
+ * @since 1.4
+ */
+ public static native byte getDirectionality(char ch);
+
+ /**
+ * Returns the Unicode directionality property of the character. This
+ * is used in the visual ordering of text. Unlike getDirectionality(char),
+ * this method supports supplementary Unicode code points.
+ *
+ * @param codePoint the character to look up
+ * @return the directionality constant, or DIRECTIONALITY_UNDEFINED
+ * @see #DIRECTIONALITY_UNDEFINED
+ * @see #DIRECTIONALITY_LEFT_TO_RIGHT
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC
+ * @see #DIRECTIONALITY_EUROPEAN_NUMBER
+ * @see #DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR
+ * @see #DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR
+ * @see #DIRECTIONALITY_ARABIC_NUMBER
+ * @see #DIRECTIONALITY_COMMON_NUMBER_SEPARATOR
+ * @see #DIRECTIONALITY_NONSPACING_MARK
+ * @see #DIRECTIONALITY_BOUNDARY_NEUTRAL
+ * @see #DIRECTIONALITY_PARAGRAPH_SEPARATOR
+ * @see #DIRECTIONALITY_SEGMENT_SEPARATOR
+ * @see #DIRECTIONALITY_WHITESPACE
+ * @see #DIRECTIONALITY_OTHER_NEUTRALS
+ * @see #DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING
+ * @see #DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING
+ * @see #DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE
+ * @see #DIRECTIONALITY_POP_DIRECTIONAL_FORMAT
+ * @since 1.5
+ */
+ public static native byte getDirectionality(int codePoint);
+
+ /**
+ * Determines whether the character is mirrored according to Unicode. For
+ * example, <code>\u0028</code> (LEFT PARENTHESIS) appears as '(' in
+ * left-to-right text, but ')' in right-to-left text.
+ *
+ * @param ch the character to look up
+ * @return true if the character is mirrored
+ * @since 1.4
+ */
+ public static boolean isMirrored(char ch)
+ {
+ return (readChar(ch) & MIRROR_MASK) != 0;
+ }
+
+ /**
+ * Determines whether the character is mirrored according to Unicode. For
+ * example, <code>\u0028</code> (LEFT PARENTHESIS) appears as '(' in
+ * left-to-right text, but ')' in right-to-left text. Unlike
+ * isMirrored(char), this method supports supplementary Unicode code points.
+ *
+ * @param codePoint the character to look up
+ * @return true if the character is mirrored
+ * @since 1.5
+ */
+ public static boolean isMirrored(int codePoint)
+ {
+ int plane = codePoint >>> 16;
+ if (plane > 2 && plane != 14)
+ return false;
+ return (readCodePoint(codePoint) & MIRROR_MASK) != 0;
+ }
+
+ /**
+ * Compares another Character to this Character, numerically.
+ *
+ * @param anotherCharacter Character to compare with this Character
+ * @return a negative integer if this Character is less than
+ * anotherCharacter, zero if this Character is equal, and
+ * a positive integer if this Character is greater
+ * @throws NullPointerException if anotherCharacter is null
+ * @since 1.2
+ */
+ public int compareTo(Character anotherCharacter)
+ {
+ return value - anotherCharacter.value;
+ }
+
+ /**
+ * Returns an <code>Character</code> object wrapping the value.
+ * In contrast to the <code>Character</code> constructor, this method
+ * will cache some values. It is used by boxing conversion.
+ *
+ * @param val the value to wrap
+ * @return the <code>Character</code>
+ *
+ * @since 1.5
+ */
+ public static Character valueOf(char val)
+ {
+ if (val > MAX_CACHE)
+ return new Character(val);
+ synchronized (charCache)
+ {
+ if (charCache[val - MIN_VALUE] == null)
+ charCache[val - MIN_VALUE] = new Character(val);
+ return charCache[val - MIN_VALUE];
+ }
+ }
+
+ /**
+ * Reverse the bytes in val.
+ * @since 1.5
+ */
+ public static char reverseBytes(char val)
+ {
+ return (char) (((val >> 8) & 0xff) | ((val << 8) & 0xff00));
+ }
+
+ /**
+ * Converts a unicode code point to a UTF-16 representation of that
+ * code point.
+ *
+ * @param codePoint the unicode code point
+ *
+ * @return the UTF-16 representation of that code point
+ *
+ * @throws IllegalArgumentException if the code point is not a valid
+ * unicode code point
+ *
+ * @since 1.5
+ */
+ public static char[] toChars(int codePoint)
+ {
+ if (!isValidCodePoint(codePoint))
+ throw new IllegalArgumentException("Illegal Unicode code point : "
+ + codePoint);
+ char[] result = new char[charCount(codePoint)];
+ int ignore = toChars(codePoint, result, 0);
+ return result;
+ }
+
+ /**
+ * Converts a unicode code point to its UTF-16 representation.
+ *
+ * @param codePoint the unicode code point
+ * @param dst the target char array
+ * @param dstIndex the start index for the target
+ *
+ * @return number of characters written to <code>dst</code>
+ *
+ * @throws IllegalArgumentException if <code>codePoint</code> is not a
+ * valid unicode code point
+ * @throws NullPointerException if <code>dst</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if <code>dstIndex</code> is not valid
+ * in <code>dst</code> or if the UTF-16 representation does not
+ * fit into <code>dst</code>
+ *
+ * @since 1.5
+ */
+ public static int toChars(int codePoint, char[] dst, int dstIndex)
+ {
+ if (!isValidCodePoint(codePoint))
+ {
+ throw new IllegalArgumentException("not a valid code point: "
+ + codePoint);
+ }
+
+ int result;
+ if (isSupplementaryCodePoint(codePoint))
+ {
+ // Write second char first to cause IndexOutOfBoundsException
+ // immediately.
+ final int cp2 = codePoint - 0x10000;
+ dst[dstIndex + 1] = (char) ((cp2 % 0x400) + (int) MIN_LOW_SURROGATE);
+ dst[dstIndex] = (char) ((cp2 / 0x400) + (int) MIN_HIGH_SURROGATE);
+ result = 2;
+ }
+ else
+ {
+ dst[dstIndex] = (char) codePoint;
+ result = 1;
+ }
+ return result;
+ }
+
+ /**
+ * Return number of 16-bit characters required to represent the given
+ * code point.
+ *
+ * @param codePoint a unicode code point
+ *
+ * @return 2 if codePoint >= 0x10000, 1 otherwise.
+ *
+ * @since 1.5
+ */
+ public static int charCount(int codePoint)
+ {
+ return
+ (codePoint >= MIN_SUPPLEMENTARY_CODE_POINT)
+ ? 2
+ : 1;
+ }
+
+ /**
+ * Determines whether the specified code point is
+ * in the range 0x10000 .. 0x10FFFF, i.e. the character is within the Unicode
+ * supplementary character range.
+ *
+ * @param codePoint a Unicode code point
+ *
+ * @return <code>true</code> if code point is in supplementary range
+ *
+ * @since 1.5
+ */
+ public static boolean isSupplementaryCodePoint(int codePoint)
+ {
+ return codePoint >= MIN_SUPPLEMENTARY_CODE_POINT
+ && codePoint <= MAX_CODE_POINT;
+ }
+
+ /**
+ * Determines whether the specified code point is
+ * in the range 0x0000 .. 0x10FFFF, i.e. it is a valid Unicode code point.
+ *
+ * @param codePoint a Unicode code point
+ *
+ * @return <code>true</code> if code point is valid
+ *
+ * @since 1.5
+ */
+ public static boolean isValidCodePoint(int codePoint)
+ {
+ return codePoint >= MIN_CODE_POINT && codePoint <= MAX_CODE_POINT;
+ }
+
+ /**
+ * Return true if the given character is a high surrogate.
+ * @param ch the character
+ * @return true if the character is a high surrogate character
+ *
+ * @since 1.5
+ */
+ public static boolean isHighSurrogate(char ch)
+ {
+ return ch >= MIN_HIGH_SURROGATE && ch <= MAX_HIGH_SURROGATE;
+ }
+
+ /**
+ * Return true if the given character is a low surrogate.
+ * @param ch the character
+ * @return true if the character is a low surrogate character
+ *
+ * @since 1.5
+ */
+ public static boolean isLowSurrogate(char ch)
+ {
+ return ch >= MIN_LOW_SURROGATE && ch <= MAX_LOW_SURROGATE;
+ }
+
+ /**
+ * Return true if the given characters compose a surrogate pair.
+ * This is true if the first character is a high surrogate and the
+ * second character is a low surrogate.
+ * @param ch1 the first character
+ * @param ch2 the first character
+ * @return true if the characters compose a surrogate pair
+ *
+ * @since 1.5
+ */
+ public static boolean isSurrogatePair(char ch1, char ch2)
+ {
+ return isHighSurrogate(ch1) && isLowSurrogate(ch2);
+ }
+
+ /**
+ * Given a valid surrogate pair, this returns the corresponding
+ * code point.
+ * @param high the high character of the pair
+ * @param low the low character of the pair
+ * @return the corresponding code point
+ *
+ * @since 1.5
+ */
+ public static int toCodePoint(char high, char low)
+ {
+ return ((high - MIN_HIGH_SURROGATE) * 0x400) +
+ (low - MIN_LOW_SURROGATE) + 0x10000;
+ }
+
+ /**
+ * Get the code point at the specified index in the CharSequence.
+ * This is like CharSequence#charAt(int), but if the character is
+ * the start of a surrogate pair, and there is a following
+ * character, and this character completes the pair, then the
+ * corresponding supplementary code point is returned. Otherwise,
+ * the character at the index is returned.
+ *
+ * @param sequence the CharSequence
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public static int codePointAt(CharSequence sequence, int index)
+ {
+ int len = sequence.length();
+ if (index < 0 || index >= len)
+ throw new IndexOutOfBoundsException();
+ char high = sequence.charAt(index);
+ if (! isHighSurrogate(high) || ++index >= len)
+ return high;
+ char low = sequence.charAt(index);
+ if (! isLowSurrogate(low))
+ return high;
+ return toCodePoint(high, low);
+ }
+
+ /**
+ * Get the code point at the specified index in the CharSequence.
+ * If the character is the start of a surrogate pair, and there is a
+ * following character, and this character completes the pair, then
+ * the corresponding supplementary code point is returned.
+ * Otherwise, the character at the index is returned.
+ *
+ * @param chars the character array in which to look
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public static int codePointAt(char[] chars, int index)
+ {
+ return codePointAt(chars, index, chars.length);
+ }
+
+ /**
+ * Get the code point at the specified index in the CharSequence.
+ * If the character is the start of a surrogate pair, and there is a
+ * following character within the specified range, and this
+ * character completes the pair, then the corresponding
+ * supplementary code point is returned. Otherwise, the character
+ * at the index is returned.
+ *
+ * @param chars the character array in which to look
+ * @param index the index of the codepoint to get, starting at 0
+ * @param limit the limit past which characters should not be examined
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;=
+ * limit, or if limit is negative or &gt;= the length of the array
+ * @since 1.5
+ */
+ public static int codePointAt(char[] chars, int index, int limit)
+ {
+ if (index < 0 || index >= limit || limit < 0 || limit > chars.length)
+ throw new IndexOutOfBoundsException();
+ char high = chars[index];
+ if (! isHighSurrogate(high) || ++index >= limit)
+ return high;
+ char low = chars[index];
+ if (! isLowSurrogate(low))
+ return high;
+ return toCodePoint(high, low);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(char[], int), but checks the characters at
+ * <code>index-1</code> and <code>index-2</code> to see if they form
+ * a supplementary code point. If they do not, the character at
+ * <code>index-1</code> is returned.
+ *
+ * @param chars the character array
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public static int codePointBefore(char[] chars, int index)
+ {
+ return codePointBefore(chars, index, 1);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(char[], int), but checks the characters at
+ * <code>index-1</code> and <code>index-2</code> to see if they form
+ * a supplementary code point. If they do not, the character at
+ * <code>index-1</code> is returned. The start parameter is used to
+ * limit the range of the array which may be examined.
+ *
+ * @param chars the character array
+ * @param index the index just past the codepoint to get, starting at 0
+ * @param start the index before which characters should not be examined
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is &gt; start or &gt;
+ * the length of the array, or if limit is negative or &gt;= the
+ * length of the array
+ * @since 1.5
+ */
+ public static int codePointBefore(char[] chars, int index, int start)
+ {
+ if (index < start || index > chars.length
+ || start < 0 || start >= chars.length)
+ throw new IndexOutOfBoundsException();
+ --index;
+ char low = chars[index];
+ if (! isLowSurrogate(low) || --index < start)
+ return low;
+ char high = chars[index];
+ if (! isHighSurrogate(high))
+ return low;
+ return toCodePoint(high, low);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(CharSequence, int), but checks the characters at
+ * <code>index-1</code> and <code>index-2</code> to see if they form
+ * a supplementary code point. If they do not, the character at
+ * <code>index-1</code> is returned.
+ *
+ * @param sequence the CharSequence
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public static int codePointBefore(CharSequence sequence, int index)
+ {
+ int len = sequence.length();
+ if (index < 1 || index > len)
+ throw new IndexOutOfBoundsException();
+ --index;
+ char low = sequence.charAt(index);
+ if (! isLowSurrogate(low) || --index < 0)
+ return low;
+ char high = sequence.charAt(index);
+ if (! isHighSurrogate(high))
+ return low;
+ return toCodePoint(high, low);
+ }
+} // class Character
diff --git a/gcc-4.8/libjava/java/lang/Class$1.h b/gcc-4.8/libjava/java/lang/Class$1.h
new file mode 100644
index 000000000..7c18cbb4e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Class$1.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Class$1__
+#define __java_lang_Class$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Class$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Class$1(::java::lang::reflect::AccessibleObject *);
+public:
+ virtual ::java::lang::Object * run();
+private:
+ ::java::lang::reflect::AccessibleObject * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$obj;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Class$1__
diff --git a/gcc-4.8/libjava/java/lang/Class.h b/gcc-4.8/libjava/java/lang/Class.h
new file mode 100644
index 000000000..ccca2bc50
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Class.h
@@ -0,0 +1,758 @@
+// Class.h - Header file for java.lang.Class. -*- c++ -*-
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// Written primary using compiler source and Class.java as guides.
+#ifndef __JAVA_LANG_CLASS_H__
+#define __JAVA_LANG_CLASS_H__
+
+#pragma interface
+
+#include <stddef.h>
+#include <java/lang/Object.h>
+#include <java/lang/String.h>
+#include <java/net/URL.h>
+#include <java/lang/reflect/Modifier.h>
+#include <java/security/ProtectionDomain.h>
+#include <java/lang/Package.h>
+
+// Avoid including SystemClassLoader.h.
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ namespace runtime
+ {
+ class SystemClassLoader;
+ }
+ }
+ }
+}
+
+// We declare these here to avoid including gcj/cni.h.
+extern "C" void _Jv_InitClass (jclass klass);
+extern "C" jclass _Jv_NewClassFromInitializer
+ (const char *class_initializer);
+extern "C" void _Jv_RegisterNewClasses (char **classes);
+extern "C" void _Jv_RegisterClasses (const jclass *classes);
+extern "C" void _Jv_RegisterClasses_Counted (const jclass *classes,
+ size_t count);
+
+// This must be predefined with "C" linkage.
+extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
+ int meth_idx);
+extern "C" void *_Jv_ResolvePoolEntry (jclass this_class, jint index);
+
+// These are the possible values for the `state' field of the class
+// structure. Note that ordering is important here. Whenever the
+// state changes, one should notify all waiters of this class.
+enum
+{
+ JV_STATE_NOTHING = 0, // Set by compiler.
+
+ JV_STATE_PRELOADING = 1, // Can do _Jv_FindClass.
+
+ // There is an invariant through libgcj that a class will always be
+ // at a state greater than or equal to JV_STATE_LOADING when it is
+ // returned by a class loader to user code. Hence, defineclass.cc
+ // installs supers before returning a class, C++-ABI-compiled
+ // classes are created with supers installed, and BC-ABI-compiled
+ // classes are linked to this state before being returned by their
+ // class loader.
+ JV_STATE_LOADING = 3, // Has super installed.
+ JV_STATE_READ = 4, // Has been completely defined.
+ JV_STATE_LOADED = 5, // Has Miranda methods defined.
+
+ JV_STATE_COMPILED = 6, // This was a compiled class.
+
+ JV_STATE_PREPARED = 7, // Layout & static init done.
+ JV_STATE_LINKED = 9, // Strings interned.
+
+ JV_STATE_IN_PROGRESS = 10, // <clinit> running.
+
+ JV_STATE_ERROR = 12,
+
+ JV_STATE_PHANTOM = 13, // Bytecode is missing. In many cases we can
+ // work around that. If not, throw a
+ // NoClassDefFoundError.
+
+ JV_STATE_DONE = 14, // Must be last.
+
+
+};
+
+struct _Jv_Field;
+struct _Jv_VTable;
+union _Jv_word;
+struct _Jv_ArrayVTable;
+class _Jv_Linker;
+class _Jv_ExecutionEngine;
+class _Jv_CompiledEngine;
+class _Jv_IndirectCompiledEngine;
+
+#ifdef INTERPRETER
+class _Jv_InterpreterEngine;
+class _Jv_ClassReader;
+class _Jv_InterpClass;
+class _Jv_InterpMethod;
+#endif
+
+class _Jv_ClosureList
+{
+ _Jv_ClosureList *next;
+ void *ptr;
+public:
+ void registerClosure (jclass klass, void *ptr);
+ static void releaseClosures (_Jv_ClosureList **closures);
+};
+
+struct _Jv_Constants
+{
+ jint size;
+ jbyte *tags;
+ _Jv_word *data;
+};
+
+struct _Jv_Method
+{
+ // Method name.
+ _Jv_Utf8Const *name;
+ // Method signature.
+ _Jv_Utf8Const *signature;
+ // Access flags.
+ _Jv_ushort accflags;
+ // Method's index in the vtable.
+ _Jv_ushort index;
+ // Pointer to underlying function.
+ void *ncode;
+ // NULL-terminated list of exception class names; can be NULL if
+ // there are none such.
+ _Jv_Utf8Const **throws;
+
+ _Jv_Method *getNextMethod ()
+ { return this + 1; }
+};
+
+// The table used to resolve interface calls.
+struct _Jv_IDispatchTable
+{
+ // Index into interface's ioffsets.
+ jshort iindex;
+ jshort itable_length;
+ // Class Interface dispatch table.
+ void *itable[0];
+};
+
+// Used by _Jv_Linker::get_interfaces ()
+struct _Jv_ifaces
+{
+ jclass *list;
+ jshort len;
+ jshort count;
+};
+
+struct _Jv_MethodSymbol
+{
+ _Jv_Utf8Const *class_name;
+ _Jv_Utf8Const *name;
+ _Jv_Utf8Const *signature;
+};
+
+struct _Jv_OffsetTable
+{
+ jint state;
+ jint offsets[];
+};
+
+struct _Jv_AddressTable
+{
+ jint state;
+ void *addresses[];
+};
+
+struct _Jv_CatchClass
+{
+ java::lang::Class **address;
+ _Jv_Utf8Const *classname;
+};
+
+// Possible values for the assertion_code field in the type assertion table.
+enum
+{
+ JV_ASSERT_END_OF_TABLE = 0,
+ JV_ASSERT_TYPES_COMPATIBLE = 1,
+ JV_ASSERT_IS_INSTANTIABLE = 2
+};
+
+// Entry in the type assertion table, used to validate type constraints
+// for binary compatibility.
+struct _Jv_TypeAssertion
+{
+ jint assertion_code;
+ _Jv_Utf8Const *op1;
+ _Jv_Utf8Const *op2;
+};
+
+typedef enum
+{
+ JV_CLASS_ATTR,
+ JV_METHOD_ATTR,
+ JV_FIELD_ATTR,
+ JV_DONE_ATTR
+} jv_attr_type;
+
+typedef enum
+{
+ JV_INNER_CLASSES_KIND,
+ JV_ENCLOSING_METHOD_KIND,
+ JV_SIGNATURE_KIND,
+ JV_ANNOTATIONS_KIND,
+ JV_PARAMETER_ANNOTATIONS_KIND,
+ JV_ANNOTATION_DEFAULT_KIND
+} jv_attr_kind;
+
+#define JV_PRIMITIVE_VTABLE ((_Jv_VTable *) -1)
+
+#define JV_CLASS(Obj) ((jclass) (*(_Jv_VTable **) Obj)->clas)
+
+// Forward declarations for friends of java::lang::Class
+
+// Friend functions implemented in natClass.cc.
+_Jv_Method *_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature);
+jboolean _Jv_IsAssignableFrom (jclass, jclass);
+jboolean _Jv_IsAssignableFromSlow (jclass, jclass);
+jboolean _Jv_InterfaceAssignableFrom (jclass, jclass);
+
+_Jv_Method* _Jv_LookupDeclaredMethod (jclass, _Jv_Utf8Const *,
+ _Jv_Utf8Const*, jclass * = NULL);
+java::lang::reflect::Method *_Jv_GetReflectedMethod (jclass klass,
+ _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature);
+jfieldID JvGetFirstInstanceField (jclass);
+jint JvNumInstanceFields (jclass);
+jfieldID JvGetFirstStaticField (jclass);
+jint JvNumStaticFields (jclass);
+
+jobject _Jv_AllocObject (jclass);
+void *_Jv_AllocObj (jint, jclass);
+void *_Jv_AllocPtrFreeObj (jint, jclass);
+void *_Jv_AllocArray (jint, jclass);
+
+bool _Jv_getInterfaceMethod(jclass, jclass&, int&,
+ const _Jv_Utf8Const*,
+ const _Jv_Utf8Const*);
+
+jobject JNICALL _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID,
+ jboolean);
+jobject JNICALL _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID,
+ jboolean);
+jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
+
+jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
+jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
+jint JvNumMethods (jclass);
+jmethodID JvGetFirstMethod (jclass);
+_Jv_Utf8Const *_Jv_GetClassNameUtf8 (jclass);
+
+#ifdef INTERPRETER
+// Finds a desired interpreter method in the given class or NULL if not found
+class _Jv_MethodBase;
+_Jv_MethodBase *_Jv_FindInterpreterMethod (jclass, jmethodID);
+jstring _Jv_GetInterpClassSourceFile (jclass);
+#endif
+
+jbyte _Jv_GetClassState (jclass);
+
+void _Jv_RegisterClassHookDefault (jclass klass);
+void _Jv_RegisterInitiatingLoader (jclass,java::lang::ClassLoader*);
+void _Jv_UnregisterInitiatingLoader (jclass,java::lang::ClassLoader*);
+void _Jv_UnregisterClass (jclass);
+jclass _Jv_FindClassNoException (_Jv_Utf8Const *name,
+ java::lang::ClassLoader *loader);
+jclass _Jv_FindClass (_Jv_Utf8Const *name,
+ java::lang::ClassLoader *loader);
+jclass _Jv_FindClassInCache (_Jv_Utf8Const *name);
+jclass _Jv_PopClass (void);
+void _Jv_PushClass (jclass k);
+void _Jv_NewArrayClass (jclass element,
+ java::lang::ClassLoader *loader,
+ _Jv_VTable *array_vtable = 0);
+jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
+ java::lang::ClassLoader *loader);
+void _Jv_InitNewClassFields (jclass klass);
+
+// Friend functions and classes in prims.cc
+void _Jv_InitPrimClass (jclass, const char *, char, int);
+jstring _Jv_GetMethodString (jclass, _Jv_Method *, jclass = NULL);
+
+jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass,
+ jint flags);
+jclass _Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader);
+
+jboolean _Jv_IsInterpretedClass (jclass);
+jboolean _Jv_IsBinaryCompatibilityABI (jclass);
+
+jboolean _Jv_IsPhantomClass (jclass);
+
+void _Jv_CopyClassesToSystemLoader (gnu::gcj::runtime::SystemClassLoader *);
+
+#ifdef INTERPRETER
+void _Jv_InitField (jobject, jclass, int);
+#endif
+
+class _Jv_StackTrace;
+class _Jv_BytecodeVerifier;
+
+void _Jv_sharedlib_register_hook (jclass klass);
+
+/* Find the class that defines the given method. Returns NULL
+ if it cannot be found. Searches both interpreted and native
+ classes. */
+jclass _Jv_GetMethodDeclaringClass (jmethodID method);
+
+class java::lang::Class : public java::lang::Object
+{
+public:
+ static jclass forName (jstring className, jboolean initialize,
+ java::lang::ClassLoader *loader);
+ static jclass forName (jstring className);
+ JArray<jclass> *getClasses (void);
+
+ java::lang::ClassLoader *getClassLoader (void);
+private:
+ java::lang::ClassLoader *getClassLoader (jclass caller);
+public:
+ // This is an internal method that circumvents the usual security
+ // checks when getting the class loader.
+ java::lang::ClassLoader *getClassLoaderInternal (void)
+ {
+ return loader;
+ }
+
+ java::lang::reflect::Constructor *getConstructor (JArray<jclass> *);
+ JArray<java::lang::reflect::Constructor *> *getConstructors (void);
+ java::lang::reflect::Constructor *getDeclaredConstructor (JArray<jclass> *);
+ JArray<java::lang::reflect::Constructor *> *getDeclaredConstructors (jboolean);
+ java::lang::reflect::Field *getDeclaredField (jstring);
+ JArray<java::lang::reflect::Field *> *getDeclaredFields ();
+ JArray<java::lang::reflect::Field *> *getDeclaredFields (jboolean);
+ java::lang::reflect::Method *getDeclaredMethod (jstring, JArray<jclass> *);
+ JArray<java::lang::reflect::Method *> *getDeclaredMethods (void);
+
+ JArray<jclass> *getDeclaredClasses (void);
+ JArray<jclass> *getDeclaredClasses (jboolean);
+ jclass getDeclaringClass (void);
+
+ java::lang::reflect::Field *getField (jstring);
+private:
+ JArray<java::lang::reflect::Field *> internalGetFields ();
+ java::lang::reflect::Field *getField (jstring, jint);
+ jint _getMethods (JArray<java::lang::reflect::Method *> *result,
+ jint offset);
+ java::lang::reflect::Field *getPrivateField (jstring);
+ java::lang::reflect::Method *getPrivateMethod (jstring, JArray<jclass> *);
+ java::security::ProtectionDomain *getProtectionDomain0 ();
+
+ java::lang::reflect::Method *_getMethod (jstring, JArray<jclass> *);
+ java::lang::reflect::Method *_getDeclaredMethod (jstring, JArray<jclass> *);
+
+ jstring getReflectionSignature (jint /*jv_attr_type*/ type,
+ jint obj_index);
+ jstring getReflectionSignature (::java::lang::reflect::Method *);
+ jstring getReflectionSignature (::java::lang::reflect::Constructor *);
+ jstring getReflectionSignature (::java::lang::reflect::Field *);
+
+ jstring getClassSignature();
+ jobject getMethodDefaultValue (::java::lang::reflect::Method *);
+
+public:
+ JArray<java::lang::reflect::Field *> *getFields (void);
+
+ JArray<jclass> *getInterfaces (void);
+
+ void getSignature (java::lang::StringBuffer *buffer);
+ static jstring getSignature (JArray<jclass> *, jboolean is_constructor);
+ JArray<java::lang::reflect::Method *> *getMethods (void);
+
+ inline jint getModifiers (void)
+ {
+ return accflags & java::lang::reflect::Modifier::ALL_FLAGS;
+ }
+
+ jstring getName (void);
+
+ java::net::URL *getResource (jstring resourceName);
+ java::io::InputStream *getResourceAsStream (jstring resourceName);
+ JArray<jobject> *getSigners (void);
+ void setSigners(JArray<jobject> *);
+
+ inline jclass getSuperclass (void)
+ {
+ return superclass;
+ }
+
+ inline jclass getInterface (jint n)
+ {
+ return interfaces[n];
+ }
+
+ inline jboolean isArray (void)
+ {
+ return name->first() == '[';
+ }
+
+ inline jclass getComponentType (void)
+ {
+ return isArray () ? element_type : 0;
+ }
+
+ jboolean isAssignableFrom (jclass cls);
+ jboolean isInstance (jobject obj);
+
+ inline jboolean isInterface (void)
+ {
+ return (accflags & java::lang::reflect::Modifier::INTERFACE) != 0;
+ }
+
+ inline jboolean isPrimitive (void)
+ {
+ return vtable == JV_PRIMITIVE_VTABLE;
+ }
+
+ jobject newInstance (void);
+ java::security::ProtectionDomain *getProtectionDomain (void);
+ java::lang::Package *getPackage (void);
+ jstring toString (void);
+ jboolean desiredAssertionStatus (void);
+
+ JArray<java::lang::reflect::TypeVariable *> *getTypeParameters (void);
+
+ jint getEnclosingMethodData(void);
+ java::lang::Class *getEnclosingClass (void);
+ java::lang::reflect::Constructor *getEnclosingConstructor (void);
+ java::lang::reflect::Method *getEnclosingMethod (void);
+ jobjectArray getDeclaredAnnotations(jint, jint, jint);
+ jobjectArray getDeclaredAnnotations(::java::lang::reflect::Method *,
+ jboolean);
+ jobjectArray getDeclaredAnnotations(::java::lang::reflect::Constructor *,
+ jboolean);
+ jobjectArray getDeclaredAnnotations(::java::lang::reflect::Field *);
+ JArray< ::java::lang::annotation::Annotation *> *getDeclaredAnnotationsInternal();
+
+ jboolean isEnum (void)
+ {
+ return (accflags & 0x4000) != 0;
+ }
+ jboolean isSynthetic (void)
+ {
+ return (accflags & 0x1000) != 0;
+ }
+ jboolean isAnnotation (void)
+ {
+ return (accflags & 0x2000) != 0;
+ }
+
+ jboolean isAnonymousClass();
+ jboolean isLocalClass();
+ jboolean isMemberClass();
+
+ // FIXME: this probably shouldn't be public.
+ jint size (void)
+ {
+ return size_in_bytes;
+ }
+
+ // The index of the first method we declare ourself (as opposed to
+ // inheriting).
+ inline jint firstMethodIndex (void)
+ {
+ return vtable_method_count - method_count;
+ }
+
+ // finalization
+ void finalize ();
+
+ // This constructor is used to create Class object for the primitive
+ // types. See prims.cc.
+ Class ();
+
+ // Given the BC ABI version, return the size of an Class initializer.
+ static jlong initializerSize (jlong ABI)
+ {
+ unsigned long version = ABI & 0xfffff;
+ int abi_rev = version % 100;
+
+ // The reflection_data field was added by abi_rev 1.
+ if (abi_rev == 0)
+ return ((char*)(&::java::lang::Class::class$.reflection_data)
+ - (char*)&::java::lang::Class::class$);
+
+ return sizeof (::java::lang::Class);
+ }
+
+ static java::lang::Class class$;
+
+private:
+
+ void memberAccessCheck (jint flags);
+
+ void initializeClass (void);
+
+ static jstring getPackagePortion (jstring);
+
+ void set_state (jint nstate)
+ {
+ state = nstate;
+ notifyAll ();
+ }
+
+ jint findInnerClassAttribute();
+ jint findDeclaredClasses(JArray<jclass> *, jboolean, jint);
+
+ // Friend functions implemented in natClass.cc.
+ friend _Jv_Method *::_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature);
+ friend jboolean (::_Jv_IsAssignableFrom) (jclass, jclass);
+ friend jboolean (::_Jv_IsAssignableFromSlow) (jclass, jclass);
+ friend jboolean (::_Jv_InterfaceAssignableFrom) (jclass, jclass);
+ friend void *::_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
+ int method_idx);
+
+ friend void ::_Jv_InitClass (jclass klass);
+ friend java::lang::Class* ::_Jv_NewClassFromInitializer (const char *class_initializer);
+ friend void _Jv_RegisterNewClasses (void **classes);
+
+ friend _Jv_Method* ::_Jv_LookupDeclaredMethod (jclass, _Jv_Utf8Const *,
+ _Jv_Utf8Const*, jclass *);
+ friend java::lang::reflect::Method* ::_Jv_GetReflectedMethod (jclass klass,
+ _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature);
+ friend jfieldID (::JvGetFirstInstanceField) (jclass);
+ friend jint (::JvNumInstanceFields) (jclass);
+ friend jfieldID (::JvGetFirstStaticField) (jclass);
+ friend jint (::JvNumStaticFields) (jclass);
+
+ friend jobject (::_Jv_AllocObject) (jclass);
+ friend void *::_Jv_AllocObj (jint, jclass);
+ friend void *::_Jv_AllocPtrFreeObj (jint, jclass);
+ friend void *::_Jv_AllocArray (jint, jclass);
+
+ friend jobject JNICALL (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv *, jclass, jfieldID,
+ jboolean);
+ friend jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID,
+ jboolean);
+ friend jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);
+
+ friend jmethodID (::_Jv_FromReflectedMethod) (java::lang::reflect::Method *);
+ friend jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);
+ friend jint (::JvNumMethods) (jclass);
+ friend jmethodID (::JvGetFirstMethod) (jclass);
+ friend _Jv_Utf8Const *::_Jv_GetClassNameUtf8 (jclass);
+#ifdef INTERPRETER
+ friend _Jv_MethodBase *(::_Jv_FindInterpreterMethod) (jclass klass,
+ jmethodID desired_method);
+ friend jstring ::_Jv_GetInterpClassSourceFile (jclass);
+#endif
+ friend jbyte (::_Jv_GetClassState) (jclass klass);
+
+ // Friends classes and functions to implement the ClassLoader
+ friend class java::lang::ClassLoader;
+ friend class java::lang::VMClassLoader;
+
+ friend class java::io::ObjectOutputStream;
+ friend class java::io::ObjectInputStream;
+ friend class java::io::ObjectStreamClass;
+
+ friend void ::_Jv_RegisterClasses (const jclass *classes);
+ friend void ::_Jv_RegisterClasses_Counted (const jclass *classes,
+ size_t count);
+ friend void ::_Jv_RegisterClassHookDefault (jclass klass);
+ friend void ::_Jv_RegisterInitiatingLoader (jclass,java::lang::ClassLoader*);
+ friend void ::_Jv_UnregisterInitiatingLoader (jclass,java::lang::ClassLoader*);
+ friend void ::_Jv_UnregisterClass (jclass);
+ friend jclass (::_Jv_FindClassNoException) (_Jv_Utf8Const *name,
+ java::lang::ClassLoader *loader);
+ friend jclass (::_Jv_FindClass) (_Jv_Utf8Const *name,
+ java::lang::ClassLoader *loader);
+ friend jclass (::_Jv_FindClassInCache) (_Jv_Utf8Const *name);
+ friend jclass (::_Jv_PopClass) (void);
+ friend void ::_Jv_PushClass (jclass k);
+ friend void ::_Jv_NewArrayClass (jclass element,
+ java::lang::ClassLoader *loader,
+ _Jv_VTable *array_vtable);
+ friend jclass (::_Jv_NewClass) (_Jv_Utf8Const *name, jclass superclass,
+ java::lang::ClassLoader *loader);
+ friend void ::_Jv_InitNewClassFields (jclass klass);
+
+ // in prims.cc
+ friend void ::_Jv_InitPrimClass (jclass, const char *, char, int);
+
+ friend jstring (::_Jv_GetMethodString) (jclass, _Jv_Method *, jclass);
+
+ friend jboolean (::_Jv_CheckAccess) (jclass self_klass, jclass other_klass,
+ jint flags);
+
+ friend bool (::_Jv_getInterfaceMethod) (jclass, jclass&, int&,
+ const _Jv_Utf8Const*,
+ const _Jv_Utf8Const*);
+
+ friend jclass (::_Jv_GetArrayClass) (jclass klass,
+ java::lang::ClassLoader *loader);
+
+ friend jboolean (::_Jv_IsInterpretedClass) (jclass);
+ friend jboolean (::_Jv_IsBinaryCompatibilityABI) (jclass);
+
+ friend jboolean (::_Jv_IsPhantomClass) (jclass);
+
+#ifdef INTERPRETER
+ friend void ::_Jv_InitField (jobject, jclass, int);
+
+ friend class ::_Jv_ClassReader;
+ friend class ::_Jv_InterpClass;
+ friend class ::_Jv_InterpMethod;
+ friend class ::_Jv_InterpreterEngine;
+#endif
+ friend class ::_Jv_StackTrace;
+
+#ifdef JV_MARKOBJ_DECL
+ friend JV_MARKOBJ_DECL;
+#endif
+
+ friend class ::_Jv_BytecodeVerifier;
+ friend class java::io::VMObjectStreamClass;
+
+ friend class ::_Jv_Linker;
+ friend class ::_Jv_ExecutionEngine;
+ friend class ::_Jv_CompiledEngine;
+ friend class ::_Jv_IndirectCompiledEngine;
+ friend class ::_Jv_ClosureList;
+
+ friend void ::_Jv_sharedlib_register_hook (jclass klass);
+
+ friend void *::_Jv_ResolvePoolEntry (jclass this_class, jint index);
+
+ friend void ::_Jv_CopyClassesToSystemLoader (gnu::gcj::runtime::SystemClassLoader *);
+
+ friend class java::lang::reflect::Field;
+ friend class java::lang::reflect::Method;
+ friend class java::lang::reflect::Constructor;
+ friend class java::lang::reflect::VMProxy;
+
+ // Chain for class pool. This also doubles as the ABI version
+ // number. It is only used for this purpose at class registration
+ // time, and only for precompiled classes.
+ jclass next_or_version;
+ // Name of class.
+ _Jv_Utf8Const *name;
+ // Access flags for class.
+ _Jv_ushort accflags;
+ // The superclass, or null for Object.
+ jclass superclass;
+ // Class constants.
+ _Jv_Constants constants;
+ // Methods. If this is an array class, then this field holds a
+ // pointer to the element type.
+ union
+ {
+ _Jv_Method *methods;
+ jclass element_type;
+ };
+ // Number of methods. If this class is primitive, this holds the
+ // character used to represent this type in a signature.
+ jshort method_count;
+ // Number of methods in the vtable.
+ jshort vtable_method_count;
+ // The fields.
+ _Jv_Field *fields;
+ // Size of instance fields, in bytes.
+ jint size_in_bytes;
+ // Total number of fields (instance and static).
+ jshort field_count;
+ // Number of static fields.
+ jshort static_field_count;
+ // The vtbl for all objects of this class.
+ _Jv_VTable *vtable;
+ // Virtual method offset table.
+ _Jv_OffsetTable *otable;
+ // Offset table symbols.
+ _Jv_MethodSymbol *otable_syms;
+ // Address table
+ _Jv_AddressTable *atable;
+ _Jv_MethodSymbol *atable_syms;
+ // Interface table
+ _Jv_AddressTable *itable;
+ _Jv_MethodSymbol *itable_syms;
+ _Jv_CatchClass *catch_classes;
+ // Interfaces implemented by this class.
+ jclass *interfaces;
+ // The class loader for this class.
+ java::lang::ClassLoader *loader;
+ // Number of interfaces.
+ jshort interface_count;
+ // State of this class.
+ jbyte state;
+ // The thread which has locked this class. Used during class
+ // initialization.
+ java::lang::Thread *thread;
+ // How many levels of "extends" this class is removed from Object.
+ jshort depth;
+ // Vector of this class's superclasses, ordered by decreasing depth.
+ jclass *ancestors;
+ // In a regular class, this field points to the Class Interface Dispatch
+ // Table. In an interface, it points to the ioffsets table.
+ union
+ {
+ _Jv_IDispatchTable *idt;
+ jshort *ioffsets;
+ };
+ // Pointer to the class that represents an array of this class.
+ jclass arrayclass;
+ // Security Domain to which this class belongs (or null).
+ java::security::ProtectionDomain *protectionDomain;
+ // Pointer to the type assertion table for this class.
+ _Jv_TypeAssertion *assertion_table;
+ // Signers of this class (or null).
+ JArray<jobject> *hack_signers;
+ // Used by Jv_PopClass and _Jv_PushClass to communicate with StackTrace.
+ jclass chain;
+ // Additional data, specific to the generator (JIT, native,
+ // interpreter) of this class.
+ void *aux_info;
+ // Execution engine.
+ _Jv_ExecutionEngine *engine;
+ // Reflection data.
+ unsigned char *reflection_data;
+};
+
+// Inline functions that are friends of java::lang::Class
+
+inline void _Jv_InitClass (jclass klass)
+{
+ if (__builtin_expect (klass->state == JV_STATE_DONE, true))
+ return;
+ klass->initializeClass ();
+}
+
+// Return array class corresponding to element type KLASS, creating it if
+// necessary.
+inline jclass
+_Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader)
+{
+ extern void _Jv_NewArrayClass (jclass element,
+ java::lang::ClassLoader *loader,
+ _Jv_VTable *array_vtable = 0);
+ if (__builtin_expect (!klass->arrayclass, false))
+ _Jv_NewArrayClass (klass, loader);
+ return klass->arrayclass;
+}
+
+#endif /* __JAVA_LANG_CLASS_H__ */
diff --git a/gcc-4.8/libjava/java/lang/Class.java b/gcc-4.8/libjava/java/lang/Class.java
new file mode 100644
index 000000000..a4e8ee592
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Class.java
@@ -0,0 +1,1430 @@
+/* Class.java -- Representation of a Java class.
+ Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import gnu.java.lang.reflect.ClassSignatureParser;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.GenericDeclaration;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.ProtectionDomain;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.HashMap;
+import java.util.Collection;
+import java.lang.reflect.AnnotatedElement;
+import java.lang.annotation.Annotation;
+import java.lang.annotation.Inherited;
+import java.lang.reflect.AccessibleObject;
+
+/**
+ * A Class represents a Java type. There will never be multiple Class
+ * objects with identical names and ClassLoaders. Primitive types, array
+ * types, and void also have a Class object.
+ *
+ * <p>Arrays with identical type and number of dimensions share the same class.
+ * The array class ClassLoader is the same as the ClassLoader of the element
+ * type of the array (which can be null to indicate the bootstrap classloader).
+ * The name of an array class is <code>[&lt;signature format&gt;;</code>.
+ * <p> For example,
+ * String[]'s class is <code>[Ljava.lang.String;</code>. boolean, byte,
+ * short, char, int, long, float and double have the "type name" of
+ * Z,B,S,C,I,J,F,D for the purposes of array classes. If it's a
+ * multidimensioned array, the same principle applies:
+ * <code>int[][][]</code> == <code>[[[I</code>.
+ *
+ * <p>There is no public constructor - Class objects are obtained only through
+ * the virtual machine, as defined in ClassLoaders.
+ *
+ * @serialData Class objects serialize specially:
+ * <code>TC_CLASS ClassDescriptor</code>. For more serialization information,
+ * see {@link ObjectStreamClass}.
+ *
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @since 1.0
+ * @see ClassLoader
+ */
+public final class Class<T>
+ implements Type, AnnotatedElement, GenericDeclaration, Serializable
+{
+ /**
+ * Class is non-instantiable from Java code; only the VM can create
+ * instances of this class.
+ */
+ private Class ()
+ {
+ }
+
+ // Initialize the class.
+ private native void initializeClass ();
+
+ // finalization
+ protected native void finalize () throws Throwable;
+
+ /**
+ * Use the classloader of the current class to load, link, and initialize
+ * a class. This is equivalent to your code calling
+ * <code>Class.forName(name, true, getClass().getClassLoader())</code>.
+ *
+ * @param name the name of the class to find
+ * @return the Class object representing the class
+ * @throws ClassNotFoundException if the class was not found by the
+ * classloader
+ * @throws LinkageError if linking the class fails
+ * @throws ExceptionInInitializerError if the class loads, but an exception
+ * occurs during initialization
+ */
+ public static native Class<?> forName (String className)
+ throws ClassNotFoundException;
+
+ // A private internal method that is called by compiler-generated code.
+ private static Class forName (String className, Class caller)
+ throws ClassNotFoundException
+ {
+ return forName(className, true, caller.getClassLoaderInternal());
+ }
+
+
+ /**
+ * Use the specified classloader to load and link a class. If the loader
+ * is null, this uses the bootstrap class loader (provide the security
+ * check succeeds). Unfortunately, this method cannot be used to obtain
+ * the Class objects for primitive types or for void, you have to use
+ * the fields in the appropriate java.lang wrapper classes.
+ *
+ * <p>Calls <code>classloader.loadclass(name, initialize)</code>.
+ *
+ * @param name the name of the class to find
+ * @param initialize whether or not to initialize the class at this time
+ * @param classloader the classloader to use to find the class; null means
+ * to use the bootstrap class loader
+ * @throws ClassNotFoundException if the class was not found by the
+ * classloader
+ * @throws LinkageError if linking the class fails
+ * @throws ExceptionInInitializerError if the class loads, but an exception
+ * occurs during initialization
+ * @throws SecurityException if the <code>classloader</code> argument
+ * is <code>null</code> and the caller does not have the
+ * <code>RuntimePermission("getClassLoader")</code> permission
+ * @see ClassLoader
+ * @since 1.2
+ */
+ public static native Class<?> forName (String className, boolean initialize,
+ ClassLoader loader)
+ throws ClassNotFoundException;
+
+ /**
+ * Get all the public member classes and interfaces declared in this
+ * class or inherited from superclasses. This returns an array of length
+ * 0 if there are no member classes, including for primitive types. A
+ * security check may be performed, with
+ * <code>checkMemberAccess(this, Member.PUBLIC)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all public member classes in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public Class<?>[] getClasses()
+ {
+ memberAccessCheck(Member.PUBLIC);
+ return internalGetClasses();
+ }
+
+ /**
+ * Like <code>getClasses()</code> but without the security checks.
+ */
+ private Class<?>[] internalGetClasses()
+ {
+ ArrayList<Class> list = new ArrayList<Class>();
+ list.addAll(Arrays.asList(getDeclaredClasses(true)));
+ Class superClass = getSuperclass();
+ if (superClass != null)
+ list.addAll(Arrays.asList(superClass.internalGetClasses()));
+ return list.toArray(new Class<?>[list.size()]);
+ }
+
+ /**
+ * Get the ClassLoader that loaded this class. If the class was loaded
+ * by the bootstrap classloader, this method will return null.
+ * If there is a security manager, and the caller's class loader is not
+ * an ancestor of the requested one, a security check of
+ * <code>RuntimePermission("getClassLoader")</code>
+ * must first succeed. Primitive types and void return null.
+ *
+ * @return the ClassLoader that loaded this class
+ * @throws SecurityException if the security check fails
+ * @see ClassLoader
+ * @see RuntimePermission
+ */
+ public native ClassLoader getClassLoader ();
+
+ // A private internal method that is called by compiler-generated code.
+ private final native ClassLoader getClassLoader (Class caller);
+
+ /**
+ * Internal method that circumvents the usual security checks when
+ * getting the class loader.
+ */
+ private native ClassLoader getClassLoaderInternal ();
+
+ /**
+ * If this is an array, get the Class representing the type of array.
+ * Examples: "[[Ljava.lang.String;" would return "[Ljava.lang.String;", and
+ * calling getComponentType on that would give "java.lang.String". If
+ * this is not an array, returns null.
+ *
+ * @return the array type of this class, or null
+ * @see Array
+ * @since 1.1
+ */
+ public native Class<?> getComponentType ();
+
+ /**
+ * Get a public constructor declared in this class. If the constructor takes
+ * no argument, an array of zero elements and null are equivalent for the
+ * types argument. A security check may be performed, with
+ * <code>checkMemberAccess(this, Member.PUBLIC)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @param types the type of each parameter
+ * @return the constructor
+ * @throws NoSuchMethodException if the constructor does not exist
+ * @throws SecurityException if the security check fails
+ * @see #getConstructors()
+ * @since 1.1
+ */
+ public native Constructor<T> getConstructor(Class<?>... args)
+ throws NoSuchMethodException;
+
+ /**
+ * Get all the public constructors of this class. This returns an array of
+ * length 0 if there are no constructors, including for primitive types,
+ * arrays, and interfaces. It does, however, include the default
+ * constructor if one was supplied by the compiler. A security check may
+ * be performed, with <code>checkMemberAccess(this, Member.PUBLIC)</code>
+ * as well as <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all public constructors in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public Constructor<?>[] getConstructors()
+ {
+ memberAccessCheck(Member.PUBLIC);
+ return getDeclaredConstructors(true);
+ }
+
+ /**
+ * Get a constructor declared in this class. If the constructor takes no
+ * argument, an array of zero elements and null are equivalent for the
+ * types argument. A security check may be performed, with
+ * <code>checkMemberAccess(this, Member.DECLARED)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @param types the type of each parameter
+ * @return the constructor
+ * @throws NoSuchMethodException if the constructor does not exist
+ * @throws SecurityException if the security check fails
+ * @see #getDeclaredConstructors()
+ * @since 1.1
+ */
+ public native Constructor<T> getDeclaredConstructor(Class<?>... args)
+ throws NoSuchMethodException;
+
+ /**
+ * Get all the declared member classes and interfaces in this class, but
+ * not those inherited from superclasses. This returns an array of length
+ * 0 if there are no member classes, including for primitive types. A
+ * security check may be performed, with
+ * <code>checkMemberAccess(this, Member.DECLARED)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all declared member classes in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public Class<?>[] getDeclaredClasses()
+ {
+ memberAccessCheck(Member.DECLARED);
+ return getDeclaredClasses(false);
+ }
+
+ native Class<?>[] getDeclaredClasses (boolean publicOnly);
+
+ /**
+ * Get all the declared constructors of this class. This returns an array of
+ * length 0 if there are no constructors, including for primitive types,
+ * arrays, and interfaces. It does, however, include the default
+ * constructor if one was supplied by the compiler. A security check may
+ * be performed, with <code>checkMemberAccess(this, Member.DECLARED)</code>
+ * as well as <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all constructors in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public Constructor<?>[] getDeclaredConstructors()
+ {
+ memberAccessCheck(Member.DECLARED);
+ return getDeclaredConstructors(false);
+ }
+
+ native Constructor<?>[] getDeclaredConstructors (boolean publicOnly);
+
+ /**
+ * Get a field declared in this class, where name is its simple name. The
+ * implicit length field of arrays is not available. A security check may
+ * be performed, with <code>checkMemberAccess(this, Member.DECLARED)</code>
+ * as well as <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @param name the name of the field
+ * @return the field
+ * @throws NoSuchFieldException if the field does not exist
+ * @throws SecurityException if the security check fails
+ * @see #getDeclaredFields()
+ * @since 1.1
+ */
+ public native Field getDeclaredField(String fieldName)
+ throws NoSuchFieldException;
+
+ /**
+ * Get all the declared fields in this class, but not those inherited from
+ * superclasses. This returns an array of length 0 if there are no fields,
+ * including for primitive types. This does not return the implicit length
+ * field of arrays. A security check may be performed, with
+ * <code>checkMemberAccess(this, Member.DECLARED)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all declared fields in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public Field[] getDeclaredFields()
+ {
+ memberAccessCheck(Member.DECLARED);
+ return getDeclaredFields(false);
+ }
+
+ native Field[] getDeclaredFields (boolean publicOnly);
+
+ private native Method _getDeclaredMethod(String methodName, Class[] args);
+
+ /**
+ * Get a method declared in this class, where name is its simple name. The
+ * implicit methods of Object are not available from arrays or interfaces.
+ * Constructors (named "&lt;init&gt;" in the class file) and class initializers
+ * (name "&lt;clinit&gt;") are not available. The Virtual Machine allows
+ * multiple methods with the same signature but differing return types; in
+ * such a case the most specific return types are favored, then the final
+ * choice is arbitrary. If the method takes no argument, an array of zero
+ * elements and null are equivalent for the types argument. A security
+ * check may be performed, with
+ * <code>checkMemberAccess(this, Member.DECLARED)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @param methodName the name of the method
+ * @param types the type of each parameter
+ * @return the method
+ * @throws NoSuchMethodException if the method does not exist
+ * @throws SecurityException if the security check fails
+ * @see #getDeclaredMethods()
+ * @since 1.1
+ */
+ public Method getDeclaredMethod(String methodName, Class<?>... args)
+ throws NoSuchMethodException
+ {
+ memberAccessCheck(Member.DECLARED);
+
+ if ("<init>".equals(methodName) || "<clinit>".equals(methodName))
+ throw new NoSuchMethodException(methodName);
+
+ Method match = _getDeclaredMethod(methodName, args);
+ if (match == null)
+ throw new NoSuchMethodException(methodName);
+ return match;
+ }
+
+ /**
+ * Get all the declared methods in this class, but not those inherited from
+ * superclasses. This returns an array of length 0 if there are no methods,
+ * including for primitive types. This does include the implicit methods of
+ * arrays and interfaces which mirror methods of Object, nor does it
+ * include constructors or the class initialization methods. The Virtual
+ * Machine allows multiple methods with the same signature but differing
+ * return types; all such methods are in the returned array. A security
+ * check may be performed, with
+ * <code>checkMemberAccess(this, Member.DECLARED)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all declared methods in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public native Method[] getDeclaredMethods();
+
+ /**
+ * If this is a nested or inner class, return the class that declared it.
+ * If not, return null.
+ *
+ * @return the declaring class of this class
+ * @since 1.1
+ */
+ // This is marked as unimplemented in the JCL book.
+ public native Class<?> getDeclaringClass ();
+
+ private native Field getField (String fieldName, int hash)
+ throws NoSuchFieldException;
+
+ /**
+ * Get a public field declared or inherited in this class, where name is
+ * its simple name. If the class contains multiple accessible fields by
+ * that name, an arbitrary one is returned. The implicit length field of
+ * arrays is not available. A security check may be performed, with
+ * <code>checkMemberAccess(this, Member.PUBLIC)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @param fieldName the name of the field
+ * @return the field
+ * @throws NoSuchFieldException if the field does not exist
+ * @throws SecurityException if the security check fails
+ * @see #getFields()
+ * @since 1.1
+ */
+ public Field getField(String fieldName)
+ throws NoSuchFieldException
+ {
+ memberAccessCheck(Member.PUBLIC);
+ Field field = getField(fieldName, fieldName.hashCode());
+ if (field == null)
+ throw new NoSuchFieldException(fieldName);
+ return field;
+ }
+
+ /**
+ * Get all the public fields declared in this class or inherited from
+ * superclasses. This returns an array of length 0 if there are no fields,
+ * including for primitive types. This does not return the implicit length
+ * field of arrays. A security check may be performed, with
+ * <code>checkMemberAccess(this, Member.PUBLIC)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all public fields in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public Field[] getFields()
+ {
+ memberAccessCheck(Member.PUBLIC);
+ return internalGetFields();
+ }
+
+ /**
+ * Like <code>getFields()</code> but without the security checks.
+ */
+ private Field[] internalGetFields()
+ {
+ LinkedHashSet set = new LinkedHashSet();
+ set.addAll(Arrays.asList(getDeclaredFields(true)));
+ Class[] interfaces = getInterfaces();
+ for (int i = 0; i < interfaces.length; i++)
+ set.addAll(Arrays.asList(interfaces[i].internalGetFields()));
+ Class superClass = getSuperclass();
+ if (superClass != null)
+ set.addAll(Arrays.asList(superClass.internalGetFields()));
+ return (Field[])set.toArray(new Field[set.size()]);
+ }
+
+ /**
+ * Returns the <code>Package</code> in which this class is defined
+ * Returns null when this information is not available from the
+ * classloader of this class.
+ *
+ * @return the package for this class, if it is available
+ * @since 1.2
+ */
+ public Package getPackage()
+ {
+ ClassLoader cl = getClassLoaderInternal();
+ if (cl != null)
+ return cl.getPackage(getPackagePortion(getName()));
+ else
+ return VMClassLoader.getPackage(getPackagePortion(getName()));
+ }
+
+ /**
+ * Get the interfaces this class <em>directly</em> implements, in the
+ * order that they were declared. This returns an empty array, not null,
+ * for Object, primitives, void, and classes or interfaces with no direct
+ * superinterface. Array types return Cloneable and Serializable.
+ *
+ * @return the interfaces this class directly implements
+ */
+ public native Class<?>[] getInterfaces ();
+
+ private final native void getSignature(StringBuffer buffer);
+ private static final native String getSignature(Class[] args,
+ boolean is_construtor);
+
+ public native Method _getMethod(String methodName, Class[] args);
+
+ /**
+ * Get a public method declared or inherited in this class, where name is
+ * its simple name. The implicit methods of Object are not available from
+ * interfaces. Constructors (named "&lt;init&gt;" in the class file) and class
+ * initializers (name "&lt;clinit&gt;") are not available. The Virtual
+ * Machine allows multiple methods with the same signature but differing
+ * return types, and the class can inherit multiple methods of the same
+ * return type; in such a case the most specific return types are favored,
+ * then the final choice is arbitrary. If the method takes no argument, an
+ * array of zero elements and null are equivalent for the types argument.
+ * A security check may be performed, with
+ * <code>checkMemberAccess(this, Member.PUBLIC)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @param methodName the name of the method
+ * @param types the type of each parameter
+ * @return the method
+ * @throws NoSuchMethodException if the method does not exist
+ * @throws SecurityException if the security check fails
+ * @see #getMethods()
+ * @since 1.1
+ */
+ public Method getMethod(String methodName, Class<?>... args)
+ throws NoSuchMethodException
+ {
+ memberAccessCheck(Member.PUBLIC);
+
+ if ("<init>".equals(methodName) || "<clinit>".equals(methodName))
+ throw new NoSuchMethodException(methodName);
+
+ Method method = _getMethod(methodName, args);
+ if (method == null)
+ throw new NoSuchMethodException(methodName);
+ return method;
+ }
+
+ private native int _getMethods (Method[] result, int offset);
+
+ /**
+ * Get all the public methods declared in this class or inherited from
+ * superclasses. This returns an array of length 0 if there are no methods,
+ * including for primitive types. This does not include the implicit
+ * methods of interfaces which mirror methods of Object, nor does it
+ * include constructors or the class initialization methods. The Virtual
+ * Machine allows multiple methods with the same signature but differing
+ * return types; all such methods are in the returned array. A security
+ * check may be performed, with
+ * <code>checkMemberAccess(this, Member.PUBLIC)</code> as well as
+ * <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return all public methods in this class
+ * @throws SecurityException if the security check fails
+ * @since 1.1
+ */
+ public native Method[] getMethods();
+
+ /**
+ * Get the modifiers of this class. These can be decoded using Modifier,
+ * and is limited to one of public, protected, or private, and any of
+ * final, static, abstract, or interface. An array class has the same
+ * public, protected, or private modifier as its component type, and is
+ * marked final but not an interface. Primitive types and void are marked
+ * public and final, but not an interface.
+ *
+ * @return the modifiers of this class
+ * @see Modifer
+ * @since 1.1
+ */
+ public native int getModifiers ();
+
+ /**
+ * Get the name of this class, separated by dots for package separators.
+ * If the class represents a primitive type, or void, then the
+ * name of the type as it appears in the Java programming language
+ * is returned. For instance, <code>Byte.TYPE.getName()</code>
+ * returns "byte".
+ *
+ * Arrays are specially encoded as shown on this table.
+ * <pre>
+ * array type [<em>element type</em>
+ * (note that the element type is encoded per
+ * this table)
+ * boolean Z
+ * byte B
+ * char C
+ * short S
+ * int I
+ * long J
+ * float F
+ * double D
+ * void V
+ * class or interface, alone: &lt;dotted name&gt;
+ * class or interface, as element type: L&lt;dotted name&gt;;
+ * </pre>
+ *
+ * @return the name of this class
+ */
+ public native String getName ();
+
+ /**
+ * Get a resource URL using this class's package using the
+ * getClassLoader().getResource() method. If this class was loaded using
+ * the system classloader, ClassLoader.getSystemResource() is used instead.
+ *
+ * <p>If the name you supply is absolute (it starts with a <code>/</code>),
+ * then the leading <code>/</code> is removed and it is passed on to
+ * getResource(). If it is relative, the package name is prepended, and
+ * <code>.</code>'s are replaced with <code>/</code>.
+ *
+ * <p>The URL returned is system- and classloader-dependent, and could
+ * change across implementations.
+ *
+ * @param resourceName the name of the resource, generally a path
+ * @return the URL to the resource
+ * @throws NullPointerException if name is null
+ * @since 1.1
+ */
+ public URL getResource(String resourceName)
+ {
+ String name = resourcePath(resourceName);
+ ClassLoader loader = getClassLoaderInternal();
+ if (loader == null)
+ return ClassLoader.getSystemResource(name);
+ return loader.getResource(name);
+ }
+
+ /**
+ * Get a resource using this class's package using the
+ * getClassLoader().getResourceAsStream() method. If this class was loaded
+ * using the system classloader, ClassLoader.getSystemResource() is used
+ * instead.
+ *
+ * <p>If the name you supply is absolute (it starts with a <code>/</code>),
+ * then the leading <code>/</code> is removed and it is passed on to
+ * getResource(). If it is relative, the package name is prepended, and
+ * <code>.</code>'s are replaced with <code>/</code>.
+ *
+ * <p>The URL returned is system- and classloader-dependent, and could
+ * change across implementations.
+ *
+ * @param resourceName the name of the resource, generally a path
+ * @return an InputStream with the contents of the resource in it, or null
+ * @throws NullPointerException if name is null
+ * @since 1.1
+ */
+ public InputStream getResourceAsStream(String resourceName)
+ {
+ String name = resourcePath(resourceName);
+ ClassLoader loader = getClassLoaderInternal();
+ if (loader == null)
+ return ClassLoader.getSystemResourceAsStream(name);
+ return loader.getResourceAsStream(name);
+ }
+
+ private String resourcePath(String resourceName)
+ {
+ if (resourceName.length() > 0)
+ {
+ if (resourceName.charAt(0) != '/')
+ {
+ String pkg = getPackagePortion(getName());
+ if (pkg.length() > 0)
+ resourceName = pkg.replace('.','/') + '/' + resourceName;
+ }
+ else
+ {
+ resourceName = resourceName.substring(1);
+ }
+ }
+ return resourceName;
+ }
+
+ /**
+ * Get the signers of this class. This returns null if there are no signers,
+ * such as for primitive types or void.
+ *
+ * @return the signers of this class
+ * @since 1.1
+ */
+ public native Object[] getSigners ();
+
+ /**
+ * Set the signers of this class.
+ *
+ * @param signers the signers of this class
+ */
+ native void setSigners(Object[] signers);
+
+ /**
+ * Get the direct superclass of this class. If this is an interface,
+ * Object, a primitive type, or void, it will return null. If this is an
+ * array type, it will return Object.
+ *
+ * @return the direct superclass of this class
+ */
+ public native Class<? super T> getSuperclass ();
+
+ /**
+ * Return whether this class is an array type.
+ *
+ * @return whether this class is an array type
+ * @since 1.1
+ */
+ public native boolean isArray ();
+
+ /**
+ * Discover whether an instance of the Class parameter would be an
+ * instance of this Class as well. Think of doing
+ * <code>isInstance(c.newInstance())</code> or even
+ * <code>c.newInstance() instanceof (this class)</code>. While this
+ * checks widening conversions for objects, it must be exact for primitive
+ * types.
+ *
+ * @param c the class to check
+ * @return whether an instance of c would be an instance of this class
+ * as well
+ * @throws NullPointerException if c is null
+ * @since 1.1
+ */
+ public native boolean isAssignableFrom (Class<?> c);
+
+ /**
+ * Discover whether an Object is an instance of this Class. Think of it
+ * as almost like <code>o instanceof (this class)</code>.
+ *
+ * @param o the Object to check
+ * @return whether o is an instance of this class
+ * @since 1.1
+ */
+ public native boolean isInstance (Object o);
+
+ /**
+ * Check whether this class is an interface or not. Array types are not
+ * interfaces.
+ *
+ * @return whether this class is an interface or not
+ */
+ public native boolean isInterface ();
+
+ /**
+ * Return whether this class is a primitive type. A primitive type class
+ * is a class representing a kind of "placeholder" for the various
+ * primitive types, or void. You can access the various primitive type
+ * classes through java.lang.Boolean.TYPE, java.lang.Integer.TYPE, etc.,
+ * or through boolean.class, int.class, etc.
+ *
+ * @return whether this class is a primitive type
+ * @see Boolean#TYPE
+ * @see Byte#TYPE
+ * @see Character#TYPE
+ * @see Short#TYPE
+ * @see Integer#TYPE
+ * @see Long#TYPE
+ * @see Float#TYPE
+ * @see Double#TYPE
+ * @see Void#TYPE
+ * @since 1.1
+ */
+ public native boolean isPrimitive ();
+
+ /**
+ * Get a new instance of this class by calling the no-argument constructor.
+ * The class is initialized if it has not been already. A security check
+ * may be performed, with <code>checkMemberAccess(this, Member.PUBLIC)</code>
+ * as well as <code>checkPackageAccess</code> both having to succeed.
+ *
+ * @return a new instance of this class
+ * @throws InstantiationException if there is not a no-arg constructor
+ * for this class, including interfaces, abstract classes, arrays,
+ * primitive types, and void; or if an exception occurred during
+ * the constructor
+ * @throws IllegalAccessException if you are not allowed to access the
+ * no-arg constructor because of scoping reasons
+ * @throws SecurityException if the security check fails
+ * @throws ExceptionInInitializerError if class initialization caused by
+ * this call fails with an exception
+ */
+ public native T newInstance ()
+ throws InstantiationException, IllegalAccessException;
+
+ // We need a native method to retrieve the protection domain, because we
+ // can't add fields to java.lang.Class that are accessible from Java.
+ private native ProtectionDomain getProtectionDomain0();
+
+ /**
+ * Returns the protection domain of this class. If the classloader did not
+ * record the protection domain when creating this class the unknown
+ * protection domain is returned which has a <code>null</code> code source
+ * and all permissions. A security check may be performed, with
+ * <code>RuntimePermission("getProtectionDomain")</code>.
+ *
+ * @return the protection domain
+ * @throws SecurityException if the security manager exists and the caller
+ * does not have <code>RuntimePermission("getProtectionDomain")</code>.
+ * @see RuntimePermission
+ * @since 1.2
+ */
+ public ProtectionDomain getProtectionDomain()
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkPermission(VMClassLoader.protectionDomainPermission);
+
+ ProtectionDomain protectionDomain = getProtectionDomain0();
+
+ if (protectionDomain == null)
+ return VMClassLoader.unknownProtectionDomain;
+ else
+ return protectionDomain;
+ }
+
+ /**
+ * Return the human-readable form of this Object. For an object, this
+ * is either "interface " or "class " followed by <code>getName()</code>,
+ * for primitive types and void it is just <code>getName()</code>.
+ *
+ * @return the human-readable form of this Object
+ */
+ public String toString()
+ {
+ if (isPrimitive())
+ return getName();
+ return (isInterface() ? "interface " : "class ") + getName();
+ }
+
+ /**
+ * Returns the desired assertion status of this class, if it were to be
+ * initialized at this moment. The class assertion status, if set, is
+ * returned; the backup is the default package status; then if there is
+ * a class loader, that default is returned; and finally the system default
+ * is returned. This method seldom needs calling in user code, but exists
+ * for compilers to implement the assert statement. Note that there is no
+ * guarantee that the result of this method matches the class's actual
+ * assertion status.
+ *
+ * @return the desired assertion status
+ * @see ClassLoader#setClassAssertionStatus(String, boolean)
+ * @see ClassLoader#setPackageAssertionStatus(String, boolean)
+ * @see ClassLoader#setDefaultAssertionStatus(boolean)
+ * @since 1.4
+ */
+ public boolean desiredAssertionStatus()
+ {
+ ClassLoader c = getClassLoaderInternal();
+ Object status;
+ if (c == null)
+ return VMClassLoader.defaultAssertionStatus();
+ if (c.classAssertionStatus != null)
+ synchronized (c)
+ {
+ status = c.classAssertionStatus.get(getName());
+ if (status != null)
+ return status.equals(Boolean.TRUE);
+ }
+ else
+ {
+ status = ClassLoader.systemClassAssertionStatus.get(getName());
+ if (status != null)
+ return status.equals(Boolean.TRUE);
+ }
+ if (c.packageAssertionStatus != null)
+ synchronized (c)
+ {
+ String name = getPackagePortion(getName());
+ if ("".equals(name))
+ status = c.packageAssertionStatus.get(null);
+ else
+ do
+ {
+ status = c.packageAssertionStatus.get(name);
+ name = getPackagePortion(name);
+ }
+ while (! "".equals(name) && status == null);
+ if (status != null)
+ return status.equals(Boolean.TRUE);
+ }
+ else
+ {
+ String name = getPackagePortion(getName());
+ if ("".equals(name))
+ status = ClassLoader.systemPackageAssertionStatus.get(null);
+ else
+ do
+ {
+ status = ClassLoader.systemPackageAssertionStatus.get(name);
+ name = getPackagePortion(name);
+ }
+ while (! "".equals(name) && status == null);
+ if (status != null)
+ return status.equals(Boolean.TRUE);
+ }
+ return c.defaultAssertionStatus;
+ }
+
+ /**
+ * Strip the last portion of the name (after the last dot).
+ *
+ * @param name the name to get package of
+ * @return the package name, or "" if no package
+ */
+ private static String getPackagePortion(String name)
+ {
+ int lastInd = name.lastIndexOf('.');
+ if (lastInd == -1)
+ return "";
+ return name.substring(0, lastInd);
+ }
+
+ /**
+ * Perform security checks common to all of the methods that
+ * get members of this Class.
+ */
+ private void memberAccessCheck(int which)
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ {
+ sm.checkMemberAccess(this, which);
+ Package pkg = getPackage();
+ if (pkg != null)
+ sm.checkPackageAccess(pkg.getName());
+ }
+ }
+
+
+ /**
+ * <p>
+ * Casts this class to represent a subclass of the specified class.
+ * This method is useful for `narrowing' the type of a class so that
+ * the class object, and instances of that class, can match the contract
+ * of a more restrictive method. For example, if this class has the
+ * static type of <code>Class&lt;Object&gt;</code>, and a dynamic type of
+ * <code>Class&lt;Rectangle&gt;</code>, then, assuming <code>Shape</code> is
+ * a superclass of <code>Rectangle</code>, this method can be used on
+ * this class with the parameter, <code>Class&lt;Shape&gt;</code>, to retain
+ * the same instance but with the type
+ * <code>Class&lt;? extends Shape&gt;</code>.
+ * </p>
+ * <p>
+ * If this class can be converted to an instance which is parameterised
+ * over a subtype of the supplied type, <code>U</code>, then this method
+ * returns an appropriately cast reference to this object. Otherwise,
+ * a <code>ClassCastException</code> is thrown.
+ * </p>
+ *
+ * @param klass the class object, the parameterized type (<code>U</code>) of
+ * which should be a superclass of the parameterized type of
+ * this instance.
+ * @return a reference to this object, appropriately cast.
+ * @throws ClassCastException if this class can not be converted to one
+ * which represents a subclass of the specified
+ * type, <code>U</code>.
+ * @since 1.5
+ */
+ public <U> Class<? extends U> asSubclass(Class<U> klass)
+ {
+ if (! klass.isAssignableFrom(this))
+ throw new ClassCastException();
+ return (Class<? extends U>) this;
+ }
+
+ /**
+ * Returns the specified object, cast to this <code>Class</code>' type.
+ *
+ * @param obj the object to cast
+ * @throws ClassCastException if obj is not an instance of this class
+ * @since 1.5
+ */
+ public T cast(Object obj)
+ {
+ if (obj != null && ! isInstance(obj))
+ throw new ClassCastException();
+ return (T) obj;
+ }
+
+ /**
+ * Returns the enumeration constants of this class, or
+ * null if this class is not an <code>Enum</code>.
+ *
+ * @return an array of <code>Enum</code> constants
+ * associated with this class, or null if this
+ * class is not an <code>enum</code>.
+ * @since 1.5
+ */
+ public T[] getEnumConstants()
+ {
+ if (isEnum())
+ {
+ try
+ {
+ Method m = getMethod("values");
+ setAccessible(m);
+ return (T[]) m.invoke(null);
+ }
+ catch (NoSuchMethodException exception)
+ {
+ throw new Error("Enum lacks values() method");
+ }
+ catch (IllegalAccessException exception)
+ {
+ throw new Error("Unable to access Enum class");
+ }
+ catch (InvocationTargetException exception)
+ {
+ throw new
+ RuntimeException("The values method threw an exception",
+ exception);
+ }
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Returns true if this class is an <code>Enum</code>.
+ *
+ * @return true if this is an enumeration class.
+ * @since 1.5
+ */
+ public native boolean isEnum();
+
+
+ /**
+ * Returns true if this class is a synthetic class, generated by
+ * the compiler.
+ *
+ * @return true if this is a synthetic class.
+ * @since 1.5
+ */
+ public native boolean isSynthetic();
+
+
+ /**
+ * Returns true if this class is an <code>Annotation</code>.
+ *
+ * @return true if this is an annotation class.
+ * @since 1.5
+ */
+ public native boolean isAnnotation();
+
+
+ /**
+ * Returns the simple name for this class, as used in the source
+ * code. For normal classes, this is the content returned by
+ * <code>getName()</code> which follows the last ".". Anonymous
+ * classes have no name, and so the result of calling this method is
+ * "". The simple name of an array consists of the simple name of
+ * its component type, followed by "[]". Thus, an array with the
+ * component type of an anonymous class has a simple name of simply
+ * "[]".
+ *
+ * @return the simple name for this class.
+ * @since 1.5
+ */
+ public String getSimpleName()
+ {
+ if (isAnonymousClass())
+ return "";
+ if (isArray())
+ return getComponentType().getSimpleName() + "[]";
+
+ String fullName = getName();
+ Class enclosingClass = getEnclosingClass();
+ if (enclosingClass == null)
+ // It's a top level class.
+ return fullName.substring(fullName.lastIndexOf(".") + 1);
+
+ fullName = fullName.substring(enclosingClass.getName().length());
+
+ // We've carved off the enclosing class name; now we must have '$'
+ // followed optionally by digits, followed by the class name.
+ int pos = 1;
+ while (Character.isDigit(fullName.charAt(pos)))
+ ++pos;
+ fullName = fullName.substring(pos);
+
+ return fullName;
+ }
+
+ /**
+ * Returns the class which immediately encloses this class. If this class
+ * is a top-level class, this method returns <code>null</code>.
+ *
+ * @return the immediate enclosing class, or <code>null</code> if this is
+ * a top-level class.
+ * @since 1.5
+ */
+ public native Class<?> getEnclosingClass();
+
+ /**
+ * Returns the constructor which immediately encloses this class. If
+ * this class is a top-level class, or a local or anonymous class
+ * immediately enclosed by a type definition, instance initializer
+ * or static initializer, then <code>null</code> is returned.
+ *
+ * @return the immediate enclosing constructor if this class is
+ * declared within a constructor. Otherwise, <code>null</code>
+ * is returned.
+ * @since 1.5
+ */
+ public native Constructor<T> getEnclosingConstructor();
+
+ /**
+ * Returns the method which immediately encloses this class. If
+ * this class is a top-level class, or a local or anonymous class
+ * immediately enclosed by a type definition, instance initializer
+ * or static initializer, then <code>null</code> is returned.
+ *
+ * @return the immediate enclosing method if this class is
+ * declared within a method. Otherwise, <code>null</code>
+ * is returned.
+ * @since 1.5
+ */
+ public native Method getEnclosingMethod();
+
+ private native String getClassSignature();
+
+ /**
+ * <p>
+ * Returns an array of <code>Type</code> objects which represent the
+ * interfaces directly implemented by this class or extended by this
+ * interface.
+ * </p>
+ * <p>
+ * If one of the superinterfaces is a parameterized type, then the
+ * object returned for this interface reflects the actual type
+ * parameters used in the source code. Type parameters are created
+ * using the semantics specified by the <code>ParameterizedType</code>
+ * interface, and only if an instance has not already been created.
+ * </p>
+ * <p>
+ * The order of the interfaces in the array matches the order in which
+ * the interfaces are declared. For classes which represent an array,
+ * an array of two interfaces, <code>Cloneable</code> and
+ * <code>Serializable</code>, is always returned, with the objects in
+ * that order. A class representing a primitive type or void always
+ * returns an array of zero size.
+ * </p>
+ *
+ * @return an array of interfaces implemented or extended by this class.
+ * @throws GenericSignatureFormatError if the generic signature of one
+ * of the interfaces does not comply with that specified by the Java
+ * Virtual Machine specification, 3rd edition.
+ * @throws TypeNotPresentException if any of the superinterfaces refers
+ * to a non-existant type.
+ * @throws MalformedParameterizedTypeException if any of the interfaces
+ * refer to a parameterized type that can not be instantiated for
+ * some reason.
+ * @since 1.5
+ * @see java.lang.reflect.ParameterizedType
+ */
+ public Type[] getGenericInterfaces()
+ {
+ if (isPrimitive())
+ return new Type[0];
+
+ String sig = getClassSignature();
+ if (sig == null)
+ return getInterfaces();
+
+ ClassSignatureParser p = new ClassSignatureParser(this, sig);
+ return p.getInterfaceTypes();
+ }
+
+ /**
+ * <p>
+ * Returns a <code>Type</code> object representing the direct superclass,
+ * whether class, interface, primitive type or void, of this class.
+ * If this class is an array class, then a class instance representing
+ * the <code>Object</code> class is returned. If this class is primitive,
+ * an interface, or a representation of either the <code>Object</code>
+ * class or void, then <code>null</code> is returned.
+ * </p>
+ * <p>
+ * If the superclass is a parameterized type, then the
+ * object returned for this interface reflects the actual type
+ * parameters used in the source code. Type parameters are created
+ * using the semantics specified by the <code>ParameterizedType</code>
+ * interface, and only if an instance has not already been created.
+ * </p>
+ *
+ * @return the superclass of this class.
+ * @throws GenericSignatureFormatError if the generic signature of the
+ * class does not comply with that specified by the Java
+ * Virtual Machine specification, 3rd edition.
+ * @throws TypeNotPresentException if the superclass refers
+ * to a non-existant type.
+ * @throws MalformedParameterizedTypeException if the superclass
+ * refers to a parameterized type that can not be instantiated for
+ * some reason.
+ * @since 1.5
+ * @see java.lang.reflect.ParameterizedType
+ */
+ public Type getGenericSuperclass()
+ {
+ if (isArray())
+ return Object.class;
+
+ if (isPrimitive() || isInterface() || this == Object.class)
+ return null;
+
+ String sig = getClassSignature();
+ if (sig == null)
+ return getSuperclass();
+
+ ClassSignatureParser p = new ClassSignatureParser(this, sig);
+ return p.getSuperclassType();
+ }
+
+ /**
+ * Returns an array of <code>TypeVariable</code> objects that represents
+ * the type variables declared by this class, in declaration order.
+ * An array of size zero is returned if this class has no type
+ * variables.
+ *
+ * @return the type variables associated with this class.
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public TypeVariable<Class<T>>[] getTypeParameters()
+ {
+ String sig = getClassSignature();
+ if (sig == null)
+ return (TypeVariable<Class<T>>[])new TypeVariable[0];
+
+ ClassSignatureParser p = new ClassSignatureParser(this, sig);
+ return p.getTypeParameters();
+ }
+
+ /**
+ * Returns this class' annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this class' annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @since 1.5
+ */
+ public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
+ {
+ A foundAnnotation = null;
+ Annotation[] annotations = getAnnotations();
+ for (Annotation annotation : annotations)
+ if (annotation.annotationType() == annotationClass)
+ foundAnnotation = (A) annotation;
+ return foundAnnotation;
+ }
+
+ /**
+ * Returns all annotations associated with this class. If there are
+ * no annotations associated with this class, then a zero-length array
+ * will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return this class' annotations.
+ * @since 1.5
+ */
+ public Annotation[] getAnnotations()
+ {
+ HashMap<Class, Annotation> map = new HashMap<Class, Annotation>();
+ for (Annotation a : getDeclaredAnnotations())
+ map.put((Class) a.annotationType(), a);
+ for (Class<? super T> s = getSuperclass();
+ s != null;
+ s = s.getSuperclass())
+ {
+ for (Annotation a : s.getDeclaredAnnotations())
+ {
+ Class k = (Class) a.annotationType();
+ if (! map.containsKey(k) && k.isAnnotationPresent(Inherited.class))
+ map.put(k, a);
+ }
+ }
+ Collection<Annotation> v = map.values();
+ return v.toArray(new Annotation[v.size()]);
+ }
+
+ /**
+ * <p>
+ * Returns the canonical name of this class, as defined by section
+ * 6.7 of the Java language specification. Each package, top-level class,
+ * top-level interface and primitive type has a canonical name. A member
+ * class has a canonical name, if its parent class has one. Likewise,
+ * an array type has a canonical name, if its component type does.
+ * Local or anonymous classes do not have canonical names.
+ * </p>
+ * <p>
+ * The canonical name for top-level classes, top-level interfaces and
+ * primitive types is always the same as the fully-qualified name.
+ * For array types, the canonical name is the canonical name of its
+ * component type with `[]' appended.
+ * </p>
+ * <p>
+ * The canonical name of a member class always refers to the place where
+ * the class was defined, and is composed of the canonical name of the
+ * defining class and the simple name of the member class, joined by `.'.
+ * For example, if a <code>Person</code> class has an inner class,
+ * <code>M</code>, then both its fully-qualified name and canonical name
+ * is <code>Person.M</code>. A subclass, <code>Staff</code>, of
+ * <code>Person</code> refers to the same inner class by the fully-qualified
+ * name of <code>Staff.M</code>, but its canonical name is still
+ * <code>Person.M</code>.
+ * </p>
+ * <p>
+ * Where no canonical name is present, <code>null</code> is returned.
+ * </p>
+ *
+ * @return the canonical name of the class, or <code>null</code> if the
+ * class doesn't have a canonical name.
+ * @since 1.5
+ */
+ public String getCanonicalName()
+ {
+ if (isArray())
+ {
+ String componentName = getComponentType().getCanonicalName();
+ if (componentName != null)
+ return componentName + "[]";
+ }
+ if (isMemberClass())
+ {
+ String memberName = getDeclaringClass().getCanonicalName();
+ if (memberName != null)
+ return memberName + "." + getSimpleName();
+ }
+ if (isLocalClass() || isAnonymousClass())
+ return null;
+ return getName();
+ }
+
+ /**
+ * Returns all annotations directly defined by this class. If there are
+ * no annotations associated with this class, then a zero-length array
+ * will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by this class.
+ * @since 1.5
+ */
+ public Annotation[] getDeclaredAnnotations()
+ {
+ Annotation[] result = getDeclaredAnnotationsInternal();
+ if (result == null)
+ result = new Annotation[0];
+ return result;
+ }
+
+ private native Annotation[] getDeclaredAnnotationsInternal();
+
+ /**
+ * Returns true if an annotation for the specified type is associated
+ * with this class. This is primarily a short-hand for using marker
+ * annotations.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return true if an annotation exists for the specified type.
+ * @since 1.5
+ */
+ public boolean isAnnotationPresent(Class<? extends Annotation>
+ annotationClass)
+ {
+ return getAnnotation(annotationClass) != null;
+ }
+
+ /**
+ * Returns true if this object represents an anonymous class.
+ *
+ * @return true if this object represents an anonymous class.
+ * @since 1.5
+ */
+ public native boolean isAnonymousClass();
+
+ /**
+ * Returns true if this object represents an local class.
+ *
+ * @return true if this object represents an local class.
+ * @since 1.5
+ */
+ public native boolean isLocalClass();
+
+ /**
+ * Returns true if this object represents an member class.
+ *
+ * @return true if this object represents an member class.
+ * @since 1.5
+ */
+ public native boolean isMemberClass();
+
+ /**
+ * Utility method for use by classes in this package.
+ */
+ static void setAccessible(final AccessibleObject obj)
+ {
+ AccessController.doPrivileged(new PrivilegedAction()
+ {
+ public Object run()
+ {
+ obj.setAccessible(true);
+ return null;
+ }
+ });
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/ClassCastException.h b/gcc-4.8/libjava/java/lang/ClassCastException.h
new file mode 100644
index 000000000..55c0bcc88
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassCastException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ClassCastException__
+#define __java_lang_ClassCastException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::ClassCastException : public ::java::lang::RuntimeException
+{
+
+public:
+ ClassCastException();
+ ClassCastException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -9223365651070458532LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ClassCastException__
diff --git a/gcc-4.8/libjava/java/lang/ClassCircularityError.h b/gcc-4.8/libjava/java/lang/ClassCircularityError.h
new file mode 100644
index 000000000..81d6f93ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassCircularityError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ClassCircularityError__
+#define __java_lang_ClassCircularityError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::ClassCircularityError : public ::java::lang::LinkageError
+{
+
+public:
+ ClassCircularityError();
+ ClassCircularityError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 1054362542914539689LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ClassCircularityError__
diff --git a/gcc-4.8/libjava/java/lang/ClassFormatError.h b/gcc-4.8/libjava/java/lang/ClassFormatError.h
new file mode 100644
index 000000000..ee6664f56
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassFormatError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ClassFormatError__
+#define __java_lang_ClassFormatError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::ClassFormatError : public ::java::lang::LinkageError
+{
+
+public:
+ ClassFormatError();
+ ClassFormatError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8420114879011949195LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ClassFormatError__
diff --git a/gcc-4.8/libjava/java/lang/ClassLoader$AnnotationsKey.h b/gcc-4.8/libjava/java/lang/ClassLoader$AnnotationsKey.h
new file mode 100644
index 000000000..1a395b07b
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassLoader$AnnotationsKey.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ClassLoader$AnnotationsKey__
+#define __java_lang_ClassLoader$AnnotationsKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::ClassLoader$AnnotationsKey : public ::java::lang::Object
+{
+
+public:
+ ClassLoader$AnnotationsKey(::java::lang::Class *, jint, jint, jint);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) member_type;
+ jint member_index;
+ jint kind_req;
+ ::java::lang::Class * declaringClass;
+ jint hashCode__;
+public:
+ static JArray< ::java::lang::annotation::Annotation * > * NIL;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ClassLoader$AnnotationsKey__
diff --git a/gcc-4.8/libjava/java/lang/ClassLoader.h b/gcc-4.8/libjava/java/lang/ClassLoader.h
new file mode 100644
index 000000000..5112eab98
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassLoader.h
@@ -0,0 +1,112 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ClassLoader__
+#define __java_lang_ClassLoader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ namespace security
+ {
+ class ProtectionDomain;
+ }
+ }
+}
+
+jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);
+void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);
+
+class java::lang::ClassLoader : public ::java::lang::Object
+{
+
+public: // actually package-private
+ virtual JArray< ::java::lang::Object * > * getDeclaredAnnotations(::java::lang::Class *, jint, jint, jint);
+ virtual JArray< ::java::lang::Object * > * putDeclaredAnnotations(::java::lang::Class *, jint, jint, jint, JArray< ::java::lang::Object * > *);
+public: // actually protected
+ ClassLoader();
+ ClassLoader(::java::lang::ClassLoader *);
+public:
+ virtual ::java::lang::Class * loadClass(::java::lang::String *);
+private:
+ ::java::lang::Class * loadClassFromSig(::java::lang::String *);
+public: // actually protected
+ virtual ::java::lang::Class * loadClass(::java::lang::String *, jboolean);
+ virtual ::java::lang::Class * findClass(::java::lang::String *);
+ virtual ::java::lang::Class * defineClass(JArray< jbyte > *, jint, jint);
+ virtual ::java::lang::Class * defineClass(::java::lang::String *, JArray< jbyte > *, jint, jint);
+ virtual ::java::lang::Class * defineClass(::java::lang::String *, JArray< jbyte > *, jint, jint, ::java::security::ProtectionDomain *);
+ virtual ::java::lang::Class * defineClass(::java::lang::String *, ::java::nio::ByteBuffer *, ::java::security::ProtectionDomain *);
+ virtual void resolveClass(::java::lang::Class *);
+ virtual ::java::lang::Class * findSystemClass(::java::lang::String *);
+public:
+ virtual ::java::lang::ClassLoader * getParent();
+public: // actually protected
+ virtual void setSigners(::java::lang::Class *, JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Class * findLoadedClass(::java::lang::String *);
+public:
+ virtual ::java::net::URL * getResource(::java::lang::String *);
+ virtual ::java::util::Enumeration * getResources(::java::lang::String *);
+public: // actually protected
+ virtual ::java::util::Enumeration * findResources(::java::lang::String *);
+ virtual ::java::net::URL * findResource(::java::lang::String *);
+public:
+ static ::java::net::URL * getSystemResource(::java::lang::String *);
+ static ::java::util::Enumeration * getSystemResources(::java::lang::String *);
+ virtual ::java::io::InputStream * getResourceAsStream(::java::lang::String *);
+ static ::java::io::InputStream * getSystemResourceAsStream(::java::lang::String *);
+ static ::java::lang::ClassLoader * getSystemClassLoader();
+public: // actually protected
+ virtual ::java::lang::Package * definePackage(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::net::URL *);
+ virtual ::java::lang::Package * getPackage(::java::lang::String *);
+ virtual JArray< ::java::lang::Package * > * getPackages();
+ virtual ::java::lang::String * findLibrary(::java::lang::String *);
+public:
+ virtual void setDefaultAssertionStatus(jboolean);
+ virtual void setPackageAssertionStatus(::java::lang::String *, jboolean);
+ virtual void setClassAssertionStatus(::java::lang::String *, jboolean);
+ virtual void clearAssertionStatus();
+public: // actually package-private
+ virtual jboolean isAncestorOf(::java::lang::ClassLoader *);
+private:
+ void checkInitialized();
+public: // actually package-private
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loadedClasses;
+ ::java::util::HashMap * loadingConstraints;
+ ::java::util::HashMap * definedPackages;
+private:
+ ::java::lang::ClassLoader * parent;
+ jboolean initialized;
+public: // actually package-private
+ static ::java::lang::ClassLoader * systemClassLoader;
+private:
+ ::java::util::concurrent::ConcurrentHashMap * declaredAnnotations;
+public: // actually package-private
+ static ::java::security::ProtectionDomain * defaultProtectionDomain;
+ jboolean defaultAssertionStatus;
+ static ::java::util::Map * systemPackageAssertionStatus;
+ ::java::util::Map * packageAssertionStatus;
+ static ::java::util::Map * systemClassAssertionStatus;
+ ::java::util::Map * classAssertionStatus;
+public:
+ static ::java::lang::Class class$;
+
+ friend jclass (::_Jv_FindClass) (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);
+ friend void ::_Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);
+};
+
+#endif // __java_lang_ClassLoader__
diff --git a/gcc-4.8/libjava/java/lang/ClassLoader.java b/gcc-4.8/libjava/java/lang/ClassLoader.java
new file mode 100644
index 000000000..d55573095
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassLoader.java
@@ -0,0 +1,1144 @@
+/* ClassLoader.java -- responsible for loading classes into the VM
+ Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang;
+
+import gnu.classpath.SystemProperties;
+import gnu.classpath.VMStackWalker;
+import gnu.java.util.DoubleEnumeration;
+import gnu.java.util.EmptyEnumeration;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.ref.WeakReference;
+import java.net.URL;
+import java.nio.ByteBuffer;
+import java.security.CodeSource;
+import java.security.PermissionCollection;
+import java.security.Policy;
+import java.security.ProtectionDomain;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.lang.annotation.Annotation;
+
+/**
+ * The ClassLoader is a way of customizing the way Java gets its classes
+ * and loads them into memory. The verifier and other standard Java things
+ * still run, but the ClassLoader is allowed great flexibility in determining
+ * where to get the classfiles and when to load and resolve them. For that
+ * matter, a custom ClassLoader can perform on-the-fly code generation or
+ * modification!
+ *
+ * <p>Every classloader has a parent classloader that is consulted before
+ * the 'child' classloader when classes or resources should be loaded.
+ * This is done to make sure that classes can be loaded from an hierarchy of
+ * multiple classloaders and classloaders do not accidentially redefine
+ * already loaded classes by classloaders higher in the hierarchy.
+ *
+ * <p>The grandparent of all classloaders is the bootstrap classloader, which
+ * loads all the standard system classes as implemented by GNU Classpath. The
+ * other special classloader is the system classloader (also called
+ * application classloader) that loads all classes from the CLASSPATH
+ * (<code>java.class.path</code> system property). The system classloader
+ * is responsible for finding the application classes from the classpath,
+ * and delegates all requests for the standard library classes to its parent
+ * the bootstrap classloader. Most programs will load all their classes
+ * through the system classloaders.
+ *
+ * <p>The bootstrap classloader in GNU Classpath is implemented as a couple of
+ * static (native) methods on the package private class
+ * <code>java.lang.VMClassLoader</code>, the system classloader is an
+ * instance of <code>gnu.java.lang.SystemClassLoader</code>
+ * (which is a subclass of <code>java.net.URLClassLoader</code>).
+ *
+ * <p>Users of a <code>ClassLoader</code> will normally just use the methods
+ * <ul>
+ * <li> <code>loadClass()</code> to load a class.</li>
+ * <li> <code>getResource()</code> or <code>getResourceAsStream()</code>
+ * to access a resource.</li>
+ * <li> <code>getResources()</code> to get an Enumeration of URLs to all
+ * the resources provided by the classloader and its parents with the
+ * same name.</li>
+ * </ul>
+ *
+ * <p>Subclasses should implement the methods
+ * <ul>
+ * <li> <code>findClass()</code> which is called by <code>loadClass()</code>
+ * when the parent classloader cannot provide a named class.</li>
+ * <li> <code>findResource()</code> which is called by
+ * <code>getResource()</code> when the parent classloader cannot provide
+ * a named resource.</li>
+ * <li> <code>findResources()</code> which is called by
+ * <code>getResource()</code> to combine all the resources with the
+ * same name from the classloader and its parents.</li>
+ * <li> <code>findLibrary()</code> which is called by
+ * <code>Runtime.loadLibrary()</code> when a class defined by the
+ * classloader wants to load a native library.</li>
+ * </ul>
+ *
+ * @author John Keiser
+ * @author Mark Wielaard
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @see Class
+ * @since 1.0
+ */
+public abstract class ClassLoader
+{
+ /**
+ * All classes loaded by this classloader. VM's may choose to implement
+ * this cache natively; but it is here available for use if necessary. It
+ * is not private in order to allow native code (and trusted subclasses)
+ * access to this field.
+ */
+ final HashMap loadedClasses = new HashMap();
+
+ /**
+ * Loading constraints registered with this classloader. This maps
+ * a class name to a weak reference to a class. When the reference
+ * is non-null, it means that a reference to the name must resolve
+ * to the indicated class.
+ */
+ final HashMap<String, WeakReference<Class>> loadingConstraints
+ = new HashMap<String, WeakReference<Class>>();
+
+ /**
+ * All packages defined by this classloader. It is not private in order to
+ * allow native code (and trusted subclasses) access to this field.
+ */
+ final HashMap definedPackages = new HashMap();
+
+ /**
+ * The classloader that is consulted before this classloader.
+ * If null then the parent is the bootstrap classloader.
+ */
+ private final ClassLoader parent;
+
+ /**
+ * This is true if this classloader was successfully initialized.
+ * This flag is needed to avoid a class loader attack: even if the
+ * security manager rejects an attempt to create a class loader, the
+ * malicious class could have a finalize method which proceeds to
+ * define classes.
+ */
+ private final boolean initialized;
+
+ /**
+ * System/Application classloader: defaults to an instance of
+ * gnu.java.lang.SystemClassLoader, unless the first invocation of
+ * getSystemClassLoader loads another class loader because of the
+ * java.system.class.loader property. The initialization of this field
+ * is somewhat circular - getSystemClassLoader() checks whether this
+ * field is null in order to bypass a security check.
+ */
+ static final ClassLoader systemClassLoader =
+ VMClassLoader.getSystemClassLoader();
+
+ /**
+ * This cache maps from a Class to its associated annotations. It's
+ * declared here so that when this class loader becomes unreachable,
+ * so will the corresponding cache.
+ */
+
+ private final ConcurrentHashMap<AnnotationsKey,Object[]>
+ declaredAnnotations
+ = new ConcurrentHashMap<AnnotationsKey,Object[]>();
+
+ static final class AnnotationsKey
+ {
+ final int /* jv_attr_type */ member_type;
+ final int member_index;
+ final int /* jv_attr_kind */ kind_req;
+ final Class declaringClass;
+ final int hashCode;
+
+ public AnnotationsKey (Class declaringClass,
+ int member_type,
+ int member_index,
+ int kind_req)
+ {
+ this.member_type = member_type;
+ this.member_index = member_index;
+ this.kind_req = kind_req;
+ this.declaringClass = declaringClass;
+ hashCode = (member_type ^ member_index ^ kind_req
+ ^ declaringClass.hashCode());
+ }
+
+ public boolean equals(Object obj)
+ {
+ AnnotationsKey other = (AnnotationsKey)obj;
+ return (this.member_type == other.member_type
+ && this.member_index == other.member_index
+ && this.kind_req == other.kind_req
+ && this.declaringClass == other.declaringClass);
+ }
+
+ public int hashCode()
+ {
+ return hashCode;
+ }
+
+ public static final Annotation[] NIL = new Annotation[0];
+ }
+
+ final Object[] getDeclaredAnnotations(Class declaringClass,
+ int member_type,
+ int member_index,
+ int kind_req)
+ {
+ Object[] result
+ = declaredAnnotations.get (new AnnotationsKey
+ (declaringClass,
+ member_type,
+ member_index,
+ kind_req));
+ if (result != AnnotationsKey.NIL && result != null)
+ return (Object[])result.clone();
+ return null;
+ }
+
+ final Object[] putDeclaredAnnotations(Class declaringClass,
+ int member_type,
+ int member_index,
+ int kind_req,
+ Object[] annotations)
+ {
+ declaredAnnotations.put
+ (new AnnotationsKey
+ (declaringClass, member_type,
+ member_index, kind_req),
+ annotations == null ? AnnotationsKey.NIL : annotations);
+
+ return annotations == null ? null : (Object[])annotations.clone();
+ }
+
+ static
+ {
+ // Find out if we have to install a default security manager. Note
+ // that this is done here because we potentially need the system
+ // class loader to load the security manager and note also that we
+ // don't need the security manager until the system class loader
+ // is created. If the runtime chooses to use a class loader that
+ // doesn't have the system class loader as its parent, it is
+ // responsible for setting up a security manager before doing so.
+ String secman = SystemProperties.getProperty("java.security.manager");
+ if (secman != null && SecurityManager.current == null)
+ {
+ if (secman.equals("") || secman.equals("default"))
+ {
+ SecurityManager.current = new SecurityManager();
+ }
+ else
+ {
+ try
+ {
+ Class cl = Class.forName(secman, false, systemClassLoader);
+ SecurityManager.current = (SecurityManager) cl.newInstance();
+ }
+ catch (Exception x)
+ {
+ throw (InternalError)
+ new InternalError("Unable to create SecurityManager")
+ .initCause(x);
+ }
+ }
+ }
+ }
+
+ /**
+ * The default protection domain, used when defining a class with a null
+ * paramter for the domain.
+ */
+ static final ProtectionDomain defaultProtectionDomain;
+ static
+ {
+ CodeSource cs = new CodeSource(null, null);
+ PermissionCollection perm = Policy.getPolicy().getPermissions(cs);
+ defaultProtectionDomain = new ProtectionDomain(cs, perm);
+ }
+
+ /**
+ * The desired assertion status of classes loaded by this loader, if not
+ * overridden by package or class instructions.
+ */
+ // Package visible for use by Class.
+ boolean defaultAssertionStatus = VMClassLoader.defaultAssertionStatus();
+
+ /**
+ * The command-line state of the package assertion status overrides. This
+ * map is never modified, so it does not need to be synchronized.
+ */
+ // Package visible for use by Class.
+ static final Map systemPackageAssertionStatus
+ = VMClassLoader.packageAssertionStatus();
+
+ /**
+ * The map of package assertion status overrides, or null if no package
+ * overrides have been specified yet. The values of the map should be
+ * Boolean.TRUE or Boolean.FALSE, and the unnamed package is represented
+ * by the null key. This map must be synchronized on this instance.
+ */
+ // Package visible for use by Class.
+ Map packageAssertionStatus;
+
+ /**
+ * The command-line state of the class assertion status overrides. This
+ * map is never modified, so it does not need to be synchronized.
+ */
+ // Package visible for use by Class.
+ static final Map systemClassAssertionStatus
+ = VMClassLoader.classAssertionStatus();
+
+ /**
+ * The map of class assertion status overrides, or null if no class
+ * overrides have been specified yet. The values of the map should be
+ * Boolean.TRUE or Boolean.FALSE. This map must be synchronized on this
+ * instance.
+ */
+ // Package visible for use by Class.
+ Map classAssertionStatus;
+
+ /**
+ * Create a new ClassLoader with as parent the system classloader. There
+ * may be a security check for <code>checkCreateClassLoader</code>.
+ *
+ * @throws SecurityException if the security check fails
+ */
+ protected ClassLoader() throws SecurityException
+ {
+ this(systemClassLoader);
+ }
+
+ /**
+ * Create a new ClassLoader with the specified parent. The parent will
+ * be consulted when a class or resource is requested through
+ * <code>loadClass()</code> or <code>getResource()</code>. Only when the
+ * parent classloader cannot provide the requested class or resource the
+ * <code>findClass()</code> or <code>findResource()</code> method
+ * of this classloader will be called. There may be a security check for
+ * <code>checkCreateClassLoader</code>.
+ *
+ * @param parent the classloader's parent, or null for the bootstrap
+ * classloader
+ * @throws SecurityException if the security check fails
+ * @since 1.2
+ */
+ protected ClassLoader(ClassLoader parent)
+ {
+ // May we create a new classloader?
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkCreateClassLoader();
+ this.parent = parent;
+ this.initialized = true;
+ }
+
+ /**
+ * Load a class using this ClassLoader or its parent, without resolving
+ * it. Calls <code>loadClass(name, false)</code>.
+ *
+ * <p>Subclasses should not override this method but should override
+ * <code>findClass()</code> which is called by this method.</p>
+ *
+ * @param name the name of the class relative to this ClassLoader
+ * @return the loaded class
+ * @throws ClassNotFoundException if the class cannot be found
+ */
+ public Class<?> loadClass(String name) throws ClassNotFoundException
+ {
+ return loadClass(name, false);
+ }
+
+ private native Class loadClassFromSig(String name)
+ throws ClassNotFoundException;
+
+ /**
+ * Load a class using this ClassLoader or its parent, possibly resolving
+ * it as well using <code>resolveClass()</code>. It first tries to find
+ * out if the class has already been loaded through this classloader by
+ * calling <code>findLoadedClass()</code>. Then it calls
+ * <code>loadClass()</code> on the parent classloader (or when there is
+ * no parent it uses the VM bootclassloader). If the class is still
+ * not loaded it tries to create a new class by calling
+ * <code>findClass()</code>. Finally when <code>resolve</code> is
+ * <code>true</code> it also calls <code>resolveClass()</code> on the
+ * newly loaded class.
+ *
+ * <p>Subclasses should not override this method but should override
+ * <code>findClass()</code> which is called by this method.</p>
+ *
+ * @param name the fully qualified name of the class to load
+ * @param resolve whether or not to resolve the class
+ * @return the loaded class
+ * @throws ClassNotFoundException if the class cannot be found
+ */
+ protected synchronized Class<?> loadClass(String name, boolean resolve)
+ throws ClassNotFoundException
+ {
+ SecurityManager sm = SecurityManager.current;
+ if (sm != null)
+ {
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot != -1)
+ sm.checkPackageAccess(name.substring(0, lastDot));
+ }
+
+ // Arrays are handled specially.
+ Class c;
+ if (name.length() > 0 && name.charAt(0) == '[')
+ c = loadClassFromSig(name);
+ else
+ {
+ // Have we already loaded this class?
+ c = findLoadedClass(name);
+ if (c == null)
+ {
+ // Can the class be loaded by a parent?
+ try
+ {
+ if (parent == null)
+ {
+ c = VMClassLoader.loadClass(name, resolve);
+ if (c != null)
+ return c;
+ }
+ else
+ {
+ return parent.loadClass(name, resolve);
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ }
+ // Still not found, we have to do it ourself.
+ c = findClass(name);
+ }
+ }
+ if (resolve)
+ resolveClass(c);
+ return c;
+ }
+
+ /**
+ * Called for every class name that is needed but has not yet been
+ * defined by this classloader or one of its parents. It is called by
+ * <code>loadClass()</code> after both <code>findLoadedClass()</code> and
+ * <code>parent.loadClass()</code> couldn't provide the requested class.
+ *
+ * <p>The default implementation throws a
+ * <code>ClassNotFoundException</code>. Subclasses should override this
+ * method. An implementation of this method in a subclass should get the
+ * class bytes of the class (if it can find them), if the package of the
+ * requested class doesn't exist it should define the package and finally
+ * it should call define the actual class. It does not have to resolve the
+ * class. It should look something like the following:<br>
+ *
+ * <pre>
+ * // Get the bytes that describe the requested class
+ * byte[] classBytes = classLoaderSpecificWayToFindClassBytes(name);
+ * // Get the package name
+ * int lastDot = name.lastIndexOf('.');
+ * if (lastDot != -1)
+ * {
+ * String packageName = name.substring(0, lastDot);
+ * // Look if the package already exists
+ * if (getPackage(packageName) == null)
+ * {
+ * // define the package
+ * definePackage(packageName, ...);
+ * }
+ * }
+ * // Define and return the class
+ * return defineClass(name, classBytes, 0, classBytes.length);
+ * </pre>
+ *
+ * <p><code>loadClass()</code> makes sure that the <code>Class</code>
+ * returned by <code>findClass()</code> will later be returned by
+ * <code>findLoadedClass()</code> when the same class name is requested.
+ *
+ * @param name class name to find (including the package name)
+ * @return the requested Class
+ * @throws ClassNotFoundException when the class can not be found
+ * @since 1.2
+ */
+ protected Class<?> findClass(String name) throws ClassNotFoundException
+ {
+ throw new ClassNotFoundException(name);
+ }
+
+ /**
+ * Helper to define a class using a string of bytes. This version is not
+ * secure.
+ *
+ * @param data the data representing the classfile, in classfile format
+ * @param offset the offset into the data where the classfile starts
+ * @param len the length of the classfile data in the array
+ * @return the class that was defined
+ * @throws ClassFormatError if data is not in proper classfile format
+ * @throws IndexOutOfBoundsException if offset or len is negative, or
+ * offset + len exceeds data
+ * @deprecated use {@link #defineClass(String, byte[], int, int)} instead
+ */
+ protected final Class<?> defineClass(byte[] data, int offset, int len)
+ throws ClassFormatError
+ {
+ return defineClass(null, data, offset, len);
+ }
+
+ /**
+ * Helper to define a class using a string of bytes without a
+ * ProtectionDomain. Subclasses should call this method from their
+ * <code>findClass()</code> implementation. The name should use '.'
+ * separators, and discard the trailing ".class". The default protection
+ * domain has the permissions of
+ * <code>Policy.getPolicy().getPermissions(new CodeSource(null, null))</code>.
+ *
+ * @param name the name to give the class, or null if unknown
+ * @param data the data representing the classfile, in classfile format
+ * @param offset the offset into the data where the classfile starts
+ * @param len the length of the classfile data in the array
+ * @return the class that was defined
+ * @throws ClassFormatError if data is not in proper classfile format
+ * @throws IndexOutOfBoundsException if offset or len is negative, or
+ * offset + len exceeds data
+ * @throws SecurityException if name starts with "java."
+ * @since 1.1
+ */
+ protected final Class<?> defineClass(String name, byte[] data, int offset,
+ int len) throws ClassFormatError
+ {
+ return defineClass(name, data, offset, len, null);
+ }
+
+ /**
+ * Helper to define a class using a string of bytes. Subclasses should call
+ * this method from their <code>findClass()</code> implementation. If the
+ * domain is null, the default of
+ * <code>Policy.getPolicy().getPermissions(new CodeSource(null, null))</code>
+ * is used. Once a class has been defined in a package, all further classes
+ * in that package must have the same set of certificates or a
+ * SecurityException is thrown.
+ *
+ * @param name the name to give the class. null if unknown
+ * @param data the data representing the classfile, in classfile format
+ * @param offset the offset into the data where the classfile starts
+ * @param len the length of the classfile data in the array
+ * @param domain the ProtectionDomain to give to the class, null for the
+ * default protection domain
+ * @return the class that was defined
+ * @throws ClassFormatError if data is not in proper classfile format
+ * @throws IndexOutOfBoundsException if offset or len is negative, or
+ * offset + len exceeds data
+ * @throws SecurityException if name starts with "java.", or if certificates
+ * do not match up
+ * @since 1.2
+ */
+ protected final synchronized Class<?> defineClass(String name, byte[] data,
+ int offset, int len,
+ ProtectionDomain domain)
+ throws ClassFormatError
+ {
+ checkInitialized();
+ if (domain == null)
+ domain = defaultProtectionDomain;
+
+ Class retval = VMClassLoader.defineClass(this, name, data,
+ offset, len, domain);
+ loadedClasses.put(retval.getName(), retval);
+ return retval;
+ }
+
+ /**
+ * Helper to define a class using the contents of a byte buffer. If
+ * the domain is null, the default of
+ * <code>Policy.getPolicy().getPermissions(new CodeSource(null,
+ * null))</code> is used. Once a class has been defined in a
+ * package, all further classes in that package must have the same
+ * set of certificates or a SecurityException is thrown.
+ *
+ * @param name the name to give the class. null if unknown
+ * @param buf a byte buffer containing bytes that form a class.
+ * @param domain the ProtectionDomain to give to the class, null for the
+ * default protection domain
+ * @return the class that was defined
+ * @throws ClassFormatError if data is not in proper classfile format
+ * @throws NoClassDefFoundError if the supplied name is not the same as
+ * the one specified by the byte buffer.
+ * @throws SecurityException if name starts with "java.", or if certificates
+ * do not match up
+ * @since 1.5
+ */
+ protected final Class<?> defineClass(String name, ByteBuffer buf,
+ ProtectionDomain domain)
+ throws ClassFormatError
+ {
+ byte[] data = new byte[buf.remaining()];
+ buf.get(data);
+ return defineClass(name, data, 0, data.length, domain);
+ }
+
+ /**
+ * Links the class, if that has not already been done. Linking basically
+ * resolves all references to other classes made by this class.
+ *
+ * @param c the class to resolve
+ * @throws NullPointerException if c is null
+ * @throws LinkageError if linking fails
+ */
+ protected final void resolveClass(Class<?> c)
+ {
+ checkInitialized();
+ VMClassLoader.resolveClass(c);
+ }
+
+ /**
+ * Helper to find a Class using the system classloader, possibly loading it.
+ * A subclass usually does not need to call this, if it correctly
+ * overrides <code>findClass(String)</code>.
+ *
+ * @param name the name of the class to find
+ * @return the found class
+ * @throws ClassNotFoundException if the class cannot be found
+ */
+ protected final Class<?> findSystemClass(String name)
+ throws ClassNotFoundException
+ {
+ checkInitialized();
+ return Class.forName(name, false, systemClassLoader);
+ }
+
+ /**
+ * Returns the parent of this classloader. If the parent of this
+ * classloader is the bootstrap classloader then this method returns
+ * <code>null</code>. A security check may be performed on
+ * <code>RuntimePermission("getClassLoader")</code>.
+ *
+ * @return the parent <code>ClassLoader</code>
+ * @throws SecurityException if the security check fails
+ * @since 1.2
+ */
+ public final ClassLoader getParent()
+ {
+ // Check if we may return the parent classloader.
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ {
+ ClassLoader cl = VMStackWalker.getCallingClassLoader();
+ if (cl != null && ! cl.isAncestorOf(this))
+ sm.checkPermission(new RuntimePermission("getClassLoader"));
+ }
+ return parent;
+ }
+
+ /**
+ * Helper to set the signers of a class. This should be called after
+ * defining the class.
+ *
+ * @param c the Class to set signers of
+ * @param signers the signers to set
+ * @since 1.1
+ */
+ protected final void setSigners(Class<?> c, Object[] signers)
+ {
+ checkInitialized();
+ c.setSigners(signers);
+ }
+
+ /**
+ * Helper to find an already-loaded class in this ClassLoader.
+ *
+ * @param name the name of the class to find
+ * @return the found Class, or null if it is not found
+ * @since 1.1
+ */
+ protected final synchronized Class<?> findLoadedClass(String name)
+ {
+ checkInitialized();
+ // NOTE: If the VM is keeping its own cache, it may make sense to have
+ // this method be native.
+ return (Class) loadedClasses.get(name);
+ }
+
+ /**
+ * Get the URL to a resource using this classloader or one of its parents.
+ * First tries to get the resource by calling <code>getResource()</code>
+ * on the parent classloader. If the parent classloader returns null then
+ * it tries finding the resource by calling <code>findResource()</code> on
+ * this classloader. The resource name should be separated by '/' for path
+ * elements.
+ *
+ * <p>Subclasses should not override this method but should override
+ * <code>findResource()</code> which is called by this method.
+ *
+ * @param name the name of the resource relative to this classloader
+ * @return the URL to the resource or null when not found
+ */
+ public URL getResource(String name)
+ {
+ URL result;
+
+ if (parent == null)
+ result = VMClassLoader.getResource(name);
+ else
+ result = parent.getResource(name);
+
+ if (result == null)
+ result = findResource(name);
+ return result;
+ }
+
+ /**
+ * Returns an Enumeration of all resources with a given name that can
+ * be found by this classloader and its parents. Certain classloaders
+ * (such as the URLClassLoader when given multiple jar files) can have
+ * multiple resources with the same name that come from multiple locations.
+ * It can also occur that a parent classloader offers a resource with a
+ * certain name and the child classloader also offers a resource with that
+ * same name. <code>getResource()</code> only offers the first resource (of the
+ * parent) with a given name. This method lists all resources with the
+ * same name. The name should use '/' as path separators.
+ *
+ * <p>The Enumeration is created by first calling <code>getResources()</code>
+ * on the parent classloader and then calling <code>findResources()</code>
+ * on this classloader.</p>
+ *
+ * @param name the resource name
+ * @return an enumaration of all resources found
+ * @throws IOException if I/O errors occur in the process
+ * @since 1.2
+ * @specnote this was <code>final</code> prior to 1.5
+ */
+ public Enumeration<URL> getResources(String name) throws IOException
+ {
+ Enumeration<URL> parentResources;
+ if (parent == null)
+ parentResources = VMClassLoader.getResources(name);
+ else
+ parentResources = parent.getResources(name);
+ return new DoubleEnumeration<URL>(parentResources, findResources(name));
+ }
+
+ /**
+ * Called whenever all locations of a named resource are needed.
+ * It is called by <code>getResources()</code> after it has called
+ * <code>parent.getResources()</code>. The results are combined by
+ * the <code>getResources()</code> method.
+ *
+ * <p>The default implementation always returns an empty Enumeration.
+ * Subclasses should override it when they can provide an Enumeration of
+ * URLs (possibly just one element) to the named resource.
+ * The first URL of the Enumeration should be the same as the one
+ * returned by <code>findResource</code>.
+ *
+ * @param name the name of the resource to be found
+ * @return a possibly empty Enumeration of URLs to the named resource
+ * @throws IOException if I/O errors occur in the process
+ * @since 1.2
+ */
+ protected Enumeration<URL> findResources(String name) throws IOException
+ {
+ return new EmptyEnumeration<URL>();
+ }
+
+ /**
+ * Called whenever a resource is needed that could not be provided by
+ * one of the parents of this classloader. It is called by
+ * <code>getResource()</code> after <code>parent.getResource()</code>
+ * couldn't provide the requested resource.
+ *
+ * <p>The default implementation always returns null. Subclasses should
+ * override this method when they can provide a way to return a URL
+ * to a named resource.
+ *
+ * @param name the name of the resource to be found
+ * @return a URL to the named resource or null when not found
+ * @since 1.2
+ */
+ protected URL findResource(String name)
+ {
+ return null;
+ }
+
+ /**
+ * Get the URL to a resource using the system classloader.
+ *
+ * @param name the name of the resource relative to the system classloader
+ * @return the URL to the resource
+ * @since 1.1
+ */
+ public static final URL getSystemResource(String name)
+ {
+ return systemClassLoader.getResource(name);
+ }
+
+ /**
+ * Get an Enumeration of URLs to resources with a given name using the
+ * the system classloader. The enumeration firsts lists the resources with
+ * the given name that can be found by the bootstrap classloader followed
+ * by the resources with the given name that can be found on the classpath.
+ *
+ * @param name the name of the resource relative to the system classloader
+ * @return an Enumeration of URLs to the resources
+ * @throws IOException if I/O errors occur in the process
+ * @since 1.2
+ */
+ public static Enumeration<URL> getSystemResources(String name)
+ throws IOException
+ {
+ return systemClassLoader.getResources(name);
+ }
+
+ /**
+ * Get a resource as stream using this classloader or one of its parents.
+ * First calls <code>getResource()</code> and if that returns a URL to
+ * the resource then it calls and returns the InputStream given by
+ * <code>URL.openStream()</code>.
+ *
+ * <p>Subclasses should not override this method but should override
+ * <code>findResource()</code> which is called by this method.
+ *
+ * @param name the name of the resource relative to this classloader
+ * @return an InputStream to the resource, or null
+ * @since 1.1
+ */
+ public InputStream getResourceAsStream(String name)
+ {
+ try
+ {
+ URL url = getResource(name);
+ if (url == null)
+ return null;
+ return url.openStream();
+ }
+ catch (IOException e)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Get a resource using the system classloader.
+ *
+ * @param name the name of the resource relative to the system classloader
+ * @return an input stream for the resource, or null
+ * @since 1.1
+ */
+ public static final InputStream getSystemResourceAsStream(String name)
+ {
+ try
+ {
+ URL url = getSystemResource(name);
+ if (url == null)
+ return null;
+ return url.openStream();
+ }
+ catch (IOException e)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the system classloader. The system classloader (also called
+ * the application classloader) is the classloader that is used to
+ * load the application classes on the classpath (given by the system
+ * property <code>java.class.path</code>. This is set as the context
+ * class loader for a thread. The system property
+ * <code>java.system.class.loader</code>, if defined, is taken to be the
+ * name of the class to use as the system class loader, which must have
+ * a public constructor which takes a ClassLoader as a parent. The parent
+ * class loader passed in the constructor is the default system class
+ * loader.
+ *
+ * <p>Note that this is different from the bootstrap classloader that
+ * actually loads all the real "system" classes (the bootstrap classloader
+ * is the parent of the returned system classloader).
+ *
+ * <p>A security check will be performed for
+ * <code>RuntimePermission("getClassLoader")</code> if the calling class
+ * is not a parent of the system class loader.
+ *
+ * @return the system class loader
+ * @throws SecurityException if the security check fails
+ * @throws IllegalStateException if this is called recursively
+ * @throws Error if <code>java.system.class.loader</code> fails to load
+ * @since 1.2
+ */
+ public static ClassLoader getSystemClassLoader()
+ {
+ // Check if we may return the system classloader
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ {
+ ClassLoader cl = VMStackWalker.getCallingClassLoader();
+ if (cl != null && cl != systemClassLoader)
+ sm.checkPermission(new RuntimePermission("getClassLoader"));
+ }
+
+ return systemClassLoader;
+ }
+
+ /**
+ * Defines a new package and creates a Package object. The package should
+ * be defined before any class in the package is defined with
+ * <code>defineClass()</code>. The package should not yet be defined
+ * before in this classloader or in one of its parents (which means that
+ * <code>getPackage()</code> should return <code>null</code>). All
+ * parameters except the <code>name</code> of the package may be
+ * <code>null</code>.
+ *
+ * <p>Subclasses should call this method from their <code>findClass()</code>
+ * implementation before calling <code>defineClass()</code> on a Class
+ * in a not yet defined Package (which can be checked by calling
+ * <code>getPackage()</code>).
+ *
+ * @param name the name of the Package
+ * @param specTitle the name of the specification
+ * @param specVendor the name of the specification designer
+ * @param specVersion the version of this specification
+ * @param implTitle the name of the implementation
+ * @param implVendor the vendor that wrote this implementation
+ * @param implVersion the version of this implementation
+ * @param sealed if sealed the origin of the package classes
+ * @return the Package object for the specified package
+ * @throws IllegalArgumentException if the package name is null or it
+ * was already defined by this classloader or one of its parents
+ * @see Package
+ * @since 1.2
+ */
+ protected Package definePackage(String name, String specTitle,
+ String specVendor, String specVersion,
+ String implTitle, String implVendor,
+ String implVersion, URL sealed)
+ {
+ if (getPackage(name) != null)
+ throw new IllegalArgumentException("Package " + name
+ + " already defined");
+ Package p = new Package(name, specTitle, specVendor, specVersion,
+ implTitle, implVendor, implVersion, sealed, this);
+ synchronized (definedPackages)
+ {
+ definedPackages.put(name, p);
+ }
+ return p;
+ }
+
+ /**
+ * Returns the Package object for the requested package name. It returns
+ * null when the package is not defined by this classloader or one of its
+ * parents.
+ *
+ * @param name the package name to find
+ * @return the package, if defined
+ * @since 1.2
+ */
+ protected Package getPackage(String name)
+ {
+ Package p;
+ if (parent == null)
+ p = VMClassLoader.getPackage(name);
+ else
+ p = parent.getPackage(name);
+
+ if (p == null)
+ {
+ synchronized (definedPackages)
+ {
+ p = (Package) definedPackages.get(name);
+ }
+ }
+ return p;
+ }
+
+ /**
+ * Returns all Package objects defined by this classloader and its parents.
+ *
+ * @return an array of all defined packages
+ * @since 1.2
+ */
+ protected Package[] getPackages()
+ {
+ // Get all our packages.
+ Package[] packages;
+ synchronized(definedPackages)
+ {
+ packages = new Package[definedPackages.size()];
+ definedPackages.values().toArray(packages);
+ }
+
+ // If we have a parent get all packages defined by our parents.
+ Package[] parentPackages;
+ if (parent == null)
+ parentPackages = VMClassLoader.getPackages();
+ else
+ parentPackages = parent.getPackages();
+
+ Package[] allPackages = new Package[parentPackages.length
+ + packages.length];
+ System.arraycopy(parentPackages, 0, allPackages, 0,
+ parentPackages.length);
+ System.arraycopy(packages, 0, allPackages, parentPackages.length,
+ packages.length);
+ return allPackages;
+ }
+
+ /**
+ * Called by <code>Runtime.loadLibrary()</code> to get an absolute path
+ * to a (system specific) library that was requested by a class loaded
+ * by this classloader. The default implementation returns
+ * <code>null</code>. It should be implemented by subclasses when they
+ * have a way to find the absolute path to a library. If this method
+ * returns null the library is searched for in the default locations
+ * (the directories listed in the <code>java.library.path</code> system
+ * property).
+ *
+ * @param name the (system specific) name of the requested library
+ * @return the full pathname to the requested library, or null
+ * @see Runtime#loadLibrary(String)
+ * @since 1.2
+ */
+ protected String findLibrary(String name)
+ {
+ return null;
+ }
+
+ /**
+ * Set the default assertion status for classes loaded by this classloader,
+ * used unless overridden by a package or class request.
+ *
+ * @param enabled true to set the default to enabled
+ * @see #setClassAssertionStatus(String, boolean)
+ * @see #setPackageAssertionStatus(String, boolean)
+ * @see #clearAssertionStatus()
+ * @since 1.4
+ */
+ public void setDefaultAssertionStatus(boolean enabled)
+ {
+ defaultAssertionStatus = enabled;
+ }
+
+ /**
+ * Set the default assertion status for packages, used unless overridden
+ * by a class request. This default also covers subpackages, unless they
+ * are also specified. The unnamed package should use null for the name.
+ *
+ * @param name the package (and subpackages) to affect
+ * @param enabled true to set the default to enabled
+ * @see #setDefaultAssertionStatus(boolean)
+ * @see #setClassAssertionStatus(String, boolean)
+ * @see #clearAssertionStatus()
+ * @since 1.4
+ */
+ public synchronized void setPackageAssertionStatus(String name,
+ boolean enabled)
+ {
+ if (packageAssertionStatus == null)
+ packageAssertionStatus
+ = new HashMap(systemPackageAssertionStatus);
+ packageAssertionStatus.put(name, Boolean.valueOf(enabled));
+ }
+
+ /**
+ * Set the default assertion status for a class. This only affects the
+ * status of top-level classes, any other string is harmless.
+ *
+ * @param name the class to affect
+ * @param enabled true to set the default to enabled
+ * @throws NullPointerException if name is null
+ * @see #setDefaultAssertionStatus(boolean)
+ * @see #setPackageAssertionStatus(String, boolean)
+ * @see #clearAssertionStatus()
+ * @since 1.4
+ */
+ public synchronized void setClassAssertionStatus(String name,
+ boolean enabled)
+ {
+ if (classAssertionStatus == null)
+ classAssertionStatus = new HashMap(systemClassAssertionStatus);
+ // The toString() hack catches null, as required.
+ classAssertionStatus.put(name.toString(), Boolean.valueOf(enabled));
+ }
+
+ /**
+ * Resets the default assertion status of this classloader, its packages
+ * and classes, all to false. This allows overriding defaults inherited
+ * from the command line.
+ *
+ * @see #setDefaultAssertionStatus(boolean)
+ * @see #setClassAssertionStatus(String, boolean)
+ * @see #setPackageAssertionStatus(String, boolean)
+ * @since 1.4
+ */
+ public synchronized void clearAssertionStatus()
+ {
+ defaultAssertionStatus = false;
+ packageAssertionStatus = new HashMap();
+ classAssertionStatus = new HashMap();
+ }
+
+ /**
+ * Return true if this loader is either the specified class loader
+ * or an ancestor thereof.
+ * @param loader the class loader to check
+ */
+ final boolean isAncestorOf(ClassLoader loader)
+ {
+ while (loader != null)
+ {
+ if (this == loader)
+ return true;
+ loader = loader.parent;
+ }
+ return false;
+ }
+
+ /**
+ * Before doing anything "dangerous" please call this method to make sure
+ * this class loader instance was properly constructed (and not obtained
+ * by exploiting the finalizer attack)
+ * @see #initialized
+ */
+ private void checkInitialized()
+ {
+ if (! initialized)
+ throw new SecurityException("attempt to use uninitialized class loader");
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/ClassNotFoundException.h b/gcc-4.8/libjava/java/lang/ClassNotFoundException.h
new file mode 100644
index 000000000..365f5a866
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ClassNotFoundException.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ClassNotFoundException__
+#define __java_lang_ClassNotFoundException__
+
+#pragma interface
+
+#include <java/lang/ReflectiveOperationException.h>
+
+class java::lang::ClassNotFoundException : public ::java::lang::ReflectiveOperationException
+{
+
+public:
+ ClassNotFoundException();
+ ClassNotFoundException(::java::lang::String *);
+ ClassNotFoundException(::java::lang::String *, ::java::lang::Throwable *);
+ virtual ::java::lang::Throwable * getException();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = 9176873029745254542LL;
+ ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::ReflectiveOperationException)))) ex;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ClassNotFoundException__
diff --git a/gcc-4.8/libjava/java/lang/CloneNotSupportedException.h b/gcc-4.8/libjava/java/lang/CloneNotSupportedException.h
new file mode 100644
index 000000000..19fa2124a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/CloneNotSupportedException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_CloneNotSupportedException__
+#define __java_lang_CloneNotSupportedException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::lang::CloneNotSupportedException : public ::java::lang::Exception
+{
+
+public:
+ CloneNotSupportedException();
+ CloneNotSupportedException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 5195511250079656443LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_CloneNotSupportedException__
diff --git a/gcc-4.8/libjava/java/lang/Cloneable.h b/gcc-4.8/libjava/java/lang/Cloneable.h
new file mode 100644
index 000000000..ff5db98d0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Cloneable.h
@@ -0,0 +1,18 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Cloneable__
+#define __java_lang_Cloneable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Cloneable : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Cloneable__
diff --git a/gcc-4.8/libjava/java/lang/Comparable.h b/gcc-4.8/libjava/java/lang/Comparable.h
new file mode 100644
index 000000000..b594e2ddc
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Comparable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Comparable__
+#define __java_lang_Comparable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Comparable : public ::java::lang::Object
+{
+
+public:
+ virtual jint compareTo(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Comparable__
diff --git a/gcc-4.8/libjava/java/lang/Compiler.h b/gcc-4.8/libjava/java/lang/Compiler.h
new file mode 100644
index 000000000..e21d90300
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Compiler.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Compiler__
+#define __java_lang_Compiler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Compiler : public ::java::lang::Object
+{
+
+ Compiler();
+public:
+ static jboolean compileClass(::java::lang::Class *);
+ static jboolean compileClasses(::java::lang::String *);
+ static ::java::lang::Object * command(::java::lang::Object *);
+ static void enable();
+ static void disable();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Compiler__
diff --git a/gcc-4.8/libjava/java/lang/Deprecated.h b/gcc-4.8/libjava/java/lang/Deprecated.h
new file mode 100644
index 000000000..6ab34f11a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Deprecated.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Deprecated__
+#define __java_lang_Deprecated__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Deprecated : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Deprecated__
diff --git a/gcc-4.8/libjava/java/lang/Double.h b/gcc-4.8/libjava/java/lang/Double.h
new file mode 100644
index 000000000..54eb42b50
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Double.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Double__
+#define __java_lang_Double__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+
+class java::lang::Double : public ::java::lang::Number
+{
+
+public:
+ Double(jdouble);
+ Double(::java::lang::String *);
+ static ::java::lang::String * toString(jdouble);
+ static ::java::lang::String * toHexString(jdouble);
+ static ::java::lang::Double * valueOf(jdouble);
+ static ::java::lang::Double * valueOf(::java::lang::String *);
+ static jdouble parseDouble(::java::lang::String *);
+ static jboolean isNaN(jdouble);
+ static jboolean isInfinite(jdouble);
+ jboolean isNaN();
+ jboolean isInfinite();
+ ::java::lang::String * toString();
+ jbyte byteValue();
+ jshort shortValue();
+ jint intValue();
+ jlong longValue();
+ jfloat floatValue();
+ jdouble doubleValue();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ static jlong doubleToLongBits(jdouble);
+ static jlong doubleToRawLongBits(jdouble);
+ static jdouble longBitsToDouble(jlong);
+ jint Double$compareTo(::java::lang::Double *);
+ static jint compare(jdouble, jdouble);
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -9172774392245257468LL;
+public:
+ static jdouble MAX_VALUE;
+ static jdouble MIN_VALUE;
+ static jdouble NEGATIVE_INFINITY;
+ static jdouble POSITIVE_INFINITY;
+ static jdouble NaN;
+ static const jint SIZE = 64;
+ static ::java::lang::Class * TYPE;
+private:
+ static ::java::lang::Double * ZERO;
+ static ::java::lang::Double * ONE;
+ jdouble __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Double__
diff --git a/gcc-4.8/libjava/java/lang/EcosProcess.h b/gcc-4.8/libjava/java/lang/EcosProcess.h
new file mode 100644
index 000000000..a0173c30a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/EcosProcess.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_EcosProcess__
+#define __java_lang_EcosProcess__
+
+#pragma interface
+
+#include <java/lang/Process.h>
+#include <gcj/array.h>
+
+
+class java::lang::EcosProcess : public ::java::lang::Process
+{
+
+public:
+ void destroy();
+ jint exitValue();
+ ::java::io::InputStream * getErrorStream();
+ ::java::io::InputStream * getInputStream();
+ ::java::io::OutputStream * getOutputStream();
+ jint waitFor();
+ EcosProcess(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *, jboolean);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_EcosProcess__
diff --git a/gcc-4.8/libjava/java/lang/EcosProcess.java b/gcc-4.8/libjava/java/lang/EcosProcess.java
new file mode 100644
index 000000000..79c2f12a5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/EcosProcess.java
@@ -0,0 +1,60 @@
+// EcosProcess.java - Subclass of Process for eCos systems.
+
+/* Copyright (C) 1998, 1999, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.lang;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.IOException;
+
+/**
+ * @author Tom Tromey <tromey@cygnus.com>
+ * @date May 11, 1999
+ */
+
+// This is entirely internal to our implementation.
+
+final class EcosProcess extends Process
+{
+ // See natEcosProcess.cc to understand why this is native.
+ public native void destroy ();
+
+ public int exitValue ()
+ {
+ return 0;
+ }
+ public InputStream getErrorStream ()
+ {
+ return null;
+ }
+
+ public InputStream getInputStream ()
+ {
+ return null;
+ }
+
+ public OutputStream getOutputStream ()
+ {
+ return null;
+ }
+
+ public int waitFor () throws InterruptedException
+ {
+ return 0;
+ }
+
+ public EcosProcess (String[] progarray, String[] envp, File dir,
+ boolean redirect)
+ throws IOException
+ {
+ throw new IOException ("eCos processes unimplemented");
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/Enum.h b/gcc-4.8/libjava/java/lang/Enum.h
new file mode 100644
index 000000000..15ccb1615
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Enum.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Enum__
+#define __java_lang_Enum__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Enum : public ::java::lang::Object
+{
+
+public: // actually protected
+ Enum(::java::lang::String *, jint);
+public:
+ static ::java::lang::Enum * valueOf(::java::lang::Class *, ::java::lang::String *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ virtual jint Enum$compareTo(::java::lang::Enum *);
+public: // actually protected
+ virtual ::java::lang::Object * clone();
+public:
+ virtual ::java::lang::String * name();
+ virtual jint ordinal();
+ virtual ::java::lang::Class * getDeclaringClass();
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -4300926546619394005LL;
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__;
+ jint ordinal__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Enum__
diff --git a/gcc-4.8/libjava/java/lang/EnumConstantNotPresentException.h b/gcc-4.8/libjava/java/lang/EnumConstantNotPresentException.h
new file mode 100644
index 000000000..b3bc11b28
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/EnumConstantNotPresentException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_EnumConstantNotPresentException__
+#define __java_lang_EnumConstantNotPresentException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::EnumConstantNotPresentException : public ::java::lang::RuntimeException
+{
+
+public:
+ EnumConstantNotPresentException(::java::lang::Class *, ::java::lang::String *);
+ virtual ::java::lang::String * constantName();
+ virtual ::java::lang::Class * enumType();
+private:
+ static const jlong serialVersionUID = -6046998521960521108LL;
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) enumType__;
+ ::java::lang::String * constantName__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_EnumConstantNotPresentException__
diff --git a/gcc-4.8/libjava/java/lang/Error.h b/gcc-4.8/libjava/java/lang/Error.h
new file mode 100644
index 000000000..9cb6019b4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Error.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Error__
+#define __java_lang_Error__
+
+#pragma interface
+
+#include <java/lang/Throwable.h>
+
+class java::lang::Error : public ::java::lang::Throwable
+{
+
+public:
+ Error();
+ Error(::java::lang::String *);
+ Error(::java::lang::String *, ::java::lang::Throwable *);
+ Error(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 4980196508277280342LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Error__
diff --git a/gcc-4.8/libjava/java/lang/Exception.h b/gcc-4.8/libjava/java/lang/Exception.h
new file mode 100644
index 000000000..9f3ab43a5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Exception.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Exception__
+#define __java_lang_Exception__
+
+#pragma interface
+
+#include <java/lang/Throwable.h>
+
+class java::lang::Exception : public ::java::lang::Throwable
+{
+
+public:
+ Exception();
+ Exception(::java::lang::String *);
+ Exception(::java::lang::String *, ::java::lang::Throwable *);
+ Exception(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -3387516993124229948LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Exception__
diff --git a/gcc-4.8/libjava/java/lang/ExceptionInInitializerError.h b/gcc-4.8/libjava/java/lang/ExceptionInInitializerError.h
new file mode 100644
index 000000000..89fbaee7c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ExceptionInInitializerError.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ExceptionInInitializerError__
+#define __java_lang_ExceptionInInitializerError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::ExceptionInInitializerError : public ::java::lang::LinkageError
+{
+
+public:
+ ExceptionInInitializerError();
+ ExceptionInInitializerError(::java::lang::String *);
+ ExceptionInInitializerError(::java::lang::Throwable *);
+ virtual ::java::lang::Throwable * getException();
+ virtual ::java::lang::Throwable * getCause();
+public: // actually package-private
+ static const jlong serialVersionUID = 1521711792217232256LL;
+private:
+ ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::LinkageError)))) exception;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ExceptionInInitializerError__
diff --git a/gcc-4.8/libjava/java/lang/Float.h b/gcc-4.8/libjava/java/lang/Float.h
new file mode 100644
index 000000000..603da6dd1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Float.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Float__
+#define __java_lang_Float__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+
+class java::lang::Float : public ::java::lang::Number
+{
+
+public:
+ Float(jfloat);
+ Float(jdouble);
+ Float(::java::lang::String *);
+ static ::java::lang::String * toString(jfloat);
+ static ::java::lang::String * toHexString(jfloat);
+ static ::java::lang::Float * valueOf(::java::lang::String *);
+ static ::java::lang::Float * valueOf(jfloat);
+ static jfloat parseFloat(::java::lang::String *);
+ static jboolean isNaN(jfloat);
+ static jboolean isInfinite(jfloat);
+ jboolean isNaN();
+ jboolean isInfinite();
+ ::java::lang::String * toString();
+ jbyte byteValue();
+ jshort shortValue();
+ jint intValue();
+ jlong longValue();
+ jfloat floatValue();
+ jdouble doubleValue();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ static jint floatToIntBits(jfloat);
+ static jint floatToRawIntBits(jfloat);
+ static jfloat intBitsToFloat(jint);
+ jint Float$compareTo(::java::lang::Float *);
+ static jint compare(jfloat, jfloat);
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -2671257302660747028LL;
+public:
+ static jfloat MAX_VALUE;
+ static jfloat MIN_VALUE;
+ static jfloat NEGATIVE_INFINITY;
+ static jfloat POSITIVE_INFINITY;
+ static jfloat NaN;
+ static ::java::lang::Class * TYPE;
+ static const jint SIZE = 32;
+private:
+ static ::java::lang::Float * ZERO;
+ static ::java::lang::Float * ONE;
+ jfloat __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Float__
diff --git a/gcc-4.8/libjava/java/lang/IllegalAccessError.h b/gcc-4.8/libjava/java/lang/IllegalAccessError.h
new file mode 100644
index 000000000..12b8747c4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IllegalAccessError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IllegalAccessError__
+#define __java_lang_IllegalAccessError__
+
+#pragma interface
+
+#include <java/lang/IncompatibleClassChangeError.h>
+
+class java::lang::IllegalAccessError : public ::java::lang::IncompatibleClassChangeError
+{
+
+public:
+ IllegalAccessError();
+ IllegalAccessError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8988904074992417891LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IllegalAccessError__
diff --git a/gcc-4.8/libjava/java/lang/IllegalAccessException.h b/gcc-4.8/libjava/java/lang/IllegalAccessException.h
new file mode 100644
index 000000000..a01967bfe
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IllegalAccessException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IllegalAccessException__
+#define __java_lang_IllegalAccessException__
+
+#pragma interface
+
+#include <java/lang/ReflectiveOperationException.h>
+
+class java::lang::IllegalAccessException : public ::java::lang::ReflectiveOperationException
+{
+
+public:
+ IllegalAccessException();
+ IllegalAccessException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 6616958222490762034LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IllegalAccessException__
diff --git a/gcc-4.8/libjava/java/lang/IllegalArgumentException.h b/gcc-4.8/libjava/java/lang/IllegalArgumentException.h
new file mode 100644
index 000000000..187e430c1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IllegalArgumentException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IllegalArgumentException__
+#define __java_lang_IllegalArgumentException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::IllegalArgumentException : public ::java::lang::RuntimeException
+{
+
+public:
+ IllegalArgumentException();
+ IllegalArgumentException(::java::lang::String *);
+ IllegalArgumentException(::java::lang::String *, ::java::lang::Throwable *);
+ IllegalArgumentException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -5365630128856068164LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IllegalArgumentException__
diff --git a/gcc-4.8/libjava/java/lang/IllegalMonitorStateException.h b/gcc-4.8/libjava/java/lang/IllegalMonitorStateException.h
new file mode 100644
index 000000000..ad9cb5902
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IllegalMonitorStateException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IllegalMonitorStateException__
+#define __java_lang_IllegalMonitorStateException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::IllegalMonitorStateException : public ::java::lang::RuntimeException
+{
+
+public:
+ IllegalMonitorStateException();
+ IllegalMonitorStateException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 3713306369498869069LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IllegalMonitorStateException__
diff --git a/gcc-4.8/libjava/java/lang/IllegalStateException.h b/gcc-4.8/libjava/java/lang/IllegalStateException.h
new file mode 100644
index 000000000..e79bced81
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IllegalStateException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IllegalStateException__
+#define __java_lang_IllegalStateException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::IllegalStateException : public ::java::lang::RuntimeException
+{
+
+public:
+ IllegalStateException();
+ IllegalStateException(::java::lang::String *);
+ IllegalStateException(::java::lang::String *, ::java::lang::Throwable *);
+ IllegalStateException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -1848914673093119416LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IllegalStateException__
diff --git a/gcc-4.8/libjava/java/lang/IllegalThreadStateException.h b/gcc-4.8/libjava/java/lang/IllegalThreadStateException.h
new file mode 100644
index 000000000..066eb92cd
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IllegalThreadStateException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IllegalThreadStateException__
+#define __java_lang_IllegalThreadStateException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+
+class java::lang::IllegalThreadStateException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ IllegalThreadStateException();
+ IllegalThreadStateException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -7626246362397460174LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IllegalThreadStateException__
diff --git a/gcc-4.8/libjava/java/lang/IncompatibleClassChangeError.h b/gcc-4.8/libjava/java/lang/IncompatibleClassChangeError.h
new file mode 100644
index 000000000..ca4099194
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IncompatibleClassChangeError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IncompatibleClassChangeError__
+#define __java_lang_IncompatibleClassChangeError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::IncompatibleClassChangeError : public ::java::lang::LinkageError
+{
+
+public:
+ IncompatibleClassChangeError();
+ IncompatibleClassChangeError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4914975503642802119LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IncompatibleClassChangeError__
diff --git a/gcc-4.8/libjava/java/lang/IndexOutOfBoundsException.h b/gcc-4.8/libjava/java/lang/IndexOutOfBoundsException.h
new file mode 100644
index 000000000..4cd4184a7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/IndexOutOfBoundsException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_IndexOutOfBoundsException__
+#define __java_lang_IndexOutOfBoundsException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::IndexOutOfBoundsException : public ::java::lang::RuntimeException
+{
+
+public:
+ IndexOutOfBoundsException();
+ IndexOutOfBoundsException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 234122996006267687LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_IndexOutOfBoundsException__
diff --git a/gcc-4.8/libjava/java/lang/InheritableThreadLocal.h b/gcc-4.8/libjava/java/lang/InheritableThreadLocal.h
new file mode 100644
index 000000000..9caf6f3df
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/InheritableThreadLocal.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_InheritableThreadLocal__
+#define __java_lang_InheritableThreadLocal__
+
+#pragma interface
+
+#include <java/lang/ThreadLocal.h>
+
+class java::lang::InheritableThreadLocal : public ::java::lang::ThreadLocal
+{
+
+public:
+ InheritableThreadLocal();
+public: // actually protected
+ virtual ::java::lang::Object * childValue(::java::lang::Object *);
+public: // actually package-private
+ static void newChildThread(::java::lang::Thread *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_InheritableThreadLocal__
diff --git a/gcc-4.8/libjava/java/lang/InstantiationError.h b/gcc-4.8/libjava/java/lang/InstantiationError.h
new file mode 100644
index 000000000..4b817d2b3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/InstantiationError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_InstantiationError__
+#define __java_lang_InstantiationError__
+
+#pragma interface
+
+#include <java/lang/IncompatibleClassChangeError.h>
+
+class java::lang::InstantiationError : public ::java::lang::IncompatibleClassChangeError
+{
+
+public:
+ InstantiationError();
+ InstantiationError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4885810657349421204LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_InstantiationError__
diff --git a/gcc-4.8/libjava/java/lang/InstantiationException.h b/gcc-4.8/libjava/java/lang/InstantiationException.h
new file mode 100644
index 000000000..72df77f9f
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/InstantiationException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_InstantiationException__
+#define __java_lang_InstantiationException__
+
+#pragma interface
+
+#include <java/lang/ReflectiveOperationException.h>
+
+class java::lang::InstantiationException : public ::java::lang::ReflectiveOperationException
+{
+
+public:
+ InstantiationException();
+ InstantiationException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8441929162975509110LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_InstantiationException__
diff --git a/gcc-4.8/libjava/java/lang/Integer.h b/gcc-4.8/libjava/java/lang/Integer.h
new file mode 100644
index 000000000..95624e432
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Integer.h
@@ -0,0 +1,78 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Integer__
+#define __java_lang_Integer__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+#include <gcj/array.h>
+
+
+class java::lang::Integer : public ::java::lang::Number
+{
+
+public:
+ Integer(jint);
+ Integer(::java::lang::String *);
+private:
+ static jint stringSize(jint, jint);
+public:
+ static ::java::lang::String * toString(jint, jint);
+ static ::java::lang::String * toHexString(jint);
+ static ::java::lang::String * toOctalString(jint);
+ static ::java::lang::String * toBinaryString(jint);
+ static ::java::lang::String * toString(jint);
+ static jint parseInt(::java::lang::String *, jint);
+ static jint parseInt(::java::lang::String *);
+ static ::java::lang::Integer * valueOf(::java::lang::String *, jint);
+ static ::java::lang::Integer * valueOf(::java::lang::String *);
+ static ::java::lang::Integer * valueOf(jint);
+ jbyte byteValue();
+ jshort shortValue();
+ jint intValue();
+ jlong longValue();
+ jfloat floatValue();
+ jdouble doubleValue();
+ ::java::lang::String * toString();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ static ::java::lang::Integer * getInteger(::java::lang::String *);
+ static ::java::lang::Integer * getInteger(::java::lang::String *, jint);
+ static ::java::lang::Integer * getInteger(::java::lang::String *, ::java::lang::Integer *);
+ static ::java::lang::Integer * decode(::java::lang::String *);
+ jint Integer$compareTo(::java::lang::Integer *);
+ static jint compare(jint, jint);
+ static jint bitCount(jint);
+ static jint rotateLeft(jint, jint);
+ static jint rotateRight(jint, jint);
+ static jint highestOneBit(jint);
+ static jint numberOfLeadingZeros(jint);
+ static jint lowestOneBit(jint);
+ static jint numberOfTrailingZeros(jint);
+ static jint signum(jint);
+ static jint reverseBytes(jint);
+ static jint reverse(jint);
+public: // actually package-private
+ static ::java::lang::String * toUnsignedString(jint, jint);
+ static jint parseInt(::java::lang::String *, jint, jboolean);
+public:
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 1360826667806852920LL;
+public:
+ static const jint MIN_VALUE = -2147483647 - 1;
+ static const jint MAX_VALUE = 2147483647;
+ static ::java::lang::Class * TYPE;
+ static const jint SIZE = 32;
+private:
+ static const jint MIN_CACHE = -128;
+ static const jint MAX_CACHE = 127;
+ static JArray< ::java::lang::Integer * > * intCache;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Integer__
diff --git a/gcc-4.8/libjava/java/lang/InternalError.h b/gcc-4.8/libjava/java/lang/InternalError.h
new file mode 100644
index 000000000..b0477bbe6
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/InternalError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_InternalError__
+#define __java_lang_InternalError__
+
+#pragma interface
+
+#include <java/lang/VirtualMachineError.h>
+
+class java::lang::InternalError : public ::java::lang::VirtualMachineError
+{
+
+public:
+ InternalError();
+ InternalError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -9062593416125562365LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_InternalError__
diff --git a/gcc-4.8/libjava/java/lang/InterruptedException.h b/gcc-4.8/libjava/java/lang/InterruptedException.h
new file mode 100644
index 000000000..c452de6b5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/InterruptedException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_InterruptedException__
+#define __java_lang_InterruptedException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::lang::InterruptedException : public ::java::lang::Exception
+{
+
+public:
+ InterruptedException();
+ InterruptedException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 6700697376100628473LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_InterruptedException__
diff --git a/gcc-4.8/libjava/java/lang/Iterable.h b/gcc-4.8/libjava/java/lang/Iterable.h
new file mode 100644
index 000000000..3bdb2543b
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Iterable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Iterable__
+#define __java_lang_Iterable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Iterable : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Iterator * iterator() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Iterable__
diff --git a/gcc-4.8/libjava/java/lang/LinkageError.h b/gcc-4.8/libjava/java/lang/LinkageError.h
new file mode 100644
index 000000000..ed632b35c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/LinkageError.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_LinkageError__
+#define __java_lang_LinkageError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::lang::LinkageError : public ::java::lang::Error
+{
+
+public:
+ LinkageError();
+ LinkageError(::java::lang::String *);
+ LinkageError(::java::lang::String *, ::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 3579600108157160122LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_LinkageError__
diff --git a/gcc-4.8/libjava/java/lang/Long.h b/gcc-4.8/libjava/java/lang/Long.h
new file mode 100644
index 000000000..ae5c2640c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Long.h
@@ -0,0 +1,78 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Long__
+#define __java_lang_Long__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+#include <gcj/array.h>
+
+
+class java::lang::Long : public ::java::lang::Number
+{
+
+public:
+ Long(jlong);
+ Long(::java::lang::String *);
+private:
+ static jint stringSize(jlong, jint);
+public:
+ static ::java::lang::String * toString(jlong, jint);
+ static ::java::lang::String * toHexString(jlong);
+ static ::java::lang::String * toOctalString(jlong);
+ static ::java::lang::String * toBinaryString(jlong);
+ static ::java::lang::String * toString(jlong);
+ static jlong parseLong(::java::lang::String *, jint);
+ static jlong parseLong(::java::lang::String *);
+ static ::java::lang::Long * valueOf(::java::lang::String *, jint);
+ static ::java::lang::Long * valueOf(::java::lang::String *);
+ static ::java::lang::Long * valueOf(jlong);
+ static ::java::lang::Long * decode(::java::lang::String *);
+ jbyte byteValue();
+ jshort shortValue();
+ jint intValue();
+ jlong longValue();
+ jfloat floatValue();
+ jdouble doubleValue();
+ ::java::lang::String * toString();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ static ::java::lang::Long * getLong(::java::lang::String *);
+ static ::java::lang::Long * getLong(::java::lang::String *, jlong);
+ static ::java::lang::Long * getLong(::java::lang::String *, ::java::lang::Long *);
+ jint Long$compareTo(::java::lang::Long *);
+ static jint compare(jlong, jlong);
+ static jint bitCount(jlong);
+ static jlong rotateLeft(jlong, jint);
+ static jlong rotateRight(jlong, jint);
+ static jlong highestOneBit(jlong);
+ static jint numberOfLeadingZeros(jlong);
+ static jlong lowestOneBit(jlong);
+ static jint numberOfTrailingZeros(jlong);
+ static jint signum(jlong);
+ static jlong reverseBytes(jlong);
+ static jlong reverse(jlong);
+private:
+ static ::java::lang::String * toUnsignedString(jlong, jint);
+ static jlong parseLong(::java::lang::String *, jint, jboolean);
+public:
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 4290774380558885855LL;
+public:
+ static const jlong MIN_VALUE = -9223372036854775807LL - 1;
+ static const jlong MAX_VALUE = 9223372036854775807LL;
+ static ::java::lang::Class * TYPE;
+ static const jint SIZE = 64;
+private:
+ static const jint MIN_CACHE = -128;
+ static const jint MAX_CACHE = 127;
+ static JArray< ::java::lang::Long * > * longCache;
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Long__
diff --git a/gcc-4.8/libjava/java/lang/Math.h b/gcc-4.8/libjava/java/lang/Math.h
new file mode 100644
index 000000000..32707e9f8
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Math.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Math__
+#define __java_lang_Math__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Math : public ::java::lang::Object
+{
+
+ Math();
+public:
+ static jint abs(jint);
+ static jlong abs(jlong);
+ static jfloat abs(jfloat);
+ static jdouble abs(jdouble);
+ static jint min(jint, jint);
+ static jlong min(jlong, jlong);
+ static jfloat min(jfloat, jfloat);
+ static jdouble min(jdouble, jdouble);
+ static jint max(jint, jint);
+ static jlong max(jlong, jlong);
+ static jfloat max(jfloat, jfloat);
+ static jdouble max(jdouble, jdouble);
+ static jdouble sin(jdouble);
+ static jdouble cos(jdouble);
+ static jdouble tan(jdouble);
+ static jdouble asin(jdouble);
+ static jdouble acos(jdouble);
+ static jdouble atan(jdouble);
+ static jdouble atan2(jdouble, jdouble);
+ static jdouble exp(jdouble);
+ static jdouble log(jdouble);
+ static jdouble sqrt(jdouble);
+ static jdouble pow(jdouble, jdouble);
+ static jdouble IEEEremainder(jdouble, jdouble);
+ static jdouble ceil(jdouble);
+ static jdouble floor(jdouble);
+ static jdouble rint(jdouble);
+ static jint round(jfloat);
+ static jlong round(jdouble);
+ static jdouble random();
+ static jdouble toRadians(jdouble);
+ static jdouble toDegrees(jdouble);
+ static jdouble cbrt(jdouble);
+ static jdouble cosh(jdouble);
+ static jdouble expm1(jdouble);
+ static jdouble hypot(jdouble, jdouble);
+ static jdouble log10(jdouble);
+ static jdouble log1p(jdouble);
+ static jdouble signum(jdouble);
+ static jfloat signum(jfloat);
+ static jdouble sinh(jdouble);
+ static jdouble tanh(jdouble);
+ static jdouble ulp(jdouble);
+ static jfloat ulp(jfloat);
+private:
+ static ::java::util::Random * rand;
+public:
+ static jdouble E;
+ static jdouble PI;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Math__
diff --git a/gcc-4.8/libjava/java/lang/Math.java b/gcc-4.8/libjava/java/lang/Math.java
new file mode 100644
index 000000000..836b8bd86
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Math.java
@@ -0,0 +1,973 @@
+/* java.lang.Math -- common mathematical functions, native allowed
+ Copyright (C) 1998, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang;
+
+import gnu.classpath.Configuration;
+
+import java.util.Random;
+
+/**
+ * Helper class containing useful mathematical functions and constants.
+ * <P>
+ *
+ * Note that angles are specified in radians. Conversion functions are
+ * provided for your convenience.
+ *
+ * @author Paul Fisher
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @since 1.0
+ */
+public final class Math
+{
+ /**
+ * Math is non-instantiable
+ */
+ private Math()
+ {
+ }
+
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary("javalang");
+ }
+ }
+
+ /**
+ * A random number generator, initialized on first use.
+ */
+ private static Random rand;
+
+ /**
+ * The most accurate approximation to the mathematical constant <em>e</em>:
+ * <code>2.718281828459045</code>. Used in natural log and exp.
+ *
+ * @see #log(double)
+ * @see #exp(double)
+ */
+ public static final double E = 2.718281828459045;
+
+ /**
+ * The most accurate approximation to the mathematical constant <em>pi</em>:
+ * <code>3.141592653589793</code>. This is the ratio of a circle's diameter
+ * to its circumference.
+ */
+ public static final double PI = 3.141592653589793;
+
+ /**
+ * Take the absolute value of the argument.
+ * (Absolute value means make it positive.)
+ * <P>
+ *
+ * Note that the the largest negative value (Integer.MIN_VALUE) cannot
+ * be made positive. In this case, because of the rules of negation in
+ * a computer, MIN_VALUE is what will be returned.
+ * This is a <em>negative</em> value. You have been warned.
+ *
+ * @param i the number to take the absolute value of
+ * @return the absolute value
+ * @see Integer#MIN_VALUE
+ */
+ public static int abs(int i)
+ {
+ return (i < 0) ? -i : i;
+ }
+
+ /**
+ * Take the absolute value of the argument.
+ * (Absolute value means make it positive.)
+ * <P>
+ *
+ * Note that the the largest negative value (Long.MIN_VALUE) cannot
+ * be made positive. In this case, because of the rules of negation in
+ * a computer, MIN_VALUE is what will be returned.
+ * This is a <em>negative</em> value. You have been warned.
+ *
+ * @param l the number to take the absolute value of
+ * @return the absolute value
+ * @see Long#MIN_VALUE
+ */
+ public static long abs(long l)
+ {
+ return (l < 0) ? -l : l;
+ }
+
+ /**
+ * Take the absolute value of the argument.
+ * (Absolute value means make it positive.)
+ * <P>
+ *
+ * This is equivalent, but faster than, calling
+ * <code>Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))</code>.
+ *
+ * @param f the number to take the absolute value of
+ * @return the absolute value
+ */
+ public static float abs(float f)
+ {
+ return (f <= 0) ? 0 - f : f;
+ }
+
+ /**
+ * Take the absolute value of the argument.
+ * (Absolute value means make it positive.)
+ *
+ * This is equivalent, but faster than, calling
+ * <code>Double.longBitsToDouble(Double.doubleToLongBits(a)
+ * &lt;&lt; 1) &gt;&gt;&gt; 1);</code>.
+ *
+ * @param d the number to take the absolute value of
+ * @return the absolute value
+ */
+ public static double abs(double d)
+ {
+ return (d <= 0) ? 0 - d : d;
+ }
+
+ /**
+ * Return whichever argument is smaller.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the smaller of the two numbers
+ */
+ public static int min(int a, int b)
+ {
+ return (a < b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is smaller.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the smaller of the two numbers
+ */
+ public static long min(long a, long b)
+ {
+ return (a < b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is smaller. If either argument is NaN, the
+ * result is NaN, and when comparing 0 and -0, -0 is always smaller.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the smaller of the two numbers
+ */
+ public static float min(float a, float b)
+ {
+ // this check for NaN, from JLS 15.21.1, saves a method call
+ if (a != a)
+ return a;
+ // no need to check if b is NaN; < will work correctly
+ // recall that -0.0 == 0.0, but [+-]0.0 - [+-]0.0 behaves special
+ if (a == 0 && b == 0)
+ return -(-a - b);
+ return (a < b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is smaller. If either argument is NaN, the
+ * result is NaN, and when comparing 0 and -0, -0 is always smaller.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the smaller of the two numbers
+ */
+ public static double min(double a, double b)
+ {
+ // this check for NaN, from JLS 15.21.1, saves a method call
+ if (a != a)
+ return a;
+ // no need to check if b is NaN; < will work correctly
+ // recall that -0.0 == 0.0, but [+-]0.0 - [+-]0.0 behaves special
+ if (a == 0 && b == 0)
+ return -(-a - b);
+ return (a < b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is larger.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the larger of the two numbers
+ */
+ public static int max(int a, int b)
+ {
+ return (a > b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is larger.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the larger of the two numbers
+ */
+ public static long max(long a, long b)
+ {
+ return (a > b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is larger. If either argument is NaN, the
+ * result is NaN, and when comparing 0 and -0, 0 is always larger.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the larger of the two numbers
+ */
+ public static float max(float a, float b)
+ {
+ // this check for NaN, from JLS 15.21.1, saves a method call
+ if (a != a)
+ return a;
+ // no need to check if b is NaN; > will work correctly
+ // recall that -0.0 == 0.0, but [+-]0.0 - [+-]0.0 behaves special
+ if (a == 0 && b == 0)
+ return a - -b;
+ return (a > b) ? a : b;
+ }
+
+ /**
+ * Return whichever argument is larger. If either argument is NaN, the
+ * result is NaN, and when comparing 0 and -0, 0 is always larger.
+ *
+ * @param a the first number
+ * @param b a second number
+ * @return the larger of the two numbers
+ */
+ public static double max(double a, double b)
+ {
+ // this check for NaN, from JLS 15.21.1, saves a method call
+ if (a != a)
+ return a;
+ // no need to check if b is NaN; > will work correctly
+ // recall that -0.0 == 0.0, but [+-]0.0 - [+-]0.0 behaves special
+ if (a == 0 && b == 0)
+ return a - -b;
+ return (a > b) ? a : b;
+ }
+
+ /**
+ * The trigonometric function <em>sin</em>. The sine of NaN or infinity is
+ * NaN, and the sine of 0 retains its sign. This is accurate within 1 ulp,
+ * and is semi-monotonic.
+ *
+ * @param a the angle (in radians)
+ * @return sin(a)
+ */
+ public static native double sin(double a);
+
+ /**
+ * The trigonometric function <em>cos</em>. The cosine of NaN or infinity is
+ * NaN. This is accurate within 1 ulp, and is semi-monotonic.
+ *
+ * @param a the angle (in radians)
+ * @return cos(a)
+ */
+ public static native double cos(double a);
+
+ /**
+ * The trigonometric function <em>tan</em>. The tangent of NaN or infinity
+ * is NaN, and the tangent of 0 retains its sign. This is accurate within 1
+ * ulp, and is semi-monotonic.
+ *
+ * @param a the angle (in radians)
+ * @return tan(a)
+ */
+ public static native double tan(double a);
+
+ /**
+ * The trigonometric function <em>arcsin</em>. The range of angles returned
+ * is -pi/2 to pi/2 radians (-90 to 90 degrees). If the argument is NaN or
+ * its absolute value is beyond 1, the result is NaN; and the arcsine of
+ * 0 retains its sign. This is accurate within 1 ulp, and is semi-monotonic.
+ *
+ * @param a the sin to turn back into an angle
+ * @return arcsin(a)
+ */
+ public static native double asin(double a);
+
+ /**
+ * The trigonometric function <em>arccos</em>. The range of angles returned
+ * is 0 to pi radians (0 to 180 degrees). If the argument is NaN or
+ * its absolute value is beyond 1, the result is NaN. This is accurate
+ * within 1 ulp, and is semi-monotonic.
+ *
+ * @param a the cos to turn back into an angle
+ * @return arccos(a)
+ */
+ public static native double acos(double a);
+
+ /**
+ * The trigonometric function <em>arcsin</em>. The range of angles returned
+ * is -pi/2 to pi/2 radians (-90 to 90 degrees). If the argument is NaN, the
+ * result is NaN; and the arctangent of 0 retains its sign. This is accurate
+ * within 1 ulp, and is semi-monotonic.
+ *
+ * @param a the tan to turn back into an angle
+ * @return arcsin(a)
+ * @see #atan2(double, double)
+ */
+ public static native double atan(double a);
+
+ /**
+ * A special version of the trigonometric function <em>arctan</em>, for
+ * converting rectangular coordinates <em>(x, y)</em> to polar
+ * <em>(r, theta)</em>. This computes the arctangent of x/y in the range
+ * of -pi to pi radians (-180 to 180 degrees). Special cases:<ul>
+ * <li>If either argument is NaN, the result is NaN.</li>
+ * <li>If the first argument is positive zero and the second argument is
+ * positive, or the first argument is positive and finite and the second
+ * argument is positive infinity, then the result is positive zero.</li>
+ * <li>If the first argument is negative zero and the second argument is
+ * positive, or the first argument is negative and finite and the second
+ * argument is positive infinity, then the result is negative zero.</li>
+ * <li>If the first argument is positive zero and the second argument is
+ * negative, or the first argument is positive and finite and the second
+ * argument is negative infinity, then the result is the double value
+ * closest to pi.</li>
+ * <li>If the first argument is negative zero and the second argument is
+ * negative, or the first argument is negative and finite and the second
+ * argument is negative infinity, then the result is the double value
+ * closest to -pi.</li>
+ * <li>If the first argument is positive and the second argument is
+ * positive zero or negative zero, or the first argument is positive
+ * infinity and the second argument is finite, then the result is the
+ * double value closest to pi/2.</li>
+ * <li>If the first argument is negative and the second argument is
+ * positive zero or negative zero, or the first argument is negative
+ * infinity and the second argument is finite, then the result is the
+ * double value closest to -pi/2.</li>
+ * <li>If both arguments are positive infinity, then the result is the
+ * double value closest to pi/4.</li>
+ * <li>If the first argument is positive infinity and the second argument
+ * is negative infinity, then the result is the double value closest to
+ * 3*pi/4.</li>
+ * <li>If the first argument is negative infinity and the second argument
+ * is positive infinity, then the result is the double value closest to
+ * -pi/4.</li>
+ * <li>If both arguments are negative infinity, then the result is the
+ * double value closest to -3*pi/4.</li>
+ *
+ * </ul><p>This is accurate within 2 ulps, and is semi-monotonic. To get r,
+ * use sqrt(x*x+y*y).
+ *
+ * @param y the y position
+ * @param x the x position
+ * @return <em>theta</em> in the conversion of (x, y) to (r, theta)
+ * @see #atan(double)
+ */
+ public static native double atan2(double y, double x);
+
+ /**
+ * Take <em>e</em><sup>a</sup>. The opposite of <code>log()</code>. If the
+ * argument is NaN, the result is NaN; if the argument is positive infinity,
+ * the result is positive infinity; and if the argument is negative
+ * infinity, the result is positive zero. This is accurate within 1 ulp,
+ * and is semi-monotonic.
+ *
+ * @param a the number to raise to the power
+ * @return the number raised to the power of <em>e</em>
+ * @see #log(double)
+ * @see #pow(double, double)
+ */
+ public static native double exp(double a);
+
+ /**
+ * Take ln(a) (the natural log). The opposite of <code>exp()</code>. If the
+ * argument is NaN or negative, the result is NaN; if the argument is
+ * positive infinity, the result is positive infinity; and if the argument
+ * is either zero, the result is negative infinity. This is accurate within
+ * 1 ulp, and is semi-monotonic.
+ *
+ * <p>Note that the way to get log<sub>b</sub>(a) is to do this:
+ * <code>ln(a) / ln(b)</code>.
+ *
+ * @param a the number to take the natural log of
+ * @return the natural log of <code>a</code>
+ * @see #exp(double)
+ */
+ public static native double log(double a);
+
+ /**
+ * Take a square root. If the argument is NaN or negative, the result is
+ * NaN; if the argument is positive infinity, the result is positive
+ * infinity; and if the result is either zero, the result is the same.
+ * This is accurate within the limits of doubles.
+ *
+ * <p>For other roots, use pow(a, 1 / rootNumber).
+ *
+ * @param a the numeric argument
+ * @return the square root of the argument
+ * @see #pow(double, double)
+ */
+ public static native double sqrt(double a);
+
+ /**
+ * Raise a number to a power. Special cases:<ul>
+ * <li>If the second argument is positive or negative zero, then the result
+ * is 1.0.</li>
+ * <li>If the second argument is 1.0, then the result is the same as the
+ * first argument.</li>
+ * <li>If the second argument is NaN, then the result is NaN.</li>
+ * <li>If the first argument is NaN and the second argument is nonzero,
+ * then the result is NaN.</li>
+ * <li>If the absolute value of the first argument is greater than 1 and
+ * the second argument is positive infinity, or the absolute value of the
+ * first argument is less than 1 and the second argument is negative
+ * infinity, then the result is positive infinity.</li>
+ * <li>If the absolute value of the first argument is greater than 1 and
+ * the second argument is negative infinity, or the absolute value of the
+ * first argument is less than 1 and the second argument is positive
+ * infinity, then the result is positive zero.</li>
+ * <li>If the absolute value of the first argument equals 1 and the second
+ * argument is infinite, then the result is NaN.</li>
+ * <li>If the first argument is positive zero and the second argument is
+ * greater than zero, or the first argument is positive infinity and the
+ * second argument is less than zero, then the result is positive zero.</li>
+ * <li>If the first argument is positive zero and the second argument is
+ * less than zero, or the first argument is positive infinity and the
+ * second argument is greater than zero, then the result is positive
+ * infinity.</li>
+ * <li>If the first argument is negative zero and the second argument is
+ * greater than zero but not a finite odd integer, or the first argument is
+ * negative infinity and the second argument is less than zero but not a
+ * finite odd integer, then the result is positive zero.</li>
+ * <li>If the first argument is negative zero and the second argument is a
+ * positive finite odd integer, or the first argument is negative infinity
+ * and the second argument is a negative finite odd integer, then the result
+ * is negative zero.</li>
+ * <li>If the first argument is negative zero and the second argument is
+ * less than zero but not a finite odd integer, or the first argument is
+ * negative infinity and the second argument is greater than zero but not a
+ * finite odd integer, then the result is positive infinity.</li>
+ * <li>If the first argument is negative zero and the second argument is a
+ * negative finite odd integer, or the first argument is negative infinity
+ * and the second argument is a positive finite odd integer, then the result
+ * is negative infinity.</li>
+ * <li>If the first argument is less than zero and the second argument is a
+ * finite even integer, then the result is equal to the result of raising
+ * the absolute value of the first argument to the power of the second
+ * argument.</li>
+ * <li>If the first argument is less than zero and the second argument is a
+ * finite odd integer, then the result is equal to the negative of the
+ * result of raising the absolute value of the first argument to the power
+ * of the second argument.</li>
+ * <li>If the first argument is finite and less than zero and the second
+ * argument is finite and not an integer, then the result is NaN.</li>
+ * <li>If both arguments are integers, then the result is exactly equal to
+ * the mathematical result of raising the first argument to the power of
+ * the second argument if that result can in fact be represented exactly as
+ * a double value.</li>
+ *
+ * </ul><p>(In the foregoing descriptions, a floating-point value is
+ * considered to be an integer if and only if it is a fixed point of the
+ * method {@link #ceil(double)} or, equivalently, a fixed point of the
+ * method {@link #floor(double)}. A value is a fixed point of a one-argument
+ * method if and only if the result of applying the method to the value is
+ * equal to the value.) This is accurate within 1 ulp, and is semi-monotonic.
+ *
+ * @param a the number to raise
+ * @param b the power to raise it to
+ * @return a<sup>b</sup>
+ */
+ public static native double pow(double a, double b);
+
+ /**
+ * Get the IEEE 754 floating point remainder on two numbers. This is the
+ * value of <code>x - y * <em>n</em></code>, where <em>n</em> is the closest
+ * double to <code>x / y</code> (ties go to the even n); for a zero
+ * remainder, the sign is that of <code>x</code>. If either argument is NaN,
+ * the first argument is infinite, or the second argument is zero, the result
+ * is NaN; if x is finite but y is infinite, the result is x. This is
+ * accurate within the limits of doubles.
+ *
+ * @param x the dividend (the top half)
+ * @param y the divisor (the bottom half)
+ * @return the IEEE 754-defined floating point remainder of x/y
+ * @see #rint(double)
+ */
+ public static native double IEEEremainder(double x, double y);
+
+ /**
+ * Take the nearest integer that is that is greater than or equal to the
+ * argument. If the argument is NaN, infinite, or zero, the result is the
+ * same; if the argument is between -1 and 0, the result is negative zero.
+ * Note that <code>Math.ceil(x) == -Math.floor(-x)</code>.
+ *
+ * @param a the value to act upon
+ * @return the nearest integer &gt;= <code>a</code>
+ */
+ public static native double ceil(double a);
+
+ /**
+ * Take the nearest integer that is that is less than or equal to the
+ * argument. If the argument is NaN, infinite, or zero, the result is the
+ * same. Note that <code>Math.ceil(x) == -Math.floor(-x)</code>.
+ *
+ * @param a the value to act upon
+ * @return the nearest integer &lt;= <code>a</code>
+ */
+ public static native double floor(double a);
+
+ /**
+ * Take the nearest integer to the argument. If it is exactly between
+ * two integers, the even integer is taken. If the argument is NaN,
+ * infinite, or zero, the result is the same.
+ *
+ * @param a the value to act upon
+ * @return the nearest integer to <code>a</code>
+ */
+ public static native double rint(double a);
+
+ /**
+ * Take the nearest integer to the argument. This is equivalent to
+ * <code>(int) Math.floor(a + 0.5f)</code>. If the argument is NaN, the result
+ * is 0; otherwise if the argument is outside the range of int, the result
+ * will be Integer.MIN_VALUE or Integer.MAX_VALUE, as appropriate.
+ *
+ * @param a the argument to round
+ * @return the nearest integer to the argument
+ * @see Integer#MIN_VALUE
+ * @see Integer#MAX_VALUE
+ */
+ public static int round(float a)
+ {
+ // this check for NaN, from JLS 15.21.1, saves a method call
+ if (a != a)
+ return 0;
+ return (int) floor(a + 0.5f);
+ }
+
+ /**
+ * Take the nearest long to the argument. This is equivalent to
+ * <code>(long) Math.floor(a + 0.5)</code>. If the argument is NaN, the
+ * result is 0; otherwise if the argument is outside the range of long, the
+ * result will be Long.MIN_VALUE or Long.MAX_VALUE, as appropriate.
+ *
+ * @param a the argument to round
+ * @return the nearest long to the argument
+ * @see Long#MIN_VALUE
+ * @see Long#MAX_VALUE
+ */
+ public static long round(double a)
+ {
+ // this check for NaN, from JLS 15.21.1, saves a method call
+ if (a != a)
+ return 0;
+ return (long) floor(a + 0.5d);
+ }
+
+ /**
+ * Get a random number. This behaves like Random.nextDouble(), seeded by
+ * System.currentTimeMillis() when first called. In other words, the number
+ * is from a pseudorandom sequence, and lies in the range [+0.0, 1.0).
+ * This random sequence is only used by this method, and is threadsafe,
+ * although you may want your own random number generator if it is shared
+ * among threads.
+ *
+ * @return a random number
+ * @see Random#nextDouble()
+ * @see System#currentTimeMillis()
+ */
+ public static synchronized double random()
+ {
+ if (rand == null)
+ rand = new Random();
+ return rand.nextDouble();
+ }
+
+ /**
+ * Convert from degrees to radians. The formula for this is
+ * radians = degrees * (pi/180); however it is not always exact given the
+ * limitations of floating point numbers.
+ *
+ * @param degrees an angle in degrees
+ * @return the angle in radians
+ * @since 1.2
+ */
+ public static double toRadians(double degrees)
+ {
+ return (degrees * PI) / 180;
+ }
+
+ /**
+ * Convert from radians to degrees. The formula for this is
+ * degrees = radians * (180/pi); however it is not always exact given the
+ * limitations of floating point numbers.
+ *
+ * @param rads an angle in radians
+ * @return the angle in degrees
+ * @since 1.2
+ */
+ public static double toDegrees(double rads)
+ {
+ return (rads * 180) / PI;
+ }
+
+ /**
+ * <p>
+ * Take a cube root. If the argument is <code>NaN</code>, an infinity or
+ * zero, then the original value is returned. The returned result is
+ * within 1 ulp of the exact result. For a finite value, <code>x</code>,
+ * the cube root of <code>-x</code> is equal to the negation of the cube root
+ * of <code>x</code>.
+ * </p>
+ * <p>
+ * For a square root, use <code>sqrt</code>. For other roots, use
+ * <code>pow(a, 1 / rootNumber)</code>.
+ * </p>
+ *
+ * @param a the numeric argument
+ * @return the cube root of the argument
+ * @see #sqrt(double)
+ * @see #pow(double, double)
+ * @since 1.5
+ */
+ public static native double cbrt(double a);
+
+ /**
+ * <p>
+ * Returns the hyperbolic cosine of the given value. For a value,
+ * <code>x</code>, the hyperbolic cosine is <code>(e<sup>x</sup> +
+ * e<sup>-x</sup>)/2</code>
+ * with <code>e</code> being <a href="#E">Euler's number</a>. The returned
+ * result is within 2.5 ulps of the exact result.
+ * </p>
+ * <p>
+ * If the supplied value is <code>NaN</code>, then the original value is
+ * returned. For either infinity, positive infinity is returned.
+ * The hyperbolic cosine of zero is 1.0.
+ * </p>
+ *
+ * @param a the numeric argument
+ * @return the hyperbolic cosine of <code>a</code>.
+ * @since 1.5
+ */
+ public static native double cosh(double a);
+
+ /**
+ * <p>
+ * Returns <code>e<sup>a</sup> - 1. For values close to 0, the
+ * result of <code>expm1(a) + 1</code> tend to be much closer to the
+ * exact result than simply <code>exp(x)</code>. The result is within
+ * 1 ulp of the exact result, and results are semi-monotonic. For finite
+ * inputs, the returned value is greater than or equal to -1.0. Once
+ * a result enters within half a ulp of this limit, the limit is returned.
+ * </p>
+ * <p>
+ * For <code>NaN</code>, positive infinity and zero, the original value
+ * is returned. Negative infinity returns a result of -1.0 (the limit).
+ * </p>
+ *
+ * @param a the numeric argument
+ * @return <code>e<sup>a</sup> - 1</code>
+ * @since 1.5
+ */
+ public static native double expm1(double a);
+
+ /**
+ * <p>
+ * Returns the hypotenuse, <code>a<sup>2</sup> + b<sup>2</sup></code>,
+ * without intermediate overflow or underflow. The returned result is
+ * within 1 ulp of the exact result. If one parameter is held constant,
+ * then the result in the other parameter is semi-monotonic.
+ * </p>
+ * <p>
+ * If either of the arguments is an infinity, then the returned result
+ * is positive infinity. Otherwise, if either argument is <code>NaN</code>,
+ * then <code>NaN</code> is returned.
+ * </p>
+ *
+ * @param a the first parameter.
+ * @param b the second parameter.
+ * @return the hypotenuse matching the supplied parameters.
+ * @since 1.5
+ */
+ public static native double hypot(double a, double b);
+
+ /**
+ * <p>
+ * Returns the base 10 logarithm of the supplied value. The returned
+ * result is within 1 ulp of the exact result, and the results are
+ * semi-monotonic.
+ * </p>
+ * <p>
+ * Arguments of either <code>NaN</code> or less than zero return
+ * <code>NaN</code>. An argument of positive infinity returns positive
+ * infinity. Negative infinity is returned if either positive or negative
+ * zero is supplied. Where the argument is the result of
+ * <code>10<sup>n</sup</code>, then <code>n</code> is returned.
+ * </p>
+ *
+ * @param a the numeric argument.
+ * @return the base 10 logarithm of <code>a</code>.
+ * @since 1.5
+ */
+ public static native double log10(double a);
+
+ /**
+ * <p>
+ * Returns the natural logarithm resulting from the sum of the argument,
+ * <code>a</code> and 1. For values close to 0, the
+ * result of <code>log1p(a)</code> tend to be much closer to the
+ * exact result than simply <code>log(1.0+a)</code>. The returned
+ * result is within 1 ulp of the exact result, and the results are
+ * semi-monotonic.
+ * </p>
+ * <p>
+ * Arguments of either <code>NaN</code> or less than -1 return
+ * <code>NaN</code>. An argument of positive infinity or zero
+ * returns the original argument. Negative infinity is returned from an
+ * argument of -1.
+ * </p>
+ *
+ * @param a the numeric argument.
+ * @return the natural logarithm of <code>a</code> + 1.
+ * @since 1.5
+ */
+ public static native double log1p(double a);
+
+ /**
+ * <p>
+ * Returns the sign of the argument as follows:
+ * </p>
+ * <ul>
+ * <li>If <code>a</code> is greater than zero, the result is 1.0.</li>
+ * <li>If <code>a</code> is less than zero, the result is -1.0.</li>
+ * <li>If <code>a</code> is <code>NaN</code>, the result is <code>NaN</code>.
+ * <li>If <code>a</code> is positive or negative zero, the result is the
+ * same.</li>
+ * </ul>
+ *
+ * @param a the numeric argument.
+ * @return the sign of the argument.
+ * @since 1.5.
+ */
+ public static double signum(double a)
+ {
+ if (Double.isNaN(a))
+ return Double.NaN;
+ if (a > 0)
+ return 1.0;
+ if (a < 0)
+ return -1.0;
+ return a;
+ }
+
+ /**
+ * <p>
+ * Returns the sign of the argument as follows:
+ * </p>
+ * <ul>
+ * <li>If <code>a</code> is greater than zero, the result is 1.0f.</li>
+ * <li>If <code>a</code> is less than zero, the result is -1.0f.</li>
+ * <li>If <code>a</code> is <code>NaN</code>, the result is <code>NaN</code>.
+ * <li>If <code>a</code> is positive or negative zero, the result is the
+ * same.</li>
+ * </ul>
+ *
+ * @param a the numeric argument.
+ * @return the sign of the argument.
+ * @since 1.5.
+ */
+ public static float signum(float a)
+ {
+ if (Float.isNaN(a))
+ return Float.NaN;
+ if (a > 0)
+ return 1.0f;
+ if (a < 0)
+ return -1.0f;
+ return a;
+ }
+
+ /**
+ * <p>
+ * Returns the hyperbolic sine of the given value. For a value,
+ * <code>x</code>, the hyperbolic sine is <code>(e<sup>x</sup> -
+ * e<sup>-x</sup>)/2</code>
+ * with <code>e</code> being <a href="#E">Euler's number</a>. The returned
+ * result is within 2.5 ulps of the exact result.
+ * </p>
+ * <p>
+ * If the supplied value is <code>NaN</code>, an infinity or a zero, then the
+ * original value is returned.
+ * </p>
+ *
+ * @param a the numeric argument
+ * @return the hyperbolic sine of <code>a</code>.
+ * @since 1.5
+ */
+ public static native double sinh(double a);
+
+ /**
+ * <p>
+ * Returns the hyperbolic tangent of the given value. For a value,
+ * <code>x</code>, the hyperbolic tangent is <code>(e<sup>x</sup> -
+ * e<sup>-x</sup>)/(e<sup>x</sup> + e<sup>-x</sup>)</code>
+ * (i.e. <code>sinh(a)/cosh(a)</code>)
+ * with <code>e</code> being <a href="#E">Euler's number</a>. The returned
+ * result is within 2.5 ulps of the exact result. The absolute value
+ * of the exact result is always less than 1. Computed results are thus
+ * less than or equal to 1 for finite arguments, with results within
+ * half a ulp of either positive or negative 1 returning the appropriate
+ * limit value (i.e. as if the argument was an infinity).
+ * </p>
+ * <p>
+ * If the supplied value is <code>NaN</code> or zero, then the original
+ * value is returned. Positive infinity returns +1.0 and negative infinity
+ * returns -1.0.
+ * </p>
+ *
+ * @param a the numeric argument
+ * @return the hyperbolic tangent of <code>a</code>.
+ * @since 1.5
+ */
+ public static native double tanh(double a);
+
+ /**
+ * Return the ulp for the given double argument. The ulp is the
+ * difference between the argument and the next larger double. Note
+ * that the sign of the double argument is ignored, that is,
+ * ulp(x) == ulp(-x). If the argument is a NaN, then NaN is returned.
+ * If the argument is an infinity, then +Inf is returned. If the
+ * argument is zero (either positive or negative), then
+ * {@link Double#MIN_VALUE} is returned.
+ * @param d the double whose ulp should be returned
+ * @return the difference between the argument and the next larger double
+ * @since 1.5
+ */
+ public static double ulp(double d)
+ {
+ if (Double.isNaN(d))
+ return d;
+ if (Double.isInfinite(d))
+ return Double.POSITIVE_INFINITY;
+ // This handles both +0.0 and -0.0.
+ if (d == 0.0)
+ return Double.MIN_VALUE;
+ long bits = Double.doubleToLongBits(d);
+ final int mantissaBits = 52;
+ final int exponentBits = 11;
+ final long mantMask = (1L << mantissaBits) - 1;
+ long mantissa = bits & mantMask;
+ final long expMask = (1L << exponentBits) - 1;
+ long exponent = (bits >>> mantissaBits) & expMask;
+
+ // Denormal number, so the answer is easy.
+ if (exponent == 0)
+ {
+ long result = (exponent << mantissaBits) | 1L;
+ return Double.longBitsToDouble(result);
+ }
+
+ // Conceptually we want to have '1' as the mantissa. Then we would
+ // shift the mantissa over to make a normal number. If this underflows
+ // the exponent, we will make a denormal result.
+ long newExponent = exponent - mantissaBits;
+ long newMantissa;
+ if (newExponent > 0)
+ newMantissa = 0;
+ else
+ {
+ newMantissa = 1L << -(newExponent - 1);
+ newExponent = 0;
+ }
+ return Double.longBitsToDouble((newExponent << mantissaBits) | newMantissa);
+ }
+
+ /**
+ * Return the ulp for the given float argument. The ulp is the
+ * difference between the argument and the next larger float. Note
+ * that the sign of the float argument is ignored, that is,
+ * ulp(x) == ulp(-x). If the argument is a NaN, then NaN is returned.
+ * If the argument is an infinity, then +Inf is returned. If the
+ * argument is zero (either positive or negative), then
+ * {@link Float#MIN_VALUE} is returned.
+ * @param f the float whose ulp should be returned
+ * @return the difference between the argument and the next larger float
+ * @since 1.5
+ */
+ public static float ulp(float f)
+ {
+ if (Float.isNaN(f))
+ return f;
+ if (Float.isInfinite(f))
+ return Float.POSITIVE_INFINITY;
+ // This handles both +0.0 and -0.0.
+ if (f == 0.0)
+ return Float.MIN_VALUE;
+ int bits = Float.floatToIntBits(f);
+ final int mantissaBits = 23;
+ final int exponentBits = 8;
+ final int mantMask = (1 << mantissaBits) - 1;
+ int mantissa = bits & mantMask;
+ final int expMask = (1 << exponentBits) - 1;
+ int exponent = (bits >>> mantissaBits) & expMask;
+
+ // Denormal number, so the answer is easy.
+ if (exponent == 0)
+ {
+ int result = (exponent << mantissaBits) | 1;
+ return Float.intBitsToFloat(result);
+ }
+
+ // Conceptually we want to have '1' as the mantissa. Then we would
+ // shift the mantissa over to make a normal number. If this underflows
+ // the exponent, we will make a denormal result.
+ int newExponent = exponent - mantissaBits;
+ int newMantissa;
+ if (newExponent > 0)
+ newMantissa = 0;
+ else
+ {
+ newMantissa = 1 << -(newExponent - 1);
+ newExponent = 0;
+ }
+ return Float.intBitsToFloat((newExponent << mantissaBits) | newMantissa);
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/NegativeArraySizeException.h b/gcc-4.8/libjava/java/lang/NegativeArraySizeException.h
new file mode 100644
index 000000000..e05f7c515
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NegativeArraySizeException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NegativeArraySizeException__
+#define __java_lang_NegativeArraySizeException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::NegativeArraySizeException : public ::java::lang::RuntimeException
+{
+
+public:
+ NegativeArraySizeException();
+ NegativeArraySizeException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8960118058596991861LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NegativeArraySizeException__
diff --git a/gcc-4.8/libjava/java/lang/NoClassDefFoundError.h b/gcc-4.8/libjava/java/lang/NoClassDefFoundError.h
new file mode 100644
index 000000000..90790a7b9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NoClassDefFoundError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NoClassDefFoundError__
+#define __java_lang_NoClassDefFoundError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::NoClassDefFoundError : public ::java::lang::LinkageError
+{
+
+public:
+ NoClassDefFoundError();
+ NoClassDefFoundError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 9095859863287012458LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NoClassDefFoundError__
diff --git a/gcc-4.8/libjava/java/lang/NoSuchFieldError.h b/gcc-4.8/libjava/java/lang/NoSuchFieldError.h
new file mode 100644
index 000000000..65f444e83
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NoSuchFieldError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NoSuchFieldError__
+#define __java_lang_NoSuchFieldError__
+
+#pragma interface
+
+#include <java/lang/IncompatibleClassChangeError.h>
+
+class java::lang::NoSuchFieldError : public ::java::lang::IncompatibleClassChangeError
+{
+
+public:
+ NoSuchFieldError();
+ NoSuchFieldError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -3456430195886129035LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NoSuchFieldError__
diff --git a/gcc-4.8/libjava/java/lang/NoSuchFieldException.h b/gcc-4.8/libjava/java/lang/NoSuchFieldException.h
new file mode 100644
index 000000000..11e1d1ace
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NoSuchFieldException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NoSuchFieldException__
+#define __java_lang_NoSuchFieldException__
+
+#pragma interface
+
+#include <java/lang/ReflectiveOperationException.h>
+
+class java::lang::NoSuchFieldException : public ::java::lang::ReflectiveOperationException
+{
+
+public:
+ NoSuchFieldException();
+ NoSuchFieldException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -6143714805279938260LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NoSuchFieldException__
diff --git a/gcc-4.8/libjava/java/lang/NoSuchMethodError.h b/gcc-4.8/libjava/java/lang/NoSuchMethodError.h
new file mode 100644
index 000000000..5db0a040e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NoSuchMethodError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NoSuchMethodError__
+#define __java_lang_NoSuchMethodError__
+
+#pragma interface
+
+#include <java/lang/IncompatibleClassChangeError.h>
+
+class java::lang::NoSuchMethodError : public ::java::lang::IncompatibleClassChangeError
+{
+
+public:
+ NoSuchMethodError();
+ NoSuchMethodError(::java::lang::String *);
+public: // actually package-private
+ static const jlong serialVersionUID = -3765521442372831335LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NoSuchMethodError__
diff --git a/gcc-4.8/libjava/java/lang/NoSuchMethodException.h b/gcc-4.8/libjava/java/lang/NoSuchMethodException.h
new file mode 100644
index 000000000..d2de014c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NoSuchMethodException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NoSuchMethodException__
+#define __java_lang_NoSuchMethodException__
+
+#pragma interface
+
+#include <java/lang/ReflectiveOperationException.h>
+
+class java::lang::NoSuchMethodException : public ::java::lang::ReflectiveOperationException
+{
+
+public:
+ NoSuchMethodException();
+ NoSuchMethodException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 5034388446362600923LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NoSuchMethodException__
diff --git a/gcc-4.8/libjava/java/lang/NullPointerException.h b/gcc-4.8/libjava/java/lang/NullPointerException.h
new file mode 100644
index 000000000..4af582cf4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NullPointerException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NullPointerException__
+#define __java_lang_NullPointerException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::NullPointerException : public ::java::lang::RuntimeException
+{
+
+public:
+ NullPointerException();
+ NullPointerException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 5162710183389028792LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NullPointerException__
diff --git a/gcc-4.8/libjava/java/lang/Number.h b/gcc-4.8/libjava/java/lang/Number.h
new file mode 100644
index 000000000..65ba92019
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Number.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Number__
+#define __java_lang_Number__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::Number : public ::java::lang::Object
+{
+
+public:
+ Number();
+ virtual jint intValue() = 0;
+ virtual jlong longValue() = 0;
+ virtual jfloat floatValue() = 0;
+ virtual jdouble doubleValue() = 0;
+ virtual jbyte byteValue();
+ virtual jshort shortValue();
+private:
+ static const jlong serialVersionUID = -8742448824652078965LL;
+public: // actually package-private
+ static JArray< jchar > * digits;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Number__
diff --git a/gcc-4.8/libjava/java/lang/NumberFormatException.h b/gcc-4.8/libjava/java/lang/NumberFormatException.h
new file mode 100644
index 000000000..34bd4d678
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/NumberFormatException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_NumberFormatException__
+#define __java_lang_NumberFormatException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+
+class java::lang::NumberFormatException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ NumberFormatException();
+ NumberFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -2848938806368998894LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_NumberFormatException__
diff --git a/gcc-4.8/libjava/java/lang/Object.h b/gcc-4.8/libjava/java/lang/Object.h
new file mode 100644
index 000000000..54fd447d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Object.h
@@ -0,0 +1,91 @@
+// Object.h - Header file for java.lang.Object. -*- c++ -*-
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#ifndef __JAVA_LANG_OBJECT_H__
+#define __JAVA_LANG_OBJECT_H__
+
+#pragma interface
+
+#include <gcj/javaprims.h>
+
+extern "Java"
+{
+// This class is mainly here as a kludge to get G++ to allocate two
+// extra entries in each vtable.
+struct _JvObjectPrefix
+{
+protected:
+ // New ABI Compatibility Dummy, #1 and 2.
+ virtual void nacd_1 (void) {}; // This slot really contains the Class pointer.
+ // For IA64, the GC descriptor goes into the second word of the nacd1 descr.
+# ifndef __ia64__
+ virtual void nacd_2 (void) {}; // Actually the GC bitmap marking descriptor.
+# endif
+};
+}
+
+// Forward declarations for friends of java::lang::Object
+void _Jv_MonitorEnter (jobject obj);
+void _Jv_MonitorExit (jobject obj);
+void _Jv_InitializeSyncMutex (void);
+void _Jv_FinalizeObject (jobject obj);
+bool _Jv_ObjectCheckMonitor (jobject obj);
+
+class java::lang::Object : public _JvObjectPrefix
+{
+protected:
+ virtual void finalize (void);
+public:
+ // Order must match order in Object.java.
+ jclass getClass (void);
+ virtual jint hashCode (void);
+ void notify (void);
+ void notifyAll (void);
+ void wait (jlong timeout, jint nanos);
+ virtual jboolean equals (jobject obj);
+ Object (void);
+ virtual jstring toString (void);
+ void wait (void);
+ void wait (jlong timeout);
+
+ friend void ::_Jv_MonitorEnter (jobject obj);
+ friend void ::_Jv_MonitorExit (jobject obj);
+ friend void ::_Jv_InitializeSyncMutex (void);
+ friend void ::_Jv_FinalizeObject (jobject obj);
+ friend bool ::_Jv_ObjectCheckMonitor (jobject obj);
+
+#ifdef JV_MARKOBJ_DECL
+ friend JV_MARKOBJ_DECL;
+#endif
+#ifdef JV_MARKARRAY_DECL
+ friend JV_MARKARRAY_DECL;
+#endif
+
+ static java::lang::Class class$;
+
+protected:
+ virtual jobject clone (void);
+
+private:
+ // This does not actually refer to a Java object. Instead it is a
+ // placeholder for a piece of internal data (the synchronization
+ // information).
+# ifndef JV_HASH_SYNCHRONIZATION
+ jobject sync_info;
+# endif
+
+ // Initialize the sync_info field. Not called with JV_HASH_SYNCHRONIZATION.
+ void sync_init (void);
+
+public:
+ virtual void throwNoSuchMethodError (void);
+};
+
+#endif /* __JAVA_LANG_OBJECT_H__ */
diff --git a/gcc-4.8/libjava/java/lang/Object.java b/gcc-4.8/libjava/java/lang/Object.java
new file mode 100644
index 000000000..740a7c78e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Object.java
@@ -0,0 +1,519 @@
+/* java.lang.Object - The universal superclass in Java
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
+ * plus gcj compiler sources (to determine object layout)
+ * Status: Complete to version 1.1
+ */
+
+/**
+ * Object is the ultimate superclass of every class
+ * (excepting interfaces). When you define a class that
+ * does not extend any other class, it implicitly extends
+ * java.lang.Object. Also, an anonymous class based on
+ * an interface will extend Object.
+ *
+ * <p>It provides general-purpose methods that every single
+ * Object, regardless of race, sex or creed, implements.
+ * All of the public methods may be invoked on arrays or
+ * interfaces. The protected methods <code>clone</code>
+ * and <code>finalize</code> are not accessible on arrays
+ * or interfaces, but all array types have a public version
+ * of <code>clone</code> which is accessible.
+ *
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Tom Tromey (tromey@cygnus.com)
+ */
+public class Object
+{
+ /**
+ * Called on an object by the Virtual Machine at most once,
+ * at some point after the Object is determined unreachable
+ * but before it is destroyed. You would think that this
+ * means it eventually is called on every Object, but this is
+ * not necessarily the case. If execution terminates
+ * abnormally, garbage collection does not always happen.
+ * Thus you cannot rely on this method to always work.
+ * For finer control over garbage collection, use references
+ * from the {@link java.lang.ref} package.
+ *
+ * <p>Virtual Machines are free to not call this method if
+ * they can determine that it does nothing important; for
+ * example, if your class extends Object and overrides
+ * finalize to do simply <code>super.finalize()</code>.
+ *
+ * <p>finalize() will be called by a {@link Thread} that has no
+ * locks on any Objects, and may be called concurrently.
+ * There are no guarantees on the order in which multiple
+ * objects are finalized. This means that finalize() is
+ * usually unsuited for performing actions that must be
+ * thread-safe, and that your implementation must be
+ * use defensive programming if it is to always work.
+ *
+ * <p>If an Exception is thrown from finalize() during garbage
+ * collection, it will be patently ignored and the Object will
+ * still be destroyed.
+ *
+ * <p>It is allowed, although not typical, for user code to call
+ * finalize() directly. User invocation does not affect whether
+ * automatic invocation will occur. It is also permitted,
+ * although not recommended, for a finalize() method to "revive"
+ * an object by making it reachable from normal code again.
+ *
+ * <p>Unlike constructors, finalize() does not get called
+ * for an object's superclass unless the implementation
+ * specifically calls <code>super.finalize()</code>.
+ *
+ * <p>The default implementation does nothing.
+ *
+ * @throws Throwable permits a subclass to throw anything in an
+ * overridden version; but the default throws nothing
+ * @see System#gc()
+ * @see System#runFinalizersOnExit(boolean)
+ * @see java.lang.ref
+ */
+ // This must come first. See _JvObjectPrefix in Object.h.
+ protected void finalize () throws Throwable
+ {
+ }
+
+ /**
+ * Returns the runtime {@link Class} of this Object.
+ *
+ * <p>The class object can also be obtained without a runtime
+ * instance by using the class literal, as in:
+ * <code>Foo.class</code>. Notice that the class literal
+ * also works on primitive types, making it useful for
+ * reflection purposes.
+ *
+ * @return the class of this Object
+ */
+ public final native Class<? extends Object> getClass();
+
+ /**
+ * Get a value that represents this Object, as uniquely as
+ * possible within the confines of an int.
+ *
+ * <p>There are some requirements on this method which
+ * subclasses must follow:<br>
+ *
+ * <ul>
+ * <li>Semantic equality implies identical hashcodes. In other
+ * words, if <code>a.equals(b)</code> is true, then
+ * <code>a.hashCode() == b.hashCode()</code> must be as well.
+ * However, the reverse is not necessarily true, and two
+ * objects may have the same hashcode without being equal.</li>
+ * <li>It must be consistent. Whichever value o.hashCode()
+ * returns on the first invocation must be the value
+ * returned on all later invocations as long as the object
+ * exists. Notice, however, that the result of hashCode may
+ * change between separate executions of a Virtual Machine,
+ * because it is not invoked on the same object.</li>
+ * </ul>
+ *
+ * <p>Notice that since <code>hashCode</code> is used in
+ * {@link java.util.Hashtable} and other hashing classes,
+ * a poor implementation will degrade the performance of hashing
+ * (so don't blindly implement it as returning a constant!). Also,
+ * if calculating the hash is time-consuming, a class may consider
+ * caching the results.
+ *
+ * <p>The default implementation returns
+ * <code>System.identityHashCode(this)</code>
+ *
+ * @return the hash code for this Object
+ * @see #equals(Object)
+ * @see System#identityHashCode(Object)
+ */
+ public native int hashCode();
+
+ /**
+ * Wakes up one of the {@link Thread}s that has called
+ * <code>wait</code> on this Object. Only the owner
+ * of a lock on this Object may call this method. This lock
+ * is obtained by a <code>synchronized</code> method or statement.
+ *
+ * <p>The Thread to wake up is chosen arbitrarily. The
+ * awakened thread is not guaranteed to be the next thread
+ * to actually obtain the lock on this object.
+ *
+ * <p>This thread still holds a lock on the object, so it is
+ * typical to release the lock by exiting the synchronized
+ * code, calling wait(), or calling {@link Thread#sleep()}, so
+ * that the newly awakened thread can actually resume. The
+ * awakened thread will most likely be awakened with an
+ * {@link InterruptedException}, but that is not guaranteed.
+ *
+ * @throws IllegalMonitorStateException if this Thread
+ * does not own the lock on the Object
+ * @see #notifyAll()
+ * @see #wait()
+ * @see #wait(long)
+ * @see #wait(long, int)
+ * @see Thread
+ */
+ public final native void notify();
+
+ /**
+ * Wakes up all of the {@link Thread}s that have called
+ * <code>wait</code> on this Object. Only the owner
+ * of a lock on this Object may call this method. This lock
+ * is obtained by a <code>synchronized</code> method or statement.
+ *
+ * <p>There are no guarantees as to which thread will next
+ * obtain the lock on the object.
+ *
+ * <p>This thread still holds a lock on the object, so it is
+ * typical to release the lock by exiting the synchronized
+ * code, calling wait(), or calling {@link Thread#sleep()}, so
+ * that one of the newly awakened threads can actually resume.
+ * The resuming thread will most likely be awakened with an
+ * {@link InterruptedException}, but that is not guaranteed.
+ *
+ * @throws IllegalMonitorStateException if this Thread
+ * does not own the lock on the Object
+ * @see #notify()
+ * @see #wait()
+ * @see #wait(long)
+ * @see #wait(long, int)
+ * @see Thread
+ */
+ public final native void notifyAll();
+
+ /**
+ * Waits a specified amount of time (or indefinitely if
+ * the time specified is 0) for someone to call notify()
+ * or notifyAll() on this Object, waking up this Thread.
+ *
+ * <p>The Thread that calls wait must have a lock on this Object,
+ * obtained by a <code>synchronized</code> method or statement.
+ * After calling wait, the thread loses the lock on this
+ * object until the method completes (abruptly or normally),
+ * at which time it regains the lock. All locks held on
+ * other objects remain in force, even though the thread is
+ * inactive. Therefore, caution must be used to avoid deadlock.
+ *
+ * <p>Usually, this call will complete normally if the time
+ * expires, or abruptly with {@link InterruptedException}
+ * if another thread called notify, but neither result
+ * is guaranteed.
+ *
+ * <p>The waiting period is nowhere near as precise as
+ * nanoseconds; considering that even wait(int) is inaccurate,
+ * how much can you expect? But on supporting
+ * implementations, this offers somewhat more granularity
+ * than milliseconds.
+ *
+ * @param ms the number of milliseconds to wait (1,000
+ * milliseconds = 1 second)
+ * @param ns the number of nanoseconds to wait over and
+ * above ms (1,000,000 nanoseconds = 1 millisecond)
+ * @throws IllegalArgumentException if ms &lt; 0 or ns is not
+ * in the range 0 to 999,999
+ * @throws IllegalMonitorStateException if this Thread
+ * does not own a lock on this Object
+ * @throws InterruptedException if some other Thread
+ * interrupts this Thread
+ * @see #notify()
+ * @see #notifyAll()
+ * @see #wait()
+ * @see #wait(long)
+ * @see Thread
+ */
+ public final native void wait(long timeout, int nanos)
+ throws InterruptedException;
+
+ /**
+ * Determine whether this Object is semantically equal
+ * to another Object.
+ *
+ * <p>There are some fairly strict requirements on this
+ * method which subclasses must follow:<br>
+ * <ul>
+ * <li>It must be transitive. If <code>a.equals(b)</code> and
+ * <code>b.equals(c)</code>, then <code>a.equals(c)</code>
+ * must be true as well.</li>
+ * <li>It must be symmetric. <code>a.equals(b)</code> and
+ * <code>b.equals(a)</code> must have the same value.</li>
+ * <li>It must be reflexive. <code>a.equals(a)</code> must
+ * always be true.</li>
+ * <li>It must be consistent. Whichever value a.equals(b)
+ * returns on the first invocation must be the value
+ * returned on all later invocations.</li>
+ * <li><code>a.equals(null)</code> must be false.</li>
+ * <li>It must be consistent with hashCode(). That is,
+ * <code>a.equals(b)</code> must imply
+ * <code>a.hashCode() == b.hashCode()</code>.
+ * The reverse is not true; two objects that are not
+ * equal may have the same hashcode, but that has
+ * the potential to harm hashing performance.</li>
+ * </ul>
+ *
+ * <p>This is typically overridden to throw a {@link ClassCastException}
+ * if the argument is not comparable to the class performing
+ * the comparison, but that is not a requirement. It is legal
+ * for <code>a.equals(b)</code> to be true even though
+ * <code>a.getClass() != b.getClass()</code>. Also, it
+ * is typical to never cause a {@link NullPointerException}.
+ *
+ * <p>In general, the Collections API ({@link java.util}) use the
+ * <code>equals</code> method rather than the <code>==</code>
+ * operator to compare objects. However, {@link java.util.IdentityHashMap}
+ * is an exception to this rule, for its own good reasons.
+ *
+ * <p>The default implementation returns <code>this == o</code>.
+ *
+ * @param obj the Object to compare to
+ * @return whether this Object is semantically equal to another
+ * @see #hashCode()
+ */
+ public boolean equals(Object obj)
+ {
+ return this == obj;
+ }
+
+ /**
+ * The basic constructor. Object is special, because it has no
+ * superclass, so there is no call to super().
+ *
+ * @throws OutOfMemoryError Technically, this constructor never
+ * throws an OutOfMemoryError, because the memory has
+ * already been allocated by this point. But as all
+ * instance creation expressions eventually trace back
+ * to this constructor, and creating an object allocates
+ * memory, we list that possibility here.
+ */
+ public Object()
+ {
+ }
+
+ /**
+ * Convert this Object to a human-readable String.
+ * There are no limits placed on how long this String
+ * should be or what it should contain. We suggest you
+ * make it as intuitive as possible to be able to place
+ * it into {@link java.io.PrintStream#println() System.out.println()}
+ * and such.
+ *
+ * <p>It is typical, but not required, to ensure that this method
+ * never completes abruptly with a {@link RuntimeException}.
+ *
+ * <p>This method will be called when performing string
+ * concatenation with this object. If the result is
+ * <code>null</code>, string concatenation will instead
+ * use <code>"null"</code>.
+ *
+ * <p>The default implementation returns
+ * <code>getClass().getName() + "@" +
+ * Integer.toHexString(hashCode())</code>.
+ *
+ * @return the String representing this Object, which may be null
+ * @throws OutOfMemoryError The default implementation creates a new
+ * String object, therefore it must allocate memory
+ * @see #getClass()
+ * @see #hashCode()
+ * @see Class#getName()
+ * @see Integer#toHexString(int)
+ */
+ public String toString()
+ {
+ return getClass().getName() + '@' + Integer.toHexString(hashCode());
+ }
+
+ /**
+ * Waits indefinitely for notify() or notifyAll() to be
+ * called on the Object in question. Implementation is
+ * identical to wait(0).
+ *
+ * <p>The Thread that calls wait must have a lock on this Object,
+ * obtained by a <code>synchronized</code> method or statement.
+ * After calling wait, the thread loses the lock on this
+ * object until the method completes (abruptly or normally),
+ * at which time it regains the lock. All locks held on
+ * other objects remain in force, even though the thread is
+ * inactive. Therefore, caution must be used to avoid deadlock.
+ *
+ * <p>While it is typical that this method will complete abruptly
+ * with an {@link InterruptedException}, it is not guaranteed. So,
+ * it is typical to call wait inside an infinite loop:<br>
+ *
+ * <pre>
+ * try
+ * {
+ * while (true)
+ * lock.wait();
+ * }
+ * catch (InterruptedException e)
+ * {
+ * }
+ * </pre>
+ *
+ * @throws IllegalMonitorStateException if this Thread
+ * does not own a lock on this Object
+ * @throws InterruptedException if some other Thread
+ * interrupts this Thread
+ * @see #notify()
+ * @see #notifyAll()
+ * @see #wait(long)
+ * @see #wait(long, int)
+ * @see Thread
+ */
+ public final void wait() throws InterruptedException
+ {
+ wait(0, 0);
+ }
+
+ /**
+ * Waits a specified amount of time (or indefinitely if
+ * the time specified is 0) for someone to call notify()
+ * or notifyAll() on this Object, waking up this Thread.
+ *
+ * <p>The Thread that calls wait must have a lock on this Object,
+ * obtained by a <code>synchronized</code> method or statement.
+ * After calling wait, the thread loses the lock on this
+ * object until the method completes (abruptly or normally),
+ * at which time it regains the lock. All locks held on
+ * other objects remain in force, even though the thread is
+ * inactive. Therefore, caution must be used to avoid deadlock.
+ *
+ * <p>Usually, this call will complete normally if the time
+ * expires, or abruptly with {@link InterruptedException}
+ * if another thread called notify, but neither result
+ * is guaranteed.
+ *
+ * <p>The waiting period is only *roughly* the amount of time
+ * you requested. It cannot be exact because of the overhead
+ * of the call itself. Most Virtual Machiness treat the
+ * argument as a lower limit on the time spent waiting, but
+ * even that is not guaranteed. Besides, some other thread
+ * may hold the lock on the object when the time expires, so
+ * the current thread may still have to wait to reobtain the
+ * lock.
+ *
+ * @param timeout the minimum number of milliseconds to wait (1000
+ * milliseconds = 1 second), or 0 for an indefinite wait
+ * @throws IllegalArgumentException if ms &lt; 0
+ * @throws IllegalMonitorStateException if this Thread
+ * does not own a lock on this Object
+ * @throws InterruptedException if some other Thread
+ * interrupts this Thread
+ * @see #notify()
+ * @see #notifyAll()
+ * @see #wait()
+ * @see #wait(long, int)
+ * @see Thread
+ */
+ public final void wait(long timeout) throws InterruptedException
+ {
+ wait(timeout, 0);
+ }
+
+ /**
+ * This method may be called to create a new copy of the
+ * Object. The typical behavior is as follows:<br>
+ * <ul>
+ * <li><code>o == o.clone()</code> is false</li>
+ * <li><code>o.getClass() == o.clone().getClass()</code>
+ * is true</li>
+ * <li><code>o.equals(o)</code> is true</li>
+ * </ul>
+ *
+ * <p>However, these are not strict requirements, and may
+ * be violated if necessary. Of the three requirements, the
+ * last is the most commonly violated, particularly if the
+ * subclass does not override {@link #equals(Object)}.
+ *
+ * <p>If the Object you call clone() on does not implement
+ * {@link Cloneable} (which is a placeholder interface), then
+ * a CloneNotSupportedException is thrown. Notice that
+ * Object does not implement Cloneable; this method exists
+ * as a convenience for subclasses that do.
+ *
+ * <p>Object's implementation of clone allocates space for the
+ * new Object using the correct class, without calling any
+ * constructors, and then fills in all of the new field values
+ * with the old field values. Thus, it is a shallow copy.
+ * However, subclasses are permitted to make a deep copy.
+ *
+ * <p>All array types implement Cloneable, and override
+ * this method as follows (it should never fail):<br>
+ * <pre>
+ * public Object clone()
+ * {
+ * try
+ * {
+ * super.clone();
+ * }
+ * catch (CloneNotSupportedException e)
+ * {
+ * throw new InternalError(e.getMessage());
+ * }
+ * }
+ * </pre>
+ *
+ * @return a copy of the Object
+ * @throws CloneNotSupportedException If this Object does not
+ * implement Cloneable
+ * @throws OutOfMemoryError Since cloning involves memory allocation,
+ * even though it may bypass constructors, you might run
+ * out of memory
+ * @see Cloneable
+ */
+ protected native Object clone() throws CloneNotSupportedException;
+
+ // This initializes the sync_info member. It is here for
+ // completeness (some day we'll be able to auto-generate Object.h).
+ private final native void sync_init();
+
+ // If we fail to find a method at class loading time we put the
+ // vtable index of this method in its place: any attempt to call
+ // that method will result in an error.
+ void throwNoSuchMethodError()
+ {
+ throw new NoSuchMethodError("in " + getClass());
+ }
+
+ // Note that we don't mention the sync_info field here. If we do,
+ // jc1 will not work correctly.
+}
diff --git a/gcc-4.8/libjava/java/lang/OutOfMemoryError.h b/gcc-4.8/libjava/java/lang/OutOfMemoryError.h
new file mode 100644
index 000000000..7fac1f5a0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/OutOfMemoryError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_OutOfMemoryError__
+#define __java_lang_OutOfMemoryError__
+
+#pragma interface
+
+#include <java/lang/VirtualMachineError.h>
+
+class java::lang::OutOfMemoryError : public ::java::lang::VirtualMachineError
+{
+
+public:
+ OutOfMemoryError();
+ OutOfMemoryError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8228564086184010517LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_OutOfMemoryError__
diff --git a/gcc-4.8/libjava/java/lang/Override.h b/gcc-4.8/libjava/java/lang/Override.h
new file mode 100644
index 000000000..e6424ee6a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Override.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Override__
+#define __java_lang_Override__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Override : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Override__
diff --git a/gcc-4.8/libjava/java/lang/Package.h b/gcc-4.8/libjava/java/lang/Package.h
new file mode 100644
index 000000000..6d12d9f36
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Package.h
@@ -0,0 +1,62 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Package__
+#define __java_lang_Package__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ }
+}
+
+class java::lang::Package : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Package(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::net::URL *);
+ Package(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::net::URL *, ::java::lang::ClassLoader *);
+public:
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::String * getSpecificationTitle();
+ virtual ::java::lang::String * getSpecificationVersion();
+ virtual ::java::lang::String * getSpecificationVendor();
+ virtual ::java::lang::String * getImplementationTitle();
+ virtual ::java::lang::String * getImplementationVersion();
+ virtual ::java::lang::String * getImplementationVendor();
+ virtual jboolean isSealed();
+ virtual jboolean isSealed(::java::net::URL *);
+ virtual jboolean isCompatibleWith(::java::lang::String *);
+ static ::java::lang::Package * getPackage(::java::lang::String *);
+ static JArray< ::java::lang::Package * > * getPackages();
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *);
+ virtual JArray< ::java::lang::annotation::Annotation * > * getAnnotations();
+ virtual JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations();
+ virtual jboolean isAnnotationPresent(::java::lang::Class *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::lang::String * implTitle;
+ ::java::lang::String * implVendor;
+ ::java::lang::String * implVersion;
+ ::java::lang::String * specTitle;
+ ::java::lang::String * specVendor;
+ ::java::lang::String * specVersion;
+ ::java::net::URL * sealed;
+ ::java::lang::ClassLoader * loader;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Package__
diff --git a/gcc-4.8/libjava/java/lang/PosixProcess$EOFInputStream.h b/gcc-4.8/libjava/java/lang/PosixProcess$EOFInputStream.h
new file mode 100644
index 000000000..bda16533a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/PosixProcess$EOFInputStream.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_PosixProcess$EOFInputStream__
+#define __java_lang_PosixProcess$EOFInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+
+class java::lang::PosixProcess$EOFInputStream : public ::java::io::InputStream
+{
+
+public: // actually package-private
+ PosixProcess$EOFInputStream();
+public:
+ virtual jint read();
+public: // actually package-private
+ static ::java::lang::PosixProcess$EOFInputStream * instance;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_PosixProcess$EOFInputStream__
diff --git a/gcc-4.8/libjava/java/lang/PosixProcess$ProcessManager.h b/gcc-4.8/libjava/java/lang/PosixProcess$ProcessManager.h
new file mode 100644
index 000000000..4b3b62e13
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/PosixProcess$ProcessManager.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_PosixProcess$ProcessManager__
+#define __java_lang_PosixProcess$ProcessManager__
+
+#pragma interface
+
+#include <java/lang/Thread.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawDataManaged;
+ }
+ }
+}
+
+class java::lang::PosixProcess$ProcessManager : public ::java::lang::Thread
+{
+
+public: // actually package-private
+ PosixProcess$ProcessManager();
+ void addToLiveProcesses(::java::lang::PosixProcess *);
+ void startExecuting(::java::lang::PosixProcess *);
+ void waitUntilReady();
+public:
+ void run();
+private:
+ void init();
+ void waitForSignal();
+ jboolean reap(::java::lang::PosixProcess *);
+ void signalReaper();
+ ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) queue;
+ ::java::util::LinkedList * liveProcesses;
+ jboolean ready;
+public: // actually package-private
+ static ::gnu::gcj::RawDataManaged * nativeData;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_PosixProcess$ProcessManager__
diff --git a/gcc-4.8/libjava/java/lang/PosixProcess.h b/gcc-4.8/libjava/java/lang/PosixProcess.h
new file mode 100644
index 000000000..3254f5224
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/PosixProcess.h
@@ -0,0 +1,62 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_PosixProcess__
+#define __java_lang_PosixProcess__
+
+#pragma interface
+
+#include <java/lang/Process.h>
+#include <gcj/array.h>
+
+
+class java::lang::PosixProcess : public ::java::lang::Process
+{
+
+public:
+ void destroy();
+private:
+ void nativeDestroy();
+public:
+ jint exitValue();
+public: // actually package-private
+ void processTerminationCleanup();
+public:
+ ::java::io::InputStream * getErrorStream();
+ ::java::io::InputStream * getInputStream();
+ ::java::io::OutputStream * getOutputStream();
+ jint waitFor();
+public: // actually package-private
+ void spawn(::java::lang::PosixProcess$ProcessManager *);
+private:
+ void nativeSpawn();
+public: // actually package-private
+ PosixProcess(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *, jboolean);
+ static ::java::lang::Object * access$0();
+ static void access$1(::java::lang::PosixProcess$ProcessManager *);
+private:
+ JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Process)))) progarray;
+ JArray< ::java::lang::String * > * envp;
+ ::java::io::File * dir;
+ jboolean redirect;
+ ::java::lang::Throwable * exception;
+public: // actually package-private
+ jlong pid;
+ static const jint STATE_WAITING_TO_START = 0;
+ static const jint STATE_RUNNING = 1;
+ static const jint STATE_TERMINATED = 2;
+ jint state;
+ jint status;
+private:
+ ::java::io::InputStream * errorStream;
+ ::java::io::InputStream * inputStream;
+ ::java::io::OutputStream * outputStream;
+ ::java::io::InputStream * returnedErrorStream;
+ ::java::io::InputStream * returnedInputStream;
+ static ::java::lang::Object * queueLock;
+ static ::java::lang::PosixProcess$ProcessManager * processManager;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_PosixProcess__
diff --git a/gcc-4.8/libjava/java/lang/PosixProcess.java b/gcc-4.8/libjava/java/lang/PosixProcess.java
new file mode 100644
index 000000000..dd59e7b93
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/PosixProcess.java
@@ -0,0 +1,470 @@
+// PosixProcess.java - Subclass of Process for POSIX systems.
+/* Copyright (C) 1998, 1999, 2004, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.lang;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import gnu.gcj.RawDataManaged;
+
+/**
+ * @author Tom Tromey <tromey@cygnus.com>
+ * @date May 3, 1999
+ * @author David Daney <ddaney@avtrex.com> Rewrote using
+ * ProcessManager
+ */
+final class PosixProcess extends Process
+{
+ static final class ProcessManager extends Thread
+ {
+ /**
+ * A list of {@link PosixProcess PosixProcesses} to be
+ * started. The queueLock object is used as the lock Object
+ * for all process related operations. To avoid dead lock
+ * ensure queueLock is obtained before PosixProcess.
+ */
+ private LinkedList<PosixProcess> queue = new LinkedList<PosixProcess>();
+ private LinkedList<PosixProcess> liveProcesses =
+ new LinkedList<PosixProcess>();
+ private boolean ready = false;
+
+ static RawDataManaged nativeData;
+
+ ProcessManager()
+ {
+ // Use package private Thread constructor to place us in the
+ // root ThreadGroup with no InheritableThreadLocal. If the
+ // InheritableThreadLocals were allowed to initialize, they could
+ // cause a Runtime.exec() to be called causing infinite
+ // recursion.
+ super("ProcessManager", true);
+ // Don't keep the (main) process from exiting on our account.
+ this.setDaemon(true);
+ }
+
+ /**
+ * Add a process to the list of running processes. This must only
+ * be called with the queueLock held.
+ *
+ * @param p The PosixProcess.
+ */
+ void addToLiveProcesses(PosixProcess p)
+ {
+ liveProcesses.add(p);
+ }
+
+ /**
+ * Queue up the PosixProcess and awake the ProcessManager.
+ * The ProcessManager will start the PosixProcess from its
+ * thread so it can be reaped when it terminates.
+ *
+ * @param p The PosixProcess.
+ */
+ void startExecuting(PosixProcess p)
+ {
+ synchronized (queueLock)
+ {
+ queue.add(p);
+ signalReaper(); // If blocked in waitForSignal().
+ queueLock.notifyAll(); // If blocked in wait();
+ }
+ }
+
+ /**
+ * Block until the ProcessManager thread is ready to accept
+ * commands.
+ */
+ void waitUntilReady()
+ {
+ synchronized (this)
+ {
+ try
+ {
+ while (! ready)
+ wait();
+ }
+ catch (InterruptedException ie)
+ {
+ // Ignore.
+ }
+ }
+ }
+
+ /**
+ * Main Process starting/reaping loop.
+ */
+ public void run()
+ {
+ init();
+ // Now ready to accept requests.
+ synchronized (this)
+ {
+ ready = true;
+ this.notifyAll();
+ }
+
+ for (;;)
+ {
+ try
+ {
+ synchronized (queueLock)
+ {
+ Iterator<PosixProcess> processIterator =
+ liveProcesses.iterator();
+ while (processIterator.hasNext())
+ {
+ boolean reaped = reap(processIterator.next());
+ if (reaped)
+ processIterator.remove();
+ }
+ if (liveProcesses.size() == 0 && queue.size() == 0)
+ {
+ // This reaper thread could exit, but we keep it
+ // alive for a while in case someone wants to
+ // start more Processes.
+ try
+ {
+ queueLock.wait(1000L);
+ if (queue.size() == 0)
+ {
+ processManager = null;
+ return; // Timed out.
+ }
+ }
+ catch (InterruptedException ie)
+ {
+ // Ignore and exit the thread.
+ return;
+ }
+ }
+ while (queue.size() > 0)
+ {
+ PosixProcess p = queue.remove(0);
+ p.spawn(this);
+ }
+ }
+
+ // Wait for a SIGCHLD from either an exiting process or
+ // the startExecuting() method. This is done outside of
+ // the synchronized block to allow other threads to
+ // enter and submit more jobs.
+ waitForSignal();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace(System.err);
+ }
+ }
+ }
+
+ /**
+ * Setup native signal handlers and other housekeeping things.
+ */
+ private native void init();
+
+ /**
+ * Block waiting for SIGCHLD.
+ *
+ */
+ private native void waitForSignal();
+
+ /**
+ * Try to reap the specified child without blocking.
+ *
+ * @param p the process to try to reap.
+ *
+ * @return true if the process terminated.
+ *
+ */
+ private native boolean reap(PosixProcess p);
+
+ /**
+ * Send SIGCHLD to the reaper thread.
+ */
+ private native void signalReaper();
+ }
+
+ public void destroy()
+ {
+ // Synchronized on the queueLock. This ensures that the reaper
+ // thread cannot be doing a wait() on the child.
+ // Otherwise there would be a race where the OS could
+ // create a process with the same pid between the wait()
+ // and the update of the state which would cause a kill to
+ // the wrong process.
+ synchronized (queueLock)
+ {
+ synchronized (this)
+ {
+ // If there is no ProcessManager we cannot kill.
+ if (state != STATE_TERMINATED)
+ {
+ if (processManager == null)
+ throw new InternalError();
+ nativeDestroy();
+ }
+ }
+ }
+ }
+
+ private native void nativeDestroy();
+
+ public int exitValue()
+ {
+ synchronized (this)
+ {
+ if (state != STATE_TERMINATED)
+ throw new IllegalThreadStateException("Process has not exited");
+ }
+ return status;
+ }
+
+ /**
+ * Called by native code when process exits.
+ *
+ * Already synchronized (this). Close any streams that we can to
+ * conserve file descriptors.
+ *
+ * The outputStream can be closed as any future writes will
+ * generate an IOException due to EPIPE.
+ *
+ * The inputStream and errorStream can only be closed if the user
+ * has not obtained a reference to them AND they have no bytes
+ * available. Since the process has terminated they will never have
+ * any more data available and can safely be replaced by
+ * EOFInputStreams.
+ */
+ void processTerminationCleanup()
+ {
+ try
+ {
+ outputStream.close();
+ }
+ catch (IOException ioe)
+ {
+ // Ignore.
+ }
+ try
+ {
+ if (returnedErrorStream == null && errorStream.available() == 0)
+ {
+ errorStream.close();
+ errorStream = null;
+ }
+ }
+ catch (IOException ioe)
+ {
+ // Ignore.
+ }
+ try
+ {
+ if (returnedInputStream == null && inputStream.available() == 0)
+ {
+ inputStream.close();
+ inputStream = null;
+ }
+ }
+ catch (IOException ioe)
+ {
+ // Ignore.
+ }
+ }
+
+ public synchronized InputStream getErrorStream()
+ {
+ if (returnedErrorStream != null)
+ return returnedErrorStream;
+
+ if (errorStream == null)
+ returnedErrorStream = EOFInputStream.instance;
+ else
+ returnedErrorStream = errorStream;
+
+ return returnedErrorStream;
+ }
+
+ public synchronized InputStream getInputStream()
+ {
+ if (returnedInputStream != null)
+ return returnedInputStream;
+
+ if (inputStream == null)
+ returnedInputStream = EOFInputStream.instance;
+ else
+ returnedInputStream = inputStream;
+
+ return returnedInputStream;
+ }
+
+ public OutputStream getOutputStream()
+ {
+ return outputStream;
+ }
+
+ public int waitFor() throws InterruptedException
+ {
+ synchronized (this)
+ {
+ while (state != STATE_TERMINATED)
+ wait();
+ }
+ return status;
+ }
+
+ /**
+ * Start this process running. This should only be called by the
+ * ProcessManager with the queueLock held.
+ *
+ * @param pm The ProcessManager that made the call.
+ */
+ void spawn(ProcessManager pm)
+ {
+ synchronized (this)
+ {
+ // Do the fork/exec magic.
+ nativeSpawn();
+ // There is no race with reap() in the pidToProcess map
+ // because this is always called from the same thread
+ // doing the reaping.
+ pm.addToLiveProcesses(this);
+ state = STATE_RUNNING;
+ // Notify anybody waiting on state change.
+ this.notifyAll();
+ }
+ }
+
+ /**
+ * Do the fork and exec.
+ */
+ private native void nativeSpawn();
+
+ PosixProcess(String[] progarray, String[] envp, File dir, boolean redirect)
+ throws IOException
+ {
+ // Check to ensure there is something to run, and avoid
+ // dereferencing null pointers in native code.
+ if (progarray[0] == null)
+ throw new NullPointerException();
+
+ this.progarray = progarray;
+ this.envp = envp;
+ this.dir = dir;
+ this.redirect = redirect;
+
+ // Start a ProcessManager if there is not one already running.
+ synchronized (queueLock)
+ {
+ if (processManager == null)
+ {
+ processManager = new ProcessManager();
+ processManager.start();
+ processManager.waitUntilReady();
+ }
+
+ // Queue this PosixProcess for starting by the ProcessManager.
+ processManager.startExecuting(this);
+ }
+
+ // Wait until ProcessManager has started us.
+ synchronized (this)
+ {
+ while (state == STATE_WAITING_TO_START)
+ {
+ try
+ {
+ wait();
+ }
+ catch (InterruptedException ie)
+ {
+ // FIXME: What to do when interrupted while blocking in a constructor?
+ // Ignore.
+ }
+ }
+ }
+
+ // If there was a problem, re-throw it.
+ if (exception != null)
+ {
+ if (exception instanceof IOException)
+ {
+ IOException ioe = new IOException(exception.toString());
+ ioe.initCause(exception);
+ throw ioe;
+ }
+
+ // Not an IOException. Something bad happened.
+ InternalError ie = new InternalError(exception.toString());
+ ie.initCause(exception);
+ throw ie;
+ }
+
+ // If we get here, all is well, the Process has started.
+ }
+
+ private String[] progarray;
+ private String[] envp;
+ private File dir;
+ private boolean redirect;
+
+ /** Set by the ProcessManager on problems starting. */
+ private Throwable exception;
+
+ /** The process id. This is cast to a pid_t on the native side. */
+ long pid;
+
+ // FIXME: Why doesn't the friend declaration in PosixProcess.h
+ // allow PosixProcess$ProcessManager native code access these
+ // when they are private?
+
+ /** Before the process is forked. */
+ static final int STATE_WAITING_TO_START = 0;
+
+ /** After the fork. */
+ static final int STATE_RUNNING = 1;
+
+ /** After exit code has been collected. */
+ static final int STATE_TERMINATED = 2;
+
+ /** One of STATE_WAITING_TO_START, STATE_RUNNING, STATE_TERMINATED. */
+ int state;
+
+ /** The exit status, if the child has exited. */
+ int status;
+
+ /** The streams. */
+ private InputStream errorStream;
+ private InputStream inputStream;
+ private OutputStream outputStream;
+
+ /** InputStreams obtained by the user. Not null indicates that the
+ * user has obtained the stream.
+ */
+ private InputStream returnedErrorStream;
+ private InputStream returnedInputStream;
+
+ /**
+ * Lock Object for all processManager related locking.
+ */
+ private static Object queueLock = new Object();
+ private static ProcessManager processManager;
+
+ static class EOFInputStream extends InputStream
+ {
+ static EOFInputStream instance = new EOFInputStream();
+ public int read()
+ {
+ return -1;
+ }
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/Process.h b/gcc-4.8/libjava/java/lang/Process.h
new file mode 100644
index 000000000..f363feb50
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Process.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Process__
+#define __java_lang_Process__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Process : public ::java::lang::Object
+{
+
+public:
+ Process();
+ virtual ::java::io::OutputStream * getOutputStream() = 0;
+ virtual ::java::io::InputStream * getInputStream() = 0;
+ virtual ::java::io::InputStream * getErrorStream() = 0;
+ virtual jint waitFor() = 0;
+ virtual jint exitValue() = 0;
+ virtual void destroy() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Process__
diff --git a/gcc-4.8/libjava/java/lang/ProcessBuilder.h b/gcc-4.8/libjava/java/lang/ProcessBuilder.h
new file mode 100644
index 000000000..fd6029df0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ProcessBuilder.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ProcessBuilder__
+#define __java_lang_ProcessBuilder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::ProcessBuilder : public ::java::lang::Object
+{
+
+public:
+ ProcessBuilder(::java::util::List *);
+ ProcessBuilder(JArray< ::java::lang::String * > *);
+ ::java::util::List * command();
+ ::java::lang::ProcessBuilder * command(::java::util::List *);
+ ::java::lang::ProcessBuilder * command(JArray< ::java::lang::String * > *);
+ ::java::io::File * directory();
+ ::java::lang::ProcessBuilder * directory(::java::io::File *);
+ ::java::util::Map * environment();
+ jboolean redirectErrorStream();
+ ::java::lang::ProcessBuilder * redirectErrorStream(jboolean);
+ ::java::lang::Process * start();
+private:
+ ::java::io::File * __attribute__((aligned(__alignof__( ::java::lang::Object)))) directory__;
+ ::java::util::List * command__;
+ ::java::util::Map * environment__;
+ jboolean redirect;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ProcessBuilder__
diff --git a/gcc-4.8/libjava/java/lang/Readable.h b/gcc-4.8/libjava/java/lang/Readable.h
new file mode 100644
index 000000000..d8e7d2185
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Readable.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Readable__
+#define __java_lang_Readable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class CharBuffer;
+ }
+ }
+}
+
+class java::lang::Readable : public ::java::lang::Object
+{
+
+public:
+ virtual jint read(::java::nio::CharBuffer *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Readable__
diff --git a/gcc-4.8/libjava/java/lang/ReflectiveOperationException.h b/gcc-4.8/libjava/java/lang/ReflectiveOperationException.h
new file mode 100644
index 000000000..3a6a69821
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ReflectiveOperationException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ReflectiveOperationException__
+#define __java_lang_ReflectiveOperationException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::lang::ReflectiveOperationException : public ::java::lang::Exception
+{
+
+public:
+ ReflectiveOperationException();
+ ReflectiveOperationException(::java::lang::String *);
+ ReflectiveOperationException(::java::lang::String *, ::java::lang::Throwable *);
+ ReflectiveOperationException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 123456789LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ReflectiveOperationException__
diff --git a/gcc-4.8/libjava/java/lang/Runnable.h b/gcc-4.8/libjava/java/lang/Runnable.h
new file mode 100644
index 000000000..ba5985cbf
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Runnable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Runnable__
+#define __java_lang_Runnable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Runnable : public ::java::lang::Object
+{
+
+public:
+ virtual void run() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Runnable__
diff --git a/gcc-4.8/libjava/java/lang/Runtime.h b/gcc-4.8/libjava/java/lang/Runtime.h
new file mode 100644
index 000000000..4679cc0b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Runtime.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Runtime__
+#define __java_lang_Runtime__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::Runtime : public ::java::lang::Object
+{
+
+ Runtime();
+public:
+ static ::java::lang::Runtime * getRuntime();
+ virtual void exit(jint);
+public: // actually package-private
+ static void exitNoChecksAccessor(jint);
+private:
+ void exitNoChecks(jint);
+public: // actually package-private
+ virtual jboolean runShutdownHooks();
+public:
+ virtual void addShutdownHook(::java::lang::Thread *);
+ virtual jboolean removeShutdownHook(::java::lang::Thread *);
+ virtual void halt(jint);
+ static void runFinalizersOnExit(jboolean);
+ virtual ::java::lang::Process * exec(::java::lang::String *);
+ virtual ::java::lang::Process * exec(::java::lang::String *, JArray< ::java::lang::String * > *);
+ virtual ::java::lang::Process * exec(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::io::File *);
+ virtual ::java::lang::Process * exec(JArray< ::java::lang::String * > *);
+ virtual ::java::lang::Process * exec(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *);
+ virtual ::java::lang::Process * exec(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *);
+ virtual jint availableProcessors();
+ virtual jlong freeMemory();
+ virtual jlong totalMemory();
+ virtual jlong maxMemory();
+ virtual void gc();
+ virtual void runFinalization();
+ virtual void traceInstructions(jboolean);
+ virtual void traceMethodCalls(jboolean);
+ virtual void load(::java::lang::String *);
+ virtual void loadLibrary(::java::lang::String *);
+ virtual ::java::io::InputStream * getLocalizedInputStream(::java::io::InputStream *);
+ virtual ::java::io::OutputStream * getLocalizedOutputStream(::java::io::OutputStream *);
+public: // actually package-private
+ virtual void exitInternal(jint);
+ virtual void _load(::java::lang::String *, jboolean);
+ virtual jboolean loadLibraryInternal(::java::lang::String *);
+private:
+ static void init();
+ void runFinalizationForExit();
+public: // actually package-private
+ static ::java::lang::String * nativeGetLibname(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::Process * execInternal(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *);
+private:
+ JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) libpath;
+ ::java::lang::Thread * exitSequence;
+ ::java::util::Set * shutdownHooks;
+ jboolean finalizeOnExit;
+ static ::java::lang::Runtime * current;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Runtime__
diff --git a/gcc-4.8/libjava/java/lang/Runtime.java b/gcc-4.8/libjava/java/lang/Runtime.java
new file mode 100644
index 000000000..3466f19f2
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Runtime.java
@@ -0,0 +1,747 @@
+/* Runtime.java -- access to the VM process
+ Copyright (C) 1998, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang;
+
+import gnu.classpath.SystemProperties;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+/**
+ * Runtime represents the Virtual Machine.
+ *
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Jeroen Frijters
+ */
+// No idea why this class isn't final, since you can't build a subclass!
+public class Runtime
+{
+ /**
+ * The library path, to search when loading libraries. We can also safely use
+ * this as a lock for synchronization.
+ */
+ private final String[] libpath;
+
+ static
+ {
+ init();
+ }
+
+ /**
+ * The thread that started the exit sequence. Access to this field must
+ * be thread-safe; lock on libpath to avoid deadlock with user code.
+ * <code>runFinalization()</code> may want to look at this to see if ALL
+ * finalizers should be run, because the virtual machine is about to halt.
+ */
+ private Thread exitSequence;
+
+ /**
+ * All shutdown hooks. This is initialized lazily, and set to null once all
+ * shutdown hooks have run. Access to this field must be thread-safe; lock
+ * on libpath to avoid deadlock with user code.
+ */
+ private Set shutdownHooks;
+
+ /** True if we should finalize on exit. */
+ private boolean finalizeOnExit;
+
+ /**
+ * The one and only runtime instance.
+ */
+ private static final Runtime current = new Runtime();
+
+ /**
+ * Not instantiable by a user, this should only create one instance.
+ */
+ private Runtime()
+ {
+ if (current != null)
+ throw new InternalError("Attempt to recreate Runtime");
+
+ // We don't use libpath in the libgcj implementation. We still
+ // set it to something to allow the various synchronizations to
+ // work.
+ libpath = new String[0];
+ }
+
+ /**
+ * Get the current Runtime object for this JVM. This is necessary to access
+ * the many instance methods of this class.
+ *
+ * @return the current Runtime object
+ */
+ public static Runtime getRuntime()
+ {
+ return current;
+ }
+
+ /**
+ * Exit the Java runtime. This method will either throw a SecurityException
+ * or it will never return. The status code is returned to the system; often
+ * a non-zero status code indicates an abnormal exit. Of course, there is a
+ * security check, <code>checkExit(status)</code>.
+ *
+ * <p>First, all shutdown hooks are run, in unspecified order, and
+ * concurrently. Next, if finalization on exit has been enabled, all pending
+ * finalizers are run. Finally, the system calls <code>halt</code>.</p>
+ *
+ * <p>If this is run a second time after shutdown has already started, there
+ * are two actions. If shutdown hooks are still executing, it blocks
+ * indefinitely. Otherwise, if the status is nonzero it halts immediately;
+ * if it is zero, it blocks indefinitely. This is typically called by
+ * <code>System.exit</code>.</p>
+ *
+ * @param status the status to exit with
+ * @throws SecurityException if permission is denied
+ * @see #addShutdownHook(Thread)
+ * @see #runFinalizersOnExit(boolean)
+ * @see #runFinalization()
+ * @see #halt(int)
+ */
+ public void exit(int status)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkExit(status);
+ exitNoChecks(status);
+ }
+
+ // Accessor to avoid adding a vtable slot.
+ static void exitNoChecksAccessor(int status)
+ {
+ current.exitNoChecks(status);
+ }
+
+ // Private since we can't add a vtable slot in 4.1.x.
+ private void exitNoChecks(int status)
+ {
+ if (runShutdownHooks())
+ exitInternal(status);
+
+ // Someone else already called runShutdownHooks().
+ // Make sure we are not/no longer in the shutdownHooks set.
+ // And wait till the thread that is calling runShutdownHooks() finishes.
+ synchronized (libpath)
+ {
+ if (shutdownHooks != null)
+ {
+ shutdownHooks.remove(Thread.currentThread());
+ // Interrupt the exit sequence thread, in case it was waiting
+ // inside a join on our thread.
+ exitSequence.interrupt();
+ // Shutdown hooks are still running, so we clear status to
+ // make sure we don't halt.
+ status = 0;
+ }
+ }
+
+ // If exit() is called again after the shutdown hooks have run, but
+ // while finalization for exit is going on and the status is non-zero
+ // we halt immediately.
+ if (status != 0)
+ exitInternal(status);
+
+ while (true)
+ try
+ {
+ exitSequence.join();
+ }
+ catch (InterruptedException e)
+ {
+ // Ignore, we've suspended indefinitely to let all shutdown
+ // hooks complete, and to let any non-zero exits through, because
+ // this is a duplicate call to exit(0).
+ }
+ }
+
+ /**
+ * On first invocation, run all the shutdown hooks and return true.
+ * Any subsequent invocations will simply return false.
+ * Note that it is package accessible so that VMRuntime can call it
+ * when VM exit is not triggered by a call to Runtime.exit().
+ *
+ * @return was the current thread the first one to call this method?
+ */
+ boolean runShutdownHooks()
+ {
+ boolean first = false;
+ synchronized (libpath) // Synch on libpath, not this, to avoid deadlock.
+ {
+ if (exitSequence == null)
+ {
+ first = true;
+ exitSequence = Thread.currentThread();
+ if (shutdownHooks != null)
+ {
+ Iterator i = shutdownHooks.iterator();
+ while (i.hasNext()) // Start all shutdown hooks.
+ try
+ {
+ ((Thread) i.next()).start();
+ }
+ catch (IllegalThreadStateException e)
+ {
+ i.remove();
+ }
+ }
+ }
+ }
+ if (first)
+ {
+ if (shutdownHooks != null)
+ {
+ // Check progress of all shutdown hooks. As a hook completes,
+ // remove it from the set. If a hook calls exit, it removes
+ // itself from the set, then waits indefinitely on the
+ // exitSequence thread. Once the set is empty, set it to null to
+ // signal all finalizer threads that halt may be called.
+ while (true)
+ {
+ Thread[] hooks;
+ synchronized (libpath)
+ {
+ hooks = new Thread[shutdownHooks.size()];
+ shutdownHooks.toArray(hooks);
+ }
+ if (hooks.length == 0)
+ break;
+ for (int i = 0; i < hooks.length; i++)
+ {
+ try
+ {
+ synchronized (libpath)
+ {
+ if (!shutdownHooks.contains(hooks[i]))
+ continue;
+ }
+ hooks[i].join();
+ synchronized (libpath)
+ {
+ shutdownHooks.remove(hooks[i]);
+ }
+ }
+ catch (InterruptedException x)
+ {
+ // continue waiting on the next thread
+ }
+ }
+ }
+ synchronized (libpath)
+ {
+ shutdownHooks = null;
+ }
+ }
+ // Run finalization on all finalizable objects (even if they are
+ // still reachable).
+ runFinalizationForExit();
+ }
+ return first;
+ }
+
+ /**
+ * Register a new shutdown hook. This is invoked when the program exits
+ * normally (because all non-daemon threads ended, or because
+ * <code>System.exit</code> was invoked), or when the user terminates
+ * the virtual machine (such as by typing ^C, or logging off). There is
+ * a security check to add hooks,
+ * <code>RuntimePermission("shutdownHooks")</code>.
+ *
+ * <p>The hook must be an initialized, but unstarted Thread. The threads
+ * are run concurrently, and started in an arbitrary order; and user
+ * threads or daemons may still be running. Once shutdown hooks have
+ * started, they must all complete, or else you must use <code>halt</code>,
+ * to actually finish the shutdown sequence. Attempts to modify hooks
+ * after shutdown has started result in IllegalStateExceptions.</p>
+ *
+ * <p>It is imperative that you code shutdown hooks defensively, as you
+ * do not want to deadlock, and have no idea what other hooks will be
+ * running concurrently. It is also a good idea to finish quickly, as the
+ * virtual machine really wants to shut down!</p>
+ *
+ * <p>There are no guarantees that such hooks will run, as there are ways
+ * to forcibly kill a process. But in such a drastic case, shutdown hooks
+ * would do little for you in the first place.</p>
+ *
+ * @param hook an initialized, unstarted Thread
+ * @throws IllegalArgumentException if the hook is already registered or run
+ * @throws IllegalStateException if the virtual machine is already in
+ * the shutdown sequence
+ * @throws SecurityException if permission is denied
+ * @since 1.3
+ * @see #removeShutdownHook(Thread)
+ * @see #exit(int)
+ * @see #halt(int)
+ */
+ public void addShutdownHook(Thread hook)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("shutdownHooks"));
+ if (hook.isAlive() || hook.getThreadGroup() == null)
+ throw new IllegalArgumentException("The hook thread " + hook + " must not have been already run or started");
+ synchronized (libpath)
+ {
+ if (exitSequence != null)
+ throw new IllegalStateException("The Virtual Machine is exiting. It is not possible anymore to add any hooks");
+ if (shutdownHooks == null)
+ shutdownHooks = new HashSet(); // Lazy initialization.
+ if (! shutdownHooks.add(hook))
+ throw new IllegalArgumentException(hook.toString() + " had already been inserted");
+ }
+ }
+
+ /**
+ * De-register a shutdown hook. As when you registered it, there is a
+ * security check to remove hooks,
+ * <code>RuntimePermission("shutdownHooks")</code>.
+ *
+ * @param hook the hook to remove
+ * @return true if the hook was successfully removed, false if it was not
+ * registered in the first place
+ * @throws IllegalStateException if the virtual machine is already in
+ * the shutdown sequence
+ * @throws SecurityException if permission is denied
+ * @since 1.3
+ * @see #addShutdownHook(Thread)
+ * @see #exit(int)
+ * @see #halt(int)
+ */
+ public boolean removeShutdownHook(Thread hook)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("shutdownHooks"));
+ synchronized (libpath)
+ {
+ if (exitSequence != null)
+ throw new IllegalStateException();
+ if (shutdownHooks != null)
+ return shutdownHooks.remove(hook);
+ }
+ return false;
+ }
+
+ /**
+ * Forcibly terminate the virtual machine. This call never returns. It is
+ * much more severe than <code>exit</code>, as it bypasses all shutdown
+ * hooks and initializers. Use caution in calling this! Of course, there is
+ * a security check, <code>checkExit(status)</code>.
+ *
+ * @param status the status to exit with
+ * @throws SecurityException if permission is denied
+ * @since 1.3
+ * @see #exit(int)
+ * @see #addShutdownHook(Thread)
+ */
+ public void halt(int status)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkExit(status);
+ exitInternal(status);
+ }
+
+ /**
+ * Tell the VM to run the finalize() method on every single Object before
+ * it exits. Note that the JVM may still exit abnormally and not perform
+ * this, so you still don't have a guarantee. And besides that, this is
+ * inherently unsafe in multi-threaded code, as it may result in deadlock
+ * as multiple threads compete to manipulate objects. This value defaults to
+ * <code>false</code>. There is a security check, <code>checkExit(0)</code>.
+ *
+ * @param finalizeOnExit whether to finalize all Objects on exit
+ * @throws SecurityException if permission is denied
+ * @see #exit(int)
+ * @see #gc()
+ * @since 1.1
+ * @deprecated never rely on finalizers to do a clean, thread-safe,
+ * mop-up from your code
+ */
+ public static void runFinalizersOnExit(boolean finalizeOnExit)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkExit(0);
+ current.finalizeOnExit = finalizeOnExit;
+ }
+
+ /**
+ * Create a new subprocess with the specified command line. Calls
+ * <code>exec(cmdline, null, null)</code>. A security check is performed,
+ * <code>checkExec</code>.
+ *
+ * @param cmdline the command to call
+ * @return the Process object
+ * @throws SecurityException if permission is denied
+ * @throws IOException if an I/O error occurs
+ * @throws NullPointerException if cmdline is null
+ * @throws IndexOutOfBoundsException if cmdline is ""
+ */
+ public Process exec(String cmdline) throws IOException
+ {
+ return exec(cmdline, null, null);
+ }
+
+ /**
+ * Create a new subprocess with the specified command line and environment.
+ * If the environment is null, the process inherits the environment of
+ * this process. Calls <code>exec(cmdline, env, null)</code>. A security
+ * check is performed, <code>checkExec</code>.
+ *
+ * @param cmdline the command to call
+ * @param env the environment to use, in the format name=value
+ * @return the Process object
+ * @throws SecurityException if permission is denied
+ * @throws IOException if an I/O error occurs
+ * @throws NullPointerException if cmdline is null, or env has null entries
+ * @throws IndexOutOfBoundsException if cmdline is ""
+ */
+ public Process exec(String cmdline, String[] env) throws IOException
+ {
+ return exec(cmdline, env, null);
+ }
+
+ /**
+ * Create a new subprocess with the specified command line, environment, and
+ * working directory. If the environment is null, the process inherits the
+ * environment of this process. If the directory is null, the process uses
+ * the current working directory. This splits cmdline into an array, using
+ * the default StringTokenizer, then calls
+ * <code>exec(cmdArray, env, dir)</code>. A security check is performed,
+ * <code>checkExec</code>.
+ *
+ * @param cmdline the command to call
+ * @param env the environment to use, in the format name=value
+ * @param dir the working directory to use
+ * @return the Process object
+ * @throws SecurityException if permission is denied
+ * @throws IOException if an I/O error occurs
+ * @throws NullPointerException if cmdline is null, or env has null entries
+ * @throws IndexOutOfBoundsException if cmdline is ""
+ * @since 1.3
+ */
+ public Process exec(String cmdline, String[] env, File dir)
+ throws IOException
+ {
+ StringTokenizer t = new StringTokenizer(cmdline);
+ String[] cmd = new String[t.countTokens()];
+ for (int i = 0; i < cmd.length; i++)
+ cmd[i] = t.nextToken();
+ return exec(cmd, env, dir);
+ }
+
+ /**
+ * Create a new subprocess with the specified command line, already
+ * tokenized. Calls <code>exec(cmd, null, null)</code>. A security check
+ * is performed, <code>checkExec</code>.
+ *
+ * @param cmd the command to call
+ * @return the Process object
+ * @throws SecurityException if permission is denied
+ * @throws IOException if an I/O error occurs
+ * @throws NullPointerException if cmd is null, or has null entries
+ * @throws IndexOutOfBoundsException if cmd is length 0
+ */
+ public Process exec(String[] cmd) throws IOException
+ {
+ return exec(cmd, null, null);
+ }
+
+ /**
+ * Create a new subprocess with the specified command line, already
+ * tokenized, and specified environment. If the environment is null, the
+ * process inherits the environment of this process. Calls
+ * <code>exec(cmd, env, null)</code>. A security check is performed,
+ * <code>checkExec</code>.
+ *
+ * @param cmd the command to call
+ * @param env the environment to use, in the format name=value
+ * @return the Process object
+ * @throws SecurityException if permission is denied
+ * @throws IOException if an I/O error occurs
+ * @throws NullPointerException if cmd is null, or cmd or env has null
+ * entries
+ * @throws IndexOutOfBoundsException if cmd is length 0
+ */
+ public Process exec(String[] cmd, String[] env) throws IOException
+ {
+ return exec(cmd, env, null);
+ }
+
+ /**
+ * Create a new subprocess with the specified command line, already
+ * tokenized, and the specified environment and working directory. If the
+ * environment is null, the process inherits the environment of this
+ * process. If the directory is null, the process uses the current working
+ * directory. A security check is performed, <code>checkExec</code>.
+ *
+ * @param cmd the command to call
+ * @param env the environment to use, in the format name=value
+ * @param dir the working directory to use
+ * @return the Process object
+ * @throws SecurityException if permission is denied
+ * @throws IOException if an I/O error occurs
+ * @throws NullPointerException if cmd is null, or cmd or env has null
+ * entries
+ * @throws IndexOutOfBoundsException if cmd is length 0
+ * @since 1.3
+ */
+ public Process exec(String[] cmd, String[] env, File dir)
+ throws IOException
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkExec(cmd[0]);
+ return execInternal(cmd, env, dir);
+ }
+
+ /**
+ * Returns the number of available processors currently available to the
+ * virtual machine. This number may change over time; so a multi-processor
+ * program want to poll this to determine maximal resource usage.
+ *
+ * @return the number of processors available, at least 1
+ */
+ public native int availableProcessors();
+
+ /**
+ * Find out how much memory is still free for allocating Objects on the heap.
+ *
+ * @return the number of bytes of free memory for more Objects
+ */
+ public native long freeMemory();
+
+ /**
+ * Find out how much memory total is available on the heap for allocating
+ * Objects.
+ *
+ * @return the total number of bytes of memory for Objects
+ */
+ public native long totalMemory();
+
+ /**
+ * Returns the maximum amount of memory the virtual machine can attempt to
+ * use. This may be <code>Long.MAX_VALUE</code> if there is no inherent
+ * limit (or if you really do have a 8 exabyte memory!).
+ *
+ * @return the maximum number of bytes the virtual machine will attempt
+ * to allocate
+ */
+ public native long maxMemory();
+
+ /**
+ * Run the garbage collector. This method is more of a suggestion than
+ * anything. All this method guarantees is that the garbage collector will
+ * have "done its best" by the time it returns. Notice that garbage
+ * collection takes place even without calling this method.
+ */
+ public native void gc();
+
+ /**
+ * Run finalization on all Objects that are waiting to be finalized. Again,
+ * a suggestion, though a stronger one than {@link #gc()}. This calls the
+ * <code>finalize</code> method of all objects waiting to be collected.
+ *
+ * @see #finalize()
+ */
+ public native void runFinalization();
+
+ /**
+ * Tell the VM to trace every bytecode instruction that executes (print out
+ * a trace of it). No guarantees are made as to where it will be printed,
+ * and the VM is allowed to ignore this request.
+ *
+ * @param on whether to turn instruction tracing on
+ */
+ public native void traceInstructions(boolean on);
+
+ /**
+ * Tell the VM to trace every method call that executes (print out a trace
+ * of it). No guarantees are made as to where it will be printed, and the
+ * VM is allowed to ignore this request.
+ *
+ * @param on whether to turn method tracing on
+ */
+ public native void traceMethodCalls(boolean on);
+
+ /**
+ * Load a native library using the system-dependent filename. This is similar
+ * to loadLibrary, except the only name mangling done is inserting "_g"
+ * before the final ".so" if the VM was invoked by the name "java_g". There
+ * may be a security check, of <code>checkLink</code>.
+ *
+ * @param filename the file to load
+ * @throws SecurityException if permission is denied
+ * @throws UnsatisfiedLinkError if the library is not found
+ */
+ public void load(String filename)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkLink(filename);
+ _load(filename, false);
+ }
+
+ /**
+ * Load a native library using a system-independent "short name" for the
+ * library. It will be transformed to a correct filename in a
+ * system-dependent manner (for example, in Windows, "mylib" will be turned
+ * into "mylib.dll"). This is done as follows: if the context that called
+ * load has a ClassLoader cl, then <code>cl.findLibrary(libpath)</code> is
+ * used to convert the name. If that result was null, or there was no class
+ * loader, this searches each directory of the system property
+ * <code>java.library.path</code> for a file named
+ * <code>System.mapLibraryName(libname)</code>. There may be a security
+ * check, of <code>checkLink</code>.
+ *
+ * @param libname the library to load
+ *
+ * @throws SecurityException if permission is denied
+ * @throws UnsatisfiedLinkError if the library is not found
+ *
+ * @see System#mapLibraryName(String)
+ * @see ClassLoader#findLibrary(String)
+ */
+ public void loadLibrary(String libname)
+ {
+ // This is different from the Classpath implementation, but I
+ // believe it is more correct.
+ SecurityManager sm = SecurityManager.current; // Be thread-safe!
+ if (sm != null)
+ sm.checkLink(libname);
+ _load(libname, true);
+ }
+
+ /**
+ * Return a localized version of this InputStream, meaning all characters
+ * are localized before they come out the other end.
+ *
+ * @param in the stream to localize
+ * @return the localized stream
+ * @deprecated <code>InputStreamReader</code> is the preferred way to read
+ * local encodings
+ */
+ public InputStream getLocalizedInputStream(InputStream in)
+ {
+ return in;
+ }
+
+ /**
+ * Return a localized version of this OutputStream, meaning all characters
+ * are localized before they are sent to the other end.
+ *
+ * @param out the stream to localize
+ * @return the localized stream
+ * @deprecated <code>OutputStreamWriter</code> is the preferred way to write
+ * local encodings
+ */
+ public OutputStream getLocalizedOutputStream(OutputStream out)
+ {
+ return out;
+ }
+
+ /**
+ * Native method that actually shuts down the virtual machine.
+ *
+ * @param status the status to end the process with
+ */
+ native void exitInternal(int status);
+
+ /**
+ * Load a file. If it has already been loaded, do nothing. The name has
+ * already been mapped to a true filename.
+ *
+ * @param filename the file to load
+ * @param do_search True if we should search the load path for the file
+ */
+ native void _load(String filename, boolean do_search);
+
+ /**
+ *This is a helper function for the ClassLoader which can load
+ * compiled libraries. Returns true if library (which is just the
+ * base name -- path searching is done by this function) was loaded,
+ * false otherwise.
+ */
+ native boolean loadLibraryInternal(String libname);
+
+ /**
+ * A helper for Runtime static initializer which does some internal native
+ * initialization.
+ */
+ private static native void init ();
+
+ /**
+ * Run finalizers when exiting.
+ */
+ private native void runFinalizationForExit();
+
+ /**
+ * Map a system-independent "short name" to the full file name, and append
+ * it to the path.
+ * XXX This method is being replaced by System.mapLibraryName.
+ *
+ * @param pathname the path
+ * @param libname the short version of the library name
+ * @return the full filename
+ */
+ static native String nativeGetLibname(String pathname, String libname);
+
+ /**
+ * Execute a process. The command line has already been tokenized, and
+ * the environment should contain name=value mappings. If directory is null,
+ * use the current working directory; otherwise start the process in that
+ * directory.
+ *
+ * @param cmd the non-null command tokens
+ * @param env the non-null environment setup
+ * @param dir the directory to use, may be null
+ * @return the newly created process
+ * @throws NullPointerException if cmd or env have null elements
+ * @throws IOException if the exec fails
+ */
+ native Process execInternal(String[] cmd, String[] env, File dir)
+ throws IOException;
+} // class Runtime
diff --git a/gcc-4.8/libjava/java/lang/RuntimeException.h b/gcc-4.8/libjava/java/lang/RuntimeException.h
new file mode 100644
index 000000000..0bce089c7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/RuntimeException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_RuntimeException__
+#define __java_lang_RuntimeException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::lang::RuntimeException : public ::java::lang::Exception
+{
+
+public:
+ RuntimeException();
+ RuntimeException(::java::lang::String *);
+ RuntimeException(::java::lang::String *, ::java::lang::Throwable *);
+ RuntimeException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -7034897190745766939LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_RuntimeException__
diff --git a/gcc-4.8/libjava/java/lang/RuntimePermission.h b/gcc-4.8/libjava/java/lang/RuntimePermission.h
new file mode 100644
index 000000000..8b4817545
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/RuntimePermission.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_RuntimePermission__
+#define __java_lang_RuntimePermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+
+class java::lang::RuntimePermission : public ::java::security::BasicPermission
+{
+
+public:
+ RuntimePermission(::java::lang::String *);
+ RuntimePermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7399184964622342223LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_RuntimePermission__
diff --git a/gcc-4.8/libjava/java/lang/SecurityException.h b/gcc-4.8/libjava/java/lang/SecurityException.h
new file mode 100644
index 000000000..3b19ba203
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/SecurityException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_SecurityException__
+#define __java_lang_SecurityException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::SecurityException : public ::java::lang::RuntimeException
+{
+
+public:
+ SecurityException();
+ SecurityException(::java::lang::String *);
+ SecurityException(::java::lang::String *, ::java::lang::Throwable *);
+ SecurityException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 6878364983674394167LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_SecurityException__
diff --git a/gcc-4.8/libjava/java/lang/SecurityManager$1.h b/gcc-4.8/libjava/java/lang/SecurityManager$1.h
new file mode 100644
index 000000000..4e5787541
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/SecurityManager$1.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_SecurityManager$1__
+#define __java_lang_SecurityManager$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::SecurityManager$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SecurityManager$1(::java::lang::SecurityManager *, ::java::lang::String *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::lang::SecurityManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ ::java::lang::String * val$restriction;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_SecurityManager$1__
diff --git a/gcc-4.8/libjava/java/lang/SecurityManager.h b/gcc-4.8/libjava/java/lang/SecurityManager.h
new file mode 100644
index 000000000..8abaa6a7e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/SecurityManager.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_SecurityManager__
+#define __java_lang_SecurityManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ }
+ namespace security
+ {
+ class Permission;
+ }
+ }
+}
+
+class java::lang::SecurityManager : public ::java::lang::Object
+{
+
+public:
+ SecurityManager();
+ virtual jboolean getInCheck();
+public: // actually protected
+ virtual JArray< ::java::lang::Class * > * getClassContext();
+ virtual ::java::lang::ClassLoader * currentClassLoader();
+ virtual ::java::lang::Class * currentLoadedClass();
+ virtual jint classDepth(::java::lang::String *);
+ virtual jint classLoaderDepth();
+ virtual jboolean inClass(::java::lang::String *);
+ virtual jboolean inClassLoader();
+public:
+ virtual ::java::lang::Object * getSecurityContext();
+ virtual void checkPermission(::java::security::Permission *);
+ virtual void checkPermission(::java::security::Permission *, ::java::lang::Object *);
+ virtual void checkCreateClassLoader();
+ virtual void checkAccess(::java::lang::Thread *);
+ virtual void checkAccess(::java::lang::ThreadGroup *);
+ virtual void checkExit(jint);
+ virtual void checkExec(::java::lang::String *);
+ virtual void checkLink(::java::lang::String *);
+ virtual void checkRead(::java::io::FileDescriptor *);
+ virtual void checkRead(::java::lang::String *);
+ virtual void checkRead(::java::lang::String *, ::java::lang::Object *);
+ virtual void checkWrite(::java::io::FileDescriptor *);
+ virtual void checkWrite(::java::lang::String *);
+ virtual void checkDelete(::java::lang::String *);
+ virtual void checkConnect(::java::lang::String *, jint);
+ virtual void checkConnect(::java::lang::String *, jint, ::java::lang::Object *);
+ virtual void checkListen(jint);
+ virtual void checkAccept(::java::lang::String *, jint);
+ virtual void checkMulticast(::java::net::InetAddress *);
+ virtual void checkMulticast(::java::net::InetAddress *, jbyte);
+ virtual void checkPropertiesAccess();
+ virtual void checkPropertyAccess(::java::lang::String *);
+ virtual jboolean checkTopLevelWindow(::java::lang::Object *);
+ virtual void checkPrintJobAccess();
+ virtual void checkSystemClipboardAccess();
+ virtual void checkAwtEventQueueAccess();
+ virtual void checkPackageAccess(::java::lang::String *);
+ virtual void checkPackageDefinition(::java::lang::String *);
+ virtual void checkSetFactory();
+ virtual void checkMemberAccess(::java::lang::Class *, jint);
+ virtual void checkSecurityAccess(::java::lang::String *);
+ virtual ::java::lang::ThreadGroup * getThreadGroup();
+public: // actually package-private
+ virtual void checkPackageList(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::SecurityManager * volatile current;
+public: // actually protected
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) inCheck;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_SecurityManager__
diff --git a/gcc-4.8/libjava/java/lang/Short.h b/gcc-4.8/libjava/java/lang/Short.h
new file mode 100644
index 000000000..48a397369
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Short.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Short__
+#define __java_lang_Short__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+#include <gcj/array.h>
+
+
+class java::lang::Short : public ::java::lang::Number
+{
+
+public:
+ Short(jshort);
+ Short(::java::lang::String *);
+ static ::java::lang::String * toString(jshort);
+ static jshort parseShort(::java::lang::String *);
+ static jshort parseShort(::java::lang::String *, jint);
+ static ::java::lang::Short * valueOf(::java::lang::String *, jint);
+ static ::java::lang::Short * valueOf(::java::lang::String *);
+ static ::java::lang::Short * valueOf(jshort);
+ static ::java::lang::Short * decode(::java::lang::String *);
+ jbyte byteValue();
+ jshort shortValue();
+ jint intValue();
+ jlong longValue();
+ jfloat floatValue();
+ jdouble doubleValue();
+ ::java::lang::String * toString();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ jint Short$compareTo(::java::lang::Short *);
+ static jint compare(jshort, jshort);
+ static jshort reverseBytes(jshort);
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 7515723908773894738LL;
+public:
+ static const jshort MIN_VALUE = -32768;
+ static const jshort MAX_VALUE = 32767;
+ static ::java::lang::Class * TYPE;
+ static const jint SIZE = 16;
+private:
+ static const jint MIN_CACHE = -128;
+ static const jint MAX_CACHE = 127;
+ static JArray< ::java::lang::Short * > * shortCache;
+ jshort __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Short__
diff --git a/gcc-4.8/libjava/java/lang/StackOverflowError.h b/gcc-4.8/libjava/java/lang/StackOverflowError.h
new file mode 100644
index 000000000..6d1e06f65
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StackOverflowError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_StackOverflowError__
+#define __java_lang_StackOverflowError__
+
+#pragma interface
+
+#include <java/lang/VirtualMachineError.h>
+
+class java::lang::StackOverflowError : public ::java::lang::VirtualMachineError
+{
+
+public:
+ StackOverflowError();
+ StackOverflowError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8609175038441759607LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_StackOverflowError__
diff --git a/gcc-4.8/libjava/java/lang/StackTraceElement.h b/gcc-4.8/libjava/java/lang/StackTraceElement.h
new file mode 100644
index 000000000..7adf3dc31
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StackTraceElement.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_StackTraceElement__
+#define __java_lang_StackTraceElement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::StackTraceElement : public ::java::lang::Object
+{
+
+public: // actually package-private
+ StackTraceElement(::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *, jboolean);
+public:
+ StackTraceElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint);
+ ::java::lang::String * getFileName();
+ jint getLineNumber();
+ ::java::lang::String * getClassName();
+ ::java::lang::String * getMethodName();
+ jboolean isNativeMethod();
+ ::java::lang::String * toString();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+private:
+ static jboolean equals(::java::lang::Object *, ::java::lang::Object *);
+ static jint hashCode(::java::lang::Object *);
+ static const jlong serialVersionUID = 6992337162326171013LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fileName;
+ jint lineNumber;
+ ::java::lang::String * declaringClass;
+ ::java::lang::String * methodName;
+ jboolean isNative;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_StackTraceElement__
diff --git a/gcc-4.8/libjava/java/lang/StrictMath.h b/gcc-4.8/libjava/java/lang/StrictMath.h
new file mode 100644
index 000000000..d37d5d668
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StrictMath.h
@@ -0,0 +1,203 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_StrictMath__
+#define __java_lang_StrictMath__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::StrictMath : public ::java::lang::Object
+{
+
+ StrictMath();
+public:
+ static jint abs(jint);
+ static jlong abs(jlong);
+ static jfloat abs(jfloat);
+ static jdouble abs(jdouble);
+ static jint min(jint, jint);
+ static jlong min(jlong, jlong);
+ static jfloat min(jfloat, jfloat);
+ static jdouble min(jdouble, jdouble);
+ static jint max(jint, jint);
+ static jlong max(jlong, jlong);
+ static jfloat max(jfloat, jfloat);
+ static jdouble max(jdouble, jdouble);
+ static jdouble sin(jdouble);
+ static jdouble cos(jdouble);
+ static jdouble tan(jdouble);
+ static jdouble asin(jdouble);
+ static jdouble acos(jdouble);
+ static jdouble atan(jdouble);
+ static jdouble atan2(jdouble, jdouble);
+ static jdouble sinh(jdouble);
+ static jdouble cosh(jdouble);
+ static jdouble tanh(jdouble);
+private:
+ static jlong getLowDWord(jlong);
+ static jlong getHighDWord(jlong);
+ static jdouble buildDouble(jlong, jlong);
+public:
+ static jdouble cbrt(jdouble);
+ static jdouble exp(jdouble);
+ static jdouble expm1(jdouble);
+ static jdouble log(jdouble);
+ static jdouble sqrt(jdouble);
+ static jdouble pow(jdouble, jdouble);
+ static jdouble IEEEremainder(jdouble, jdouble);
+ static jdouble ceil(jdouble);
+ static jdouble floor(jdouble);
+ static jdouble rint(jdouble);
+ static jint round(jfloat);
+ static jlong round(jdouble);
+ static jdouble random();
+ static jdouble toRadians(jdouble);
+ static jdouble toDegrees(jdouble);
+private:
+ static jint remPiOver2(jdouble, JArray< jdouble > *);
+ static jint remPiOver2(JArray< jdouble > *, JArray< jdouble > *, jint, jint);
+ static jdouble scale(jdouble, jint);
+ static jdouble sin(jdouble, jdouble);
+ static jdouble cos(jdouble, jdouble);
+ static jdouble tan(jdouble, jdouble, jboolean);
+public:
+ static jdouble signum(jdouble);
+ static jfloat signum(jfloat);
+ static jdouble ulp(jdouble);
+ static jfloat ulp(jfloat);
+private:
+ static ::java::util::Random * rand;
+public:
+ static jdouble E;
+ static jdouble PI;
+private:
+ static jdouble TWO_16;
+ static jdouble TWO_20;
+ static jdouble TWO_24;
+ static jdouble TWO_27;
+ static jdouble TWO_28;
+ static jdouble TWO_29;
+ static jdouble TWO_31;
+ static jdouble TWO_49;
+ static jdouble TWO_52;
+ static jdouble TWO_54;
+ static jdouble TWO_57;
+ static jdouble TWO_60;
+ static jdouble TWO_64;
+ static jdouble TWO_66;
+ static jdouble TWO_1023;
+ static JArray< jint > * TWO_OVER_PI;
+ static JArray< jdouble > * PI_OVER_TWO;
+ static jdouble PI_L;
+ static jdouble PIO2_1;
+ static jdouble PIO2_1L;
+ static jdouble PIO2_2;
+ static jdouble PIO2_2L;
+ static jdouble PIO2_3;
+ static jdouble PIO2_3L;
+ static jdouble SQRT_1_5;
+ static jdouble SQRT_2;
+ static jdouble SQRT_3;
+ static jdouble EXP_LIMIT_H;
+ static jdouble EXP_LIMIT_L;
+ static jdouble CP;
+ static jdouble CP_H;
+ static jdouble CP_L;
+ static jdouble LN2;
+ static jdouble LN2_H;
+ static jdouble LN2_L;
+ static jdouble INV_LN2;
+ static jdouble INV_LN2_H;
+ static jdouble INV_LN2_L;
+ static jdouble LG1;
+ static jdouble LG2;
+ static jdouble LG3;
+ static jdouble LG4;
+ static jdouble LG5;
+ static jdouble LG6;
+ static jdouble LG7;
+ static jdouble L1;
+ static jdouble L2;
+ static jdouble L3;
+ static jdouble L4;
+ static jdouble L5;
+ static jdouble L6;
+ static jdouble P1;
+ static jdouble P2;
+ static jdouble P3;
+ static jdouble P4;
+ static jdouble P5;
+ static jdouble DP_H;
+ static jdouble DP_L;
+ static jdouble OVT;
+ static jdouble S1;
+ static jdouble S2;
+ static jdouble S3;
+ static jdouble S4;
+ static jdouble S5;
+ static jdouble S6;
+ static jdouble C1;
+ static jdouble C2;
+ static jdouble C3;
+ static jdouble C4;
+ static jdouble C5;
+ static jdouble C6;
+ static jdouble T0;
+ static jdouble T1;
+ static jdouble T2;
+ static jdouble T3;
+ static jdouble T4;
+ static jdouble T5;
+ static jdouble T6;
+ static jdouble T7;
+ static jdouble T8;
+ static jdouble T9;
+ static jdouble T10;
+ static jdouble T11;
+ static jdouble T12;
+ static jdouble PS0;
+ static jdouble PS1;
+ static jdouble PS2;
+ static jdouble PS3;
+ static jdouble PS4;
+ static jdouble PS5;
+ static jdouble QS1;
+ static jdouble QS2;
+ static jdouble QS3;
+ static jdouble QS4;
+ static jdouble ATAN_0_5H;
+ static jdouble ATAN_0_5L;
+ static jdouble ATAN_1_5H;
+ static jdouble ATAN_1_5L;
+ static jdouble AT0;
+ static jdouble AT1;
+ static jdouble AT2;
+ static jdouble AT3;
+ static jdouble AT4;
+ static jdouble AT5;
+ static jdouble AT6;
+ static jdouble AT7;
+ static jdouble AT8;
+ static jdouble AT9;
+ static jdouble AT10;
+ static const jint CBRT_B1 = 715094163;
+ static const jint CBRT_B2 = 696219795;
+ static jdouble CBRT_C;
+ static jdouble CBRT_D;
+ static jdouble CBRT_E;
+ static jdouble CBRT_F;
+ static jdouble CBRT_G;
+ static jdouble EXPM1_Q1;
+ static jdouble EXPM1_Q2;
+ static jdouble EXPM1_Q3;
+ static jdouble EXPM1_Q4;
+ static jdouble EXPM1_Q5;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_StrictMath__
diff --git a/gcc-4.8/libjava/java/lang/String$CaseInsensitiveComparator.h b/gcc-4.8/libjava/java/lang/String$CaseInsensitiveComparator.h
new file mode 100644
index 000000000..8a1b121bc
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/String$CaseInsensitiveComparator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_String$CaseInsensitiveComparator__
+#define __java_lang_String$CaseInsensitiveComparator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::String$CaseInsensitiveComparator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ String$CaseInsensitiveComparator();
+public:
+ jint String$CaseInsensitiveComparator$compare(::java::lang::String *, ::java::lang::String *);
+ jint compare(::java::lang::Object *, ::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 8575799808933029326LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_String$CaseInsensitiveComparator__
diff --git a/gcc-4.8/libjava/java/lang/String.h b/gcc-4.8/libjava/java/lang/String.h
new file mode 100644
index 000000000..32e0ccdfa
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/String.h
@@ -0,0 +1,148 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_String__
+#define __java_lang_String__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ namespace runtime
+ {
+ class StringBuffer;
+ }
+ }
+ }
+}
+
+jchar* _Jv_GetStringChars (jstring str);
+jstring* _Jv_StringFindSlot (jchar*, jint, jint);
+jstring* _Jv_StringGetSlot (jstring);
+jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);
+jstring _Jv_NewStringLatin1 (const char*, jsize);
+jstring _Jv_AllocString (jsize);
+
+class java::lang::String : public ::java::lang::Object
+{
+
+public:
+ String();
+ String(::java::lang::String *);
+ String(JArray< jchar > *);
+ String(JArray< jchar > *, jint, jint);
+ String(JArray< jbyte > *, jint, jint, jint);
+ String(JArray< jbyte > *, jint);
+ String(JArray< jbyte > *, jint, jint, ::java::lang::String *);
+ String(JArray< jbyte > *, ::java::lang::String *);
+ String(JArray< jbyte > *, jint, jint);
+ String(JArray< jbyte > *);
+ String(::java::lang::StringBuffer *);
+ String(::java::lang::StringBuilder *);
+public: // actually package-private
+ String(JArray< jchar > *, jint, jint, jboolean);
+ String(::gnu::gcj::runtime::StringBuffer *);
+public:
+ jint length();
+ jchar charAt(jint);
+ jint codePointAt(jint);
+ jint codePointBefore(jint);
+ void getChars(jint, jint, JArray< jchar > *, jint);
+ void getBytes(jint, jint, JArray< jbyte > *, jint);
+ JArray< jbyte > * getBytes(::java::lang::String *);
+ JArray< jbyte > * getBytes();
+ jboolean equals(::java::lang::Object *);
+ jboolean contentEquals(::java::lang::StringBuffer *);
+ jboolean contentEquals(::java::lang::CharSequence *);
+ jboolean equalsIgnoreCase(::java::lang::String *);
+ jint String$compareTo(::java::lang::String *);
+private:
+ jint nativeCompareTo(::java::lang::String *);
+public:
+ jint compareToIgnoreCase(::java::lang::String *);
+ jboolean regionMatches(jint, ::java::lang::String *, jint, jint);
+ jboolean regionMatches(jboolean, jint, ::java::lang::String *, jint, jint);
+ jboolean startsWith(::java::lang::String *, jint);
+ jboolean startsWith(::java::lang::String *);
+ jboolean endsWith(::java::lang::String *);
+ jint hashCode();
+ jint indexOf(jint);
+ jint indexOf(jint, jint);
+ jint lastIndexOf(jint);
+ jint lastIndexOf(jint, jint);
+ jint indexOf(::java::lang::String *);
+ jint indexOf(::java::lang::String *, jint);
+ jint lastIndexOf(::java::lang::String *);
+ jint lastIndexOf(::java::lang::String *, jint);
+ ::java::lang::String * substring(jint);
+ ::java::lang::String * substring(jint, jint);
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ ::java::lang::String * concat(::java::lang::String *);
+ ::java::lang::String * replace(jchar, jchar);
+ jboolean matches(::java::lang::String *);
+ ::java::lang::String * replaceFirst(::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * replaceAll(::java::lang::String *, ::java::lang::String *);
+ JArray< ::java::lang::String * > * split(::java::lang::String *, jint);
+ JArray< ::java::lang::String * > * split(::java::lang::String *);
+ ::java::lang::String * toLowerCase(::java::util::Locale *);
+ ::java::lang::String * toLowerCase();
+ ::java::lang::String * toUpperCase(::java::util::Locale *);
+ ::java::lang::String * toUpperCase();
+ ::java::lang::String * trim();
+ ::java::lang::String * toString();
+ JArray< jchar > * toCharArray();
+ static ::java::lang::String * valueOf(::java::lang::Object *);
+ static ::java::lang::String * valueOf(JArray< jchar > *);
+ static ::java::lang::String * valueOf(JArray< jchar > *, jint, jint);
+ static ::java::lang::String * copyValueOf(JArray< jchar > *, jint, jint);
+ static ::java::lang::String * copyValueOf(JArray< jchar > *);
+ static ::java::lang::String * valueOf(jboolean);
+ static ::java::lang::String * valueOf(jchar);
+ static ::java::lang::String * valueOf(jint);
+ static ::java::lang::String * valueOf(jlong);
+ static ::java::lang::String * valueOf(jfloat);
+ static ::java::lang::String * valueOf(jdouble);
+ static ::java::lang::String * format(::java::util::Locale *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ static ::java::lang::String * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ ::java::lang::String * intern();
+ jint codePointCount(jint, jint);
+ jboolean contains(::java::lang::CharSequence *);
+ ::java::lang::String * replace(::java::lang::CharSequence *, ::java::lang::CharSequence *);
+ jint offsetByCodePoints(jint, jint);
+ jboolean isEmpty();
+private:
+ static ::java::lang::String * toString(JArray< jchar > *, jint, jint);
+ void init(JArray< jchar > *, jint, jint, jboolean);
+ void init(JArray< jbyte > *, jint, jint, jint);
+ void init(JArray< jbyte > *, jint, jint, ::java::lang::String *);
+ void init(::gnu::gcj::runtime::StringBuffer *);
+public:
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -6849794470754667710LL;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
+ jint boffset;
+public: // actually package-private
+ jint count;
+private:
+ jint cachedHashCode;
+public:
+ static ::java::util::Comparator * CASE_INSENSITIVE_ORDER;
+ static ::java::lang::Class class$;
+
+ friend jchar* ::_Jv_GetStringChars (jstring str);
+ friend jstring* ::_Jv_StringFindSlot (jchar*, jint, jint);
+ friend jstring* ::_Jv_StringGetSlot (jstring);
+ friend jstring (::_Jv_NewStringUtf8Const) (_Jv_Utf8Const* str);
+ friend jstring (::_Jv_NewStringLatin1) (const char*, jsize);
+ friend jstring (::_Jv_AllocString) (jsize);
+};
+
+#endif // __java_lang_String__
diff --git a/gcc-4.8/libjava/java/lang/String.java b/gcc-4.8/libjava/java/lang/String.java
new file mode 100644
index 000000000..b9ce3c016
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/String.java
@@ -0,0 +1,1457 @@
+/* String.java -- immutable character sequences; the object of string literals
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Comparator;
+import java.text.Collator;
+import java.util.Formatter;
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+/**
+ * Strings represent an immutable set of characters. All String literals
+ * are instances of this class, and two string literals with the same contents
+ * refer to the same String object.
+ *
+ * <p>This class also includes a number of methods for manipulating the
+ * contents of strings (of course, creating a new object if there are any
+ * changes, as String is immutable). Case mapping relies on Unicode 3.0.0
+ * standards, where some character sequences have a different number of
+ * characters in the uppercase version than the lower case.
+ *
+ * <p>Strings are special, in that they are the only object with an overloaded
+ * operator. When you use '+' with at least one String argument, both
+ * arguments have String conversion performed on them, and another String (not
+ * guaranteed to be unique) results.
+ *
+ * <p>String is special-cased when doing data serialization - rather than
+ * listing the fields of this class, a String object is converted to a string
+ * literal in the object stream.
+ *
+ * @author Paul N. Fisher
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Tom Tromey (tromey@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.0
+ * @status updated to 1.4
+ */
+public final class String
+ implements Serializable, Comparable<String>, CharSequence
+{
+ // WARNING: String is a CORE class in the bootstrap cycle. See the comments
+ // in vm/reference/java/lang/Runtime for implications of this fact.
+
+ /**
+ * This is probably not necessary because this class is special cased already
+ * but it will avoid showing up as a discrepancy when comparing SUIDs.
+ */
+ private static final long serialVersionUID = -6849794470754667710L;
+
+ /**
+ * This is the object that holds the characters that make up the
+ * String. It might be a char[], or it could be String. It could
+ * even be `this'. The actual characters can't be located using
+ * pure Java code.
+ * @see #boffset
+ */
+ private Object data;
+
+ /**
+ * This is a <emph>byte</emph> offset of the actual characters from
+ * the start of the character-holding object. Don't use this field
+ * in Java code.
+ */
+ private int boffset;
+
+ /**
+ * Holds the number of characters in value. Package visible for use
+ * by trusted code.
+ */
+ int count;
+
+ /**
+ * Caches the result of hashCode(). If this value is zero, the hashcode
+ * is considered uncached (even if 0 is the correct hash value).
+ */
+ private int cachedHashCode;
+
+ /**
+ * An implementation for {@link #CASE_INSENSITIVE_ORDER}.
+ * This must be {@link Serializable}. The class name is dictated by
+ * compatibility with Sun's JDK.
+ */
+ private static final class CaseInsensitiveComparator
+ implements Comparator<String>, Serializable
+ {
+ /**
+ * Compatible with JDK 1.2.
+ */
+ private static final long serialVersionUID = 8575799808933029326L;
+
+ /**
+ * The default private constructor generates unnecessary overhead.
+ */
+ CaseInsensitiveComparator() {}
+
+ /**
+ * Compares to Strings, using
+ * <code>String.compareToIgnoreCase(String)</code>.
+ *
+ * @param o1 the first string
+ * @param o2 the second string
+ * @return &lt; 0, 0, or &gt; 0 depending on the case-insensitive
+ * comparison of the two strings.
+ * @throws NullPointerException if either argument is null
+ * @throws ClassCastException if either argument is not a String
+ * @see #compareToIgnoreCase(String)
+ */
+ public int compare(String o1, String o2)
+ {
+ return o1.compareToIgnoreCase(o2);
+ }
+ } // class CaseInsensitiveComparator
+
+ /**
+ * A Comparator that uses <code>String.compareToIgnoreCase(String)</code>.
+ * This comparator is {@link Serializable}. Note that it ignores Locale,
+ * for that, you want a Collator.
+ *
+ * @see Collator#compare(String, String)
+ * @since 1.2
+ */
+ public static final Comparator<String> CASE_INSENSITIVE_ORDER
+ = new CaseInsensitiveComparator();
+
+ /**
+ * Creates an empty String (length 0). Unless you really need a new object,
+ * consider using <code>""</code> instead.
+ */
+ public String()
+ {
+ data = "".data;
+ boffset = 0;
+ count = 0;
+ }
+
+ /**
+ * Copies the contents of a String to a new String. Since Strings are
+ * immutable, only a shallow copy is performed.
+ *
+ * @param str String to copy
+ * @throws NullPointerException if value is null
+ */
+ public String(String str)
+ {
+ data = str.data;
+ boffset = str.boffset;
+ count = str.count;
+ cachedHashCode = str.cachedHashCode;
+ }
+
+ /**
+ * Creates a new String using the character sequence of the char array.
+ * Subsequent changes to data do not affect the String.
+ *
+ * @param data char array to copy
+ * @throws NullPointerException if data is null
+ */
+ public String(char[] data)
+ {
+ init(data, 0, data.length, false);
+ }
+
+ /**
+ * Creates a new String using the character sequence of a subarray of
+ * characters. The string starts at offset, and copies count chars.
+ * Subsequent changes to data do not affect the String.
+ *
+ * @param data char array to copy
+ * @param offset position (base 0) to start copying out of data
+ * @param count the number of characters from data to copy
+ * @throws NullPointerException if data is null
+ * @throws IndexOutOfBoundsException if (offset &lt; 0 || count &lt; 0
+ * || offset + count &lt; 0 (overflow)
+ * || offset + count &gt; data.length)
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public String(char[] data, int offset, int count)
+ {
+ init(data, offset, count, false);
+ }
+
+ /**
+ * Creates a new String using an 8-bit array of integer values, starting at
+ * an offset, and copying up to the count. Each character c, using
+ * corresponding byte b, is created in the new String as if by performing:
+ *
+ * <pre>
+ * c = (char) (((hibyte &amp; 0xff) &lt;&lt; 8) | (b &amp; 0xff))
+ * </pre>
+ *
+ * @param ascii array of integer values
+ * @param hibyte top byte of each Unicode character
+ * @param offset position (base 0) to start copying out of ascii
+ * @param count the number of characters from ascii to copy
+ * @throws NullPointerException if ascii is null
+ * @throws IndexOutOfBoundsException if (offset &lt; 0 || count &lt; 0
+ * || offset + count &lt; 0 (overflow)
+ * || offset + count &gt; ascii.length)
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #String(byte[])
+ * @see #String(byte[], String)
+ * @see #String(byte[], int, int)
+ * @see #String(byte[], int, int, String)
+ * @deprecated use {@link #String(byte[], int, int, String)} to perform
+ * correct encoding
+ */
+ public String(byte[] ascii, int hibyte, int offset, int count)
+ {
+ init(ascii, hibyte, offset, count);
+ }
+
+ /**
+ * Creates a new String using an 8-bit array of integer values. Each
+ * character c, using corresponding byte b, is created in the new String
+ * as if by performing:
+ *
+ * <pre>
+ * c = (char) (((hibyte &amp; 0xff) &lt;&lt; 8) | (b &amp; 0xff))
+ * </pre>
+ *
+ * @param ascii array of integer values
+ * @param hibyte top byte of each Unicode character
+ * @throws NullPointerException if ascii is null
+ * @see #String(byte[])
+ * @see #String(byte[], String)
+ * @see #String(byte[], int, int)
+ * @see #String(byte[], int, int, String)
+ * @see #String(byte[], int, int, int)
+ * @deprecated use {@link #String(byte[], String)} to perform
+ * correct encoding
+ */
+ public String(byte[] ascii, int hibyte)
+ {
+ init(ascii, hibyte, 0, ascii.length);
+ }
+
+ /**
+ * Creates a new String using the portion of the byte array starting at the
+ * offset and ending at offset + count. Uses the specified encoding type
+ * to decode the byte array, so the resulting string may be longer or
+ * shorter than the byte array. For more decoding control, use
+ * {@link java.nio.charset.CharsetDecoder}, and for valid character sets,
+ * see {@link java.nio.charset.Charset}. The behavior is not specified if
+ * the decoder encounters invalid characters; this implementation throws
+ * an Error.
+ *
+ * @param data byte array to copy
+ * @param offset the offset to start at
+ * @param count the number of bytes in the array to use
+ * @param encoding the name of the encoding to use
+ * @throws NullPointerException if data or encoding is null
+ * @throws IndexOutOfBoundsException if offset or count is incorrect
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @throws UnsupportedEncodingException if encoding is not found
+ * @throws Error if the decoding fails
+ * @since 1.1
+ */
+ public String(byte[] data, int offset, int count, String encoding)
+ throws UnsupportedEncodingException
+ {
+ init (data, offset, count, encoding);
+ }
+
+ /**
+ * Creates a new String using the byte array. Uses the specified encoding
+ * type to decode the byte array, so the resulting string may be longer or
+ * shorter than the byte array. For more decoding control, use
+ * {@link java.nio.charset.CharsetDecoder}, and for valid character sets,
+ * see {@link java.nio.charset.Charset}. The behavior is not specified if
+ * the decoder encounters invalid characters; this implementation throws
+ * an Error.
+ *
+ * @param data byte array to copy
+ * @param encoding the name of the encoding to use
+ * @throws NullPointerException if data or encoding is null
+ * @throws UnsupportedEncodingException if encoding is not found
+ * @throws Error if the decoding fails
+ * @see #String(byte[], int, int, String)
+ * @since 1.1
+ */
+ public String(byte[] data, String encoding)
+ throws UnsupportedEncodingException
+ {
+ this(data, 0, data.length, encoding);
+ }
+
+ /**
+ * Creates a new String using the portion of the byte array starting at the
+ * offset and ending at offset + count. Uses the encoding of the platform's
+ * default charset, so the resulting string may be longer or shorter than
+ * the byte array. For more decoding control, use
+ * {@link java.nio.charset.CharsetDecoder}. The behavior is not specified
+ * if the decoder encounters invalid characters; this implementation throws
+ * an Error.
+ *
+ * @param data byte array to copy
+ * @param offset the offset to start at
+ * @param count the number of bytes in the array to use
+ * @throws NullPointerException if data is null
+ * @throws IndexOutOfBoundsException if offset or count is incorrect
+ * @throws Error if the decoding fails
+ * @see #String(byte[], int, int, String)
+ * @since 1.1
+ */
+ public String(byte[] data, int offset, int count)
+ {
+ try
+ {
+ init (data, offset, count,
+ System.getProperty("file.encoding", "8859_1"));
+ }
+ catch (UnsupportedEncodingException x1)
+ {
+ // Maybe the default encoding is bad.
+ try
+ {
+ init (data, offset, count, "8859_1");
+ }
+ catch (UnsupportedEncodingException x2)
+ {
+ // We know this can't happen.
+ }
+ }
+ }
+
+ /**
+ * Creates a new String using the byte array. Uses the encoding of the
+ * platform's default charset, so the resulting string may be longer or
+ * shorter than the byte array. For more decoding control, use
+ * {@link java.nio.charset.CharsetDecoder}. The behavior is not specified
+ * if the decoder encounters invalid characters; this implementation throws
+ * an Error.
+ *
+ * @param data byte array to copy
+ * @throws NullPointerException if data is null
+ * @throws Error if the decoding fails
+ * @see #String(byte[], int, int)
+ * @see #String(byte[], int, int, String)
+ * @since 1.1
+ */
+ public String(byte[] data)
+ {
+ this(data, 0, data.length);
+ }
+
+ /**
+ * Creates a new String using the character sequence represented by
+ * the StringBuffer. Subsequent changes to buf do not affect the String.
+ *
+ * @param buffer StringBuffer to copy
+ * @throws NullPointerException if buffer is null
+ */
+ public String(StringBuffer buffer)
+ {
+ synchronized (buffer)
+ {
+ // Share unless buffer is 3/4 empty.
+ boolean should_copy = ((buffer.count << 2) < buffer.value.length);
+ if (! should_copy)
+ buffer.shared = true;
+ init (buffer.value, 0, buffer.count, ! should_copy);
+ }
+ }
+
+ /**
+ * Creates a new String using the character sequence represented by
+ * the StringBuilder. Subsequent changes to buf do not affect the String.
+ *
+ * @param buffer StringBuilder to copy
+ * @throws NullPointerException if buffer is null
+ */
+ public String(StringBuilder buffer)
+ {
+ this(buffer.value, 0, buffer.count);
+ }
+
+ /**
+ * Special constructor which can share an array when safe to do so.
+ *
+ * @param data the characters to copy
+ * @param offset the location to start from
+ * @param count the number of characters to use
+ * @param dont_copy true if the array is trusted, and need not be copied
+ * @throws NullPointerException if chars is null
+ * @throws StringIndexOutOfBoundsException if bounds check fails
+ */
+ String(char[] data, int offset, int count, boolean dont_copy)
+ {
+ init(data, offset, count, dont_copy);
+ }
+
+ // This is used by gnu.gcj.runtime.StringBuffer, so it must have
+ // package-private protection. It is accessed via CNI and so avoids
+ // ordinary protection mechanisms.
+ String(gnu.gcj.runtime.StringBuffer buffer)
+ {
+ // No need to synchronize or mark the buffer, since we know it is
+ // only used once.
+ init (buffer);
+ }
+
+ /**
+ * Returns the number of characters contained in this String.
+ *
+ * @return the length of this String
+ */
+ public int length()
+ {
+ return count;
+ }
+
+ /**
+ * Returns the character located at the specified index within this String.
+ *
+ * @param index position of character to return (base 0)
+ * @return character located at position index
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public native char charAt(int index);
+
+ /**
+ * Get the code point at the specified index. This is like #charAt(int),
+ * but if the character is the start of a surrogate pair, and the
+ * following character completes the pair, then the corresponding
+ * supplementary code point is returned.
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public synchronized int codePointAt(int index)
+ {
+ // Use the CharSequence overload as we get better range checking
+ // this way.
+ return Character.codePointAt(this, index);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(int), but checks the characters at <code>index-1</code> and
+ * <code>index-2</code> to see if they form a supplementary code point.
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @since 1.5
+ */
+ public synchronized int codePointBefore(int index)
+ {
+ // Use the CharSequence overload as we get better range checking
+ // this way.
+ return Character.codePointBefore(this, index);
+ }
+
+ /**
+ * Copies characters from this String starting at a specified start index,
+ * ending at a specified stop index, to a character array starting at
+ * a specified destination begin index.
+ *
+ * @param srcBegin index to begin copying characters from this String
+ * @param srcEnd index after the last character to be copied from this String
+ * @param dst character array which this String is copied into
+ * @param dstBegin index to start writing characters into dst
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any indices are out of bounds
+ * (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dst problems cause an
+ * ArrayIndexOutOfBoundsException)
+ */
+ public native void getChars(int srcBegin, int srcEnd,
+ char[] dst, int dstBegin);
+
+ /**
+ * Copies the low byte of each character from this String starting at a
+ * specified start index, ending at a specified stop index, to a byte array
+ * starting at a specified destination begin index.
+ *
+ * @param srcBegin index to being copying characters from this String
+ * @param srcEnd index after the last character to be copied from this String
+ * @param dst byte array which each low byte of this String is copied into
+ * @param dstBegin index to start writing characters into dst
+ * @throws NullPointerException if dst is null and copy length is non-zero
+ * @throws IndexOutOfBoundsException if any indices are out of bounds
+ * (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dst problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see #getBytes()
+ * @see #getBytes(String)
+ * @deprecated use {@link #getBytes()}, which uses a char to byte encoder
+ */
+ public native void getBytes(int srcBegin, int srcEnd,
+ byte[] dst, int dstBegin);
+
+ /**
+ * Converts the Unicode characters in this String to a byte array. Uses the
+ * specified encoding method, so the result may be longer or shorter than
+ * the String. For more encoding control, use
+ * {@link java.nio.charset.CharsetEncoder}, and for valid character sets,
+ * see {@link java.nio.charset.Charset}. The behavior is not specified if
+ * the encoder encounters a problem; this implementation returns null.
+ *
+ * @param enc encoding name
+ * @return the resulting byte array, or null on a problem
+ * @throws NullPointerException if enc is null
+ * @throws UnsupportedEncodingException if encoding is not supported
+ * @since 1.1
+ */
+ public native byte[] getBytes(String enc)
+ throws UnsupportedEncodingException;
+
+ /**
+ * Converts the Unicode characters in this String to a byte array. Uses the
+ * encoding of the platform's default charset, so the result may be longer
+ * or shorter than the String. For more encoding control, use
+ * {@link java.nio.charset.CharsetEncoder}. The behavior is not specified if
+ * the encoder encounters a problem; this implementation returns null.
+ *
+ * @return the resulting byte array, or null on a problem
+ * @since 1.1
+ */
+ public byte[] getBytes()
+ {
+ try
+ {
+ return getBytes (System.getProperty("file.encoding", "8859_1"));
+ }
+ catch (UnsupportedEncodingException x)
+ {
+ // This probably shouldn't happen, but could if file.encoding
+ // is somehow changed to a value we don't understand.
+ try
+ {
+ return getBytes ("8859_1");
+ }
+ catch (UnsupportedEncodingException x2)
+ {
+ // This really shouldn't happen, because the 8859_1
+ // encoding should always be available.
+ throw new InternalError ("couldn't find 8859_1 encoder");
+ }
+ }
+ }
+
+ /**
+ * Predicate which compares anObject to this. This is true only for Strings
+ * with the same character sequence.
+ *
+ * @param anObject the object to compare
+ * @return true if anObject is semantically equal to this
+ * @see #compareTo(String)
+ * @see #equalsIgnoreCase(String)
+ */
+ public native boolean equals(Object anObject);
+
+ /**
+ * Compares the given StringBuffer to this String. This is true if the
+ * StringBuffer has the same content as this String at this moment.
+ *
+ * @param buffer the StringBuffer to compare to
+ * @return true if StringBuffer has the same character sequence
+ * @throws NullPointerException if the given StringBuffer is null
+ * @since 1.4
+ */
+ public native boolean contentEquals(StringBuffer buffer);
+
+ /**
+ * Compares the given CharSequence to this String. This is true if
+ * the CharSequence has the same content as this String at this
+ * moment.
+ *
+ * @param seq the CharSequence to compare to
+ * @return true if CharSequence has the same character sequence
+ * @throws NullPointerException if the given CharSequence is null
+ * @since 1.5
+ */
+ public native boolean contentEquals(CharSequence seq);
+
+ /**
+ * Compares a String to this String, ignoring case. This does not handle
+ * multi-character capitalization exceptions; instead the comparison is
+ * made on a character-by-character basis, and is true if:<br><ul>
+ * <li><code>c1 == c2</code></li>
+ * <li><code>Character.toUpperCase(c1)
+ * == Character.toUpperCase(c2)</code></li>
+ * <li><code>Character.toLowerCase(c1)
+ * == Character.toLowerCase(c2)</code></li>
+ * </ul>
+ *
+ * @param anotherString String to compare to this String
+ * @return true if anotherString is equal, ignoring case
+ * @see #equals(Object)
+ * @see Character#toUpperCase(char)
+ * @see Character#toLowerCase(char)
+ */
+ public native boolean equalsIgnoreCase(String anotherString);
+
+ /**
+ * Compares this String and another String (case sensitive,
+ * lexicographically). The result is less than 0 if this string sorts
+ * before the other, 0 if they are equal, and greater than 0 otherwise.
+ * After any common starting sequence is skipped, the result is
+ * <code>this.charAt(k) - anotherString.charAt(k)</code> if both strings
+ * have characters remaining, or
+ * <code>this.length() - anotherString.length()</code> if one string is
+ * a subsequence of the other.
+ *
+ * @param anotherString the String to compare against
+ * @return the comparison
+ * @throws NullPointerException if anotherString is null
+ */
+ public int compareTo(String anotherString)
+ {
+ return nativeCompareTo(anotherString);
+ }
+
+ /**
+ * The native implementation of compareTo(). Must be named different
+ * since cni doesn't understand the bridge method generated from
+ * the compareTo() method because of the Comparable<String> interface.
+ */
+ private native int nativeCompareTo(String anotherString);
+
+ /**
+ * Compares this String and another String (case insensitive). This
+ * comparison is <em>similar</em> to equalsIgnoreCase, in that it ignores
+ * locale and multi-characater capitalization, and compares characters
+ * after performing
+ * <code>Character.toLowerCase(Character.toUpperCase(c))</code> on each
+ * character of the string. This is unsatisfactory for locale-based
+ * comparison, in which case you should use {@link java.text.Collator}.
+ *
+ * @param str the string to compare against
+ * @return the comparison
+ * @see Collator#compare(String, String)
+ * @since 1.2
+ */
+ public int compareToIgnoreCase(String str)
+ {
+ return this.toUpperCase().toLowerCase().compareTo(
+ str.toUpperCase().toLowerCase());
+ }
+
+ /**
+ * Predicate which determines if this String matches another String
+ * starting at a specified offset for each String and continuing
+ * for a specified length. Indices out of bounds are harmless, and give
+ * a false result.
+ *
+ * @param toffset index to start comparison at for this String
+ * @param other String to compare region to this String
+ * @param ooffset index to start comparison at for other
+ * @param len number of characters to compare
+ * @return true if regions match (case sensitive)
+ * @throws NullPointerException if other is null
+ */
+ public native boolean regionMatches(int toffset,
+ String other, int ooffset, int len);
+
+ /**
+ * Predicate which determines if this String matches another String
+ * starting at a specified offset for each String and continuing
+ * for a specified length, optionally ignoring case. Indices out of bounds
+ * are harmless, and give a false result. Case comparisons are based on
+ * <code>Character.toLowerCase()</code> and
+ * <code>Character.toUpperCase()</code>, not on multi-character
+ * capitalization expansions.
+ *
+ * @param ignoreCase true if case should be ignored in comparision
+ * @param toffset index to start comparison at for this String
+ * @param other String to compare region to this String
+ * @param ooffset index to start comparison at for other
+ * @param len number of characters to compare
+ * @return true if regions match, false otherwise
+ * @throws NullPointerException if other is null
+ */
+ public native boolean regionMatches(boolean ignoreCase, int toffset,
+ String other, int ooffset, int len);
+
+ /**
+ * Predicate which determines if this String contains the given prefix,
+ * beginning comparison at toffset. The result is false if toffset is
+ * negative or greater than this.length(), otherwise it is the same as
+ * <code>this.substring(toffset).startsWith(prefix)</code>.
+ *
+ * @param prefix String to compare
+ * @param toffset offset for this String where comparison starts
+ * @return true if this String starts with prefix
+ * @throws NullPointerException if prefix is null
+ * @see #regionMatches(boolean, int, String, int, int)
+ */
+ public native boolean startsWith(String prefix, int toffset);
+
+ /**
+ * Predicate which determines if this String starts with a given prefix.
+ * If the prefix is an empty String, true is returned.
+ *
+ * @param prefix String to compare
+ * @return true if this String starts with the prefix
+ * @throws NullPointerException if prefix is null
+ * @see #startsWith(String, int)
+ */
+ public boolean startsWith(String prefix)
+ {
+ return startsWith (prefix, 0);
+ }
+
+ /**
+ * Predicate which determines if this String ends with a given suffix.
+ * If the suffix is an empty String, true is returned.
+ *
+ * @param suffix String to compare
+ * @return true if this String ends with the suffix
+ * @throws NullPointerException if suffix is null
+ * @see #regionMatches(boolean, int, String, int, int)
+ */
+ public boolean endsWith(String suffix)
+ {
+ return regionMatches (this.count - suffix.count, suffix, 0, suffix.count);
+ }
+
+ /**
+ * Computes the hashcode for this String. This is done with int arithmetic,
+ * where ** represents exponentiation, by this formula:<br>
+ * <code>s[0]*31**(n-1) + s[1]*31**(n-2) + ... + s[n-1]</code>.
+ *
+ * @return hashcode value of this String
+ */
+ public native int hashCode();
+
+ /**
+ * Finds the first instance of a character in this String.
+ *
+ * @param ch character to find
+ * @return location (base 0) of the character, or -1 if not found
+ */
+ public int indexOf(int ch)
+ {
+ return indexOf(ch, 0);
+ }
+
+ /**
+ * Finds the first instance of a character in this String, starting at
+ * a given index. If starting index is less than 0, the search
+ * starts at the beginning of this String. If the starting index
+ * is greater than the length of this String, -1 is returned.
+ *
+ * @param ch character to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the character, or -1 if not found
+ */
+ public native int indexOf(int ch, int fromIndex);
+
+ /**
+ * Finds the last instance of a character in this String.
+ *
+ * @param ch character to find
+ * @return location (base 0) of the character, or -1 if not found
+ */
+ public int lastIndexOf(int ch)
+ {
+ return lastIndexOf(ch, count - 1);
+ }
+
+ /**
+ * Finds the last instance of a character in this String, starting at
+ * a given index. If starting index is greater than the maximum valid
+ * index, then the search begins at the end of this String. If the
+ * starting index is less than zero, -1 is returned.
+ *
+ * @param ch character to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the character, or -1 if not found
+ */
+ public native int lastIndexOf(int ch, int fromIndex);
+
+ /**
+ * Finds the first instance of a String in this String.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ */
+ public int indexOf(String str)
+ {
+ return indexOf(str, 0);
+ }
+
+ /**
+ * Finds the first instance of a String in this String, starting at
+ * a given index. If starting index is less than 0, the search
+ * starts at the beginning of this String. If the starting index
+ * is greater than the length of this String, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ */
+ public native int indexOf(String str, int fromIndex);
+
+ /**
+ * Finds the last instance of a String in this String.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ */
+ public int lastIndexOf(String str)
+ {
+ return lastIndexOf(str, count - str.count);
+ }
+
+ /**
+ * Finds the last instance of a String in this String, starting at
+ * a given index. If starting index is greater than the maximum valid
+ * index, then the search begins at the end of this String. If the
+ * starting index is less than zero, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ */
+ public int lastIndexOf(String str, int fromIndex)
+ {
+ if (fromIndex >= count)
+ fromIndex = count - str.count;
+ for (;; --fromIndex)
+ {
+ if (fromIndex < 0)
+ return -1;
+ if (startsWith(str, fromIndex))
+ return fromIndex;
+ }
+ }
+
+ /**
+ * Creates a substring of this String, starting at a specified index
+ * and ending at the end of this String.
+ *
+ * @param begin index to start substring (base 0)
+ * @return new String which is a substring of this String
+ * @throws IndexOutOfBoundsException if begin &lt; 0 || begin &gt; length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public String substring(int begin)
+ {
+ return substring(begin, count);
+ }
+
+ /**
+ * Creates a substring of this String, starting at a specified index
+ * and ending at one character before a specified index.
+ *
+ * @param begin index to start substring (inclusive, base 0)
+ * @param end index to end at (exclusive)
+ * @return new String which is a substring of this String
+ * @throws IndexOutOfBoundsException if begin &lt; 0 || end &gt; length()
+ * || begin &gt; end (while unspecified, this is a
+ * StringIndexOutOfBoundsException)
+ */
+ public native String substring(int begin, int end);
+
+ /**
+ * Creates a substring of this String, starting at a specified index
+ * and ending at one character before a specified index. This behaves like
+ * <code>substring(begin, end)</code>.
+ *
+ * @param begin index to start substring (inclusive, base 0)
+ * @param end index to end at (exclusive)
+ * @return new String which is a substring of this String
+ * @throws IndexOutOfBoundsException if begin &lt; 0 || end &gt; length()
+ * || begin &gt; end
+ * @since 1.4
+ */
+ public CharSequence subSequence(int begin, int end)
+ {
+ return substring(begin, end);
+ }
+
+ /**
+ * Concatenates a String to this String. This results in a new string unless
+ * one of the two originals is "".
+ *
+ * @param str String to append to this String
+ * @return newly concatenated String
+ * @throws NullPointerException if str is null
+ */
+ public native String concat(String str);
+
+ /**
+ * Replaces every instance of a character in this String with a new
+ * character. If no replacements occur, this is returned.
+ *
+ * @param oldChar the old character to replace
+ * @param newChar the new character
+ * @return new String with all instances of oldChar replaced with newChar
+ */
+ public native String replace(char oldChar, char newChar);
+
+ /**
+ * Test if this String matches a regular expression. This is shorthand for
+ * <code>{@link Pattern}.matches(regex, this)</code>.
+ *
+ * @param regex the pattern to match
+ * @return true if the pattern matches
+ * @throws NullPointerException if regex is null
+ * @throws PatternSyntaxException if regex is invalid
+ * @see Pattern#matches(String, CharSequence)
+ * @since 1.4
+ */
+ public boolean matches(String regex)
+ {
+ return Pattern.matches(regex, this);
+ }
+
+ /**
+ * Replaces the first substring match of the regular expression with a
+ * given replacement. This is shorthand for <code>{@link Pattern}
+ * .compile(regex).matcher(this).replaceFirst(replacement)</code>.
+ *
+ * @param regex the pattern to match
+ * @param replacement the replacement string
+ * @return the modified string
+ * @throws NullPointerException if regex or replacement is null
+ * @throws PatternSyntaxException if regex is invalid
+ * @see #replaceAll(String, String)
+ * @see Pattern#compile(String)
+ * @see Pattern#matcher(CharSequence)
+ * @see Matcher#replaceFirst(String)
+ * @since 1.4
+ */
+ public String replaceFirst(String regex, String replacement)
+ {
+ return Pattern.compile(regex).matcher(this).replaceFirst(replacement);
+ }
+
+ /**
+ * Replaces all matching substrings of the regular expression with a
+ * given replacement. This is shorthand for <code>{@link Pattern}
+ * .compile(regex).matcher(this).replaceAll(replacement)</code>.
+ *
+ * @param regex the pattern to match
+ * @param replacement the replacement string
+ * @return the modified string
+ * @throws NullPointerException if regex or replacement is null
+ * @throws PatternSyntaxException if regex is invalid
+ * @see #replaceFirst(String, String)
+ * @see Pattern#compile(String)
+ * @see Pattern#matcher(CharSequence)
+ * @see Matcher#replaceAll(String)
+ * @since 1.4
+ */
+ public String replaceAll(String regex, String replacement)
+ {
+ return Pattern.compile(regex).matcher(this).replaceAll(replacement);
+ }
+
+ /**
+ * Split this string around the matches of a regular expression. Each
+ * element of the returned array is the largest block of characters not
+ * terminated by the regular expression, in the order the matches are found.
+ *
+ * <p>The limit affects the length of the array. If it is positive, the
+ * array will contain at most n elements (n - 1 pattern matches). If
+ * negative, the array length is unlimited, but there can be trailing empty
+ * entries. if 0, the array length is unlimited, and trailing empty entries
+ * are discarded.
+ *
+ * <p>For example, splitting "boo:and:foo" yields:<br>
+ * <table border=0>
+ * <th><td>Regex</td> <td>Limit</td> <td>Result</td></th>
+ * <tr><td>":"</td> <td>2</td> <td>{ "boo", "and:foo" }</td></tr>
+ * <tr><td>":"</td> <td>t</td> <td>{ "boo", "and", "foo" }</td></tr>
+ * <tr><td>":"</td> <td>-2</td> <td>{ "boo", "and", "foo" }</td></tr>
+ * <tr><td>"o"</td> <td>5</td> <td>{ "b", "", ":and:f", "", "" }</td></tr>
+ * <tr><td>"o"</td> <td>-2</td> <td>{ "b", "", ":and:f", "", "" }</td></tr>
+ * <tr><td>"o"</td> <td>0</td> <td>{ "b", "", ":and:f" }</td></tr>
+ * </table>
+ *
+ * <p>This is shorthand for
+ * <code>{@link Pattern}.compile(regex).split(this, limit)</code>.
+ *
+ * @param regex the pattern to match
+ * @param limit the limit threshold
+ * @return the array of split strings
+ * @throws NullPointerException if regex or replacement is null
+ * @throws PatternSyntaxException if regex is invalid
+ * @see Pattern#compile(String)
+ * @see Pattern#split(CharSequence, int)
+ * @since 1.4
+ */
+ public String[] split(String regex, int limit)
+ {
+ return Pattern.compile(regex).split(this, limit);
+ }
+
+ /**
+ * Split this string around the matches of a regular expression. Each
+ * element of the returned array is the largest block of characters not
+ * terminated by the regular expression, in the order the matches are found.
+ * The array length is unlimited, and trailing empty entries are discarded,
+ * as though calling <code>split(regex, 0)</code>.
+ *
+ * @param regex the pattern to match
+ * @return the array of split strings
+ * @throws NullPointerException if regex or replacement is null
+ * @throws PatternSyntaxException if regex is invalid
+ * @see #split(String, int)
+ * @see Pattern#compile(String)
+ * @see Pattern#split(CharSequence, int)
+ * @since 1.4
+ */
+ public String[] split(String regex)
+ {
+ return Pattern.compile(regex).split(this, 0);
+ }
+
+ /**
+ * Lowercases this String according to a particular locale. This uses
+ * Unicode's special case mappings, as applied to the given Locale, so the
+ * resulting string may be a different length.
+ *
+ * @param loc locale to use
+ * @return new lowercased String, or this if no characters were lowercased
+ * @throws NullPointerException if loc is null
+ * @see #toUpperCase(Locale)
+ * @since 1.1
+ */
+ public native String toLowerCase(Locale locale);
+
+ /**
+ * Lowercases this String. This uses Unicode's special case mappings, as
+ * applied to the platform's default Locale, so the resulting string may
+ * be a different length.
+ *
+ * @return new lowercased String, or this if no characters were lowercased
+ * @see #toLowerCase(Locale)
+ * @see #toUpperCase()
+ */
+ public String toLowerCase()
+ {
+ // The JDK is a bit confused about what to do here. If we pass in
+ // the default Locale then special Locale handling might be
+ // invoked. However, the docs also say that Character.toLowerCase
+ // rules here. We go with the latter.
+ return toLowerCase (null);
+ }
+
+ /**
+ * Uppercases this String according to a particular locale. This uses
+ * Unicode's special case mappings, as applied to the given Locale, so the
+ * resulting string may be a different length.
+ *
+ * @param loc locale to use
+ * @return new uppercased String, or this if no characters were uppercased
+ * @throws NullPointerException if loc is null
+ * @see #toLowerCase(Locale)
+ * @since 1.1
+ */
+ public native String toUpperCase(Locale locale);
+
+ /**
+ * Uppercases this String. This uses Unicode's special case mappings, as
+ * applied to the platform's default Locale, so the resulting string may
+ * be a different length.
+ *
+ * @return new uppercased String, or this if no characters were uppercased
+ * @see #toUpperCase(Locale)
+ * @see #toLowerCase()
+ */
+ public String toUpperCase()
+ {
+ // The JDK is a bit confused about what to do here. If we pass in
+ // the default Locale then special Locale handling might be
+ // invoked. However, the docs also say that Character.toLowerCase
+ // rules here. We go with the latter.
+ return toUpperCase (null);
+ }
+
+ /**
+ * Trims all characters less than or equal to <code>'\u0020'</code>
+ * (<code>' '</code>) from the beginning and end of this String. This
+ * includes many, but not all, ASCII control characters, and all
+ * {@link Character#isWhitespace(char)}.
+ *
+ * @return new trimmed String, or this if nothing trimmed
+ */
+ public native String trim();
+
+ /**
+ * Returns this, as it is already a String!
+ *
+ * @return this
+ */
+ public String toString()
+ {
+ return this;
+ }
+
+ /**
+ * Copies the contents of this String into a character array. Subsequent
+ * changes to the array do not affect the String.
+ *
+ * @return character array copying the String
+ */
+ public native char[] toCharArray();
+
+ /**
+ * Returns a String representation of an Object. This is "null" if the
+ * object is null, otherwise it is <code>obj.toString()</code> (which
+ * can be null).
+ *
+ * @param obj the Object
+ * @return the string conversion of obj
+ */
+ public static String valueOf(Object obj)
+ {
+ return obj == null ? "null" : obj.toString();
+ }
+
+ /**
+ * Returns a String representation of a character array. Subsequent
+ * changes to the array do not affect the String.
+ *
+ * @param data the character array
+ * @return a String containing the same character sequence as data
+ * @throws NullPointerException if data is null
+ * @see #valueOf(char[], int, int)
+ * @see #String(char[])
+ */
+ public static String valueOf(char[] data)
+ {
+ return valueOf (data, 0, data.length);
+ }
+
+ /**
+ * Returns a String representing the character sequence of the char array,
+ * starting at the specified offset, and copying chars up to the specified
+ * count. Subsequent changes to the array do not affect the String.
+ *
+ * @param data character array
+ * @param offset position (base 0) to start copying out of data
+ * @param count the number of characters from data to copy
+ * @return String containing the chars from data[offset..offset+count]
+ * @throws NullPointerException if data is null
+ * @throws IndexOutOfBoundsException if (offset &lt; 0 || count &lt; 0
+ * || offset + count &gt; data.length)
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #String(char[], int, int)
+ */
+ public static native String valueOf(char[] data, int offset, int count);
+
+ /**
+ * Returns a String representing the character sequence of the char array,
+ * starting at the specified offset, and copying chars up to the specified
+ * count. Subsequent changes to the array do not affect the String.
+ *
+ * @param data character array
+ * @param offset position (base 0) to start copying out of data
+ * @param count the number of characters from data to copy
+ * @return String containing the chars from data[offset..offset+count]
+ * @throws NullPointerException if data is null
+ * @throws IndexOutOfBoundsException if (offset &lt; 0 || count &lt; 0
+ * || offset + count &lt; 0 (overflow)
+ * || offset + count &gt; data.length)
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #String(char[], int, int)
+ */
+ public static String copyValueOf(char[] data, int offset, int count)
+ {
+ String r = new String ();
+ r.init(data, offset, count, false);
+ return r;
+ }
+
+ /**
+ * Returns a String representation of a character array. Subsequent
+ * changes to the array do not affect the String.
+ *
+ * @param data the character array
+ * @return a String containing the same character sequence as data
+ * @throws NullPointerException if data is null
+ * @see #copyValueOf(char[], int, int)
+ * @see #String(char[])
+ */
+ public static String copyValueOf(char[] data)
+ {
+ return copyValueOf (data, 0, data.length);
+ }
+
+ /**
+ * Returns a String representing a boolean.
+ *
+ * @param b the boolean
+ * @return "true" if b is true, else "false"
+ */
+ public static String valueOf(boolean b)
+ {
+ return b ? "true" : "false";
+ }
+
+ /**
+ * Returns a String representing a character.
+ *
+ * @param c the character
+ * @return String containing the single character c
+ */
+ public static native String valueOf(char c);
+
+ /**
+ * Returns a String representing an integer.
+ *
+ * @param i the integer
+ * @return String containing the integer in base 10
+ * @see Integer#toString(int)
+ */
+ public static native String valueOf(int i);
+
+ /**
+ * Returns a String representing a long.
+ *
+ * @param l the long
+ * @return String containing the long in base 10
+ * @see Long#toString(long)
+ */
+ public static String valueOf(long l)
+ {
+ return Long.toString(l);
+ }
+
+ /**
+ * Returns a String representing a float.
+ *
+ * @param f the float
+ * @return String containing the float
+ * @see Float#toString(float)
+ */
+ public static String valueOf(float f)
+ {
+ return Float.toString(f);
+ }
+
+ /**
+ * Returns a String representing a double.
+ *
+ * @param d the double
+ * @return String containing the double
+ * @see Double#toString(double)
+ */
+ public static String valueOf(double d)
+ {
+ return Double.toString(d);
+ }
+
+
+ /** @since 1.5 */
+ public static String format(Locale locale, String format, Object... args)
+ {
+ Formatter f = new Formatter(locale);
+ return f.format(format, args).toString();
+ }
+
+ /** @since 1.5 */
+ public static String format(String format, Object... args)
+ {
+ return format(Locale.getDefault(), format, args);
+ }
+
+ /**
+ * Fetches this String from the intern hashtable.
+ * If two Strings are considered equal, by the equals() method,
+ * then intern() will return the same String instance. ie.
+ * if (s1.equals(s2)) then (s1.intern() == s2.intern()).
+ * All string literals and string-valued constant expressions
+ * are already interned.
+ *
+ * @return the interned String
+ */
+ public native String intern();
+
+ /**
+ * Return the number of code points between two indices in the
+ * <code>String</code>. An unpaired surrogate counts as a
+ * code point for this purpose. Characters outside the indicated
+ * range are not examined, even if the range ends in the middle of a
+ * surrogate pair.
+ *
+ * @param start the starting index
+ * @param end one past the ending index
+ * @return the number of code points
+ * @since 1.5
+ */
+ public synchronized int codePointCount(int start, int end)
+ {
+ if (start < 0 || end > count || start > end)
+ throw new StringIndexOutOfBoundsException();
+
+ int count = 0;
+ while (start < end)
+ {
+ char base = charAt(start);
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == end
+ || start == count
+ || charAt(start + 1) < Character.MIN_LOW_SURROGATE
+ || charAt(start + 1) > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ ++count;
+ }
+ return count;
+ }
+
+ /**
+ * Returns true iff this String contains the sequence of Characters
+ * described in s.
+ * @param s the CharSequence
+ * @return true iff this String contains s
+ *
+ * @since 1.5
+ */
+ public boolean contains (CharSequence s)
+ {
+ return this.indexOf(s.toString()) != -1;
+ }
+
+ /**
+ * Returns a string that is this string with all instances of the sequence
+ * represented by <code>target</code> replaced by the sequence in
+ * <code>replacement</code>.
+ * @param target the sequence to be replaced
+ * @param replacement the sequence used as the replacement
+ * @return the string constructed as above
+ */
+ public String replace (CharSequence target, CharSequence replacement)
+ {
+ String targetString = target.toString();
+ String replaceString = replacement.toString();
+ int targetLength = target.length();
+ int replaceLength = replacement.length();
+
+ int startPos = this.indexOf(targetString);
+ StringBuilder result = new StringBuilder(this);
+ while (startPos != -1)
+ {
+ // Replace the target with the replacement
+ result.replace(startPos, startPos + targetLength, replaceString);
+
+ // Search for a new occurrence of the target
+ startPos = result.indexOf(targetString, startPos + replaceLength);
+ }
+ return result.toString();
+ }
+
+ /**
+ * Return the index into this String that is offset from the given index by
+ * <code>codePointOffset</code> code points.
+ * @param index the index at which to start
+ * @param codePointOffset the number of code points to offset
+ * @return the index into this String that is <code>codePointOffset</code>
+ * code points offset from <code>index</code>.
+ *
+ * @throws IndexOutOfBoundsException if index is negative or larger than the
+ * length of this string.
+ * @throws IndexOutOfBoundsException if codePointOffset is positive and the
+ * substring starting with index has fewer than codePointOffset code points.
+ * @throws IndexOutOfBoundsException if codePointOffset is negative and the
+ * substring ending with index has fewer than (-codePointOffset) code points.
+ * @since 1.5
+ */
+ public int offsetByCodePoints(int index, int codePointOffset)
+ {
+ if (index < 0 || index > count)
+ throw new IndexOutOfBoundsException();
+
+ return Character.offsetByCodePoints(this, index, codePointOffset);
+ }
+
+ /**
+ * Returns true if, and only if, {@link #length()}
+ * is <code>0</code>.
+ *
+ * @return true if the length of the string is zero.
+ * @since 1.6
+ */
+ public boolean isEmpty()
+ {
+ return count == 0;
+ }
+
+ // Generate a String that shares the value array: subsequent changes
+ // to this array will affect the String. A private internal method
+ // that is called from CPStringBuilder by compiler-generated code.
+ private static String toString(char[] value, int startIndex, int count)
+ {
+ return new String(value, startIndex, count, true);
+ }
+
+ private native void init(char[] chars, int offset, int count,
+ boolean dont_copy);
+ private native void init(byte[] chars, int hibyte, int offset, int count);
+ private native void init(byte[] chars, int offset, int count, String enc)
+ throws UnsupportedEncodingException;
+ private native void init(gnu.gcj.runtime.StringBuffer buffer);
+}
diff --git a/gcc-4.8/libjava/java/lang/StringBuffer.h b/gcc-4.8/libjava/java/lang/StringBuffer.h
new file mode 100644
index 000000000..487e2fcd3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StringBuffer.h
@@ -0,0 +1,115 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_StringBuffer__
+#define __java_lang_StringBuffer__
+
+#pragma interface
+
+#include <java/lang/AbstractStringBuffer.h>
+#include <gcj/array.h>
+
+
+class java::lang::StringBuffer : public ::java::lang::AbstractStringBuffer
+{
+
+public:
+ StringBuffer();
+ StringBuffer(jint);
+ StringBuffer(::java::lang::String *);
+ StringBuffer(::java::lang::CharSequence *);
+ jint length();
+ jint capacity();
+ void ensureCapacity(jint);
+ void setLength(jint);
+ jchar charAt(jint);
+ jint codePointAt(jint);
+ jint codePointBefore(jint);
+ void getChars(jint, jint, JArray< jchar > *, jint);
+ void setCharAt(jint, jchar);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::Object *);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::String *);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::StringBuffer *);
+ ::java::lang::StringBuffer * StringBuffer$append(JArray< jchar > *);
+ ::java::lang::StringBuffer * StringBuffer$append(JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$append(jboolean);
+ ::java::lang::StringBuffer * StringBuffer$append(jchar);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::CharSequence *);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$append(jint);
+ ::java::lang::StringBuffer * StringBuffer$append(jlong);
+ ::java::lang::StringBuffer * StringBuffer$append(jfloat);
+ ::java::lang::StringBuffer * StringBuffer$append(jdouble);
+ ::java::lang::StringBuffer * StringBuffer$appendCodePoint(jint);
+ ::java::lang::StringBuffer * StringBuffer$delete(jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$deleteCharAt(jint);
+ ::java::lang::StringBuffer * StringBuffer$replace(jint, jint, ::java::lang::String *);
+ ::java::lang::String * substring(jint);
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ ::java::lang::String * substring(jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::Object *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::String *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, JArray< jchar > *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jboolean);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jchar);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jlong);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jfloat);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jdouble);
+ jint indexOf(::java::lang::String *);
+ jint indexOf(::java::lang::String *, jint);
+ jint lastIndexOf(::java::lang::String *);
+ jint lastIndexOf(::java::lang::String *, jint);
+ ::java::lang::StringBuffer * StringBuffer$reverse();
+ ::java::lang::String * toString();
+ void trimToSize();
+ jint codePointCount(jint, jint);
+ jint offsetByCodePoints(jint, jint);
+public: // actually package-private
+ void ensureCapacity_unsynchronized(jint);
+public:
+ ::java::lang::AbstractStringBuffer * reverse();
+ ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+ ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+ ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+ ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+ ::java::lang::AbstractStringBuffer * insert(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+ ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(jdouble);
+ ::java::lang::AbstractStringBuffer * append(jfloat);
+ ::java::lang::AbstractStringBuffer * append(jlong);
+ ::java::lang::AbstractStringBuffer * append(jint);
+ ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
+ ::java::lang::Appendable * append(jchar);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+ ::java::lang::AbstractStringBuffer * append(jboolean);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
+private:
+ static const jlong serialVersionUID = 3388685877147921107LL;
+public: // actually package-private
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::AbstractStringBuffer)))) shared;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_StringBuffer__
diff --git a/gcc-4.8/libjava/java/lang/StringBuffer.java b/gcc-4.8/libjava/java/lang/StringBuffer.java
new file mode 100644
index 000000000..0c61b4d9f
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StringBuffer.java
@@ -0,0 +1,976 @@
+/* StringBuffer.java -- Growable strings
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * <code>StringBuffer</code> represents a changeable <code>String</code>.
+ * It provides the operations required to modify the
+ * <code>StringBuffer</code>, including insert, replace, delete, append,
+ * and reverse. It is thread-safe; meaning that all modifications to a buffer
+ * are in synchronized methods.
+ *
+ * <p><code>StringBuffer</code>s are variable-length in nature, so even if
+ * you initialize them to a certain size, they can still grow larger than
+ * that. <em>Capacity</em> indicates the number of characters the
+ * <code>StringBuffer</code> can have in it before it has to grow (growing
+ * the char array is an expensive operation involving <code>new</code>).
+ *
+ * <p>Incidentally, compilers often implement the String operator "+"
+ * by using a <code>StringBuffer</code> operation:<br>
+ * <code>a + b</code><br>
+ * is the same as<br>
+ * <code>new StringBuffer().append(a).append(b).toString()</code>.
+ *
+ * <p>Classpath's StringBuffer is capable of sharing memory with Strings for
+ * efficiency. This will help when a StringBuffer is converted to a String
+ * and the StringBuffer is not changed after that (quite common when performing
+ * string concatenation).
+ *
+ * @author Paul Fisher
+ * @author John Keiser
+ * @author Tom Tromey
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @see String
+ * @since 1.0
+ * @status updated to 1.4
+ */
+public final class StringBuffer
+ extends AbstractStringBuffer
+ implements Serializable, CharSequence, Appendable
+{
+ // Implementation note: if you change this class, you usually will
+ // want to change StringBuilder as well.
+
+ /**
+ * Compatible with JDK 1.0+.
+ */
+ private static final long serialVersionUID = 3388685877147921107L;
+
+ /**
+ * True if the buffer is shared with another object (StringBuffer or
+ * String); this means the buffer must be copied before writing to it again.
+ * Note that this has permissions set this way so that String can get the
+ * value.
+ *
+ * @serial whether the buffer is shared
+ */
+ boolean shared;
+
+ /**
+ * Create a new StringBuffer with default capacity 16.
+ */
+ public StringBuffer()
+ {
+ super();
+ }
+
+ /**
+ * Create an empty <code>StringBuffer</code> with the specified initial
+ * capacity.
+ *
+ * @param capacity the initial capacity
+ * @throws NegativeArraySizeException if capacity is negative
+ */
+ public StringBuffer(int capacity)
+ {
+ super(capacity);
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>String</code>. Initial capacity will be the size of the
+ * String plus 16.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ public StringBuffer(String str)
+ {
+ // Unfortunately, because the size is 16 larger, we cannot share.
+ super(str);
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>CharSequence</code>. Initial capacity will be the
+ * length of the sequence plus 16; if the sequence reports a length
+ * less than or equal to 0, then the initial capacity will be 16.
+ *
+ * @param seq the initializing <code>CharSequence</code>
+ * @throws NullPointerException if str is null
+ * @since 1.5
+ */
+ public StringBuffer(CharSequence seq)
+ {
+ super(seq);
+ }
+
+ /**
+ * Get the length of the <code>String</code> this <code>StringBuffer</code>
+ * would create. Not to be confused with the <em>capacity</em> of the
+ * <code>StringBuffer</code>.
+ *
+ * @return the length of this <code>StringBuffer</code>
+ * @see #capacity()
+ * @see #setLength(int)
+ */
+ public synchronized int length()
+ {
+ return count;
+ }
+
+ /**
+ * Get the total number of characters this <code>StringBuffer</code> can
+ * support before it must be grown. Not to be confused with <em>length</em>.
+ *
+ * @return the capacity of this <code>StringBuffer</code>
+ * @see #length()
+ * @see #ensureCapacity(int)
+ */
+ public synchronized int capacity()
+ {
+ return value.length;
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuffer</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ public synchronized void ensureCapacity(int minimumCapacity)
+ {
+ ensureCapacity_unsynchronized(minimumCapacity);
+ }
+
+ /**
+ * Set the length of this StringBuffer. If the new length is greater than
+ * the current length, all the new characters are set to '\0'. If the new
+ * length is less than the current length, the first <code>newLength</code>
+ * characters of the old array will be preserved, and the remaining
+ * characters are truncated.
+ *
+ * @param newLength the new length
+ * @throws IndexOutOfBoundsException if the new length is negative
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #length()
+ */
+ public synchronized void setLength(int newLength)
+ {
+ super.setLength(newLength);
+ }
+
+ /**
+ * Get the character at the specified index.
+ *
+ * @param index the index of the character to get, starting at 0
+ * @return the character at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public synchronized char charAt(int index)
+ {
+ return super.charAt(index);
+ }
+
+ /**
+ * Get the code point at the specified index. This is like #charAt(int),
+ * but if the character is the start of a surrogate pair, and the
+ * following character completes the pair, then the corresponding
+ * supplementary code point is returned.
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public synchronized int codePointAt(int index)
+ {
+ return super.codePointAt(index);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(int), but checks the characters at <code>index-1</code> and
+ * <code>index-2</code> to see if they form a supplementary code point.
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public synchronized int codePointBefore(int index)
+ {
+ return super.codePointBefore(index);
+ }
+
+ /**
+ * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+ * characters will be copied into the array you pass in.
+ *
+ * @param srcOffset the index to start copying from (inclusive)
+ * @param srcEnd the index to stop copying from (exclusive)
+ * @param dst the array to copy into
+ * @param dstOffset the index to start copying into
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any source or target indices are
+ * out of range (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dest problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see System#arraycopy(Object, int, Object, int, int)
+ */
+ public synchronized void getChars(int srcOffset, int srcEnd,
+ char[] dst, int dstOffset)
+ {
+ super.getChars(srcOffset, srcEnd, dst, dstOffset);
+ }
+
+ /**
+ * Set the character at the specified index.
+ *
+ * @param index the index of the character to set starting at 0
+ * @param ch the value to set that character to
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public synchronized void setCharAt(int index, char ch)
+ {
+ super.setCharAt(index, ch);
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param obj the <code>Object</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(Object)
+ * @see #append(String)
+ */
+ public synchronized StringBuffer append(Object obj)
+ {
+ super.append(obj);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> to this <code>StringBuffer</code>. If
+ * str is null, the String "null" is appended.
+ *
+ * @param str the <code>String</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public synchronized StringBuffer append(String str)
+ {
+ super.append(str);
+ return this;
+ }
+
+ /**
+ * Append the <code>StringBuffer</code> value of the argument to this
+ * <code>StringBuffer</code>. This behaves the same as
+ * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+ *
+ * @param stringBuffer the <code>StringBuffer</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see #append(Object)
+ * @since 1.4
+ */
+ public synchronized StringBuffer append(StringBuffer stringBuffer)
+ {
+ super.append(stringBuffer);
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> array to this <code>StringBuffer</code>.
+ * This is similar (but more efficient) than
+ * <code>append(new String(data))</code>, except in the case of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @see #append(char[], int, int)
+ */
+ public synchronized StringBuffer append(char[] data)
+ {
+ super.append(data, 0, data.length);
+ return this;
+ }
+
+ /**
+ * Append part of the <code>char</code> array to this
+ * <code>StringBuffer</code>. This is similar (but more efficient) than
+ * <code>append(new String(data, offset, count))</code>, except in the case
+ * of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @param offset the start location in <code>str</code>
+ * @param count the number of characters to get from <code>str</code>
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if offset or count is out of range
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public synchronized StringBuffer append(char[] data, int offset, int count)
+ {
+ super.append(data, offset, count);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param bool the <code>boolean</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(boolean)
+ */
+ public synchronized StringBuffer append(boolean bool)
+ {
+ super.append(bool);
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> to this <code>StringBuffer</code>.
+ *
+ * @param ch the <code>char</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public synchronized StringBuffer append(char ch)
+ {
+ super.append(ch);
+ return this;
+ }
+
+ /**
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public synchronized StringBuffer append(CharSequence seq)
+ {
+ super.append(seq, 0, seq.length());
+ return this;
+ }
+
+ /**
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the four characters "null" are
+ * appended.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @param start the starting index
+ * @param end one past the final index
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public synchronized StringBuffer append(CharSequence seq, int start, int end)
+ {
+ super.append(seq, start, end);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param inum the <code>int</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(int)
+ */
+ // This is native in libgcj, for efficiency.
+ public synchronized StringBuffer append(int inum)
+ {
+ super.append(inum);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param lnum the <code>long</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(long)
+ */
+ public synchronized StringBuffer append(long lnum)
+ {
+ super.append(lnum);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param fnum the <code>float</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(float)
+ */
+ public synchronized StringBuffer append(float fnum)
+ {
+ super.append(fnum);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param dnum the <code>double</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(double)
+ */
+ public synchronized StringBuffer append(double dnum)
+ {
+ super.append(dnum);
+ return this;
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public synchronized StringBuffer appendCodePoint(int code)
+ {
+ super.appendCodePoint(code);
+ return this;
+ }
+
+ /**
+ * Delete characters from this <code>StringBuffer</code>.
+ * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+ * harmless for end to be larger than length().
+ *
+ * @param start the first character to delete
+ * @param end the index after the last character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @since 1.2
+ */
+ public synchronized StringBuffer delete(int start, int end)
+ {
+ // This will unshare if required.
+ super.delete(start, end);
+ return this;
+ }
+
+ /**
+ * Delete a character from this <code>StringBuffer</code>.
+ *
+ * @param index the index of the character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if index is out of bounds
+ * @since 1.2
+ */
+ public synchronized StringBuffer deleteCharAt(int index)
+ {
+ super.deleteCharAt(index);
+ return this;
+ }
+
+ /**
+ * Replace characters between index <code>start</code> (inclusive) and
+ * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+ * is larger than the size of this StringBuffer, all characters after
+ * <code>start</code> are replaced.
+ *
+ * @param start the beginning index of characters to delete (inclusive)
+ * @param end the ending index of characters to delete (exclusive)
+ * @param str the new <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @throws NullPointerException if str is null
+ * @since 1.2
+ */
+ public synchronized StringBuffer replace(int start, int end, String str)
+ {
+ super.replace(start, end, str);
+ return this;
+ }
+
+ /**
+ * Creates a substring of this StringBuffer, starting at a specified index
+ * and ending at the end of this StringBuffer.
+ *
+ * @param beginIndex index to start substring (base 0)
+ * @return new String which is a substring of this StringBuffer
+ * @throws StringIndexOutOfBoundsException if beginIndex is out of bounds
+ * @see #substring(int, int)
+ * @since 1.2
+ */
+ public String substring(int beginIndex)
+ {
+ return substring(beginIndex, count);
+ }
+
+ /**
+ * Creates a substring of this StringBuffer, starting at a specified index
+ * and ending at one character before a specified index. This is implemented
+ * the same as <code>substring(beginIndex, endIndex)</code>, to satisfy
+ * the CharSequence interface.
+ *
+ * @param beginIndex index to start at (inclusive, base 0)
+ * @param endIndex index to end at (exclusive)
+ * @return new String which is a substring of this StringBuffer
+ * @throws IndexOutOfBoundsException if beginIndex or endIndex is out of
+ * bounds
+ * @see #substring(int, int)
+ * @since 1.4
+ */
+ public CharSequence subSequence(int beginIndex, int endIndex)
+ {
+ return substring(beginIndex, endIndex);
+ }
+
+ /**
+ * Creates a substring of this StringBuffer, starting at a specified index
+ * and ending at one character before a specified index.
+ *
+ * @param beginIndex index to start at (inclusive, base 0)
+ * @param endIndex index to end at (exclusive)
+ * @return new String which is a substring of this StringBuffer
+ * @throws StringIndexOutOfBoundsException if beginIndex or endIndex is out
+ * of bounds
+ * @since 1.2
+ */
+ public synchronized String substring(int beginIndex, int endIndex)
+ {
+ int len = endIndex - beginIndex;
+ if (beginIndex < 0 || endIndex > count || endIndex < beginIndex)
+ throw new StringIndexOutOfBoundsException();
+ if (len == 0)
+ return "";
+ // Don't copy unless substring is smaller than 1/4 of the buffer.
+ boolean share_buffer = ((len << 2) >= value.length);
+ if (share_buffer)
+ this.shared = true;
+ // Package constructor avoids an array copy.
+ return new String(value, beginIndex, len, share_buffer);
+ }
+
+ /**
+ * Insert a subarray of the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>char[]</code> to insert
+ * @param str_offset the index in <code>str</code> to start inserting from
+ * @param len the number of characters to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if any index is out of bounds
+ * @since 1.2
+ */
+ public synchronized StringBuffer insert(int offset,
+ char[] str, int str_offset, int len)
+ {
+ super.insert(offset, str, str_offset, len);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param obj the <code>Object</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @exception StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(Object)
+ */
+ public synchronized StringBuffer insert(int offset, Object obj)
+ {
+ super.insert(offset, obj);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> argument into this
+ * <code>StringBuffer</code>. If str is null, the String "null" is used
+ * instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public synchronized StringBuffer insert(int offset, String str)
+ {
+ super.insert(offset, str);
+ return this;
+ }
+
+ /**
+ * Insert the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset is out of bounds
+ * @since 1.5
+ */
+ public synchronized StringBuffer insert(int offset, CharSequence sequence)
+ {
+ super.insert(offset, sequence);
+ return this;
+ }
+
+ /**
+ * Insert a subsequence of the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @param start the starting index of the subsequence
+ * @param end one past the ending index of the subsequence
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset, start,
+ * or end are out of bounds
+ * @since 1.5
+ */
+ public synchronized StringBuffer insert(int offset, CharSequence sequence,
+ int start, int end)
+ {
+ super.insert(offset, sequence, start, end);
+ return this;
+ }
+
+ /**
+ * Insert the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param data the <code>char[]</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see #insert(int, char[], int, int)
+ */
+ public synchronized StringBuffer insert(int offset, char[] data)
+ {
+ super.insert(offset, data, 0, data.length);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param bool the <code>boolean</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(boolean)
+ */
+ public synchronized StringBuffer insert(int offset, boolean bool)
+ {
+ super.insert(offset, bool);
+ return this;
+ }
+
+ /**
+ * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param ch the <code>char</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public synchronized StringBuffer insert(int offset, char ch)
+ {
+ super.insert(offset, ch);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param inum the <code>int</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(int)
+ */
+ public synchronized StringBuffer insert(int offset, int inum)
+ {
+ super.insert(offset, inum);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param lnum the <code>long</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(long)
+ */
+ public synchronized StringBuffer insert(int offset, long lnum)
+ {
+ super.insert(offset, lnum);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param fnum the <code>float</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(float)
+ */
+ public synchronized StringBuffer insert(int offset, float fnum)
+ {
+ super.insert(offset, fnum);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param dnum the <code>double</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(double)
+ */
+ public synchronized StringBuffer insert(int offset, double dnum)
+ {
+ super.insert(offset, dnum);
+ return this;
+ }
+
+ /**
+ * Finds the first instance of a substring in this StringBuffer.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #indexOf(String, int)
+ * @since 1.4
+ */
+ public synchronized int indexOf(String str)
+ {
+ return super.indexOf(str, 0);
+ }
+
+ /**
+ * Finds the first instance of a String in this StringBuffer, starting at
+ * a given index. If starting index is less than 0, the search starts at
+ * the beginning of this String. If the starting index is greater than the
+ * length of this String, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public synchronized int indexOf(String str, int fromIndex)
+ {
+ return super.indexOf(str, fromIndex);
+ }
+
+ /**
+ * Finds the last instance of a substring in this StringBuffer.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #lastIndexOf(String, int)
+ * @since 1.4
+ */
+ public synchronized int lastIndexOf(String str)
+ {
+ return super.lastIndexOf(str, count - str.count);
+ }
+
+ /**
+ * Finds the last instance of a String in this StringBuffer, starting at a
+ * given index. If starting index is greater than the maximum valid index,
+ * then the search begins at the end of this String. If the starting index
+ * is less than zero, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public synchronized int lastIndexOf(String str, int fromIndex)
+ {
+ return super.lastIndexOf(str, fromIndex);
+ }
+
+ /**
+ * Reverse the characters in this StringBuffer. The same sequence of
+ * characters exists, but in the reverse index ordering.
+ *
+ * @return this <code>StringBuffer</code>
+ */
+ public synchronized StringBuffer reverse()
+ {
+ super.reverse();
+ return this;
+ }
+
+ /**
+ * Convert this <code>StringBuffer</code> to a <code>String</code>. The
+ * String is composed of the characters currently in this StringBuffer. Note
+ * that the result is a copy, and that future modifications to this buffer
+ * do not affect the String.
+ *
+ * @return the characters in this StringBuffer
+ */
+ public String toString()
+ {
+ // The string will set this.shared = true.
+ return new String(this);
+ }
+
+ /**
+ * This may reduce the amount of memory used by the StringBuffer,
+ * by resizing the internal array to remove unused space. However,
+ * this method is not required to resize, so this behavior cannot
+ * be relied upon.
+ * @since 1.5
+ */
+ public synchronized void trimToSize()
+ {
+ super.trimToSize();
+ }
+
+ /**
+ * Return the number of code points between two indices in the
+ * <code>StringBuffer</code>. An unpaired surrogate counts as a
+ * code point for this purpose. Characters outside the indicated
+ * range are not examined, even if the range ends in the middle of a
+ * surrogate pair.
+ *
+ * @param start the starting index
+ * @param end one past the ending index
+ * @return the number of code points
+ * @since 1.5
+ */
+ public synchronized int codePointCount(int start, int end)
+ {
+ return super.codePointCount(start, end);
+ }
+
+ /**
+ * Starting at the given index, this counts forward by the indicated
+ * number of code points, and then returns the resulting index. An
+ * unpaired surrogate counts as a single code point for this
+ * purpose.
+ *
+ * @param start the starting index
+ * @param codePoints the number of code points
+ * @return the resulting index
+ * @since 1.5
+ */
+ public synchronized int offsetByCodePoints(int start, int codePoints)
+ {
+ return super.offsetByCodePoints(start, codePoints);
+ }
+
+ /**
+ * An unsynchronized version of ensureCapacity, used internally to avoid
+ * the cost of a second lock on the same object. This also has the side
+ * effect of duplicating the array, if it was shared (to form copy-on-write
+ * semantics).
+ *
+ * @param minimumCapacity the minimum capacity
+ * @see #ensureCapacity(int)
+ */
+ void ensureCapacity_unsynchronized(int minimumCapacity)
+ {
+ if (shared || minimumCapacity > value.length)
+ {
+ // We don't want to make a larger vector when `shared' is
+ // set. If we do, then setLength becomes very inefficient
+ // when repeatedly reusing a StringBuffer in a loop.
+ int max = (minimumCapacity > value.length
+ ? value.length * 2 + 2
+ : value.length);
+ minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+ char[] nb = new char[minimumCapacity];
+ System.arraycopy(value, 0, nb, 0, count);
+ value = nb;
+ shared = false;
+ }
+ }
+
+}
diff --git a/gcc-4.8/libjava/java/lang/StringBuilder.h b/gcc-4.8/libjava/java/lang/StringBuilder.h
new file mode 100644
index 000000000..c8b952a41
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StringBuilder.h
@@ -0,0 +1,96 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_StringBuilder__
+#define __java_lang_StringBuilder__
+
+#pragma interface
+
+#include <java/lang/AbstractStringBuffer.h>
+#include <gcj/array.h>
+
+
+class java::lang::StringBuilder : public ::java::lang::AbstractStringBuffer
+{
+
+public:
+ StringBuilder();
+ StringBuilder(jint);
+ StringBuilder(::java::lang::String *);
+ StringBuilder(::java::lang::CharSequence *);
+ jint length();
+ jint capacity();
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::Object *);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::String *);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::StringBuffer *);
+ ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *);
+ ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$append(jboolean);
+ ::java::lang::StringBuilder * StringBuilder$append(jchar);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$append(jint);
+ ::java::lang::StringBuilder * StringBuilder$append(jlong);
+ ::java::lang::StringBuilder * StringBuilder$append(jfloat);
+ ::java::lang::StringBuilder * StringBuilder$append(jdouble);
+ ::java::lang::StringBuilder * StringBuilder$appendCodePoint(jint);
+ ::java::lang::StringBuilder * StringBuilder$delete(jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$deleteCharAt(jint);
+ ::java::lang::StringBuilder * StringBuilder$replace(jint, jint, ::java::lang::String *);
+ ::java::lang::String * substring(jint);
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ ::java::lang::String * substring(jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::Object *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::String *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jboolean);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jchar);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jlong);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jfloat);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jdouble);
+ ::java::lang::StringBuilder * StringBuilder$reverse();
+ ::java::lang::String * toString();
+ ::java::lang::AbstractStringBuffer * reverse();
+ ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+ ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+ ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+ ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+ ::java::lang::AbstractStringBuffer * insert(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+ ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(jdouble);
+ ::java::lang::AbstractStringBuffer * append(jfloat);
+ ::java::lang::AbstractStringBuffer * append(jlong);
+ ::java::lang::AbstractStringBuffer * append(jint);
+ ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
+ ::java::lang::Appendable * append(jchar);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+ ::java::lang::AbstractStringBuffer * append(jboolean);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
+private:
+ static const jlong serialVersionUID = 4383685877147921099LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_StringBuilder__
diff --git a/gcc-4.8/libjava/java/lang/StringBuilder.java b/gcc-4.8/libjava/java/lang/StringBuilder.java
new file mode 100644
index 000000000..aefe9272b
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StringBuilder.java
@@ -0,0 +1,706 @@
+/* StringBuilder.java -- Unsynchronized growable strings
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * <code>StringBuilder</code> represents a changeable <code>String</code>.
+ * It provides the operations required to modify the
+ * <code>StringBuilder</code>, including insert, replace, delete, append,
+ * and reverse. It like <code>StringBuffer</code>, but is not
+ * synchronized. It is ideal for use when it is known that the
+ * object will only be used from a single thread.
+ *
+ * <p><code>StringBuilder</code>s are variable-length in nature, so even if
+ * you initialize them to a certain size, they can still grow larger than
+ * that. <em>Capacity</em> indicates the number of characters the
+ * <code>StringBuilder</code> can have in it before it has to grow (growing
+ * the char array is an expensive operation involving <code>new</code>).
+ *
+ * <p>Incidentally, compilers often implement the String operator "+"
+ * by using a <code>StringBuilder</code> operation:<br>
+ * <code>a + b</code><br>
+ * is the same as<br>
+ * <code>new StringBuilder().append(a).append(b).toString()</code>.
+ *
+ * <p>Classpath's StringBuilder is capable of sharing memory with Strings for
+ * efficiency. This will help when a StringBuilder is converted to a String
+ * and the StringBuilder is not changed after that (quite common when
+ * performing string concatenation).
+ *
+ * @author Paul Fisher
+ * @author John Keiser
+ * @author Tom Tromey
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @see String
+ * @see StringBuffer
+ *
+ * @since 1.5
+ */
+public final class StringBuilder
+ extends AbstractStringBuffer
+ implements Serializable, CharSequence, Appendable
+{
+ // Implementation note: if you change this class, you usually will
+ // want to change StringBuffer as well.
+
+ /**
+ * For compatability with Sun's JDK
+ */
+ private static final long serialVersionUID = 4383685877147921099L;
+
+ /**
+ * Create a new StringBuilder with default capacity 16.
+ */
+ public StringBuilder()
+ {
+ super();
+ }
+
+ /**
+ * Create an empty <code>StringBuilder</code> with the specified initial
+ * capacity.
+ *
+ * @param capacity the initial capacity
+ * @throws NegativeArraySizeException if capacity is negative
+ */
+ public StringBuilder(int capacity)
+ {
+ super(capacity);
+ }
+
+ /**
+ * Create a new <code>StringBuilder</code> with the characters in the
+ * specified <code>String</code>. Initial capacity will be the size of the
+ * String plus 16.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ public StringBuilder(String str)
+ {
+ super(str);
+ }
+
+ /**
+ * Create a new <code>StringBuilder</code> with the characters in the
+ * specified <code>CharSequence</code>. Initial capacity will be the
+ * length of the sequence plus 16; if the sequence reports a length
+ * less than or equal to 0, then the initial capacity will be 16.
+ *
+ * @param seq the initializing <code>CharSequence</code>
+ * @throws NullPointerException if str is null
+ */
+ public StringBuilder(CharSequence seq)
+ {
+ super(seq);
+ }
+
+ /**
+ * Get the length of the <code>String</code> this <code>StringBuilder</code>
+ * would create. Not to be confused with the <em>capacity</em> of the
+ * <code>StringBuilder</code>.
+ *
+ * @return the length of this <code>StringBuilder</code>
+ * @see #capacity()
+ * @see #setLength(int)
+ */
+ public int length()
+ {
+ return count;
+ }
+
+ /**
+ * Get the total number of characters this <code>StringBuilder</code> can
+ * support before it must be grown. Not to be confused with <em>length</em>.
+ *
+ * @return the capacity of this <code>StringBuilder</code>
+ * @see #length()
+ * @see #ensureCapacity(int)
+ */
+ public int capacity()
+ {
+ return value.length;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param obj the <code>Object</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see String#valueOf(Object)
+ * @see #append(String)
+ */
+ public StringBuilder append(Object obj)
+ {
+ super.append(obj);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> to this <code>StringBuilder</code>. If
+ * str is null, the String "null" is appended.
+ *
+ * @param str the <code>String</code> to append
+ * @return this <code>StringBuilder</code>
+ */
+ public StringBuilder append(String str)
+ {
+ super.append(str);
+ return this;
+ }
+
+ /**
+ * Append the <code>StringBuilder</code> value of the argument to this
+ * <code>StringBuilder</code>. This behaves the same as
+ * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+ *
+ * @param stringBuffer the <code>StringBuilder</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see #append(Object)
+ */
+ public StringBuilder append(StringBuffer stringBuffer)
+ {
+ super.append(stringBuffer);
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> array to this <code>StringBuilder</code>.
+ * This is similar (but more efficient) than
+ * <code>append(new String(data))</code>, except in the case of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @return this <code>StringBuilder</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @see #append(char[], int, int)
+ */
+ public StringBuilder append(char[] data)
+ {
+ super.append(data, 0, data.length);
+ return this;
+ }
+
+ /**
+ * Append part of the <code>char</code> array to this
+ * <code>StringBuilder</code>. This is similar (but more efficient) than
+ * <code>append(new String(data, offset, count))</code>, except in the case
+ * of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @param offset the start location in <code>str</code>
+ * @param count the number of characters to get from <code>str</code>
+ * @return this <code>StringBuilder</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if offset or count is out of range
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public StringBuilder append(char[] data, int offset, int count)
+ {
+ super.append(data, offset, count);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param bool the <code>boolean</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see String#valueOf(boolean)
+ */
+ public StringBuilder append(boolean bool)
+ {
+ super.append(bool);
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> to this <code>StringBuilder</code>.
+ *
+ * @param ch the <code>char</code> to append
+ * @return this <code>StringBuilder</code>
+ */
+ public StringBuilder append(char ch)
+ {
+ super.append(ch);
+ return this;
+ }
+
+ /**
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @return this <code>StringBuilder</code>
+ */
+ public StringBuilder append(CharSequence seq)
+ {
+ super.append(seq, 0, seq.length());
+ return this;
+ }
+
+ /**
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the four characters "null" are
+ * appended.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @param start the starting index
+ * @param end one past the final index
+ * @return this <code>StringBuilder</code>
+ */
+ public StringBuilder append(CharSequence seq, int start,
+ int end)
+ {
+ super.append(seq, start, end);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param inum the <code>int</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see String#valueOf(int)
+ */
+ // This is native in libgcj, for efficiency.
+ public StringBuilder append(int inum)
+ {
+ super.append(inum);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param lnum the <code>long</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see String#valueOf(long)
+ */
+ public StringBuilder append(long lnum)
+ {
+ super.append(lnum);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param fnum the <code>float</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see String#valueOf(float)
+ */
+ public StringBuilder append(float fnum)
+ {
+ super.append(fnum);
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param dnum the <code>double</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see String#valueOf(double)
+ */
+ public StringBuilder append(double dnum)
+ {
+ super.append(dnum);
+ return this;
+ }
+
+ /**
+ * Append the code point to this <code>StringBuilder</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuilder</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public StringBuilder appendCodePoint(int code)
+ {
+ super.appendCodePoint(code);
+ return this;
+ }
+
+ /**
+ * Delete characters from this <code>StringBuilder</code>.
+ * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+ * harmless for end to be larger than length().
+ *
+ * @param start the first character to delete
+ * @param end the index after the last character to delete
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ */
+ public StringBuilder delete(int start, int end)
+ {
+ super.delete(start, end);
+ return this;
+ }
+
+ /**
+ * Delete a character from this <code>StringBuilder</code>.
+ *
+ * @param index the index of the character to delete
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if index is out of bounds
+ */
+ public StringBuilder deleteCharAt(int index)
+ {
+ super.deleteCharAt(index);
+ return this;
+ }
+
+ /**
+ * Replace characters between index <code>start</code> (inclusive) and
+ * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+ * is larger than the size of this StringBuilder, all characters after
+ * <code>start</code> are replaced.
+ *
+ * @param start the beginning index of characters to delete (inclusive)
+ * @param end the ending index of characters to delete (exclusive)
+ * @param str the new <code>String</code> to insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @throws NullPointerException if str is null
+ */
+ public StringBuilder replace(int start, int end, String str)
+ {
+ super.replace(start, end, str);
+ return this;
+ }
+
+ /**
+ * Creates a substring of this StringBuilder, starting at a specified index
+ * and ending at the end of this StringBuilder.
+ *
+ * @param beginIndex index to start substring (base 0)
+ * @return new String which is a substring of this StringBuilder
+ * @throws StringIndexOutOfBoundsException if beginIndex is out of bounds
+ * @see #substring(int, int)
+ */
+ public String substring(int beginIndex)
+ {
+ return substring(beginIndex, count);
+ }
+
+ /**
+ * Creates a substring of this StringBuilder, starting at a specified index
+ * and ending at one character before a specified index. This is implemented
+ * the same as <code>substring(beginIndex, endIndex)</code>, to satisfy
+ * the CharSequence interface.
+ *
+ * @param beginIndex index to start at (inclusive, base 0)
+ * @param endIndex index to end at (exclusive)
+ * @return new String which is a substring of this StringBuilder
+ * @throws IndexOutOfBoundsException if beginIndex or endIndex is out of
+ * bounds
+ * @see #substring(int, int)
+ */
+ public CharSequence subSequence(int beginIndex, int endIndex)
+ {
+ return substring(beginIndex, endIndex);
+ }
+
+ /**
+ * Creates a substring of this StringBuilder, starting at a specified index
+ * and ending at one character before a specified index.
+ *
+ * @param beginIndex index to start at (inclusive, base 0)
+ * @param endIndex index to end at (exclusive)
+ * @return new String which is a substring of this StringBuilder
+ * @throws StringIndexOutOfBoundsException if beginIndex or endIndex is out
+ * of bounds
+ */
+ public String substring(int beginIndex, int endIndex)
+ {
+ int len = endIndex - beginIndex;
+ if (beginIndex < 0 || endIndex > count || endIndex < beginIndex)
+ throw new StringIndexOutOfBoundsException();
+ if (len == 0)
+ return "";
+ return new String(value, beginIndex, len);
+ }
+
+ /**
+ * Insert a subarray of the <code>char[]</code> argument into this
+ * <code>StringBuilder</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>char[]</code> to insert
+ * @param str_offset the index in <code>str</code> to start inserting from
+ * @param len the number of characters to insert
+ * @return this <code>StringBuilder</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if any index is out of bounds
+ */
+ public StringBuilder insert(int offset,
+ char[] str, int str_offset, int len)
+ {
+ super.insert(offset, str, str_offset, len);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param obj the <code>Object</code> to convert and insert
+ * @return this <code>StringBuilder</code>
+ * @exception StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(Object)
+ */
+ public StringBuilder insert(int offset, Object obj)
+ {
+ super.insert(offset, obj);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> argument into this
+ * <code>StringBuilder</code>. If str is null, the String "null" is used
+ * instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>String</code> to insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public StringBuilder insert(int offset, String str)
+ {
+ super.insert(offset, str);
+ return this;
+ }
+
+ /**
+ * Insert the <code>CharSequence</code> argument into this
+ * <code>StringBuilder</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @return this <code>StringBuilder</code>
+ * @throws IndexOutOfBoundsException if offset is out of bounds
+ */
+ public StringBuilder insert(int offset, CharSequence sequence)
+ {
+ super.insert(offset, sequence);
+ return this;
+ }
+
+ /**
+ * Insert a subsequence of the <code>CharSequence</code> argument into this
+ * <code>StringBuilder</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @param start the starting index of the subsequence
+ * @param end one past the ending index of the subsequence
+ * @return this <code>StringBuilder</code>
+ * @throws IndexOutOfBoundsException if offset, start,
+ * or end are out of bounds
+ */
+ public StringBuilder insert(int offset, CharSequence sequence,
+ int start, int end)
+ {
+ super.insert(offset, sequence, start, end);
+ return this;
+ }
+
+ /**
+ * Insert the <code>char[]</code> argument into this
+ * <code>StringBuilder</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param data the <code>char[]</code> to insert
+ * @return this <code>StringBuilder</code>
+ * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see #insert(int, char[], int, int)
+ */
+ public StringBuilder insert(int offset, char[] data)
+ {
+ super.insert(offset, data);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param bool the <code>boolean</code> to convert and insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(boolean)
+ */
+ public StringBuilder insert(int offset, boolean bool)
+ {
+ super.insert(offset, bool);
+ return this;
+ }
+
+ /**
+ * Insert the <code>char</code> argument into this <code>StringBuilder</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param ch the <code>char</code> to insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public StringBuilder insert(int offset, char ch)
+ {
+ super.insert(offset, ch);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param inum the <code>int</code> to convert and insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(int)
+ */
+ public StringBuilder insert(int offset, int inum)
+ {
+ super.insert(offset, inum);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param lnum the <code>long</code> to convert and insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(long)
+ */
+ public StringBuilder insert(int offset, long lnum)
+ {
+ super.insert(offset, lnum);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param fnum the <code>float</code> to convert and insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(float)
+ */
+ public StringBuilder insert(int offset, float fnum)
+ {
+ super.insert(offset, fnum);
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param dnum the <code>double</code> to convert and insert
+ * @return this <code>StringBuilder</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(double)
+ */
+ public StringBuilder insert(int offset, double dnum)
+ {
+ super.insert(offset, dnum);
+ return this;
+ }
+
+ /**
+ * Reverse the characters in this StringBuilder. The same sequence of
+ * characters exists, but in the reverse index ordering.
+ *
+ * @return this <code>StringBuilder</code>
+ */
+ public StringBuilder reverse()
+ {
+ super.reverse();
+ return this;
+ }
+
+ /**
+ * Convert this <code>StringBuilder</code> to a <code>String</code>. The
+ * String is composed of the characters currently in this StringBuilder. Note
+ * that the result is a copy, and that future modifications to this buffer
+ * do not affect the String.
+ *
+ * @return the characters in this StringBuilder
+ */
+ public String toString()
+ {
+ return new String(this);
+ }
+
+}
diff --git a/gcc-4.8/libjava/java/lang/StringIndexOutOfBoundsException.h b/gcc-4.8/libjava/java/lang/StringIndexOutOfBoundsException.h
new file mode 100644
index 000000000..e3669a0d3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/StringIndexOutOfBoundsException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_StringIndexOutOfBoundsException__
+#define __java_lang_StringIndexOutOfBoundsException__
+
+#pragma interface
+
+#include <java/lang/IndexOutOfBoundsException.h>
+
+class java::lang::StringIndexOutOfBoundsException : public ::java::lang::IndexOutOfBoundsException
+{
+
+public:
+ StringIndexOutOfBoundsException();
+ StringIndexOutOfBoundsException(::java::lang::String *);
+ StringIndexOutOfBoundsException(jint);
+private:
+ static const jlong serialVersionUID = -6762910422159637258LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_StringIndexOutOfBoundsException__
diff --git a/gcc-4.8/libjava/java/lang/SuppressWarnings.h b/gcc-4.8/libjava/java/lang/SuppressWarnings.h
new file mode 100644
index 000000000..3f28104d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/SuppressWarnings.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_SuppressWarnings__
+#define __java_lang_SuppressWarnings__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::SuppressWarnings : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::String * > * value() = 0;
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_SuppressWarnings__
diff --git a/gcc-4.8/libjava/java/lang/System$EnvironmentCollection.h b/gcc-4.8/libjava/java/lang/System$EnvironmentCollection.h
new file mode 100644
index 000000000..8392e1782
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/System$EnvironmentCollection.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_System$EnvironmentCollection__
+#define __java_lang_System$EnvironmentCollection__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::lang::System$EnvironmentCollection : public ::java::util::AbstractCollection
+{
+
+public:
+ System$EnvironmentCollection(::java::util::Collection *);
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual jint size();
+public: // actually protected
+ ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) c;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_System$EnvironmentCollection__
diff --git a/gcc-4.8/libjava/java/lang/System$EnvironmentMap.h b/gcc-4.8/libjava/java/lang/System$EnvironmentMap.h
new file mode 100644
index 000000000..c8ef8aade
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/System$EnvironmentMap.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_System$EnvironmentMap__
+#define __java_lang_System$EnvironmentMap__
+
+#pragma interface
+
+#include <java/util/HashMap.h>
+
+class java::lang::System$EnvironmentMap : public ::java::util::HashMap
+{
+
+public: // actually package-private
+ System$EnvironmentMap();
+ System$EnvironmentMap(::java::util::Map *);
+public:
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual ::java::lang::String * System$EnvironmentMap$get(::java::lang::Object *);
+ virtual ::java::util::Set * keySet();
+ virtual ::java::lang::String * System$EnvironmentMap$put(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * System$EnvironmentMap$remove(::java::lang::Object *);
+ virtual ::java::util::Collection * values();
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+private:
+ ::java::util::Set * __attribute__((aligned(__alignof__( ::java::util::HashMap)))) entries;
+ ::java::util::Set * keys;
+ ::java::util::Collection * values__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_System$EnvironmentMap__
diff --git a/gcc-4.8/libjava/java/lang/System$EnvironmentSet.h b/gcc-4.8/libjava/java/lang/System$EnvironmentSet.h
new file mode 100644
index 000000000..9a1e1a65d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/System$EnvironmentSet.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_System$EnvironmentSet__
+#define __java_lang_System$EnvironmentSet__
+
+#pragma interface
+
+#include <java/lang/System$EnvironmentCollection.h>
+
+class java::lang::System$EnvironmentSet : public ::java::lang::System$EnvironmentCollection
+{
+
+public:
+ System$EnvironmentSet(::java::util::Set *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_System$EnvironmentSet__
diff --git a/gcc-4.8/libjava/java/lang/System.h b/gcc-4.8/libjava/java/lang/System.h
new file mode 100644
index 000000000..8a67628b0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/System.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_System__
+#define __java_lang_System__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class Channel;
+ }
+ }
+ }
+}
+
+class java::lang::System : public ::java::lang::Object
+{
+
+ System();
+public:
+ static void setIn(::java::io::InputStream *);
+ static void setOut(::java::io::PrintStream *);
+ static void setErr(::java::io::PrintStream *);
+ static void setSecurityManager(::java::lang::SecurityManager *);
+ static ::java::lang::SecurityManager * getSecurityManager();
+ static jlong currentTimeMillis();
+ static jlong nanoTime();
+ static void arraycopy(::java::lang::Object *, jint, ::java::lang::Object *, jint, jint);
+ static jint identityHashCode(::java::lang::Object *);
+ static ::java::util::Properties * getProperties();
+ static void setProperties(::java::util::Properties *);
+ static ::java::lang::String * getProperty(::java::lang::String *);
+ static ::java::lang::String * getProperty(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::String * setProperty(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::String * clearProperty(::java::lang::String *);
+ static ::java::lang::String * getenv(::java::lang::String *);
+ static ::java::util::Map * getenv();
+ static void exit(jint);
+ static void gc();
+ static void runFinalization();
+ static void runFinalizersOnExit(jboolean);
+ static void load(::java::lang::String *);
+ static void loadLibrary(::java::lang::String *);
+ static ::java::lang::String * mapLibraryName(::java::lang::String *);
+private:
+ static void setIn0(::java::io::InputStream *);
+ static void setOut0(::java::io::PrintStream *);
+ static void setErr0(::java::io::PrintStream *);
+public: // actually package-private
+ static ::java::lang::String * getenv0(::java::lang::String *);
+public:
+ static ::java::nio::channels::Channel * inheritedChannel();
+ static ::java::io::InputStream * in;
+ static ::java::io::PrintStream * out;
+ static ::java::io::PrintStream * err;
+private:
+ static ::java::util::Map * environmentMap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_System__
diff --git a/gcc-4.8/libjava/java/lang/System.java b/gcc-4.8/libjava/java/lang/System.java
new file mode 100644
index 000000000..ecfad2557
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/System.java
@@ -0,0 +1,1089 @@
+/* System.java -- useful methods to interface with the system
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang;
+
+import gnu.classpath.SystemProperties;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.FileDescriptor;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.nio.channels.Channel;
+import java.nio.channels.spi.SelectorProvider;
+import java.util.AbstractCollection;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Properties;
+import java.util.PropertyPermission;
+
+/**
+ * System represents system-wide resources; things that represent the
+ * general environment. As such, all methods are static.
+ *
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @since 1.0
+ * @status still missing 1.4 functionality
+ */
+public final class System
+{
+ // WARNING: System is a CORE class in the bootstrap cycle. See the comments
+ // in vm/reference/java/lang/Runtime for implications of this fact.
+
+ /**
+ * The standard InputStream. This is assigned at startup and starts its
+ * life perfectly valid. Although it is marked final, you can change it
+ * using {@link #setIn(InputStream)} through some hefty VM magic.
+ *
+ * <p>This corresponds to the C stdin and C++ cin variables, which
+ * typically input from the keyboard, but may be used to pipe input from
+ * other processes or files. That should all be transparent to you,
+ * however.
+ */
+ public static final InputStream in
+ = new BufferedInputStream(new FileInputStream(FileDescriptor.in));
+ /**
+ * The standard output PrintStream. This is assigned at startup and
+ * starts its life perfectly valid. Although it is marked final, you can
+ * change it using {@link #setOut(PrintStream)} through some hefty VM magic.
+ *
+ * <p>This corresponds to the C stdout and C++ cout variables, which
+ * typically output normal messages to the screen, but may be used to pipe
+ * output to other processes or files. That should all be transparent to
+ * you, however.
+ */
+ public static final PrintStream out
+ = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.out)), true);
+ /**
+ * The standard output PrintStream. This is assigned at startup and
+ * starts its life perfectly valid. Although it is marked final, you can
+ * change it using {@link #setErr(PrintStream)} through some hefty VM magic.
+ *
+ * <p>This corresponds to the C stderr and C++ cerr variables, which
+ * typically output error messages to the screen, but may be used to pipe
+ * output to other processes or files. That should all be transparent to
+ * you, however.
+ */
+ public static final PrintStream err
+ = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.err)), true);
+
+ /**
+ * A cached copy of the environment variable map.
+ */
+ private static Map<String,String> environmentMap;
+
+ /**
+ * This class is uninstantiable.
+ */
+ private System()
+ {
+ }
+
+ /**
+ * Set {@link #in} to a new InputStream. This uses some VM magic to change
+ * a "final" variable, so naturally there is a security check,
+ * <code>RuntimePermission("setIO")</code>.
+ *
+ * @param in the new InputStream
+ * @throws SecurityException if permission is denied
+ * @since 1.1
+ */
+ public static void setIn(InputStream in)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("setIO"));
+ setIn0(in);
+ }
+
+ /**
+ * Set {@link #out} to a new PrintStream. This uses some VM magic to change
+ * a "final" variable, so naturally there is a security check,
+ * <code>RuntimePermission("setIO")</code>.
+ *
+ * @param out the new PrintStream
+ * @throws SecurityException if permission is denied
+ * @since 1.1
+ */
+ public static void setOut(PrintStream out)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("setIO"));
+
+ setOut0(out);
+ }
+
+ /**
+ * Set {@link #err} to a new PrintStream. This uses some VM magic to change
+ * a "final" variable, so naturally there is a security check,
+ * <code>RuntimePermission("setIO")</code>.
+ *
+ * @param err the new PrintStream
+ * @throws SecurityException if permission is denied
+ * @since 1.1
+ */
+ public static void setErr(PrintStream err)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("setIO"));
+ setErr0(err);
+ }
+
+ /**
+ * Set the current SecurityManager. If a security manager already exists,
+ * then <code>RuntimePermission("setSecurityManager")</code> is checked
+ * first. Since this permission is denied by the default security manager,
+ * setting the security manager is often an irreversible action.
+ *
+ * @param sm the new SecurityManager
+ * @throws SecurityException if permission is denied
+ */
+ public static synchronized void setSecurityManager(SecurityManager sm)
+ {
+ // Implementation note: the field lives in SecurityManager because of
+ // bootstrap initialization issues. This method is synchronized so that
+ // no other thread changes it to null before this thread makes the change.
+ if (SecurityManager.current != null)
+ SecurityManager.current.checkPermission
+ (new RuntimePermission("setSecurityManager"));
+ SecurityManager.current = sm;
+ }
+
+ /**
+ * Get the current SecurityManager. If the SecurityManager has not been
+ * set yet, then this method returns null.
+ *
+ * @return the current SecurityManager, or null
+ */
+ public static SecurityManager getSecurityManager()
+ {
+ return SecurityManager.current;
+ }
+
+ /**
+ * Get the current time, measured in the number of milliseconds from the
+ * beginning of Jan. 1, 1970. This is gathered from the system clock, with
+ * any attendant incorrectness (it may be timezone dependent).
+ *
+ * @return the current time
+ * @see java.util.Date
+ */
+ public static native long currentTimeMillis();
+
+ /**
+ * Get the current time, measured in nanoseconds. The result is as
+ * precise as possible, and is measured against a fixed epoch.
+ * However, unlike currentTimeMillis(), the epoch chosen is
+ * arbitrary and may vary by platform, etc.
+ * @since 1.5
+ */
+ public static native long nanoTime();
+
+ /**
+ * Copy one array onto another from <code>src[srcStart]</code> ...
+ * <code>src[srcStart+len-1]</code> to <code>dest[destStart]</code> ...
+ * <code>dest[destStart+len-1]</code>. First, the arguments are validated:
+ * neither array may be null, they must be of compatible types, and the
+ * start and length must fit within both arrays. Then the copying starts,
+ * and proceeds through increasing slots. If src and dest are the same
+ * array, this will appear to copy the data to a temporary location first.
+ * An ArrayStoreException in the middle of copying will leave earlier
+ * elements copied, but later elements unchanged.
+ *
+ * @param src the array to copy elements from
+ * @param srcStart the starting position in src
+ * @param dest the array to copy elements to
+ * @param destStart the starting position in dest
+ * @param len the number of elements to copy
+ * @throws NullPointerException if src or dest is null
+ * @throws ArrayStoreException if src or dest is not an array, if they are
+ * not compatible array types, or if an incompatible runtime type
+ * is stored in dest
+ * @throws IndexOutOfBoundsException if len is negative, or if the start or
+ * end copy position in either array is out of bounds
+ */
+ public static native void arraycopy(Object src, int srcStart,
+ Object dest, int destStart, int len);
+
+ /**
+ * Get a hash code computed by the VM for the Object. This hash code will
+ * be the same as Object's hashCode() method. It is usually some
+ * convolution of the pointer to the Object internal to the VM. It
+ * follows standard hash code rules, in that it will remain the same for a
+ * given Object for the lifetime of that Object.
+ *
+ * @param o the Object to get the hash code for
+ * @return the VM-dependent hash code for this Object
+ * @since 1.1
+ */
+ public static native int identityHashCode(Object o);
+
+ /**
+ * Get all the system properties at once. A security check may be performed,
+ * <code>checkPropertiesAccess</code>. Note that a security manager may
+ * allow getting a single property, but not the entire group.
+ *
+ * <p>The required properties include:
+ * <dl>
+ * <dt>java.version</dt> <dd>Java version number</dd>
+ * <dt>java.vendor</dt> <dd>Java vendor specific string</dd>
+ * <dt>java.vendor.url</dt> <dd>Java vendor URL</dd>
+ * <dt>java.home</dt> <dd>Java installation directory</dd>
+ * <dt>java.vm.specification.version</dt> <dd>VM Spec version</dd>
+ * <dt>java.vm.specification.vendor</dt> <dd>VM Spec vendor</dd>
+ * <dt>java.vm.specification.name</dt> <dd>VM Spec name</dd>
+ * <dt>java.vm.version</dt> <dd>VM implementation version</dd>
+ * <dt>java.vm.vendor</dt> <dd>VM implementation vendor</dd>
+ * <dt>java.vm.name</dt> <dd>VM implementation name</dd>
+ * <dt>java.specification.version</dt> <dd>Java Runtime Environment version</dd>
+ * <dt>java.specification.vendor</dt> <dd>Java Runtime Environment vendor</dd>
+ * <dt>java.specification.name</dt> <dd>Java Runtime Environment name</dd>
+ * <dt>java.class.version</dt> <dd>Java class version number</dd>
+ * <dt>java.class.path</dt> <dd>Java classpath</dd>
+ * <dt>java.library.path</dt> <dd>Path for finding Java libraries</dd>
+ * <dt>java.io.tmpdir</dt> <dd>Default temp file path</dd>
+ * <dt>java.compiler</dt> <dd>Name of JIT to use</dd>
+ * <dt>java.ext.dirs</dt> <dd>Java extension path</dd>
+ * <dt>os.name</dt> <dd>Operating System Name</dd>
+ * <dt>os.arch</dt> <dd>Operating System Architecture</dd>
+ * <dt>os.version</dt> <dd>Operating System Version</dd>
+ * <dt>file.separator</dt> <dd>File separator ("/" on Unix)</dd>
+ * <dt>path.separator</dt> <dd>Path separator (":" on Unix)</dd>
+ * <dt>line.separator</dt> <dd>Line separator ("\n" on Unix)</dd>
+ * <dt>user.name</dt> <dd>User account name</dd>
+ * <dt>user.home</dt> <dd>User home directory</dd>
+ * <dt>user.dir</dt> <dd>User's current working directory</dd>
+ * </dl>
+ *
+ * In addition, gnu defines several other properties, where ? stands for
+ * each character in '0' through '9':
+ * <dl>
+ * <dt>gnu.classpath.home</dt> <dd>Path to the classpath libraries.</dd>
+ * <dt>gnu.classpath.version</dt> <dd>Version of the classpath libraries.</dd>
+ * <dt>gnu.classpath.vm.shortname</dt> <dd>Succinct version of the VM name;
+ * used for finding property files in file system</dd>
+ * <dt>gnu.classpath.home.url</dt> <dd> Base URL; used for finding
+ * property files in file system</dd>
+ * <dt>gnu.cpu.endian</dt> <dd>big or little</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.ISO-8859-?</dt> <dd>8859_?</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.iso-8859-?</dt> <dd>8859_?</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.iso8859_?</dt> <dd>8859_?</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.iso-latin-_?</dt> <dd>8859_?</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.latin?</dt> <dd>8859_?</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.UTF-8</dt> <dd>UTF8</dd>
+ * <dt>gnu.java.io.encoding_scheme_alias.utf-8</dt> <dd>UTF8</dd>
+ * <dt>gnu.java.util.zoneinfo.dir</dt> <dd>Root of zoneinfo tree</dd>
+ * </dl>
+ *
+ * @return the system properties, will never be null
+ * @throws SecurityException if permission is denied
+ */
+ public static Properties getProperties()
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPropertiesAccess();
+ return SystemProperties.getProperties();
+ }
+
+ /**
+ * Set all the system properties at once. A security check may be performed,
+ * <code>checkPropertiesAccess</code>. Note that a security manager may
+ * allow setting a single property, but not the entire group. An argument
+ * of null resets the properties to the startup default.
+ *
+ * @param properties the new set of system properties
+ * @throws SecurityException if permission is denied
+ */
+ public static void setProperties(Properties properties)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPropertiesAccess();
+ SystemProperties.setProperties(properties);
+ }
+
+ /**
+ * Get a single system property by name. A security check may be performed,
+ * <code>checkPropertyAccess(key)</code>.
+ *
+ * @param key the name of the system property to get
+ * @return the property, or null if not found
+ * @throws SecurityException if permission is denied
+ * @throws NullPointerException if key is null
+ * @throws IllegalArgumentException if key is ""
+ */
+ public static String getProperty(String key)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPropertyAccess(key);
+ else if (key.length() == 0)
+ throw new IllegalArgumentException("key can't be empty");
+ return SystemProperties.getProperty(key);
+ }
+
+ /**
+ * Get a single system property by name. A security check may be performed,
+ * <code>checkPropertyAccess(key)</code>.
+ *
+ * @param key the name of the system property to get
+ * @param def the default
+ * @return the property, or def if not found
+ * @throws SecurityException if permission is denied
+ * @throws NullPointerException if key is null
+ * @throws IllegalArgumentException if key is ""
+ */
+ public static String getProperty(String key, String def)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPropertyAccess(key);
+ return SystemProperties.getProperty(key, def);
+ }
+
+ /**
+ * Set a single system property by name. A security check may be performed,
+ * <code>checkPropertyAccess(key, "write")</code>.
+ *
+ * @param key the name of the system property to set
+ * @param value the new value
+ * @return the previous value, or null
+ * @throws SecurityException if permission is denied
+ * @throws NullPointerException if key is null
+ * @throws IllegalArgumentException if key is ""
+ * @since 1.2
+ */
+ public static String setProperty(String key, String value)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new PropertyPermission(key, "write"));
+ return SystemProperties.setProperty(key, value);
+ }
+
+ /**
+ * Remove a single system property by name. A security check may be
+ * performed, <code>checkPropertyAccess(key, "write")</code>.
+ *
+ * @param key the name of the system property to remove
+ * @return the previous value, or null
+ * @throws SecurityException if permission is denied
+ * @throws NullPointerException if key is null
+ * @throws IllegalArgumentException if key is ""
+ * @since 1.5
+ */
+ public static String clearProperty(String key)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new PropertyPermission(key, "write"));
+ // This handles both the null pointer exception and the illegal
+ // argument exception.
+ if (key.length() == 0)
+ throw new IllegalArgumentException("key can't be empty");
+ return SystemProperties.remove(key);
+ }
+
+ /**
+ * Gets the value of an environment variable.
+ *
+ * @param name the name of the environment variable
+ * @return the string value of the variable or null when the
+ * environment variable is not defined.
+ * @throws NullPointerException
+ * @throws SecurityException if permission is denied
+ * @since 1.5
+ * @specnote This method was deprecated in some JDK releases, but
+ * was restored in 1.5.
+ */
+ public static String getenv(String name)
+ {
+ if (name == null)
+ throw new NullPointerException();
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("getenv." + name));
+ return getenv0(name);
+ }
+
+ /**
+ * <p>
+ * Returns an unmodifiable view of the system environment variables.
+ * If the underlying system does not support environment variables,
+ * an empty map is returned.
+ * </p>
+ * <p>
+ * The returned map is read-only and does not accept queries using
+ * null keys or values, or those of a type other than <code>String</code>.
+ * Attempts to modify the map will throw an
+ * <code>UnsupportedOperationException</code>, while attempts
+ * to pass in a null value will throw a
+ * <code>NullPointerException</code>. Types other than <code>String</code>
+ * throw a <code>ClassCastException</code>.
+ * </p>
+ * <p>
+ * As the returned map is generated using data from the underlying
+ * platform, it may not comply with the <code>equals()</code>
+ * and <code>hashCode()</code> contracts. It is also likely that
+ * the keys of this map will be case-sensitive.
+ * </p>
+ * <p>
+ * Use of this method may require a security check for the
+ * RuntimePermission "getenv.*".
+ * </p>
+ *
+ * @return a map of the system environment variables.
+ * @throws SecurityException if the checkPermission method of
+ * an installed security manager prevents access to
+ * the system environment variables.
+ * @since 1.5
+ */
+ public static Map<String, String> getenv()
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("getenv.*"));
+ if (environmentMap == null)
+ {
+ // List<String> environ = (List<String>)VMSystem.environ();
+ // FIXME
+ List<String> environ = new ArrayList<String>();
+ Map<String,String> variables = new EnvironmentMap();
+ for (String pair : environ)
+ {
+ String[] parts = pair.split("=");
+ variables.put(parts[0], parts[1]);
+ }
+ environmentMap = Collections.unmodifiableMap(variables);
+ }
+ return environmentMap;
+ }
+
+ /**
+ * Terminate the Virtual Machine. This just calls
+ * <code>Runtime.getRuntime().exit(status)</code>, and never returns.
+ * Obviously, a security check is in order, <code>checkExit</code>.
+ *
+ * @param status the exit status; by convention non-zero is abnormal
+ * @throws SecurityException if permission is denied
+ * @see Runtime#exit(int)
+ */
+ public static void exit(int status)
+ {
+ Runtime.getRuntime().exit(status);
+ }
+
+ /**
+ * Calls the garbage collector. This is only a hint, and it is up to the
+ * implementation what this hint suggests, but it usually causes a
+ * best-effort attempt to reclaim unused memory from discarded objects.
+ * This calls <code>Runtime.getRuntime().gc()</code>.
+ *
+ * @see Runtime#gc()
+ */
+ public static void gc()
+ {
+ Runtime.getRuntime().gc();
+ }
+
+ /**
+ * Runs object finalization on pending objects. This is only a hint, and
+ * it is up to the implementation what this hint suggests, but it usually
+ * causes a best-effort attempt to run finalizers on all objects ready
+ * to be reclaimed. This calls
+ * <code>Runtime.getRuntime().runFinalization()</code>.
+ *
+ * @see Runtime#runFinalization()
+ */
+ public static void runFinalization()
+ {
+ Runtime.getRuntime().runFinalization();
+ }
+
+ /**
+ * Tell the Runtime whether to run finalization before exiting the
+ * JVM. This is inherently unsafe in multi-threaded applications,
+ * since it can force initialization on objects which are still in use
+ * by live threads, leading to deadlock; therefore this is disabled by
+ * default. There may be a security check, <code>checkExit(0)</code>. This
+ * calls <code>Runtime.getRuntime().runFinalizersOnExit()</code>.
+ *
+ * @param finalizeOnExit whether to run finalizers on exit
+ * @throws SecurityException if permission is denied
+ * @see Runtime#runFinalizersOnExit()
+ * @since 1.1
+ * @deprecated never rely on finalizers to do a clean, thread-safe,
+ * mop-up from your code
+ */
+ public static void runFinalizersOnExit(boolean finalizeOnExit)
+ {
+ Runtime.getRuntime().runFinalizersOnExit(finalizeOnExit);
+ }
+
+ /**
+ * Load a code file using its explicit system-dependent filename. A security
+ * check may be performed, <code>checkLink</code>. This just calls
+ * <code>Runtime.getRuntime().load(filename)</code>.
+ *
+ * <p>
+ * The library is loaded using the class loader associated with the
+ * class associated with the invoking method.
+ *
+ * @param filename the code file to load
+ * @throws SecurityException if permission is denied
+ * @throws UnsatisfiedLinkError if the file cannot be loaded
+ * @see Runtime#load(String)
+ */
+ public static void load(String filename)
+ {
+ Runtime.getRuntime().load(filename);
+ }
+
+ /**
+ * Load a library using its explicit system-dependent filename. A security
+ * check may be performed, <code>checkLink</code>. This just calls
+ * <code>Runtime.getRuntime().load(filename)</code>.
+ *
+ * <p>
+ * The library is loaded using the class loader associated with the
+ * class associated with the invoking method.
+ *
+ * @param libname the library file to load
+ * @throws SecurityException if permission is denied
+ * @throws UnsatisfiedLinkError if the file cannot be loaded
+ * @see Runtime#load(String)
+ */
+ public static void loadLibrary(String libname)
+ {
+ Runtime.getRuntime().loadLibrary(libname);
+ }
+
+ /**
+ * Convert a library name to its platform-specific variant.
+ *
+ * @param libname the library name, as used in <code>loadLibrary</code>
+ * @return the platform-specific mangling of the name
+ * @since 1.2
+ */
+ public static String mapLibraryName(String libname)
+ {
+ // XXX Fix this!!!!
+ return Runtime.nativeGetLibname("", libname);
+ }
+
+ /**
+ * Set {@link #in} to a new InputStream.
+ *
+ * @param in the new InputStream
+ * @see #setIn(InputStream)
+ */
+ private static native void setIn0(InputStream in);
+
+ /**
+ * Set {@link #out} to a new PrintStream.
+ *
+ * @param out the new PrintStream
+ * @see #setOut(PrintStream)
+ */
+ private static native void setOut0(PrintStream out);
+
+ /**
+ * Set {@link #err} to a new PrintStream.
+ *
+ * @param err the new PrintStream
+ * @see #setErr(PrintStream)
+ */
+ private static native void setErr0(PrintStream err);
+
+ /**
+ * Gets the value of an environment variable.
+ *
+ * @see #getenv(String)
+ */
+ static native String getenv0(String name);
+
+ /**
+ * Returns the inherited channel of the VM.
+ *
+ * This wraps the inheritedChannel() call of the system's default
+ * {@link SelectorProvider}.
+ *
+ * @return the inherited channel of the VM
+ *
+ * @throws IOException If an I/O error occurs
+ * @throws SecurityException If an installed security manager denies access
+ * to RuntimePermission("inheritedChannel")
+ *
+ * @since 1.5
+ */
+ public static Channel inheritedChannel()
+ throws IOException
+ {
+ return SelectorProvider.provider().inheritedChannel();
+ }
+
+ /**
+ * This is a specialised <code>Collection</code>, providing
+ * the necessary provisions for the collections used by the
+ * environment variable map. Namely, it prevents
+ * querying anything but <code>String</code>s.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ */
+ private static class EnvironmentCollection
+ extends AbstractCollection<String>
+ {
+
+ /**
+ * The wrapped collection.
+ */
+ protected Collection<String> c;
+
+ /**
+ * Constructs a new environment collection, which
+ * wraps the elements of the supplied collection.
+ *
+ * @param coll the collection to use as a base for
+ * this collection.
+ */
+ public EnvironmentCollection(Collection<String> coll)
+ {
+ c = coll;
+ }
+
+ /**
+ * Blocks queries containing a null object or an object which
+ * isn't of type <code>String</code>. All other queries
+ * are forwarded to the underlying collection.
+ *
+ * @param obj the object to look for.
+ * @return true if the object exists in the collection.
+ * @throws NullPointerException if the specified object is null.
+ * @throws ClassCastException if the specified object is not a String.
+ */
+ public boolean contains(Object obj)
+ {
+ if (obj == null)
+ throw new
+ NullPointerException("This collection does not support " +
+ "null values.");
+ if (!(obj instanceof String))
+ throw new
+ ClassCastException("This collection only supports Strings.");
+ return c.contains(obj);
+ }
+
+ /**
+ * Blocks queries where the collection contains a null object or
+ * an object which isn't of type <code>String</code>. All other
+ * queries are forwarded to the underlying collection.
+ *
+ * @param coll the collection of objects to look for.
+ * @return true if the collection contains all elements in the collection.
+ * @throws NullPointerException if the collection is null.
+ * @throws NullPointerException if any collection entry is null.
+ * @throws ClassCastException if any collection entry is not a String.
+ */
+ public boolean containsAll(Collection<?> coll)
+ {
+ for (Object o: coll)
+ {
+ if (o == null)
+ throw new
+ NullPointerException("This collection does not support " +
+ "null values.");
+ if (!(o instanceof String))
+ throw new
+ ClassCastException("This collection only supports Strings.");
+ }
+ return c.containsAll(coll);
+ }
+
+ /**
+ * This returns an iterator over the map elements, with the
+ * same provisions as for the collection and underlying map.
+ *
+ * @return an iterator over the map elements.
+ */
+ public Iterator<String> iterator()
+ {
+ return c.iterator();
+ }
+
+ /**
+ * Blocks the removal of elements from the collection.
+ *
+ * @return true if the removal was sucessful.
+ * @throws NullPointerException if the collection is null.
+ * @throws NullPointerException if any collection entry is null.
+ * @throws ClassCastException if any collection entry is not a String.
+ */
+ public boolean remove(Object key)
+ {
+ if (key == null)
+ throw new
+ NullPointerException("This collection does not support " +
+ "null values.");
+ if (!(key instanceof String))
+ throw new
+ ClassCastException("This collection only supports Strings.");
+ return c.contains(key);
+ }
+
+ /**
+ * Blocks the removal of all elements in the specified
+ * collection from the collection.
+ *
+ * @param coll the collection of elements to remove.
+ * @return true if the elements were removed.
+ * @throws NullPointerException if the collection is null.
+ * @throws NullPointerException if any collection entry is null.
+ * @throws ClassCastException if any collection entry is not a String.
+ */
+ public boolean removeAll(Collection<?> coll)
+ {
+ for (Object o: coll)
+ {
+ if (o == null)
+ throw new
+ NullPointerException("This collection does not support " +
+ "null values.");
+ if (!(o instanceof String))
+ throw new
+ ClassCastException("This collection only supports Strings.");
+ }
+ return c.removeAll(coll);
+ }
+
+ /**
+ * Blocks the retention of all elements in the specified
+ * collection from the collection.
+ *
+ * @param c the collection of elements to retain.
+ * @return true if the other elements were removed.
+ * @throws NullPointerException if the collection is null.
+ * @throws NullPointerException if any collection entry is null.
+ * @throws ClassCastException if any collection entry is not a String.
+ */
+ public boolean retainAll(Collection<?> coll)
+ {
+ for (Object o: coll)
+ {
+ if (o == null)
+ throw new
+ NullPointerException("This collection does not support " +
+ "null values.");
+ if (!(o instanceof String))
+ throw new
+ ClassCastException("This collection only supports Strings.");
+ }
+ return c.containsAll(coll);
+ }
+
+ /**
+ * This simply calls the same method on the wrapped
+ * collection.
+ *
+ * @return the size of the underlying collection.
+ */
+ public int size()
+ {
+ return c.size();
+ }
+
+ } // class EnvironmentCollection<String>
+
+ /**
+ * This is a specialised <code>HashMap</code>, which
+ * prevents the addition or querying of anything other than
+ * <code>String</code> objects.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ */
+ static class EnvironmentMap
+ extends HashMap<String,String>
+ {
+
+ /**
+ * Cache the entry set.
+ */
+ private transient Set<Map.Entry<String,String>> entries;
+
+ /**
+ * Cache the key set.
+ */
+ private transient Set<String> keys;
+
+ /**
+ * Cache the value collection.
+ */
+ private transient Collection<String> values;
+
+ /**
+ * Constructs a new empty <code>EnvironmentMap</code>.
+ */
+ EnvironmentMap()
+ {
+ super();
+ }
+
+ /**
+ * Constructs a new <code>EnvironmentMap</code> containing
+ * the contents of the specified map.
+ *
+ * @param m the map to be added to this.
+ * @throws NullPointerException if a key or value is null.
+ * @throws ClassCastException if a key or value is not a String.
+ */
+ EnvironmentMap(Map<String,String> m)
+ {
+ super(m);
+ }
+
+ /**
+ * Blocks queries containing a null key or one which is not
+ * of type <code>String</code>. All other queries
+ * are forwarded to the superclass.
+ *
+ * @param key the key to look for in the map.
+ * @return true if the key exists in the map.
+ * @throws NullPointerException if the specified key is null.
+ */
+ public boolean containsKey(Object key)
+ {
+ if (key == null)
+ throw new
+ NullPointerException("This map does not support null keys.");
+ if (!(key instanceof String))
+ throw new
+ ClassCastException("This map only allows queries using Strings.");
+ return super.containsKey(key);
+ }
+
+ /**
+ * Blocks queries using a null or non-<code>String</code> value.
+ * All other queries are forwarded to the superclass.
+ *
+ * @param value the value to look for in the map.
+ * @return true if the value exists in the map.
+ * @throws NullPointerException if the specified value is null.
+ */
+ public boolean containsValue(Object value)
+ {
+ if (value == null)
+ throw new
+ NullPointerException("This map does not support null values.");
+ if (!(value instanceof String))
+ throw new
+ ClassCastException("This map only allows queries using Strings.");
+ return super.containsValue(value);
+ }
+
+ /**
+ * Returns a set view of the map entries, with the same
+ * provisions as for the underlying map.
+ *
+ * @return a set containing the map entries.
+ */
+ public Set<Map.Entry<String,String>> entrySet()
+ {
+ if (entries == null)
+ entries = super.entrySet();
+ return entries;
+ }
+
+ /**
+ * Blocks queries containing a null or non-<code>String</code> key.
+ * All other queries are passed on to the superclass.
+ *
+ * @param key the key to retrieve the value for.
+ * @return the value associated with the given key.
+ * @throws NullPointerException if the specified key is null.
+ * @throws ClassCastException if the specified key is not a String.
+ */
+ public String get(Object key)
+ {
+ if (key == null)
+ throw new
+ NullPointerException("This map does not support null keys.");
+ if (!(key instanceof String))
+ throw new
+ ClassCastException("This map only allows queries using Strings.");
+ return super.get(key);
+ }
+
+ /**
+ * Returns a set view of the keys, with the same
+ * provisions as for the underlying map.
+ *
+ * @return a set containing the keys.
+ */
+ public Set<String> keySet()
+ {
+ if (keys == null)
+ keys = new EnvironmentSet(super.keySet());
+ return keys;
+ }
+
+ /**
+ * Associates the given key to the given value. If the
+ * map already contains the key, its value is replaced.
+ * The map does not accept null keys or values, or keys
+ * and values not of type {@link String}.
+ *
+ * @param key the key to map.
+ * @param value the value to be mapped.
+ * @return the previous value of the key, or null if there was no mapping
+ * @throws NullPointerException if a key or value is null.
+ * @throws ClassCastException if a key or value is not a String.
+ */
+ public String put(String key, String value)
+ {
+ if (key == null)
+ throw new NullPointerException("A new key is null.");
+ if (value == null)
+ throw new NullPointerException("A new value is null.");
+ if (!(key instanceof String))
+ throw new ClassCastException("A new key is not a String.");
+ if (!(value instanceof String))
+ throw new ClassCastException("A new value is not a String.");
+ return super.put(key, value);
+ }
+
+ /**
+ * Removes a key-value pair from the map. The queried key may not
+ * be null or of a type other than a <code>String</code>.
+ *
+ * @param key the key of the entry to remove.
+ * @return the removed value.
+ * @throws NullPointerException if the specified key is null.
+ * @throws ClassCastException if the specified key is not a String.
+ */
+ public String remove(Object key)
+ {
+ if (key == null)
+ throw new
+ NullPointerException("This map does not support null keys.");
+ if (!(key instanceof String))
+ throw new
+ ClassCastException("This map only allows queries using Strings.");
+ return super.remove(key);
+ }
+
+ /**
+ * Returns a collection view of the values, with the same
+ * provisions as for the underlying map.
+ *
+ * @return a collection containing the values.
+ */
+ public Collection<String> values()
+ {
+ if (values == null)
+ values = new EnvironmentCollection(super.values());
+ return values;
+ }
+
+ }
+
+ /**
+ * This is a specialised <code>Set</code>, providing
+ * the necessary provisions for the collections used by the
+ * environment variable map. Namely, it prevents
+ * modifications and the use of queries with null
+ * or non-<code>String</code> values.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ */
+ private static class EnvironmentSet
+ extends EnvironmentCollection
+ implements Set<String>
+ {
+
+ /**
+ * Constructs a new environment set, which
+ * wraps the elements of the supplied set.
+ *
+ * @param set the set to use as a base for
+ * this set.
+ */
+ public EnvironmentSet(Set<String> set)
+ {
+ super(set);
+ }
+
+ /**
+ * This simply calls the same method on the wrapped
+ * collection.
+ *
+ * @param obj the object to compare with.
+ * @return true if the two objects are equal.
+ */
+ public boolean equals(Object obj)
+ {
+ return c.equals(obj);
+ }
+
+ /**
+ * This simply calls the same method on the wrapped
+ * collection.
+ *
+ * @return the hashcode of the collection.
+ */
+ public int hashCode()
+ {
+ return c.hashCode();
+ }
+
+ } // class EnvironmentSet<String>
+
+} // class System
diff --git a/gcc-4.8/libjava/java/lang/Thread$State.h b/gcc-4.8/libjava/java/lang/Thread$State.h
new file mode 100644
index 000000000..4620c7224
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Thread$State.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Thread$State__
+#define __java_lang_Thread$State__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::lang::Thread$State : public ::java::lang::Enum
+{
+
+ Thread$State(::java::lang::String *, jint);
+public:
+ static JArray< ::java::lang::Thread$State * > * values();
+ static ::java::lang::Thread$State * valueOf(::java::lang::String *);
+ static ::java::lang::Thread$State * BLOCKED;
+ static ::java::lang::Thread$State * NEW;
+ static ::java::lang::Thread$State * RUNNABLE;
+ static ::java::lang::Thread$State * TERMINATED;
+ static ::java::lang::Thread$State * TIMED_WAITING;
+ static ::java::lang::Thread$State * WAITING;
+private:
+ static JArray< ::java::lang::Thread$State * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Thread$State__
diff --git a/gcc-4.8/libjava/java/lang/Thread$UncaughtExceptionHandler.h b/gcc-4.8/libjava/java/lang/Thread$UncaughtExceptionHandler.h
new file mode 100644
index 000000000..88d2b5b90
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Thread$UncaughtExceptionHandler.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Thread$UncaughtExceptionHandler__
+#define __java_lang_Thread$UncaughtExceptionHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Thread$UncaughtExceptionHandler : public ::java::lang::Object
+{
+
+public:
+ virtual void uncaughtException(::java::lang::Thread *, ::java::lang::Throwable *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_Thread$UncaughtExceptionHandler__
diff --git a/gcc-4.8/libjava/java/lang/Thread.h b/gcc-4.8/libjava/java/lang/Thread.h
new file mode 100644
index 000000000..54764c83c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Thread.h
@@ -0,0 +1,157 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Thread__
+#define __java_lang_Thread__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ class RawDataManaged;
+ }
+ }
+}
+
+class _Jv_JNIEnv;
+#define _JV_NOT_OWNER 1
+#define _JV_INTERRUPTED 2
+_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();
+void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);
+void _Jv_ThreadRun (java::lang::Thread* thread);
+jint _Jv_AttachCurrentThread(java::lang::Thread* thread);
+java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);
+java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);
+jint _Jv_DetachCurrentThread ();
+struct _Jv_Thread_t;
+_Jv_Thread_t* _Jv_ThreadGetData (java::lang::Thread* thread);
+
+class java::lang::Thread : public ::java::lang::Object
+{
+
+public:
+ Thread();
+ Thread(::java::lang::Runnable *);
+ Thread(::java::lang::String *);
+ Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *);
+ Thread(::java::lang::ThreadGroup *, ::java::lang::String *);
+ Thread(::java::lang::Runnable *, ::java::lang::String *);
+ Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
+ Thread(::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *, jlong);
+public: // actually package-private
+ Thread(::java::lang::String *, jboolean);
+private:
+ Thread(::java::lang::Thread *, ::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *, jboolean);
+public:
+ static jint activeCount();
+ virtual void checkAccess();
+ virtual jint countStackFrames();
+ static ::java::lang::Thread * currentThread();
+ virtual void destroy();
+ static void dumpStack();
+ static jint enumerate(JArray< ::java::lang::Thread * > *);
+ virtual ::java::lang::String * getName();
+ virtual jint getPriority();
+ virtual ::java::lang::ThreadGroup * getThreadGroup();
+ static jboolean holdsLock(::java::lang::Object *);
+ virtual void interrupt();
+ static jboolean interrupted();
+ virtual jboolean isInterrupted();
+ virtual jboolean isAlive();
+ virtual jboolean isDaemon();
+ virtual void join();
+ virtual void join(jlong);
+ virtual void join(jlong, jint);
+ virtual void resume();
+private:
+ void finish_();
+ jboolean isInterrupted(jboolean);
+public:
+ virtual void run();
+ virtual void setDaemon(jboolean);
+ virtual ::java::lang::ClassLoader * getContextClassLoader();
+ virtual void setContextClassLoader(::java::lang::ClassLoader *);
+ virtual void setName(::java::lang::String *);
+ static void yield();
+ static void sleep(jlong);
+ static void sleep(jlong, jint);
+ virtual void start();
+ virtual void stop();
+ virtual void stop(::java::lang::Throwable *);
+ virtual void suspend();
+ virtual void setPriority(jint);
+ virtual ::java::lang::String * toString();
+private:
+ void initialize_native();
+ static ::java::lang::String * gen_name();
+public: // actually package-private
+ static ::java::lang::ThreadLocalMap * getThreadLocals();
+public:
+ virtual void setUncaughtExceptionHandler(::java::lang::Thread$UncaughtExceptionHandler *);
+ virtual ::java::lang::Thread$UncaughtExceptionHandler * getUncaughtExceptionHandler();
+ static void setDefaultUncaughtExceptionHandler(::java::lang::Thread$UncaughtExceptionHandler *);
+ static ::java::lang::Thread$UncaughtExceptionHandler * getDefaultUncaughtExceptionHandler();
+ virtual jlong getId();
+ virtual ::java::lang::Thread$State * getState();
+ static ::java::util::Map * getAllStackTraces();
+ virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
+ static const jint MIN_PRIORITY = 1;
+ static const jint NORM_PRIORITY = 5;
+ static const jint MAX_PRIORITY = 10;
+public: // actually package-private
+ ::java::lang::ThreadGroup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) group;
+private:
+ ::java::lang::Runnable * runnable;
+public: // actually package-private
+ ::java::lang::String * name;
+private:
+ jboolean daemon;
+ jint priority;
+public: // actually package-private
+ jboolean interrupt_flag;
+private:
+ static const jbyte THREAD_DEAD = 0;
+ static const jbyte THREAD_ALIVE = 1;
+ static const jbyte THREAD_SIGNALED = 2;
+ jboolean startable_flag;
+ ::java::lang::ClassLoader * contextClassLoader;
+ jlong threadId;
+ static jlong nextThreadId;
+ static jlong totalThreadsCreated;
+ static ::java::lang::Thread$UncaughtExceptionHandler * defaultHandler;
+public: // actually package-private
+ ::java::lang::ThreadLocalMap * locals;
+ ::java::lang::Thread$UncaughtExceptionHandler * exceptionHandler;
+private:
+ ::java::lang::Object * parkBlocker;
+public: // actually package-private
+ static const jbyte THREAD_PARK_RUNNING = 0;
+ static const jbyte THREAD_PARK_PERMIT = 1;
+ static const jbyte THREAD_PARK_PARKED = 2;
+ static const jbyte THREAD_PARK_DEAD = 3;
+ ::java::lang::Object * accessControlState;
+ ::gnu::gcj::RawData * interp_frame;
+ ::gnu::gcj::RawData * frame;
+ jint volatile state;
+ ::gnu::gcj::RawDataManaged * data;
+public:
+ static ::java::lang::Class class$;
+
+ friend _Jv_JNIEnv * ::_Jv_GetCurrentJNIEnv ();
+ friend void ::_Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);
+ friend void ::_Jv_ThreadRun (java::lang::Thread* thread);
+ friend jint (::_Jv_AttachCurrentThread) (java::lang::Thread* thread);
+ friend java::lang::Thread* ::_Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);
+ friend java::lang::Thread* ::_Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);
+ friend jint (::_Jv_DetachCurrentThread) ();
+};
+
+#endif // __java_lang_Thread__
diff --git a/gcc-4.8/libjava/java/lang/Thread.java b/gcc-4.8/libjava/java/lang/Thread.java
new file mode 100644
index 000000000..8b6d4ba75
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Thread.java
@@ -0,0 +1,1358 @@
+/* Thread -- an independent thread of executable code
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import gnu.classpath.VMStackWalker;
+import gnu.gcj.RawData;
+import gnu.gcj.RawDataManaged;
+import gnu.java.util.WeakIdentityHashMap;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadInfo;
+import java.lang.management.ThreadMXBean;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
+ * Status: Believed complete to version 1.4, with caveats. We do not
+ * implement the deprecated (and dangerous) stop, suspend, and resume
+ * methods. Security implementation is not complete.
+ */
+
+/**
+ * Thread represents a single thread of execution in the VM. When an
+ * application VM starts up, it creates a non-daemon Thread which calls the
+ * main() method of a particular class. There may be other Threads running,
+ * such as the garbage collection thread.
+ *
+ * <p>Threads have names to identify them. These names are not necessarily
+ * unique. Every Thread has a priority, as well, which tells the VM which
+ * Threads should get more running time. New threads inherit the priority
+ * and daemon status of the parent thread, by default.
+ *
+ * <p>There are two methods of creating a Thread: you may subclass Thread and
+ * implement the <code>run()</code> method, at which point you may start the
+ * Thread by calling its <code>start()</code> method, or you may implement
+ * <code>Runnable</code> in the class you want to use and then call new
+ * <code>Thread(your_obj).start()</code>.
+ *
+ * <p>The virtual machine runs until all non-daemon threads have died (either
+ * by returning from the run() method as invoked by start(), or by throwing
+ * an uncaught exception); or until <code>System.exit</code> is called with
+ * adequate permissions.
+ *
+ * <p>It is unclear at what point a Thread should be added to a ThreadGroup,
+ * and at what point it should be removed. Should it be inserted when it
+ * starts, or when it is created? Should it be removed when it is suspended
+ * or interrupted? The only thing that is clear is that the Thread should be
+ * removed when it is stopped.
+ *
+ * @author Tom Tromey
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @see Runnable
+ * @see Runtime#exit(int)
+ * @see #run()
+ * @see #start()
+ * @see ThreadLocal
+ * @since 1.0
+ * @status updated to 1.4
+ */
+public class Thread implements Runnable
+{
+ /** The minimum priority for a Thread. */
+ public static final int MIN_PRIORITY = 1;
+
+ /** The priority a Thread gets by default. */
+ public static final int NORM_PRIORITY = 5;
+
+ /** The maximum priority for a Thread. */
+ public static final int MAX_PRIORITY = 10;
+
+ /**
+ * The group this thread belongs to. This is set to null by
+ * ThreadGroup.removeThread when the thread dies.
+ */
+ ThreadGroup group;
+
+ /** The object to run(), null if this is the target. */
+ private Runnable runnable;
+
+ /** The thread name, non-null. */
+ String name;
+
+ /** Whether the thread is a daemon. */
+ private boolean daemon;
+
+ /** The thread priority, 1 to 10. */
+ private int priority;
+
+ boolean interrupt_flag;
+
+ /** A thread is either alive, dead, or being sent a signal; if it is
+ being sent a signal, it is also alive. Thus, if you want to
+ know if a thread is alive, it is sufficient to test
+ alive_status != THREAD_DEAD. */
+ private static final byte THREAD_DEAD = 0;
+ private static final byte THREAD_ALIVE = 1;
+ private static final byte THREAD_SIGNALED = 2;
+
+ private boolean startable_flag;
+
+ /** The context classloader for this Thread. */
+ private ClassLoader contextClassLoader;
+
+ /** This thread's ID. */
+ private final long threadId;
+
+ /** The next thread ID to use. */
+ private static long nextThreadId;
+
+ /** Used to generate the next thread ID to use. */
+ private static long totalThreadsCreated;
+
+ /** The default exception handler. */
+ private static UncaughtExceptionHandler defaultHandler;
+
+ /** Thread local storage. Package accessible for use by
+ * InheritableThreadLocal.
+ */
+ ThreadLocalMap locals;
+
+ /** The uncaught exception handler. */
+ UncaughtExceptionHandler exceptionHandler;
+
+ /** This object is recorded while the thread is blocked to permit
+ * monitoring and diagnostic tools to identify the reasons that
+ * threads are blocked.
+ */
+ private Object parkBlocker;
+
+ /** Used by Unsafe.park and Unsafe.unpark. Se Unsafe for a full
+ description. */
+ static final byte THREAD_PARK_RUNNING = 0;
+ static final byte THREAD_PARK_PERMIT = 1;
+ static final byte THREAD_PARK_PARKED = 2;
+ static final byte THREAD_PARK_DEAD = 3;
+
+ /** The access control state for this thread. Package accessible
+ * for use by java.security.VMAccessControlState's native method.
+ */
+ Object accessControlState = null;
+
+ // This describes the top-most interpreter frame for this thread.
+ RawData interp_frame;
+
+ // This describes the top most frame in the composite (interp + JNI) stack
+ RawData frame;
+
+ // Current state.
+ volatile int state;
+
+ // Our native data - points to an instance of struct natThread.
+ RawDataManaged data;
+
+ /**
+ * Allocates a new <code>Thread</code> object. This constructor has
+ * the same effect as <code>Thread(null, null,</code>
+ * <i>gname</i><code>)</code>, where <b><i>gname</i></b> is
+ * a newly generated name. Automatically generated names are of the
+ * form <code>"Thread-"+</code><i>n</i>, where <i>n</i> is an integer.
+ * <p>
+ * Threads created this way must have overridden their
+ * <code>run()</code> method to actually do anything. An example
+ * illustrating this method being used follows:
+ * <p><blockquote><pre>
+ * import java.lang.*;
+ *
+ * class plain01 implements Runnable {
+ * String name;
+ * plain01() {
+ * name = null;
+ * }
+ * plain01(String s) {
+ * name = s;
+ * }
+ * public void run() {
+ * if (name == null)
+ * System.out.println("A new thread created");
+ * else
+ * System.out.println("A new thread with name " + name +
+ * " created");
+ * }
+ * }
+ * class threadtest01 {
+ * public static void main(String args[] ) {
+ * int failed = 0 ;
+ *
+ * <b>Thread t1 = new Thread();</b>
+ * if (t1 != null)
+ * System.out.println("new Thread() succeed");
+ * else {
+ * System.out.println("new Thread() failed");
+ * failed++;
+ * }
+ * }
+ * }
+ * </pre></blockquote>
+ *
+ * @see java.lang.Thread#Thread(java.lang.ThreadGroup,
+ * java.lang.Runnable, java.lang.String)
+ */
+ public Thread()
+ {
+ this(null, null, gen_name());
+ }
+
+ /**
+ * Allocates a new <code>Thread</code> object. This constructor has
+ * the same effect as <code>Thread(null, target,</code>
+ * <i>gname</i><code>)</code>, where <i>gname</i> is
+ * a newly generated name. Automatically generated names are of the
+ * form <code>"Thread-"+</code><i>n</i>, where <i>n</i> is an integer.
+ *
+ * @param target the object whose <code>run</code> method is called.
+ * @see java.lang.Thread#Thread(java.lang.ThreadGroup,
+ * java.lang.Runnable, java.lang.String)
+ */
+ public Thread(Runnable target)
+ {
+ this(null, target, gen_name());
+ }
+
+ /**
+ * Allocates a new <code>Thread</code> object. This constructor has
+ * the same effect as <code>Thread(null, null, name)</code>.
+ *
+ * @param name the name of the new thread.
+ * @see java.lang.Thread#Thread(java.lang.ThreadGroup,
+ * java.lang.Runnable, java.lang.String)
+ */
+ public Thread(String name)
+ {
+ this(null, null, name);
+ }
+
+ /**
+ * Allocates a new <code>Thread</code> object. This constructor has
+ * the same effect as <code>Thread(group, target,</code>
+ * <i>gname</i><code>)</code>, where <i>gname</i> is
+ * a newly generated name. Automatically generated names are of the
+ * form <code>"Thread-"+</code><i>n</i>, where <i>n</i> is an integer.
+ *
+ * @param group the group to put the Thread into
+ * @param target the Runnable object to execute
+ * @throws SecurityException if this thread cannot access <code>group</code>
+ * @throws IllegalThreadStateException if group is destroyed
+ * @see #Thread(ThreadGroup, Runnable, String)
+ */
+ public Thread(ThreadGroup group, Runnable target)
+ {
+ this(group, target, gen_name());
+ }
+
+ /**
+ * Allocates a new <code>Thread</code> object. This constructor has
+ * the same effect as <code>Thread(group, null, name)</code>
+ *
+ * @param group the group to put the Thread into
+ * @param name the name for the Thread
+ * @throws NullPointerException if name is null
+ * @throws SecurityException if this thread cannot access <code>group</code>
+ * @throws IllegalThreadStateException if group is destroyed
+ * @see #Thread(ThreadGroup, Runnable, String)
+ */
+ public Thread(ThreadGroup group, String name)
+ {
+ this(group, null, name);
+ }
+
+ /**
+ * Allocates a new <code>Thread</code> object. This constructor has
+ * the same effect as <code>Thread(null, target, name)</code>.
+ *
+ * @param target the Runnable object to execute
+ * @param name the name for the Thread
+ * @throws NullPointerException if name is null
+ * @see #Thread(ThreadGroup, Runnable, String)
+ */
+ public Thread(Runnable target, String name)
+ {
+ this(null, target, name);
+ }
+
+ /**
+ * Allocate a new Thread object, with the specified ThreadGroup and name, and
+ * using the specified Runnable object's <code>run()</code> method to
+ * execute. If the Runnable object is null, <code>this</code> (which is
+ * a Runnable) is used instead.
+ *
+ * <p>If the ThreadGroup is null, the security manager is checked. If a
+ * manager exists and returns a non-null object for
+ * <code>getThreadGroup</code>, that group is used; otherwise the group
+ * of the creating thread is used. Note that the security manager calls
+ * <code>checkAccess</code> if the ThreadGroup is not null.
+ *
+ * <p>The new Thread will inherit its creator's priority and daemon status.
+ * These can be changed with <code>setPriority</code> and
+ * <code>setDaemon</code>.
+ *
+ * @param group the group to put the Thread into
+ * @param target the Runnable object to execute
+ * @param name the name for the Thread
+ * @throws NullPointerException if name is null
+ * @throws SecurityException if this thread cannot access <code>group</code>
+ * @throws IllegalThreadStateException if group is destroyed
+ * @see Runnable#run()
+ * @see #run()
+ * @see #setDaemon(boolean)
+ * @see #setPriority(int)
+ * @see SecurityManager#checkAccess(ThreadGroup)
+ * @see ThreadGroup#checkAccess()
+ */
+ public Thread(ThreadGroup group, Runnable target, String name)
+ {
+ this(currentThread(), group, target, name, false);
+ }
+
+ /**
+ * Allocate a new Thread object, as if by
+ * <code>Thread(group, null, name)</code>, and give it the specified stack
+ * size, in bytes. The stack size is <b>highly platform independent</b>,
+ * and the virtual machine is free to round up or down, or ignore it
+ * completely. A higher value might let you go longer before a
+ * <code>StackOverflowError</code>, while a lower value might let you go
+ * longer before an <code>OutOfMemoryError</code>. Or, it may do absolutely
+ * nothing! So be careful, and expect to need to tune this value if your
+ * virtual machine even supports it.
+ *
+ * @param group the group to put the Thread into
+ * @param target the Runnable object to execute
+ * @param name the name for the Thread
+ * @param size the stack size, in bytes; 0 to be ignored
+ * @throws NullPointerException if name is null
+ * @throws SecurityException if this thread cannot access <code>group</code>
+ * @throws IllegalThreadStateException if group is destroyed
+ * @since 1.4
+ */
+ public Thread(ThreadGroup group, Runnable target, String name, long size)
+ {
+ // Just ignore stackSize for now.
+ this(currentThread(), group, target, name, false);
+ }
+
+ /**
+ * Allocate a new Thread object for threads used internally to the
+ * run time. Runtime threads should not be members of an
+ * application ThreadGroup, nor should they execute arbitrary user
+ * code as part of the InheritableThreadLocal protocol.
+ *
+ * @param name the name for the Thread
+ * @param noInheritableThreadLocal if true, do not initialize
+ * InheritableThreadLocal variables for this thread.
+ * @throws IllegalThreadStateException if group is destroyed
+ */
+ Thread(String name, boolean noInheritableThreadLocal)
+ {
+ this(null, null, null, name, noInheritableThreadLocal);
+ }
+
+ private Thread (Thread current, ThreadGroup g, Runnable r, String n, boolean noInheritableThreadLocal)
+ {
+ // Make sure the current thread may create a new thread.
+ checkAccess();
+
+ // The Class Libraries book says ``threadName cannot be null''. I
+ // take this to mean NullPointerException.
+ if (n == null)
+ throw new NullPointerException ();
+
+ if (g == null)
+ {
+ // If CURRENT is null, then we are bootstrapping the first thread.
+ // Use ThreadGroup.root, the main threadgroup.
+ if (current == null)
+ group = ThreadGroup.root;
+ else
+ group = current.getThreadGroup();
+ }
+ else
+ group = g;
+
+ data = null;
+ interrupt_flag = false;
+ startable_flag = true;
+
+ synchronized (Thread.class)
+ {
+ this.threadId = nextThreadId++;
+ }
+
+ // Always create the ThreadLocalMap when creating a thread; the
+ // previous code did this lazily when getThreadLocals was called,
+ // but this is a divergence from Classpath's implementation of
+ // ThreadLocal.
+ this.locals = new ThreadLocalMap();
+
+ if (current != null)
+ {
+ group.checkAccess();
+
+ daemon = current.isDaemon();
+ int gmax = group.getMaxPriority();
+ int pri = current.getPriority();
+ priority = (gmax < pri ? gmax : pri);
+ contextClassLoader = current.contextClassLoader;
+ // InheritableThreadLocal allows arbitrary user code to be
+ // executed, only do this if our caller desires it.
+ if (!noInheritableThreadLocal)
+ InheritableThreadLocal.newChildThread(this);
+ }
+ else
+ {
+ daemon = false;
+ priority = NORM_PRIORITY;
+ }
+
+ name = n;
+ group.addThread(this);
+ runnable = r;
+
+ initialize_native ();
+ }
+
+ /**
+ * Get the number of active threads in the current Thread's ThreadGroup.
+ * This implementation calls
+ * <code>currentThread().getThreadGroup().activeCount()</code>.
+ *
+ * @return the number of active threads in the current ThreadGroup
+ * @see ThreadGroup#activeCount()
+ */
+ public static int activeCount()
+ {
+ return currentThread().group.activeCount();
+ }
+
+ /**
+ * Check whether the current Thread is allowed to modify this Thread. This
+ * passes the check on to <code>SecurityManager.checkAccess(this)</code>.
+ *
+ * @throws SecurityException if the current Thread cannot modify this Thread
+ * @see SecurityManager#checkAccess(Thread)
+ */
+ public final void checkAccess()
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkAccess(this);
+ }
+
+ /**
+ * Count the number of stack frames in this Thread. The Thread in question
+ * must be suspended when this occurs.
+ *
+ * @return the number of stack frames in this Thread
+ * @throws IllegalThreadStateException if this Thread is not suspended
+ * @deprecated pointless, since suspend is deprecated
+ */
+ public native int countStackFrames();
+
+ /**
+ * Get the currently executing Thread. In the situation that the
+ * currently running thread was created by native code and doesn't
+ * have an associated Thread object yet, a new Thread object is
+ * constructed and associated with the native thread.
+ *
+ * @return the currently executing Thread
+ */
+ public static native Thread currentThread();
+
+ /**
+ * Originally intended to destroy this thread, this method was never
+ * implemented by Sun, and is hence a no-op.
+ *
+ * @deprecated This method was originally intended to simply destroy
+ * the thread without performing any form of cleanup operation.
+ * However, it was never implemented. It is now deprecated
+ * for the same reason as <code>suspend()</code>,
+ * <code>stop()</code> and <code>resume()</code>; namely,
+ * it is prone to deadlocks. If a thread is destroyed while
+ * it still maintains a lock on a resource, then this resource
+ * will remain locked and any attempts by other threads to
+ * access the resource will result in a deadlock. Thus, even
+ * an implemented version of this method would be still be
+ * deprecated, due to its unsafe nature.
+ * @throws NoSuchMethodError as this method was never implemented.
+ */
+ public void destroy()
+ {
+ throw new NoSuchMethodError();
+ }
+
+ /**
+ * Print a stack trace of the current thread to stderr using the same
+ * format as Throwable's printStackTrace() method.
+ *
+ * @see Throwable#printStackTrace()
+ */
+ public static void dumpStack()
+ {
+ (new Exception("Stack trace")).printStackTrace();
+ }
+
+ /**
+ * Copy every active thread in the current Thread's ThreadGroup into the
+ * array. Extra threads are silently ignored. This implementation calls
+ * <code>getThreadGroup().enumerate(array)</code>, which may have a
+ * security check, <code>checkAccess(group)</code>.
+ *
+ * @param array the array to place the Threads into
+ * @return the number of Threads placed into the array
+ * @throws NullPointerException if array is null
+ * @throws SecurityException if you cannot access the ThreadGroup
+ * @see ThreadGroup#enumerate(Thread[])
+ * @see #activeCount()
+ * @see SecurityManager#checkAccess(ThreadGroup)
+ */
+ public static int enumerate(Thread[] array)
+ {
+ return currentThread().group.enumerate(array);
+ }
+
+ /**
+ * Get this Thread's name.
+ *
+ * @return this Thread's name
+ */
+ public final String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Get this Thread's priority.
+ *
+ * @return the Thread's priority
+ */
+ public final int getPriority()
+ {
+ return priority;
+ }
+
+ /**
+ * Get the ThreadGroup this Thread belongs to. If the thread has died, this
+ * returns null.
+ *
+ * @return this Thread's ThreadGroup
+ */
+ public final ThreadGroup getThreadGroup()
+ {
+ return group;
+ }
+
+ /**
+ * Checks whether the current thread holds the monitor on a given object.
+ * This allows you to do <code>assert Thread.holdsLock(obj)</code>.
+ *
+ * @param obj the object to test lock ownership on.
+ * @return true if the current thread is currently synchronized on obj
+ * @throws NullPointerException if obj is null
+ * @since 1.4
+ */
+ public static native boolean holdsLock(Object obj);
+
+ /**
+ * Interrupt this Thread. First, there is a security check,
+ * <code>checkAccess</code>. Then, depending on the current state of the
+ * thread, various actions take place:
+ *
+ * <p>If the thread is waiting because of {@link #wait()},
+ * {@link #sleep(long)}, or {@link #join()}, its <i>interrupt status</i>
+ * will be cleared, and an InterruptedException will be thrown. Notice that
+ * this case is only possible if an external thread called interrupt().
+ *
+ * <p>If the thread is blocked in an interruptible I/O operation, in
+ * {@link java.nio.channels.InterruptibleChannel}, the <i>interrupt
+ * status</i> will be set, and ClosedByInterruptException will be thrown.
+ *
+ * <p>If the thread is blocked on a {@link java.nio.channels.Selector}, the
+ * <i>interrupt status</i> will be set, and the selection will return, with
+ * a possible non-zero value, as though by the wakeup() method.
+ *
+ * <p>Otherwise, the interrupt status will be set.
+ *
+ * @throws SecurityException if you cannot modify this Thread
+ */
+ public native void interrupt();
+
+ /**
+ * Determine whether the current Thread has been interrupted, and clear
+ * the <i>interrupted status</i> in the process.
+ *
+ * @return whether the current Thread has been interrupted
+ * @see #isInterrupted()
+ */
+ public static boolean interrupted()
+ {
+ return currentThread().isInterrupted(true);
+ }
+
+ /**
+ * Determine whether the given Thread has been interrupted, but leave
+ * the <i>interrupted status</i> alone in the process.
+ *
+ * @return whether the Thread has been interrupted
+ * @see #interrupted()
+ */
+ public boolean isInterrupted()
+ {
+ return interrupt_flag;
+ }
+
+ /**
+ * Determine whether this Thread is alive. A thread which is alive has
+ * started and not yet died.
+ *
+ * @return whether this Thread is alive
+ */
+ public final native boolean isAlive();
+
+ /**
+ * Tell whether this is a daemon Thread or not.
+ *
+ * @return whether this is a daemon Thread or not
+ * @see #setDaemon(boolean)
+ */
+ public final boolean isDaemon()
+ {
+ return daemon;
+ }
+
+ /**
+ * Wait forever for the Thread in question to die.
+ *
+ * @throws InterruptedException if the Thread is interrupted; it's
+ * <i>interrupted status</i> will be cleared
+ */
+ public final void join() throws InterruptedException
+ {
+ join(0, 0);
+ }
+
+ /**
+ * Wait the specified amount of time for the Thread in question to die.
+ *
+ * @param ms the number of milliseconds to wait, or 0 for forever
+ * @throws InterruptedException if the Thread is interrupted; it's
+ * <i>interrupted status</i> will be cleared
+ */
+ public final void join(long ms) throws InterruptedException
+ {
+ join(ms, 0);
+ }
+
+ /**
+ * Wait the specified amount of time for the Thread in question to die.
+ *
+ * <p>Note that 1,000,000 nanoseconds == 1 millisecond, but most VMs do
+ * not offer that fine a grain of timing resolution. Besides, there is
+ * no guarantee that this thread can start up immediately when time expires,
+ * because some other thread may be active. So don't expect real-time
+ * performance.
+ *
+ * @param ms the number of milliseconds to wait, or 0 for forever
+ * @param ns the number of extra nanoseconds to sleep (0-999999)
+ * @throws InterruptedException if the Thread is interrupted; it's
+ * <i>interrupted status</i> will be cleared
+ * @throws IllegalArgumentException if ns is invalid
+ * @XXX A ThreadListener would be nice, to make this efficient.
+ */
+ public final native void join(long ms, int ns)
+ throws InterruptedException;
+
+ /**
+ * Resume this Thread. If the thread is not suspended, this method does
+ * nothing. To mirror suspend(), there may be a security check:
+ * <code>checkAccess</code>.
+ *
+ * @throws SecurityException if you cannot resume the Thread
+ * @see #checkAccess()
+ * @see #suspend()
+ * @deprecated pointless, since suspend is deprecated
+ */
+ public final native void resume();
+
+ private final native void finish_();
+
+ /**
+ * Determine whether the given Thread has been interrupted, but leave
+ * the <i>interrupted status</i> alone in the process.
+ *
+ * @return whether the current Thread has been interrupted
+ * @see #interrupted()
+ */
+ private boolean isInterrupted(boolean clear_flag)
+ {
+ boolean r = interrupt_flag;
+ if (clear_flag && r)
+ {
+ // Only clear the flag if we saw it as set. Otherwise this could
+ // potentially cause us to miss an interrupt in a race condition,
+ // because this method is not synchronized.
+ interrupt_flag = false;
+ }
+ return r;
+ }
+
+ /**
+ * The method of Thread that will be run if there is no Runnable object
+ * associated with the Thread. Thread's implementation does nothing at all.
+ *
+ * @see #start()
+ * @see #Thread(ThreadGroup, Runnable, String)
+ */
+ public void run()
+ {
+ if (runnable != null)
+ runnable.run();
+ }
+
+ /**
+ * Set the daemon status of this Thread. If this is a daemon Thread, then
+ * the VM may exit even if it is still running. This may only be called
+ * before the Thread starts running. There may be a security check,
+ * <code>checkAccess</code>.
+ *
+ * @param daemon whether this should be a daemon thread or not
+ * @throws SecurityException if you cannot modify this Thread
+ * @throws IllegalThreadStateException if the Thread is active
+ * @see #isDaemon()
+ * @see #checkAccess()
+ */
+ public final void setDaemon(boolean daemon)
+ {
+ if (!startable_flag)
+ throw new IllegalThreadStateException();
+ checkAccess();
+ this.daemon = daemon;
+ }
+
+ /**
+ * Returns the context classloader of this Thread. The context
+ * classloader can be used by code that want to load classes depending
+ * on the current thread. Normally classes are loaded depending on
+ * the classloader of the current class. There may be a security check
+ * for <code>RuntimePermission("getClassLoader")</code> if the caller's
+ * class loader is not null or an ancestor of this thread's context class
+ * loader.
+ *
+ * @return the context class loader
+ * @throws SecurityException when permission is denied
+ * @see #setContextClassLoader(ClassLoader)
+ * @since 1.2
+ */
+ public synchronized ClassLoader getContextClassLoader()
+ {
+ if (contextClassLoader == null)
+ contextClassLoader = ClassLoader.getSystemClassLoader();
+
+ // Check if we may get the classloader
+ SecurityManager sm = System.getSecurityManager();
+ if (contextClassLoader != null && sm != null)
+ {
+ // Get the calling classloader
+ ClassLoader cl = VMStackWalker.getCallingClassLoader();
+ if (cl != null && !cl.isAncestorOf(contextClassLoader))
+ sm.checkPermission(new RuntimePermission("getClassLoader"));
+ }
+ return contextClassLoader;
+ }
+
+ /**
+ * Sets the context classloader for this Thread. When not explicitly set,
+ * the context classloader for a thread is the same as the context
+ * classloader of the thread that created this thread. The first thread has
+ * as context classloader the system classloader. There may be a security
+ * check for <code>RuntimePermission("setContextClassLoader")</code>.
+ *
+ * @param classloader the new context class loader
+ * @throws SecurityException when permission is denied
+ * @see #getContextClassLoader()
+ * @since 1.2
+ */
+ public synchronized void setContextClassLoader(ClassLoader classloader)
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("setContextClassLoader"));
+ this.contextClassLoader = classloader;
+ }
+
+ /**
+ * Set this Thread's name. There may be a security check,
+ * <code>checkAccess</code>.
+ *
+ * @param name the new name for this Thread
+ * @throws NullPointerException if name is null
+ * @throws SecurityException if you cannot modify this Thread
+ */
+ public final void setName(String name)
+ {
+ checkAccess();
+ // The Class Libraries book says ``threadName cannot be null''. I
+ // take this to mean NullPointerException.
+ if (name == null)
+ throw new NullPointerException();
+ this.name = name;
+ }
+
+ /**
+ * Yield to another thread. The Thread will not lose any locks it holds
+ * during this time. There are no guarantees which thread will be
+ * next to run, and it could even be this one, but most VMs will choose
+ * the highest priority thread that has been waiting longest.
+ */
+ public static native void yield();
+
+ /**
+ * Suspend the current Thread's execution for the specified amount of
+ * time. The Thread will not lose any locks it has during this time. There
+ * are no guarantees which thread will be next to run, but most VMs will
+ * choose the highest priority thread that has been waiting longest.
+ *
+ * @param ms the number of milliseconds to sleep, or 0 for forever
+ * @throws InterruptedException if the Thread is (or was) interrupted;
+ * it's <i>interrupted status</i> will be cleared
+ * @throws IllegalArgumentException if ms is negative
+ * @see #interrupt()
+ * @see #notify()
+ * @see #wait(long)
+ */
+ public static void sleep(long ms) throws InterruptedException
+ {
+ sleep(ms, 0);
+ }
+
+ /**
+ * Suspend the current Thread's execution for the specified amount of
+ * time. The Thread will not lose any locks it has during this time. There
+ * are no guarantees which thread will be next to run, but most VMs will
+ * choose the highest priority thread that has been waiting longest.
+ * <p>
+ * Note that 1,000,000 nanoseconds == 1 millisecond, but most VMs
+ * do not offer that fine a grain of timing resolution. When ms is
+ * zero and ns is non-zero the Thread will sleep for at least one
+ * milli second. There is no guarantee that this thread can start up
+ * immediately when time expires, because some other thread may be
+ * active. So don't expect real-time performance.
+ *
+ * @param ms the number of milliseconds to sleep, or 0 for forever
+ * @param ns the number of extra nanoseconds to sleep (0-999999)
+ * @throws InterruptedException if the Thread is (or was) interrupted;
+ * it's <i>interrupted status</i> will be cleared
+ * @throws IllegalArgumentException if ms or ns is negative
+ * or ns is larger than 999999.
+ * @see #interrupt()
+ * @see #notify()
+ * @see #wait(long, int)
+ */
+ public static native void sleep(long timeout, int nanos)
+ throws InterruptedException;
+
+ /**
+ * Start this Thread, calling the run() method of the Runnable this Thread
+ * was created with, or else the run() method of the Thread itself. This
+ * is the only way to start a new thread; calling run by yourself will just
+ * stay in the same thread. The virtual machine will remove the thread from
+ * its thread group when the run() method completes.
+ *
+ * @throws IllegalThreadStateException if the thread has already started
+ * @see #run()
+ */
+ public native void start();
+
+ /**
+ * Cause this Thread to stop abnormally because of the throw of a ThreadDeath
+ * error. If you stop a Thread that has not yet started, it will stop
+ * immediately when it is actually started.
+ *
+ * <p>This is inherently unsafe, as it can interrupt synchronized blocks and
+ * leave data in bad states. Hence, there is a security check:
+ * <code>checkAccess(this)</code>, plus another one if the current thread
+ * is not this: <code>RuntimePermission("stopThread")</code>. If you must
+ * catch a ThreadDeath, be sure to rethrow it after you have cleaned up.
+ * ThreadDeath is the only exception which does not print a stack trace when
+ * the thread dies.
+ *
+ * @throws SecurityException if you cannot stop the Thread
+ * @see #interrupt()
+ * @see #checkAccess()
+ * @see #start()
+ * @see ThreadDeath
+ * @see ThreadGroup#uncaughtException(Thread, Throwable)
+ * @see SecurityManager#checkAccess(Thread)
+ * @see SecurityManager#checkPermission(Permission)
+ * @deprecated unsafe operation, try not to use
+ */
+ public final void stop()
+ {
+ // Argument doesn't matter, because this is no longer
+ // supported.
+ stop(null);
+ }
+
+ /**
+ * Cause this Thread to stop abnormally and throw the specified exception.
+ * If you stop a Thread that has not yet started, the stop is ignored
+ * (contrary to what the JDK documentation says).
+ * <b>WARNING</b>This bypasses Java security, and can throw a checked
+ * exception which the call stack is unprepared to handle. Do not abuse
+ * this power.
+ *
+ * <p>This is inherently unsafe, as it can interrupt synchronized blocks and
+ * leave data in bad states. Hence, there is a security check:
+ * <code>checkAccess(this)</code>, plus another one if the current thread
+ * is not this: <code>RuntimePermission("stopThread")</code>. If you must
+ * catch a ThreadDeath, be sure to rethrow it after you have cleaned up.
+ * ThreadDeath is the only exception which does not print a stack trace when
+ * the thread dies.
+ *
+ * @param t the Throwable to throw when the Thread dies
+ * @throws SecurityException if you cannot stop the Thread
+ * @throws NullPointerException in the calling thread, if t is null
+ * @see #interrupt()
+ * @see #checkAccess()
+ * @see #start()
+ * @see ThreadDeath
+ * @see ThreadGroup#uncaughtException(Thread, Throwable)
+ * @see SecurityManager#checkAccess(Thread)
+ * @see SecurityManager#checkPermission(Permission)
+ * @deprecated unsafe operation, try not to use
+ */
+ public final native void stop(Throwable t);
+
+ /**
+ * Suspend this Thread. It will not come back, ever, unless it is resumed.
+ *
+ * <p>This is inherently unsafe, as the suspended thread still holds locks,
+ * and can potentially deadlock your program. Hence, there is a security
+ * check: <code>checkAccess</code>.
+ *
+ * @throws SecurityException if you cannot suspend the Thread
+ * @see #checkAccess()
+ * @see #resume()
+ * @deprecated unsafe operation, try not to use
+ */
+ public final native void suspend();
+
+ /**
+ * Set this Thread's priority. There may be a security check,
+ * <code>checkAccess</code>, then the priority is set to the smaller of
+ * priority and the ThreadGroup maximum priority.
+ *
+ * @param priority the new priority for this Thread
+ * @throws IllegalArgumentException if priority exceeds MIN_PRIORITY or
+ * MAX_PRIORITY
+ * @throws SecurityException if you cannot modify this Thread
+ * @see #getPriority()
+ * @see #checkAccess()
+ * @see ThreadGroup#getMaxPriority()
+ * @see #MIN_PRIORITY
+ * @see #MAX_PRIORITY
+ */
+ public final native void setPriority(int newPriority);
+
+ /**
+ * Returns a string representation of this thread, including the
+ * thread's name, priority, and thread group.
+ *
+ * @return a human-readable String representing this Thread
+ */
+ public String toString()
+ {
+ return ("Thread[" + name + "," + priority + ","
+ + (group == null ? "" : group.getName()) + "]");
+ }
+
+ private final native void initialize_native();
+
+ private final native static String gen_name();
+
+ /**
+ * Returns the map used by ThreadLocal to store the thread local values.
+ */
+ static ThreadLocalMap getThreadLocals()
+ {
+ Thread thread = currentThread();
+ ThreadLocalMap locals = thread.locals;
+
+ return locals;
+ }
+
+ /**
+ * Assigns the given <code>UncaughtExceptionHandler</code> to this
+ * thread. This will then be called if the thread terminates due
+ * to an uncaught exception, pre-empting that of the
+ * <code>ThreadGroup</code>.
+ *
+ * @param h the handler to use for this thread.
+ * @throws SecurityException if the current thread can't modify this thread.
+ * @since 1.5
+ */
+ public void setUncaughtExceptionHandler(UncaughtExceptionHandler h)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkAccess(this);
+ exceptionHandler = h;
+ }
+
+ /**
+ * <p>
+ * Returns the handler used when this thread terminates due to an
+ * uncaught exception. The handler used is determined by the following:
+ * </p>
+ * <ul>
+ * <li>If this thread has its own handler, this is returned.</li>
+ * <li>If not, then the handler of the thread's <code>ThreadGroup</code>
+ * object is returned.</li>
+ * <li>If both are unavailable, then <code>null</code> is returned
+ * (which can only happen when the thread was terminated since
+ * then it won't have an associated thread group anymore).</li>
+ * </ul>
+ *
+ * @return the appropriate <code>UncaughtExceptionHandler</code> or
+ * <code>null</code> if one can't be obtained.
+ * @since 1.5
+ */
+ public UncaughtExceptionHandler getUncaughtExceptionHandler()
+ {
+ // FIXME: if thread is dead, should return null...
+ return exceptionHandler != null ? exceptionHandler : group;
+ }
+
+ /**
+ * <p>
+ * Sets the default uncaught exception handler used when one isn't
+ * provided by the thread or its associated <code>ThreadGroup</code>.
+ * This exception handler is used when the thread itself does not
+ * have an exception handler, and the thread's <code>ThreadGroup</code>
+ * does not override this default mechanism with its own. As the group
+ * calls this handler by default, this exception handler should not defer
+ * to that of the group, as it may lead to infinite recursion.
+ * </p>
+ * <p>
+ * Uncaught exception handlers are used when a thread terminates due to
+ * an uncaught exception. Replacing this handler allows default code to
+ * be put in place for all threads in order to handle this eventuality.
+ * </p>
+ *
+ * @param h the new default uncaught exception handler to use.
+ * @throws SecurityException if a security manager is present and
+ * disallows the runtime permission
+ * "setDefaultUncaughtExceptionHandler".
+ * @since 1.5
+ */
+ public static void
+ setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler h)
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("setDefaultUncaughtExceptionHandler"));
+ defaultHandler = h;
+ }
+
+ /**
+ * Returns the handler used by default when a thread terminates
+ * unexpectedly due to an exception, or <code>null</code> if one doesn't
+ * exist.
+ *
+ * @return the default uncaught exception handler.
+ * @since 1.5
+ */
+ public static UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()
+ {
+ return defaultHandler;
+ }
+
+ /**
+ * Returns the unique identifier for this thread. This ID is generated
+ * on thread creation, and may be re-used on its death.
+ *
+ * @return a positive long number representing the thread's ID.
+ * @since 1.5
+ */
+ public long getId()
+ {
+ return threadId;
+ }
+
+ /**
+ * <p>
+ * This interface is used to handle uncaught exceptions
+ * which cause a <code>Thread</code> to terminate. When
+ * a thread, t, is about to terminate due to an uncaught
+ * exception, the virtual machine looks for a class which
+ * implements this interface, in order to supply it with
+ * the dying thread and its uncaught exception.
+ * </p>
+ * <p>
+ * The virtual machine makes two attempts to find an
+ * appropriate handler for the uncaught exception, in
+ * the following order:
+ * </p>
+ * <ol>
+ * <li>
+ * <code>t.getUncaughtExceptionHandler()</code> --
+ * the dying thread is queried first for a handler
+ * specific to that thread.
+ * </li>
+ * <li>
+ * <code>t.getThreadGroup()</code> --
+ * the thread group of the dying thread is used to
+ * handle the exception. If the thread group has
+ * no special requirements for handling the exception,
+ * it may simply forward it on to
+ * <code>Thread.getDefaultUncaughtExceptionHandler()</code>,
+ * the default handler, which is used as a last resort.
+ * </li>
+ * </ol>
+ * <p>
+ * The first handler found is the one used to handle
+ * the uncaught exception.
+ * </p>
+ *
+ * @author Tom Tromey <tromey@redhat.com>
+ * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @since 1.5
+ * @see Thread#getUncaughtExceptionHandler()
+ * @see Thread#setUncaughtExceptionHandler(UncaughtExceptionHandler)
+ * @see Thread#getDefaultUncaughtExceptionHandler()
+ * @see
+ * Thread#setDefaultUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler)
+ */
+ public interface UncaughtExceptionHandler
+ {
+ /**
+ * Invoked by the virtual machine with the dying thread
+ * and the uncaught exception. Any exceptions thrown
+ * by this method are simply ignored by the virtual
+ * machine.
+ *
+ * @param thr the dying thread.
+ * @param exc the uncaught exception.
+ */
+ void uncaughtException(Thread thr, Throwable exc);
+ }
+
+ /**
+ * <p>
+ * Represents the current state of a thread, according to the VM rather
+ * than the operating system. It can be one of the following:
+ * </p>
+ * <ul>
+ * <li>NEW -- The thread has just been created but is not yet running.</li>
+ * <li>RUNNABLE -- The thread is currently running or can be scheduled
+ * to run.</li>
+ * <li>BLOCKED -- The thread is blocked waiting on an I/O operation
+ * or to obtain a lock.</li>
+ * <li>WAITING -- The thread is waiting indefinitely for another thread
+ * to do something.</li>
+ * <li>TIMED_WAITING -- The thread is waiting for a specific amount of time
+ * for another thread to do something.</li>
+ * <li>TERMINATED -- The thread has exited.</li>
+ * </ul>
+ *
+ * @since 1.5
+ */
+ public enum State
+ {
+ BLOCKED, NEW, RUNNABLE, TERMINATED, TIMED_WAITING, WAITING;
+ }
+
+
+ /**
+ * Returns the current state of the thread. This
+ * is designed for monitoring thread behaviour, rather
+ * than for synchronization control.
+ *
+ * @return the current thread state.
+ */
+ public native State getState();
+
+ /**
+ * <p>
+ * Returns a map of threads to stack traces for each
+ * live thread. The keys of the map are {@link Thread}
+ * objects, which map to arrays of {@link StackTraceElement}s.
+ * The results obtained from Calling this method are
+ * equivalent to calling {@link getStackTrace()} on each
+ * thread in succession. Threads may be executing while
+ * this takes place, and the results represent a snapshot
+ * of the thread at the time its {@link getStackTrace()}
+ * method is called.
+ * </p>
+ * <p>
+ * The stack trace information contains the methods called
+ * by the thread, with the most recent method forming the
+ * first element in the array. The array will be empty
+ * if the virtual machine can not obtain information on the
+ * thread.
+ * </p>
+ * <p>
+ * To execute this method, the current security manager
+ * (if one exists) must allow both the
+ * <code>"getStackTrace"</code> and
+ * <code>"modifyThreadGroup"</code> {@link RuntimePermission}s.
+ * </p>
+ *
+ * @return a map of threads to arrays of {@link StackTraceElement}s.
+ * @throws SecurityException if a security manager exists, and
+ * prevents either or both the runtime
+ * permissions specified above.
+ * @since 1.5
+ * @see #getStackTrace()
+ */
+ public static Map<Thread, StackTraceElement[]> getAllStackTraces()
+ {
+ ThreadGroup group = currentThread().group;
+ while (group.getParent() != null)
+ group = group.getParent();
+ int arraySize = group.activeCount();
+ Thread[] threadList = new Thread[arraySize];
+ int filled = group.enumerate(threadList);
+ while (filled == arraySize)
+ {
+ arraySize *= 2;
+ threadList = new Thread[arraySize];
+ filled = group.enumerate(threadList);
+ }
+ Map traces = new HashMap();
+ for (int a = 0; a < filled; ++a)
+ traces.put(threadList[a],
+ threadList[a].getStackTrace());
+ return traces;
+ }
+
+ /**
+ * <p>
+ * Returns an array of {@link StackTraceElement}s
+ * representing the current stack trace of this thread.
+ * The first element of the array is the most recent
+ * method called, and represents the top of the stack.
+ * The elements continue in this order, with the last
+ * element representing the bottom of the stack.
+ * </p>
+ * <p>
+ * A zero element array is returned for threads which
+ * have not yet started (and thus have not yet executed
+ * any methods) or for those which have terminated.
+ * Where the virtual machine can not obtain a trace for
+ * the thread, an empty array is also returned. The
+ * virtual machine may also omit some methods from the
+ * trace in non-zero arrays.
+ * </p>
+ * <p>
+ * To execute this method, the current security manager
+ * (if one exists) must allow both the
+ * <code>"getStackTrace"</code> and
+ * <code>"modifyThreadGroup"</code> {@link RuntimePermission}s.
+ * </p>
+ *
+ * @return a stack trace for this thread.
+ * @throws SecurityException if a security manager exists, and
+ * prevents the use of the
+ * <code>"getStackTrace"</code>
+ * permission.
+ * @since 1.5
+ * @see #getAllStackTraces()
+ */
+ public StackTraceElement[] getStackTrace()
+ {
+ SecurityManager sm = SecurityManager.current; // Be thread-safe.
+ if (sm != null)
+ sm.checkPermission(new RuntimePermission("getStackTrace"));
+
+ // Calling java.lang.management via reflection means that
+ // javax.management be overridden in the endorsed directory.
+
+ // This is the equivalent code:
+ //
+ // ThreadMXBean bean = ManagementFactory.getThreadMXBean();
+ // ThreadInfo info = bean.getThreadInfo(getId(), Integer.MAX_VALUE);
+ // return info.getStackTrace();
+
+ try
+ {
+ try
+ {
+ Object bean
+ = (Class.forName("java.lang.management.ManagementFactory")
+ .getDeclaredMethod("getThreadMXBean")
+ .invoke(null));
+ Object info = bean.getClass()
+ .getDeclaredMethod("getThreadInfo", long.class, int.class)
+ .invoke(bean, new Long(getId()), new Integer(Integer.MAX_VALUE));
+ Object trace = info.getClass()
+ .getDeclaredMethod("getStackTrace").invoke(info);
+ return (StackTraceElement[])trace;
+ }
+ catch (InvocationTargetException e)
+ {
+ throw (Exception)e.getTargetException();
+ }
+ }
+ catch (UnsupportedOperationException e)
+ {
+ throw e;
+ }
+ catch (Exception e)
+ {
+ throw new UnsupportedOperationException(e);
+ }
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/ThreadDeath.h b/gcc-4.8/libjava/java/lang/ThreadDeath.h
new file mode 100644
index 000000000..d06ce3458
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ThreadDeath.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadDeath__
+#define __java_lang_ThreadDeath__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::lang::ThreadDeath : public ::java::lang::Error
+{
+
+public:
+ ThreadDeath();
+private:
+ static const jlong serialVersionUID = -4417128565033088268LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadDeath__
diff --git a/gcc-4.8/libjava/java/lang/ThreadGroup.h b/gcc-4.8/libjava/java/lang/ThreadGroup.h
new file mode 100644
index 000000000..a197ca16e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ThreadGroup.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadGroup__
+#define __java_lang_ThreadGroup__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::ThreadGroup : public ::java::lang::Object
+{
+
+ ThreadGroup();
+public:
+ ThreadGroup(::java::lang::String *);
+ ThreadGroup(::java::lang::ThreadGroup *, ::java::lang::String *);
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::ThreadGroup * getParent();
+ virtual jint getMaxPriority();
+ virtual jboolean isDaemon();
+ virtual jboolean isDestroyed();
+ virtual void setDaemon(jboolean);
+ virtual void setMaxPriority(jint);
+ virtual jboolean parentOf(::java::lang::ThreadGroup *);
+ virtual void checkAccess();
+ virtual jint activeCount();
+ virtual jint enumerate(JArray< ::java::lang::Thread * > *);
+ virtual jint enumerate(JArray< ::java::lang::Thread * > *, jboolean);
+ virtual jint activeGroupCount();
+ virtual jint enumerate(JArray< ::java::lang::ThreadGroup * > *);
+ virtual jint enumerate(JArray< ::java::lang::ThreadGroup * > *, jboolean);
+ virtual void stop();
+ virtual void interrupt();
+ virtual void suspend();
+ virtual void resume();
+ virtual void destroy();
+ virtual void list();
+ virtual void uncaughtException(::java::lang::Thread *, ::java::lang::Throwable *);
+ virtual jboolean allowThreadSuspension(jboolean);
+ virtual ::java::lang::String * toString();
+private:
+ jint enumerate(JArray< ::java::lang::Thread * > *, jint, jboolean);
+ jint enumerate(JArray< ::java::lang::ThreadGroup * > *, jint, jboolean);
+ void list(::java::lang::String *);
+public: // actually package-private
+ virtual void addThread(::java::lang::Thread *);
+ virtual void removeThread(::java::lang::Thread *);
+ virtual void removeGroup(::java::lang::ThreadGroup *);
+ static ::java::lang::Thread * getThreadFromId(jlong);
+private:
+ ::java::lang::Thread * getThreadFromIdImpl(jlong);
+public: // actually package-private
+ static ::java::lang::ThreadGroup * root;
+ static jboolean had_uncaught_exception;
+ ::java::lang::ThreadGroup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent;
+ ::java::lang::String * name;
+private:
+ ::java::util::Vector * threads;
+ ::java::util::Vector * groups;
+ jboolean daemon_flag;
+ jint maxpri;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadGroup__
diff --git a/gcc-4.8/libjava/java/lang/ThreadLocal.h b/gcc-4.8/libjava/java/lang/ThreadLocal.h
new file mode 100644
index 000000000..13e1f84c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ThreadLocal.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocal__
+#define __java_lang_ThreadLocal__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+}
+
+class java::lang::ThreadLocal : public ::java::lang::Object
+{
+
+ jint computeNextHash();
+public:
+ ThreadLocal();
+public: // actually protected
+ virtual ::java::lang::Object * initialValue();
+public:
+ virtual ::java::lang::Object * get();
+private:
+ ::java::lang::Object * internalGet();
+public:
+ virtual void set(::java::lang::Object *);
+private:
+ void internalSet(::java::lang::Object *);
+public:
+ virtual void remove();
+private:
+ void internalRemove();
+public: // actually protected
+ virtual void finalize();
+private:
+ void constructNative();
+public: // actually package-private
+ static ::java::lang::Object * sentinel;
+private:
+ static jint nextHashBase;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) fastHash;
+private:
+ ::gnu::gcj::RawData * TLSPointer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocal__
diff --git a/gcc-4.8/libjava/java/lang/ThreadLocal.java b/gcc-4.8/libjava/java/lang/ThreadLocal.java
new file mode 100644
index 000000000..9223dbaae
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ThreadLocal.java
@@ -0,0 +1,198 @@
+/* ThreadLocal -- a variable with a unique value per thread
+ Copyright (C) 2000, 2002, 2003, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.util.Map;
+
+
+/**
+ * ThreadLocal objects have a different state associated with every
+ * Thread that accesses them. Every access to the ThreadLocal object
+ * (through the <code>get()</code> and <code>set()</code> methods)
+ * only affects the state of the object as seen by the currently
+ * executing Thread.
+ *
+ * <p>The first time a ThreadLocal object is accessed on a particular
+ * Thread, the state for that Thread's copy of the local variable is set by
+ * executing the method <code>initialValue()</code>.
+ * </p>
+ *
+ * <p>An example how you can use this:
+ * </p>
+ *
+ * <pre>
+ * class Connection
+ * {
+ * private static ThreadLocal owner = new ThreadLocal()
+ * {
+ * public Object initialValue()
+ * {
+ * return("nobody");
+ * }
+ * };
+ * ...
+ * }
+ * </pre>
+ *
+ * <p>Now all instances of connection can see who the owner of the currently
+ * executing Thread is by calling <code>owner.get()</code>. By default any
+ * Thread would be associated with 'nobody'. But the Connection object could
+ * offer a method that changes the owner associated with the Thread on
+ * which the method was called by calling <code>owner.put("somebody")</code>.
+ * (Such an owner changing method should then be guarded by security checks.)
+ * </p>
+ *
+ * <p>When a Thread is garbage collected all references to values of
+ * the ThreadLocal objects associated with that Thread are removed.
+ * </p>
+ *
+ * @author Mark Wielaard (mark@klomp.org)
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @since 1.2
+ * @status updated to 1.5
+ */
+public class ThreadLocal<T>
+{
+ /**
+ * Placeholder to distinguish between uninitialized and null set by the
+ * user. Do not expose this to the public. Package visible for use by
+ * InheritableThreadLocal
+ */
+ static final Object sentinel = new Object();
+
+ /**
+ * The base for the computation of the next hash for a thread local.
+ */
+ private static int nextHashBase = 1;
+
+ /**
+ * Allocate a new hash.
+ */
+ private synchronized int computeNextHash()
+ {
+ return nextHashBase++ * 6709;
+ }
+
+ /**
+ * Hash code computed for ThreadLocalMap
+ */
+ final int fastHash;
+
+ /**
+ * Creates a ThreadLocal object without associating any value to it yet.
+ */
+ public ThreadLocal()
+ {
+ constructNative();
+ fastHash = computeNextHash();
+ }
+
+ /**
+ * Called once per thread on the first invocation of get(), if set() was
+ * not already called. The default implementation returns <code>null</code>.
+ * Often, this method is overridden to create the appropriate initial object
+ * for the current thread's view of the ThreadLocal.
+ *
+ * @return the initial value of the variable in this thread
+ */
+ protected T initialValue()
+ {
+ return null;
+ }
+
+ /**
+ * Gets the value associated with the ThreadLocal object for the currently
+ * executing Thread. If this is the first time the current thread has called
+ * get(), and it has not already called set(), the value is obtained by
+ * <code>initialValue()</code>.
+ *
+ * @return the value of the variable in this thread
+ */
+ public native T get();
+
+ private final Object internalGet()
+ {
+ ThreadLocalMap map = Thread.getThreadLocals();
+ // Note that we don't have to synchronize, as only this thread will
+ // ever modify the map.
+ T value = (T) map.get(this);
+ if (value == sentinel)
+ {
+ value = initialValue();
+ map.set(this, value);
+ }
+ return value;
+ }
+
+ /**
+ * Sets the value associated with the ThreadLocal object for the currently
+ * executing Thread. This overrides any existing value associated with the
+ * current Thread and prevents <code>initialValue()</code> from being
+ * called if this is the first access to this ThreadLocal in this Thread.
+ *
+ * @param value the value to set this thread's view of the variable to
+ */
+ public native void set(T value);
+
+ private final void internalSet(Object value)
+ {
+ ThreadLocalMap map = Thread.getThreadLocals();
+ // Note that we don't have to synchronize, as only this thread will
+ // ever modify the map.
+ map.set(this, value);
+ }
+
+ /**
+ * Removes the value associated with the ThreadLocal object for the
+ * currently executing Thread.
+ * @since 1.5
+ */
+ public native void remove();
+
+ private final void internalRemove()
+ {
+ ThreadLocalMap map = Thread.getThreadLocals();
+ map.remove(this);
+ }
+
+ protected native void finalize () throws Throwable;
+
+ private native void constructNative();
+
+ private gnu.gcj.RawData TLSPointer;
+}
diff --git a/gcc-4.8/libjava/java/lang/ThreadLocalMap$Entry.h b/gcc-4.8/libjava/java/lang/ThreadLocalMap$Entry.h
new file mode 100644
index 000000000..51b4db9c2
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ThreadLocalMap$Entry.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocalMap$Entry__
+#define __java_lang_ThreadLocalMap$Entry__
+
+#pragma interface
+
+#include <java/lang/ref/WeakReference.h>
+
+class java::lang::ThreadLocalMap$Entry : public ::java::lang::ref::WeakReference
+{
+
+public: // actually package-private
+ ThreadLocalMap$Entry(::java::lang::ThreadLocal *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::ref::WeakReference)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocalMap$Entry__
diff --git a/gcc-4.8/libjava/java/lang/ThreadLocalMap.h b/gcc-4.8/libjava/java/lang/ThreadLocalMap.h
new file mode 100644
index 000000000..3a1f107cf
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ThreadLocalMap.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocalMap__
+#define __java_lang_ThreadLocalMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::ThreadLocalMap : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ThreadLocalMap();
+private:
+ void newEntryArray(jint);
+ void overflow();
+public:
+ ::java::lang::Object * get(::java::lang::ThreadLocal *);
+ void set(::java::lang::ThreadLocal *, ::java::lang::Object *);
+ void remove(::java::lang::ThreadLocal *);
+public: // actually package-private
+ void clear();
+public:
+ void inherit(::java::lang::ThreadLocalMap *);
+private:
+ static const jint LOG_INITIAL_SIZE = 3;
+ static jfloat MAX_OCCUPANCY;
+ static jfloat TARGET_OCCUPANCY;
+ static ::java::lang::ThreadLocalMap$Entry * deletedEntry;
+ JArray< ::java::lang::ThreadLocalMap$Entry * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries;
+ jint hashMask;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocalMap__
diff --git a/gcc-4.8/libjava/java/lang/Throwable$StaticData.h b/gcc-4.8/libjava/java/lang/Throwable$StaticData.h
new file mode 100644
index 000000000..6bb0912de
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Throwable$StaticData.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Throwable$StaticData__
+#define __java_lang_Throwable$StaticData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Throwable$StaticData : public ::java::lang::Object
+{
+
+ Throwable$StaticData();
+public: // actually package-private
+ static ::java::lang::String * nl;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Throwable$StaticData__
diff --git a/gcc-4.8/libjava/java/lang/Throwable.h b/gcc-4.8/libjava/java/lang/Throwable.h
new file mode 100644
index 000000000..2e7532c3a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Throwable.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Throwable__
+#define __java_lang_Throwable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
+
+class java::lang::Throwable : public ::java::lang::Object
+{
+
+public:
+ Throwable();
+ Throwable(::java::lang::String *);
+ Throwable(::java::lang::String *, ::java::lang::Throwable *);
+ Throwable(::java::lang::Throwable *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::String * getLocalizedMessage();
+ virtual ::java::lang::Throwable * getCause();
+ virtual ::java::lang::Throwable * initCause(::java::lang::Throwable *);
+ virtual ::java::lang::String * toString();
+ virtual void printStackTrace();
+ virtual void printStackTrace(::java::io::PrintStream *);
+ virtual void printStackTrace(::java::io::PrintWriter *);
+private:
+ ::java::lang::String * stackTraceString();
+ static void stackTraceStringBuffer(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
+public:
+ virtual ::java::lang::Throwable * fillInStackTrace();
+ virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
+ virtual void setStackTrace(JArray< ::java::lang::StackTraceElement * > *);
+private:
+ static const jlong serialVersionUID = -3042686055658047285LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) detailMessage;
+ ::java::lang::Throwable * cause;
+ JArray< ::java::lang::StackTraceElement * > * stackTrace;
+ ::java::lang::VMThrowable * vmState;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Throwable__
diff --git a/gcc-4.8/libjava/java/lang/TypeNotPresentException.h b/gcc-4.8/libjava/java/lang/TypeNotPresentException.h
new file mode 100644
index 000000000..076f0a6d4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/TypeNotPresentException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_TypeNotPresentException__
+#define __java_lang_TypeNotPresentException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::TypeNotPresentException : public ::java::lang::RuntimeException
+{
+
+public:
+ TypeNotPresentException(::java::lang::String *, ::java::lang::Throwable *);
+ virtual ::java::lang::String * typeName();
+private:
+ static const jlong serialVersionUID = -5101214195716534496LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) typeName__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_TypeNotPresentException__
diff --git a/gcc-4.8/libjava/java/lang/UnknownError.h b/gcc-4.8/libjava/java/lang/UnknownError.h
new file mode 100644
index 000000000..2ed851aae
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/UnknownError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_UnknownError__
+#define __java_lang_UnknownError__
+
+#pragma interface
+
+#include <java/lang/VirtualMachineError.h>
+
+class java::lang::UnknownError : public ::java::lang::VirtualMachineError
+{
+
+public:
+ UnknownError();
+ UnknownError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 2524784860676771849LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_UnknownError__
diff --git a/gcc-4.8/libjava/java/lang/UnsatisfiedLinkError.h b/gcc-4.8/libjava/java/lang/UnsatisfiedLinkError.h
new file mode 100644
index 000000000..a560313fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/UnsatisfiedLinkError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_UnsatisfiedLinkError__
+#define __java_lang_UnsatisfiedLinkError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::UnsatisfiedLinkError : public ::java::lang::LinkageError
+{
+
+public:
+ UnsatisfiedLinkError();
+ UnsatisfiedLinkError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4019343241616879428LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_UnsatisfiedLinkError__
diff --git a/gcc-4.8/libjava/java/lang/UnsupportedClassVersionError.h b/gcc-4.8/libjava/java/lang/UnsupportedClassVersionError.h
new file mode 100644
index 000000000..afa5b1875
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/UnsupportedClassVersionError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_UnsupportedClassVersionError__
+#define __java_lang_UnsupportedClassVersionError__
+
+#pragma interface
+
+#include <java/lang/ClassFormatError.h>
+
+class java::lang::UnsupportedClassVersionError : public ::java::lang::ClassFormatError
+{
+
+public:
+ UnsupportedClassVersionError();
+ UnsupportedClassVersionError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -7123279212883497373LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_UnsupportedClassVersionError__
diff --git a/gcc-4.8/libjava/java/lang/UnsupportedOperationException.h b/gcc-4.8/libjava/java/lang/UnsupportedOperationException.h
new file mode 100644
index 000000000..ce808bded
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/UnsupportedOperationException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_UnsupportedOperationException__
+#define __java_lang_UnsupportedOperationException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::UnsupportedOperationException : public ::java::lang::RuntimeException
+{
+
+public:
+ UnsupportedOperationException();
+ UnsupportedOperationException(::java::lang::String *);
+ UnsupportedOperationException(::java::lang::String *, ::java::lang::Throwable *);
+ UnsupportedOperationException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -1242599979055084673LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_UnsupportedOperationException__
diff --git a/gcc-4.8/libjava/java/lang/VMClassLoader.h b/gcc-4.8/libjava/java/lang/VMClassLoader.h
new file mode 100644
index 000000000..dce7092bf
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMClassLoader.h
@@ -0,0 +1,74 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VMClassLoader__
+#define __java_lang_VMClassLoader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ namespace runtime
+ {
+ class BootClassLoader;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ namespace security
+ {
+ class Permission;
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::lang::VMClassLoader : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMClassLoader();
+ static ::java::lang::Class * defineClass(::java::lang::ClassLoader *, ::java::lang::String *, JArray< jbyte > *, jint, jint, ::java::security::ProtectionDomain *);
+ static void resolveClass(::java::lang::Class *);
+ static ::java::lang::Class * loadClass(::java::lang::String *, jboolean);
+ static ::java::net::URL * getResource(::java::lang::String *);
+ static ::java::util::Enumeration * getResources(::java::lang::String *);
+ static ::java::lang::Package * getPackage(::java::lang::String *);
+ static JArray< ::java::lang::Package * > * getPackages();
+ static void definePackageForNative(::java::lang::String *);
+ static ::java::lang::Class * getPrimitiveClass(jchar);
+ static jboolean defaultAssertionStatus();
+ static ::java::util::Map * packageAssertionStatus();
+ static ::java::util::Map * classAssertionStatus();
+ static ::java::lang::ClassLoader * getSystemClassLoaderInternal();
+ static void initBootLoader(::java::lang::String *);
+ static void initialize(::java::lang::String *);
+ static ::java::lang::Class * nativeFindClass(::java::lang::String *);
+ static ::java::lang::ClassLoader * getSystemClassLoader();
+ static ::java::security::Permission * protectionDomainPermission;
+ static ::java::security::ProtectionDomain * unknownProtectionDomain;
+ static ::java::util::HashMap * definedPackages;
+ static ::gnu::gcj::runtime::BootClassLoader * bootLoader;
+private:
+ static ::java::util::HashSet * tried_libraries;
+ static jint lib_control;
+ static const jint LIB_FULL = 0;
+ static const jint LIB_CACHE = 1;
+ static const jint LIB_NEVER = 2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VMClassLoader__
diff --git a/gcc-4.8/libjava/java/lang/VMClassLoader.java b/gcc-4.8/libjava/java/lang/VMClassLoader.java
new file mode 100644
index 000000000..21019b757
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMClassLoader.java
@@ -0,0 +1,348 @@
+/* VMClassLoader.java -- Reference implementation of native interface
+ required by ClassLoader
+ Copyright (C) 1998, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import gnu.java.util.EmptyEnumeration;
+import java.lang.reflect.Constructor;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.security.AllPermission;
+import java.security.Permission;
+import java.security.Permissions;
+import java.security.ProtectionDomain;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.StringTokenizer;
+import gnu.gcj.runtime.BootClassLoader;
+
+/**
+ * java.lang.VMClassLoader is a package-private helper for VMs to implement
+ * on behalf of java.lang.ClassLoader.
+ *
+ * @author John Keiser
+ * @author Mark Wielaard <mark@klomp.org>
+ * @author Eric Blake <ebb9@email.byu.edu>
+ */
+final class VMClassLoader
+{
+ // Protection Domain definitions
+ // FIXME: should there be a special protection domain used for native code?
+
+ // The permission required to check what a classes protection domain is.
+ static final Permission protectionDomainPermission
+ = new RuntimePermission("getProtectionDomain");
+ // The protection domain returned if we cannot determine it.
+ static ProtectionDomain unknownProtectionDomain;
+
+ static
+ {
+ Permissions permissions = new Permissions();
+ permissions.add(new AllPermission());
+ unknownProtectionDomain = new ProtectionDomain(null, permissions);
+ }
+
+ static final HashMap definedPackages = new HashMap();
+
+ // This is a helper for handling java.endorsed.dirs. It is null
+ // until we've initialized the system, at which point it is created.
+ static BootClassLoader bootLoader;
+
+ // This keeps track of shared libraries we've already tried to load.
+ private static HashSet tried_libraries;
+
+ // Holds one of the LIB_* constants; used to determine how shared
+ // library loads are done.
+ private static int lib_control;
+
+ private static final int LIB_FULL = 0;
+ private static final int LIB_CACHE = 1;
+ private static final int LIB_NEVER = 2;
+
+ /**
+ * Helper to define a class using a string of bytes. This assumes that
+ * the security checks have already been performed, if necessary.
+ *
+ * <strong>For backward compatibility, this just ignores the protection
+ * domain; that is the wrong behavior, and you should directly implement
+ * this method natively if you can.</strong>
+ *
+ * @param name the name to give the class, or null if unknown
+ * @param data the data representing the classfile, in classfile format
+ * @param offset the offset into the data where the classfile starts
+ * @param len the length of the classfile data in the array
+ * @param pd the protection domain
+ * @return the class that was defined
+ * @throws ClassFormatError if data is not in proper classfile format
+ */
+ static final native Class defineClass(ClassLoader cl, String name,
+ byte[] data, int offset, int len,
+ ProtectionDomain pd)
+ throws ClassFormatError;
+
+ /**
+ * Helper to resolve all references to other classes from this class.
+ *
+ * @param c the class to resolve
+ */
+ static final void resolveClass(Class clazz)
+ {
+ // There doesn't seem to be a need for this to do anything.
+ // Testing reveals that the JDK doesn't seem to do anything here,
+ // either.
+ }
+
+ /**
+ * Helper to load a class from the bootstrap class loader.
+ *
+ * @param name the class name to load
+ * @param resolve whether to resolve it
+ * @return the class, loaded by the bootstrap classloader or null
+ * if the class wasn't found. Returning null is equivalent to throwing
+ * a ClassNotFoundException (but a possible performance optimization).
+ */
+ static final native Class loadClass(String name, boolean resolve)
+ throws ClassNotFoundException;
+
+ /**
+ * Helper to load a resource from the bootstrap class loader.
+ *
+ * In libgcj, this does nothing, as the default system loader knows
+ * how to find resources that have been linked in.
+ *
+ * @param name the resource to find
+ * @return the URL to the resource
+ */
+ static URL getResource(String name)
+ {
+ if (bootLoader != null)
+ return bootLoader.bootGetResource(name);
+ return null;
+ }
+
+ /**
+ * Helper to get a list of resources from the bootstrap class loader.
+ *
+ * In libgcj, this does nothing, as the default system loader knows
+ * how to find resources that have been linked in.
+ *
+ * @param name the resource to find
+ * @return an enumeration of resources
+ * @throws IOException if one occurs
+ */
+ static Enumeration getResources(String name) throws IOException
+ {
+ if (bootLoader != null)
+ return bootLoader.bootGetResources(name);
+ return EmptyEnumeration.getInstance();
+ }
+
+ /**
+ * Helper to get a package from the bootstrap class loader. The default
+ * implementation of returning null may be adequate, or you may decide
+ * that this needs some native help.
+ *
+ * @param name the name to find
+ * @return the named package, if it exists
+ */
+ static synchronized Package getPackage(String name)
+ {
+ return (Package) definedPackages.get(name);
+ }
+
+ /**
+ * Helper to get all packages from the bootstrap class loader. The default
+ * implementation of returning an empty array may be adequate, or you may
+ * decide that this needs some native help.
+ *
+ * @return all named packages, if any exist
+ */
+ static synchronized Package[] getPackages()
+ {
+ Package[] packages = new Package[definedPackages.size()];
+ return (Package[]) definedPackages.values().toArray(packages);
+ }
+
+ // Define a package for something loaded natively.
+ static synchronized void definePackageForNative(String className)
+ {
+ int lastDot = className.lastIndexOf('.');
+ if (lastDot != -1)
+ {
+ String packageName = className.substring(0, lastDot);
+ if (getPackage(packageName) == null)
+ {
+ // FIXME: this assumes we're defining the core, which
+ // isn't necessarily so. We could detect this and set up
+ // appropriately. We could also look at a manifest file
+ // compiled into the .so.
+ Package p = new Package(packageName,
+ "Java Platform API Specification",
+ "GNU", "1.4", "gcj", "GNU",
+ null, // FIXME: gcj version.
+ null);
+ definedPackages.put(packageName, p);
+ }
+ }
+ }
+
+ /**
+ * Helper for java.lang.Integer, Byte, etc to get the TYPE class
+ * at initialization time. The type code is one of the chars that
+ * represents the primitive type as in JNI.
+ *
+ * <ul>
+ * <li>'Z' - boolean</li>
+ * <li>'B' - byte</li>
+ * <li>'C' - char</li>
+ * <li>'D' - double</li>
+ * <li>'F' - float</li>
+ * <li>'I' - int</li>
+ * <li>'J' - long</li>
+ * <li>'S' - short</li>
+ * <li>'V' - void</li>
+ * </ul>
+ *
+ * @param type the primitive type
+ * @return a "bogus" class representing the primitive type
+ */
+ static final native Class getPrimitiveClass(char type);
+
+ /**
+ * The system default for assertion status. This is used for all system
+ * classes (those with a null ClassLoader), as well as the initial value for
+ * every ClassLoader's default assertion status.
+ *
+ * XXX - Not implemented yet; this requires native help.
+ *
+ * @return the system-wide default assertion status
+ */
+ static final boolean defaultAssertionStatus()
+ {
+ return true;
+ }
+
+ /**
+ * The system default for package assertion status. This is used for all
+ * ClassLoader's packageAssertionStatus defaults. It must be a map of
+ * package names to Boolean.TRUE or Boolean.FALSE, with the unnamed package
+ * represented as a null key.
+ *
+ * XXX - Not implemented yet; this requires native help.
+ *
+ * @return a (read-only) map for the default packageAssertionStatus
+ */
+ static final Map packageAssertionStatus()
+ {
+ return new HashMap();
+ }
+
+ /**
+ * The system default for class assertion status. This is used for all
+ * ClassLoader's classAssertionStatus defaults. It must be a map of
+ * class names to Boolean.TRUE or Boolean.FALSE
+ *
+ * XXX - Not implemented yet; this requires native help.
+ *
+ * @return a (read-only) map for the default classAssertionStatus
+ */
+ static final Map classAssertionStatus()
+ {
+ return new HashMap();
+ }
+
+ static native ClassLoader getSystemClassLoaderInternal();
+
+ static native void initBootLoader(String libdir);
+
+ static void initialize(String libdir)
+ {
+ initBootLoader(libdir);
+
+ String p
+ = System.getProperty ("gnu.gcj.runtime.VMClassLoader.library_control",
+ "");
+ if ("never".equals(p))
+ lib_control = LIB_NEVER;
+ else if ("cache".equals(p))
+ lib_control = LIB_CACHE;
+ else if ("full".equals(p))
+ lib_control = LIB_FULL;
+ else
+ lib_control = LIB_NEVER;
+
+ tried_libraries = new HashSet();
+ }
+
+ /**
+ * Possibly load a .so and search it for classes.
+ */
+ static native Class nativeFindClass(String name);
+
+ static ClassLoader getSystemClassLoader()
+ {
+ // This method is called as the initialization of systemClassLoader,
+ // so if there is a null value, this is the first call and we must check
+ // for java.system.class.loader.
+ String loader = System.getProperty("java.system.class.loader");
+ ClassLoader default_sys = getSystemClassLoaderInternal();
+ if (loader != null)
+ {
+ try
+ {
+ Class load_class = Class.forName(loader, true, default_sys);
+ Constructor c
+ = load_class.getConstructor(new Class[] { ClassLoader.class });
+ default_sys
+ = (ClassLoader) c.newInstance(new Object[] { default_sys });
+ }
+ catch (Exception ex)
+ {
+ throw new Error("Failed to load requested system classloader "
+ + loader, ex);
+ }
+ }
+
+ return default_sys;
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/VMCompiler.h b/gcc-4.8/libjava/java/lang/VMCompiler.h
new file mode 100644
index 000000000..e81f694e1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMCompiler.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VMCompiler__
+#define __java_lang_VMCompiler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace security
+ {
+ namespace hash
+ {
+ class MD5;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace security
+ {
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::lang::VMCompiler : public ::java::lang::Object
+{
+
+public:
+ static jboolean precompiles();
+private:
+ VMCompiler();
+ static ::java::lang::Class * loadSharedLibrary(::java::lang::ClassLoader *, ::java::lang::String *, ::java::security::ProtectionDomain *, ::java::lang::String *);
+public:
+ static ::java::lang::Class * compileClass(::java::lang::ClassLoader *, ::java::lang::String *, JArray< jbyte > *, jint, jint, ::java::security::ProtectionDomain *);
+ static jboolean compileClass(::java::lang::Class *);
+ static jboolean compileClasses(::java::lang::String *);
+ static ::java::lang::Object * command(::java::lang::Object *);
+ static void enable();
+ static void disable();
+ static jboolean useCompiler;
+ static jboolean canUseCompiler;
+ static ::java::lang::String * gcjJitCompiler;
+ static ::java::lang::String * gcjJitCompilerOptions;
+ static ::java::lang::String * gcjJitTmpdir;
+private:
+ static ::java::util::WeakHashMap * sharedHelperMap;
+ static ::java::util::Vector * precompiledMapFiles;
+ static ::gnu::java::security::hash::MD5 * md5Digest;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VMCompiler__
diff --git a/gcc-4.8/libjava/java/lang/VMCompiler.java b/gcc-4.8/libjava/java/lang/VMCompiler.java
new file mode 100644
index 000000000..1f600f12e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMCompiler.java
@@ -0,0 +1,369 @@
+/* VMClassLoader.java -- Reference implementation of compiler interface
+ Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.security.MessageDigest;
+import java.security.ProtectionDomain;
+import java.security.NoSuchAlgorithmException;
+import java.util.WeakHashMap;
+import java.util.HashSet;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import gnu.gcj.runtime.SharedLibHelper;
+import gnu.gcj.runtime.PersistentByteMap;
+import gnu.java.security.hash.MD5;
+
+/**
+ * This class is just a per-VM reflection of java.lang.Compiler.
+ * All methods are defined identically.
+ */
+final class VMCompiler
+{
+ // True if we want to use gcj-jit.
+ public static boolean useCompiler = true;
+
+ // True if we're able to use gcj-jit.
+ public static final boolean canUseCompiler;
+
+ // Compiler to use.
+ public static String gcjJitCompiler;
+
+ // Compiler options.
+ public static String gcjJitCompilerOptions;
+
+ // Temporary directory to use.
+ public static String gcjJitTmpdir;
+
+ public static boolean precompiles()
+ {
+ return (canUseCompiler & useCompiler);
+ }
+
+ // This maps a ClassLoader to a set of SharedLibHelper objects that
+ // it has used. We do things this way to ensure that a
+ // SharedLibHelper is collected if and only if the ClassLoader is.
+ private static WeakHashMap sharedHelperMap = new WeakHashMap();
+
+ private static Vector precompiledMapFiles;
+
+ // We create a single MD5 engine and then clone it whenever we want
+ // a new one.
+
+ // We don't use
+ //
+ // md5Digest = MessageDigest.getInstance("MD5");
+ //
+ // here because that loads a great deal of security provider code as
+ // interpreted bytecode -- before we're able to use this class to
+ // load precompiled classes.
+
+ private static final MD5 md5Digest
+ = new gnu.java.security.hash.MD5();
+
+ static
+ {
+ gcjJitCompiler = System.getProperty("gnu.gcj.jit.compiler");
+ if (gcjJitCompiler == null)
+ canUseCompiler = false;
+ else
+ {
+ gcjJitCompilerOptions = System.getProperty("gnu.gcj.jit.options",
+ "-g");
+ gcjJitTmpdir = System.getProperty("gnu.gcj.jit.cachedir");
+ // Note that we *don't* choose java.io.tmpdir as a default --
+ // that would allow easy attacks against the VM.
+ if (gcjJitTmpdir == null)
+ canUseCompiler = false;
+ else
+ canUseCompiler = true;
+ }
+
+ String prop = System.getProperty ("gnu.gcj.precompiled.db.path");
+ if (prop != null)
+ {
+ precompiledMapFiles = new Vector();
+ // Add the
+ StringTokenizer st
+ = new StringTokenizer (prop,
+ System.getProperty ("path.separator", ":"));
+ {
+ while (st.hasMoreElements ())
+ {
+ String e = st.nextToken ();
+ try
+ {
+ PersistentByteMap map
+ = new PersistentByteMap
+ (e, PersistentByteMap.AccessMode.READ_ONLY);
+ precompiledMapFiles.add(map);
+ }
+ catch (IllegalArgumentException _)
+ {
+ // Not a map file
+ }
+ catch (java.io.IOException _)
+ {
+ }
+ catch (java.nio.BufferUnderflowException _)
+ {
+ // Invalid map file.
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Don't allow new `Compiler's to be made.
+ */
+ private VMCompiler()
+ {
+ }
+
+ private static Class loadSharedLibrary(ClassLoader loader,
+ String fileName,
+ ProtectionDomain domain,
+ String className)
+ {
+ Class c = null;
+ SharedLibHelper helper
+ = SharedLibHelper.findHelper (loader, fileName, domain.getCodeSource(),
+ domain, false);
+ c = helper.findClass (className);
+ if (c != null)
+ {
+ HashSet hs = (HashSet) sharedHelperMap.get(loader);
+ if (hs == null)
+ {
+ hs = new HashSet();
+ sharedHelperMap.put(loader, hs);
+ }
+ hs.add(helper);
+ }
+ return c;
+ }
+
+ /**
+ * Compile a class given the bytes for it. Returns the Class, or
+ * null if compilation failed or otherwise could not be done.
+ */
+ public static Class compileClass(ClassLoader loader,
+ String name, byte[] data,
+ int offset, int len,
+ ProtectionDomain domain)
+ {
+ if (precompiledMapFiles == null && !precompiles())
+ return null;
+
+ byte digest[];
+
+ try
+ {
+ MD5 md = (MD5) md5Digest.clone();
+ md.update(data);
+ digest = md.digest();
+ }
+ catch (NullPointerException _)
+ {
+ // If md5Digest==null -- but really this should never happen
+ // either, since the MD5 digest is in libgcj.
+ return null;
+ }
+
+ // We use lookaside cache files to determine whether these bytes
+ // correspond to a class file that is part of a precompiled DSO.
+ if (precompiledMapFiles != null)
+ {
+ try
+ {
+ Enumeration elements = precompiledMapFiles.elements();
+ while (elements.hasMoreElements())
+ {
+ PersistentByteMap map = (PersistentByteMap)elements.nextElement();
+ byte[] soName = map.get(digest);
+ if (soName != null)
+ return loadSharedLibrary(loader,
+ new String(soName),
+ domain, name);
+ }
+ }
+ catch (Exception _)
+ {
+ }
+ catch (UnknownError _)
+ {
+ // SharedLibHelper will throw UnknownError if the dlopen
+ // fails for some reason. We ignore it and continue on.
+ }
+ }
+
+ if (!precompiles())
+ return null;
+
+ try
+ {
+ // FIXME: Make sure that the class represented by the
+ // bytes in DATA really is the class named in NAME. Make
+ // sure it's not "java.*".
+ StringBuffer hexBytes = new StringBuffer(gcjJitTmpdir);
+ hexBytes.append(File.separatorChar);
+ int digestLength = digest.length;
+ for (int i = 0; i < digestLength; ++i)
+ {
+ int v = digest[i] & 0xff;
+ if (v < 16)
+ hexBytes.append('0');
+ hexBytes.append(Integer.toHexString(v));
+ }
+
+ // FIXME: use System.mapLibraryName?
+ // I'm thinking we should use that, plus a class specified
+ // via a property that determines lookup policy.
+ File soFile = new File(hexBytes + ".so");
+ if (soFile.isFile())
+ return loadSharedLibrary (loader, soFile.toString(), domain,
+ name);
+
+ File classFile = new File(hexBytes + ".class");
+ classFile.delete();
+ if (classFile.createNewFile() != true)
+ return null;
+
+ FileOutputStream f = new FileOutputStream (classFile);
+ // FIXME: race condition if bytes change... ?
+ f.write(data, offset, len);
+
+ // Invoke the compiler.
+ StringBuffer command = new StringBuffer(gcjJitCompiler);
+ command.append(" ");
+ command.append(classFile);
+ command.append(" ");
+ command.append(gcjJitCompilerOptions);
+ // These options are required.
+ command.append(" -findirect-dispatch -fjni -shared -fPIC -o ");
+ command.append(soFile);
+ Process p = Runtime.getRuntime().exec(command.toString());
+
+ // Read the process' stderr into a string.
+ StringBuffer err = new StringBuffer();
+ InputStreamReader stderr = new InputStreamReader (p.getErrorStream());
+ char[] inBuf = new char[500];
+ int bytesRead;
+ while ((bytesRead = stderr.read (inBuf)) != -1)
+ err.append(inBuf, 0, bytesRead);
+
+ if (p.waitFor() != 0)
+ {
+ // FIXME: we could log err.toString() somewhere...
+ return null;
+ }
+
+ return loadSharedLibrary(loader, soFile.toString(), domain, name);
+ }
+ catch (Exception _)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Compile the class named by <code>oneClass</code>.
+ *
+ * @param oneClass the class to compile
+ * @return <code>false</code> if no compiler is available or
+ * compilation failed, <code>true</code> if compilation succeeded
+ * @throws NullPointerException if oneClass is null
+ */
+ public static boolean compileClass(Class oneClass)
+ {
+ // Never succeed.
+ return false;
+ }
+
+ /**
+ * Compile the classes whose name matches <code>classNames</code>.
+ *
+ * @param classNames the name of classes to compile
+ * @return <code>false</code> if no compiler is available or
+ * compilation failed, <code>true</code> if compilation succeeded
+ * @throws NullPointerException if classNames is null
+ */
+ public static boolean compileClasses(String classNames)
+ {
+ // Note the incredibly lame interface. Always fail.
+ return false;
+ }
+
+ /**
+ * This method examines the argument and performs an operation
+ * according to the compilers documentation. No specific operation
+ * is required.
+ *
+ * @param arg a compiler-specific argument
+ * @return a compiler-specific value, including null
+ * @throws NullPointerException if the compiler doesn't like a null arg
+ */
+ public static Object command(Object arg)
+ {
+ // Our implementation defines this to a no-op.
+ return null;
+ }
+
+ /**
+ * Calling <code>Compiler.enable()</code> will cause the compiler
+ * to resume operation if it was previously disabled; provided that a
+ * compiler even exists.
+ */
+ public static void enable()
+ {
+ useCompiler = true;
+ }
+
+ /**
+ * Calling <code>Compiler.disable()</code> will cause the compiler
+ * to be suspended; provided that a compiler even exists.
+ */
+ public static void disable()
+ {
+ useCompiler = false;
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/VMDouble.h b/gcc-4.8/libjava/java/lang/VMDouble.h
new file mode 100644
index 000000000..76b6d5020
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMDouble.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VMDouble__
+#define __java_lang_VMDouble__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::VMDouble : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMDouble();
+public:
+ static jlong doubleToLongBits(jdouble);
+ static jlong doubleToRawLongBits(jdouble);
+ static jdouble longBitsToDouble(jlong);
+ static ::java::lang::String * toString(jdouble, jboolean);
+ static jdouble parseDouble(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VMDouble__
diff --git a/gcc-4.8/libjava/java/lang/VMDouble.java b/gcc-4.8/libjava/java/lang/VMDouble.java
new file mode 100644
index 000000000..9205eb3b3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMDouble.java
@@ -0,0 +1,111 @@
+/* VMDouble.java -- VM Specific Double methods
+ Copyright (C) 2003, 2005, 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import gnu.classpath.Configuration;
+
+/*
+ * This class is a reference version, mainly for compiling a class library
+ * jar. It is likely that VM implementers replace this with their own
+ * version that can communicate effectively with the VM.
+ */
+
+/**
+ * Code relocated from java.lang.Double by
+ * @author Dave Grove (groved@us.ibm.com)
+ */
+final class VMDouble
+{
+ /**
+ * Convert the double to the IEEE 754 floating-point "double format" bit
+ * layout. Bit 63 (the most significant) is the sign bit, bits 62-52
+ * (masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0
+ * (masked by 0x000fffffffffffffL) are the mantissa. This function
+ * collapses all versions of NaN to 0x7ff8000000000000L. The result of this
+ * function can be used as the argument to
+ * <code>Double.longBitsToDouble(long)</code> to obtain the original
+ * <code>double</code> value.
+ *
+ * @param value the <code>double</code> to convert
+ * @return the bits of the <code>double</code>
+ * @see #longBitsToDouble(long)
+ */
+ public static native long doubleToLongBits(double value);
+
+ /**
+ * Convert the double to the IEEE 754 floating-point "double format" bit
+ * layout. Bit 63 (the most significant) is the sign bit, bits 62-52
+ * (masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0
+ * (masked by 0x000fffffffffffffL) are the mantissa. This function
+ * leaves NaN alone, rather than collapsing to a canonical value. The
+ * result of this function can be used as the argument to
+ * <code>Double.longBitsToDouble(long)</code> to obtain the original
+ * <code>double</code> value.
+ *
+ * @param value the <code>double</code> to convert
+ * @return the bits of the <code>double</code>
+ * @see #longBitsToDouble(long)
+ */
+ public static native long doubleToRawLongBits(double value);
+
+ /**
+ * Convert the argument in IEEE 754 floating-point "double format" bit
+ * layout to the corresponding float. Bit 63 (the most significant) is the
+ * sign bit, bits 62-52 (masked by 0x7ff0000000000000L) represent the
+ * exponent, and bits 51-0 (masked by 0x000fffffffffffffL) are the mantissa.
+ * This function leaves NaN alone, so that you can recover the bit pattern
+ * with <code>Double.doubleToRawLongBits(double)</code>.
+ *
+ * @param bits the bits to convert
+ * @return the <code>double</code> represented by the bits
+ * @see #doubleToLongBits(double)
+ * @see #doubleToRawLongBits(double)
+ */
+ public static native double longBitsToDouble(long bits);
+
+ /**
+ * Helper method to convert to string.
+ *
+ * @param d the double to convert
+ * @param isFloat true if the conversion is requested by Float (results in
+ * fewer digits)
+ */
+ public static native String toString(double d, boolean isFloat);
+
+ public static native double parseDouble(String str);
+}
diff --git a/gcc-4.8/libjava/java/lang/VMFloat.h b/gcc-4.8/libjava/java/lang/VMFloat.h
new file mode 100644
index 000000000..fec037b2c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMFloat.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VMFloat__
+#define __java_lang_VMFloat__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::VMFloat : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMFloat();
+ static jint floatToIntBits(jfloat);
+ static jint floatToRawIntBits(jfloat);
+ static jfloat intBitsToFloat(jint);
+ static ::java::lang::String * toString(jfloat);
+ static jfloat parseFloat(::java::lang::String *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VMFloat__
diff --git a/gcc-4.8/libjava/java/lang/VMFloat.java b/gcc-4.8/libjava/java/lang/VMFloat.java
new file mode 100644
index 000000000..72a8c3c6b
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMFloat.java
@@ -0,0 +1,121 @@
+/* VMFloat.java -- VM Specific Float methods
+ Copyright (C) 2003, 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import gnu.classpath.Configuration;
+
+/*
+ * This class is a reference version, mainly for compiling a class library
+ * jar. It is likely that VM implementers replace this with their own
+ * version that can communicate effectively with the VM.
+ */
+
+/**
+ * Code relocated from java.lang.Float by
+ * @author Dave Grove <groved@us.ibm.com>
+ */
+final class VMFloat
+{
+ /**
+ * Convert the float to the IEEE 754 floating-point "single format" bit
+ * layout. Bit 31 (the most significant) is the sign bit, bits 30-23
+ * (masked by 0x7f800000) represent the exponent, and bits 22-0
+ * (masked by 0x007fffff) are the mantissa. This function collapses all
+ * versions of NaN to 0x7fc00000. The result of this function can be used
+ * as the argument to <code>Float.intBitsToFloat(int)</code> to obtain the
+ * original <code>float</code> value.
+ *
+ * @param value the <code>float</code> to convert
+ * @return the bits of the <code>float</code>
+ * @see #intBitsToFloat(int)
+ */
+ static native int floatToIntBits(float value);
+
+ /**
+ * Convert the float to the IEEE 754 floating-point "single format" bit
+ * layout. Bit 31 (the most significant) is the sign bit, bits 30-23
+ * (masked by 0x7f800000) represent the exponent, and bits 22-0
+ * (masked by 0x007fffff) are the mantissa. This function leaves NaN alone,
+ * rather than collapsing to a canonical value. The result of this function
+ * can be used as the argument to <code>Float.intBitsToFloat(int)</code> to
+ * obtain the original <code>float</code> value.
+ *
+ * @param value the <code>float</code> to convert
+ * @return the bits of the <code>float</code>
+ * @see #intBitsToFloat(int)
+ */
+ static native int floatToRawIntBits(float value);
+
+ /**
+ * Convert the argument in IEEE 754 floating-point "single format" bit
+ * layout to the corresponding float. Bit 31 (the most significant) is the
+ * sign bit, bits 30-23 (masked by 0x7f800000) represent the exponent, and
+ * bits 22-0 (masked by 0x007fffff) are the mantissa. This function leaves
+ * NaN alone, so that you can recover the bit pattern with
+ * <code>Float.floatToRawIntBits(float)</code>.
+ *
+ * @param bits the bits to convert
+ * @return the <code>float</code> represented by the bits
+ * @see #floatToIntBits(float)
+ * @see #floatToRawIntBits(float)
+ */
+ static native float intBitsToFloat(int bits);
+
+ /**
+ * @param f the <code>float</code> to convert
+ * @return the <code>String</code> representing the <code>float</code>
+ */
+ static String toString(float f)
+ {
+ return VMDouble.toString(f, true);
+ }
+
+ /**
+ * @param str the <code>String</code> to convert
+ * @return the <code>float</code> value of <code>s</code>
+ * @throws NumberFormatException if <code>str</code> cannot be parsed as a
+ * <code>float</code>
+ * @throws NullPointerException if <code>str</code> is null
+ */
+ static float parseFloat(String str)
+ {
+ // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
+ // the infinitely precise decimal.
+ return (float) Double.parseDouble(str);
+ }
+} // class VMFloat
diff --git a/gcc-4.8/libjava/java/lang/VMProcess.h b/gcc-4.8/libjava/java/lang/VMProcess.h
new file mode 100644
index 000000000..c0912e5c2
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMProcess.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VMProcess__
+#define __java_lang_VMProcess__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::VMProcess : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMProcess();
+ static ::java::lang::Process * nativeExec(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *, jboolean);
+ static ::java::lang::Process * exec(::java::util::List *, ::java::util::Map *, ::java::io::File *, jboolean);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VMProcess__
diff --git a/gcc-4.8/libjava/java/lang/VMProcess.java b/gcc-4.8/libjava/java/lang/VMProcess.java
new file mode 100644
index 000000000..c0c7bebc1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMProcess.java
@@ -0,0 +1,68 @@
+/* java.lang.VMProcess -- VM implementation of java.lang.ProcessBuilder
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+final class VMProcess
+{
+ static native Process nativeExec(String[] cmd, String[] env,
+ File dir, boolean redirect)
+ throws IOException;
+
+ static Process exec(List<String> cmd, Map<String, String> env,
+ File dir, boolean redirect) throws IOException
+ {
+ String[] acmd = (String[]) cmd.toArray(new String[cmd.size()]);
+ String[] aenv = new String[env.size()];
+
+ int i = 0;
+ Iterator iter = env.entrySet().iterator();
+ while (iter.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) iter.next();
+ aenv[i++] = entry.getKey() + "=" + entry.getValue();
+ }
+
+ return nativeExec(acmd, aenv, dir, redirect);
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/VMThrowable.h b/gcc-4.8/libjava/java/lang/VMThrowable.h
new file mode 100644
index 000000000..1991b6cd8
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMThrowable.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VMThrowable__
+#define __java_lang_VMThrowable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawDataManaged;
+ }
+ }
+}
+
+class java::lang::VMThrowable : public ::java::lang::Object
+{
+
+ VMThrowable();
+public: // actually package-private
+ static ::java::lang::VMThrowable * fillInStackTrace(::java::lang::Throwable *);
+ JArray< ::java::lang::StackTraceElement * > * getStackTrace(::java::lang::Throwable *);
+private:
+ ::gnu::gcj::RawDataManaged * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VMThrowable__
diff --git a/gcc-4.8/libjava/java/lang/VMThrowable.java b/gcc-4.8/libjava/java/lang/VMThrowable.java
new file mode 100644
index 000000000..9dde28d29
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VMThrowable.java
@@ -0,0 +1,82 @@
+/* java.lang.VMThrowable -- VM support methods for Throwable.
+ Copyright (C) 1998, 1999, 2002, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import gnu.gcj.RawDataManaged;
+
+/**
+ * VM dependent state and support methods Throwable.
+ * It is deliberately package local and final and should only be accessed
+ * by the Throwable class.
+ * <p>
+ * This is the version used by libgcj (http://gcc.gnu.org/java/).
+ *
+ * @author Mark Wielaard (mark@klomp.org)
+ */
+final class VMThrowable
+{
+ /**
+ * Private contructor, create VMThrowables with StackTrace();
+ */
+ private VMThrowable() { }
+
+ /**
+ * Fill in the stack trace with the current execution stack.
+ * Called by <code>Throwable.fillInStackTrace()</code> to get the state of
+ * the VM. Can return null when the VM does not support caputing the VM
+ * execution state.
+ *
+ * @return a new VMThrowable containing the current execution stack trace.
+ * @see Throwable#fillInStackTrace()
+ */
+ static native VMThrowable fillInStackTrace(Throwable t);
+
+ /**
+ * Returns an <code>StackTraceElement</code> array based on the execution
+ * state of the VM as captured by <code>fillInStackTrace</code>.
+ * Called by <code>Throwable.getStackTrace()</code>.
+ *
+ * @return a non-null but possible zero length array of StackTraceElement.
+ * @see Throwable#getStackTrace()
+ */
+ native StackTraceElement[] getStackTrace(Throwable t);
+
+ // Native stack data.
+ private RawDataManaged data;
+}
diff --git a/gcc-4.8/libjava/java/lang/VerifyError.h b/gcc-4.8/libjava/java/lang/VerifyError.h
new file mode 100644
index 000000000..54aafd27e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VerifyError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VerifyError__
+#define __java_lang_VerifyError__
+
+#pragma interface
+
+#include <java/lang/LinkageError.h>
+
+class java::lang::VerifyError : public ::java::lang::LinkageError
+{
+
+public:
+ VerifyError();
+ VerifyError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7001962396098498785LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VerifyError__
diff --git a/gcc-4.8/libjava/java/lang/VirtualMachineError.h b/gcc-4.8/libjava/java/lang/VirtualMachineError.h
new file mode 100644
index 000000000..9eb04ceaa
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/VirtualMachineError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_VirtualMachineError__
+#define __java_lang_VirtualMachineError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::lang::VirtualMachineError : public ::java::lang::Error
+{
+
+public:
+ VirtualMachineError();
+ VirtualMachineError(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 4161983926571568670LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_VirtualMachineError__
diff --git a/gcc-4.8/libjava/java/lang/Void.h b/gcc-4.8/libjava/java/lang/Void.h
new file mode 100644
index 000000000..be277b02a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Void.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Void__
+#define __java_lang_Void__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::Void : public ::java::lang::Object
+{
+
+ Void();
+public:
+ static ::java::lang::Class * TYPE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Void__
diff --git a/gcc-4.8/libjava/java/lang/Win32Process$EOFInputStream.h b/gcc-4.8/libjava/java/lang/Win32Process$EOFInputStream.h
new file mode 100644
index 000000000..b0224f332
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Win32Process$EOFInputStream.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Win32Process$EOFInputStream__
+#define __java_lang_Win32Process$EOFInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+
+class java::lang::Win32Process$EOFInputStream : public ::java::io::InputStream
+{
+
+ Win32Process$EOFInputStream();
+public:
+ virtual jint read();
+public: // actually package-private
+ static ::java::lang::Win32Process$EOFInputStream * instance;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Win32Process$EOFInputStream__
diff --git a/gcc-4.8/libjava/java/lang/Win32Process.h b/gcc-4.8/libjava/java/lang/Win32Process.h
new file mode 100644
index 000000000..5e22934a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Win32Process.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_Win32Process__
+#define __java_lang_Win32Process__
+
+#pragma interface
+
+#include <java/lang/Process.h>
+#include <gcj/array.h>
+
+
+class java::lang::Win32Process : public ::java::lang::Process
+{
+
+public:
+ void destroy();
+ jint exitValue();
+ ::java::io::InputStream * getErrorStream();
+ ::java::io::InputStream * getInputStream();
+ ::java::io::OutputStream * getOutputStream();
+ jint waitFor();
+ Win32Process(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *, jboolean);
+private:
+ jboolean hasExited();
+ void startProcess(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *, jboolean);
+ void cleanup();
+ ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::java::lang::Process)))) outputStream;
+ ::java::io::InputStream * inputStream;
+ ::java::io::InputStream * errorStream;
+ jint procHandle;
+ jint exitCode;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_Win32Process__
diff --git a/gcc-4.8/libjava/java/lang/Win32Process.java b/gcc-4.8/libjava/java/lang/Win32Process.java
new file mode 100644
index 000000000..f22b54882
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/Win32Process.java
@@ -0,0 +1,97 @@
+// Win32Process.java - Subclass of Process for Win32 systems.
+
+/* Copyright (C) 2002, 2003, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.lang;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.IOException;
+
+/**
+ * @author Adam Megacz
+ * @date Feb 24, 2002
+ */
+
+// This is entirely internal to our implementation.
+
+final class Win32Process extends Process
+{
+ public native void destroy ();
+
+ public int exitValue ()
+ {
+ if (! hasExited ())
+ throw new IllegalThreadStateException ("Process has not exited");
+
+ return exitCode;
+ }
+
+ public InputStream getErrorStream ()
+ {
+ return errorStream;
+ }
+
+ public InputStream getInputStream ()
+ {
+ return inputStream;
+ }
+
+ public OutputStream getOutputStream ()
+ {
+ return outputStream;
+ }
+
+ public native int waitFor () throws InterruptedException;
+
+ public Win32Process (String[] progarray, String[] envp, File dir,
+ boolean redirect)
+ throws IOException
+ {
+ for (int i = 0; i < progarray.length; i++)
+ {
+ String s = progarray[i];
+
+ if ( (s.indexOf (' ') >= 0) || (s.indexOf ('\t') >= 0))
+ progarray[i] = "\"" + s + "\"";
+ }
+
+ startProcess (progarray, envp, dir, redirect);
+ }
+
+ // The standard streams (stdin, stdout and stderr, respectively)
+ // of the child as seen by the parent process.
+ private OutputStream outputStream;
+ private InputStream inputStream;
+ private InputStream errorStream;
+
+ // Handle to the child process - cast to HANDLE before use.
+ private int procHandle;
+
+ // Exit code of the child if it has exited.
+ private int exitCode;
+
+ private native boolean hasExited ();
+ private native void startProcess (String[] progarray,
+ String[] envp,
+ File dir,
+ boolean redirect)
+ throws IOException;
+ private native void cleanup ();
+
+ private static class EOFInputStream extends InputStream
+ {
+ static EOFInputStream instance = new EOFInputStream();
+ public int read()
+ {
+ return -1;
+ }
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/annotation/Annotation.h b/gcc-4.8/libjava/java/lang/annotation/Annotation.h
new file mode 100644
index 000000000..9c9c3d7ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/Annotation.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_Annotation__
+#define __java_lang_annotation_Annotation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::annotation::Annotation : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * annotationType() = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual jint hashCode() = 0;
+ virtual ::java::lang::String * toString() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_annotation_Annotation__
diff --git a/gcc-4.8/libjava/java/lang/annotation/AnnotationFormatError.h b/gcc-4.8/libjava/java/lang/annotation/AnnotationFormatError.h
new file mode 100644
index 000000000..f5c43b241
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/AnnotationFormatError.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_AnnotationFormatError__
+#define __java_lang_annotation_AnnotationFormatError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::lang::annotation::AnnotationFormatError : public ::java::lang::Error
+{
+
+public:
+ AnnotationFormatError(::java::lang::String *);
+ AnnotationFormatError(::java::lang::String *, ::java::lang::Throwable *);
+ AnnotationFormatError(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -4256701562333669892LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_annotation_AnnotationFormatError__
diff --git a/gcc-4.8/libjava/java/lang/annotation/AnnotationTypeMismatchException.h b/gcc-4.8/libjava/java/lang/annotation/AnnotationTypeMismatchException.h
new file mode 100644
index 000000000..082d9f6a3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/AnnotationTypeMismatchException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_AnnotationTypeMismatchException__
+#define __java_lang_annotation_AnnotationTypeMismatchException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::annotation::AnnotationTypeMismatchException : public ::java::lang::RuntimeException
+{
+
+public:
+ AnnotationTypeMismatchException(::java::lang::reflect::Method *, ::java::lang::String *);
+ virtual ::java::lang::reflect::Method * element();
+ virtual ::java::lang::String * foundType();
+private:
+ static const jlong serialVersionUID = 8125925355765570191LL;
+ ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) element__;
+ ::java::lang::String * foundType__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_annotation_AnnotationTypeMismatchException__
diff --git a/gcc-4.8/libjava/java/lang/annotation/Documented.h b/gcc-4.8/libjava/java/lang/annotation/Documented.h
new file mode 100644
index 000000000..d2a920dc7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/Documented.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_Documented__
+#define __java_lang_annotation_Documented__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::annotation::Documented : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_annotation_Documented__
diff --git a/gcc-4.8/libjava/java/lang/annotation/ElementType.h b/gcc-4.8/libjava/java/lang/annotation/ElementType.h
new file mode 100644
index 000000000..c475967ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/ElementType.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_ElementType__
+#define __java_lang_annotation_ElementType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::lang::annotation::ElementType : public ::java::lang::Enum
+{
+
+ ElementType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::lang::annotation::ElementType * > * values();
+ static ::java::lang::annotation::ElementType * valueOf(::java::lang::String *);
+ static ::java::lang::annotation::ElementType * ANNOTATION_TYPE;
+ static ::java::lang::annotation::ElementType * CONSTRUCTOR;
+ static ::java::lang::annotation::ElementType * FIELD;
+ static ::java::lang::annotation::ElementType * LOCAL_VARIABLE;
+ static ::java::lang::annotation::ElementType * METHOD;
+ static ::java::lang::annotation::ElementType * PACKAGE;
+ static ::java::lang::annotation::ElementType * PARAMETER;
+ static ::java::lang::annotation::ElementType * TYPE;
+private:
+ static const jlong serialVersionUID = 2798216111136361587LL;
+ static JArray< ::java::lang::annotation::ElementType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_annotation_ElementType__
diff --git a/gcc-4.8/libjava/java/lang/annotation/IncompleteAnnotationException.h b/gcc-4.8/libjava/java/lang/annotation/IncompleteAnnotationException.h
new file mode 100644
index 000000000..aff0f7e0b
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/IncompleteAnnotationException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_IncompleteAnnotationException__
+#define __java_lang_annotation_IncompleteAnnotationException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::annotation::IncompleteAnnotationException : public ::java::lang::RuntimeException
+{
+
+public:
+ IncompleteAnnotationException(::java::lang::Class *, ::java::lang::String *);
+ virtual ::java::lang::Class * annotationType();
+ virtual ::java::lang::String * elementName();
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) annotationType__;
+ ::java::lang::String * elementName__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_annotation_IncompleteAnnotationException__
diff --git a/gcc-4.8/libjava/java/lang/annotation/Inherited.h b/gcc-4.8/libjava/java/lang/annotation/Inherited.h
new file mode 100644
index 000000000..b1ebc883e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/Inherited.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_Inherited__
+#define __java_lang_annotation_Inherited__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::annotation::Inherited : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_annotation_Inherited__
diff --git a/gcc-4.8/libjava/java/lang/annotation/Retention.h b/gcc-4.8/libjava/java/lang/annotation/Retention.h
new file mode 100644
index 000000000..42fb4a542
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/Retention.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_Retention__
+#define __java_lang_annotation_Retention__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::annotation::Retention : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::annotation::RetentionPolicy * value() = 0;
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_annotation_Retention__
diff --git a/gcc-4.8/libjava/java/lang/annotation/RetentionPolicy.h b/gcc-4.8/libjava/java/lang/annotation/RetentionPolicy.h
new file mode 100644
index 000000000..5d642601d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/RetentionPolicy.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_RetentionPolicy__
+#define __java_lang_annotation_RetentionPolicy__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::lang::annotation::RetentionPolicy : public ::java::lang::Enum
+{
+
+ RetentionPolicy(::java::lang::String *, jint);
+public:
+ static JArray< ::java::lang::annotation::RetentionPolicy * > * values();
+ static ::java::lang::annotation::RetentionPolicy * valueOf(::java::lang::String *);
+ static ::java::lang::annotation::RetentionPolicy * CLASS;
+ static ::java::lang::annotation::RetentionPolicy * RUNTIME;
+ static ::java::lang::annotation::RetentionPolicy * SOURCE;
+private:
+ static const jlong serialVersionUID = -1700821648800605045LL;
+ static JArray< ::java::lang::annotation::RetentionPolicy * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_annotation_RetentionPolicy__
diff --git a/gcc-4.8/libjava/java/lang/annotation/Target.h b/gcc-4.8/libjava/java/lang/annotation/Target.h
new file mode 100644
index 000000000..96ac51788
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/annotation/Target.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_annotation_Target__
+#define __java_lang_annotation_Target__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::annotation::Target : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::annotation::ElementType * > * value() = 0;
+ virtual ::java::lang::Class * annotationType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_annotation_Target__
diff --git a/gcc-4.8/libjava/java/lang/instrument/ClassDefinition.h b/gcc-4.8/libjava/java/lang/instrument/ClassDefinition.h
new file mode 100644
index 000000000..b9106ed8e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/instrument/ClassDefinition.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_instrument_ClassDefinition__
+#define __java_lang_instrument_ClassDefinition__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::instrument::ClassDefinition : public ::java::lang::Object
+{
+
+public:
+ ClassDefinition(::java::lang::Class *, JArray< jbyte > *);
+ ::java::lang::Class * getDefinitionClass();
+ JArray< jbyte > * getDefinitionClassFile();
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) theClass;
+ JArray< jbyte > * theClassFile;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_instrument_ClassDefinition__
diff --git a/gcc-4.8/libjava/java/lang/instrument/ClassFileTransformer.h b/gcc-4.8/libjava/java/lang/instrument/ClassFileTransformer.h
new file mode 100644
index 000000000..cda1510b0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/instrument/ClassFileTransformer.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_instrument_ClassFileTransformer__
+#define __java_lang_instrument_ClassFileTransformer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::lang::instrument::ClassFileTransformer : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< jbyte > * transform(::java::lang::ClassLoader *, ::java::lang::String *, ::java::lang::Class *, ::java::security::ProtectionDomain *, JArray< jbyte > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_instrument_ClassFileTransformer__
diff --git a/gcc-4.8/libjava/java/lang/instrument/IllegalClassFormatException.h b/gcc-4.8/libjava/java/lang/instrument/IllegalClassFormatException.h
new file mode 100644
index 000000000..c1b8783e7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/instrument/IllegalClassFormatException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_instrument_IllegalClassFormatException__
+#define __java_lang_instrument_IllegalClassFormatException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::lang::instrument::IllegalClassFormatException : public ::java::lang::Exception
+{
+
+public:
+ IllegalClassFormatException();
+ IllegalClassFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -3841736710924794009LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_instrument_IllegalClassFormatException__
diff --git a/gcc-4.8/libjava/java/lang/instrument/Instrumentation.h b/gcc-4.8/libjava/java/lang/instrument/Instrumentation.h
new file mode 100644
index 000000000..d131d0c69
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/instrument/Instrumentation.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_instrument_Instrumentation__
+#define __java_lang_instrument_Instrumentation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::instrument::Instrumentation : public ::java::lang::Object
+{
+
+public:
+ virtual void addTransformer(::java::lang::instrument::ClassFileTransformer *) = 0;
+ virtual jboolean removeTransformer(::java::lang::instrument::ClassFileTransformer *) = 0;
+ virtual jboolean isRedefineClassesSupported() = 0;
+ virtual void redefineClasses(JArray< ::java::lang::instrument::ClassDefinition * > *) = 0;
+ virtual JArray< ::java::lang::Class * > * getAllLoadedClasses() = 0;
+ virtual JArray< ::java::lang::Class * > * getInitiatedClasses(::java::lang::ClassLoader *) = 0;
+ virtual jlong getObjectSize(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_instrument_Instrumentation__
diff --git a/gcc-4.8/libjava/java/lang/instrument/UnmodifiableClassException.h b/gcc-4.8/libjava/java/lang/instrument/UnmodifiableClassException.h
new file mode 100644
index 000000000..e5fac3cdd
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/instrument/UnmodifiableClassException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_instrument_UnmodifiableClassException__
+#define __java_lang_instrument_UnmodifiableClassException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::lang::instrument::UnmodifiableClassException : public ::java::lang::Exception
+{
+
+public:
+ UnmodifiableClassException();
+ UnmodifiableClassException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 1716652643585309178LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_instrument_UnmodifiableClassException__
diff --git a/gcc-4.8/libjava/java/lang/management/ClassLoadingMXBean.h b/gcc-4.8/libjava/java/lang/management/ClassLoadingMXBean.h
new file mode 100644
index 000000000..371b63d3d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/ClassLoadingMXBean.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_ClassLoadingMXBean__
+#define __java_lang_management_ClassLoadingMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::management::ClassLoadingMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual jint getLoadedClassCount() = 0;
+ virtual jlong getTotalLoadedClassCount() = 0;
+ virtual jlong getUnloadedClassCount() = 0;
+ virtual jboolean isVerbose() = 0;
+ virtual void setVerbose(jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_ClassLoadingMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/CompilationMXBean.h b/gcc-4.8/libjava/java/lang/management/CompilationMXBean.h
new file mode 100644
index 000000000..bbd1e0a21
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/CompilationMXBean.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_CompilationMXBean__
+#define __java_lang_management_CompilationMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::management::CompilationMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getName() = 0;
+ virtual jboolean isCompilationTimeMonitoringSupported() = 0;
+ virtual jlong getTotalCompilationTime() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_CompilationMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/GarbageCollectorMXBean.h b/gcc-4.8/libjava/java/lang/management/GarbageCollectorMXBean.h
new file mode 100644
index 000000000..35222cab0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/GarbageCollectorMXBean.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_GarbageCollectorMXBean__
+#define __java_lang_management_GarbageCollectorMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::management::GarbageCollectorMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual jlong getCollectionCount() = 0;
+ virtual jlong getCollectionTime() = 0;
+ virtual JArray< ::java::lang::String * > * getMemoryPoolNames() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ virtual jboolean isValid() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_GarbageCollectorMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/LockInfo.h b/gcc-4.8/libjava/java/lang/management/LockInfo.h
new file mode 100644
index 000000000..ec4291753
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/LockInfo.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_LockInfo__
+#define __java_lang_management_LockInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::management::LockInfo : public ::java::lang::Object
+{
+
+public:
+ LockInfo(::java::lang::String *, jint);
+ virtual ::java::lang::String * getClassName();
+ virtual jint getIdentityHashCode();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) className;
+ jint identityHashCode;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_LockInfo__
diff --git a/gcc-4.8/libjava/java/lang/management/ManagementFactory$ManagementInvocationHandler.h b/gcc-4.8/libjava/java/lang/management/ManagementFactory$ManagementInvocationHandler.h
new file mode 100644
index 000000000..33603be20
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/ManagementFactory$ManagementInvocationHandler.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_ManagementFactory$ManagementInvocationHandler__
+#define __java_lang_management_ManagementFactory$ManagementInvocationHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace javax
+ {
+ namespace management
+ {
+ class MBeanServerConnection;
+ class ObjectName;
+ }
+ }
+}
+
+class java::lang::management::ManagementFactory$ManagementInvocationHandler : public ::java::lang::Object
+{
+
+public:
+ ManagementFactory$ManagementInvocationHandler(::javax::management::MBeanServerConnection *, ::javax::management::ObjectName *);
+ virtual ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *);
+private:
+ ::java::lang::Object * translate(::java::lang::Object *, ::java::lang::reflect::Method *);
+ ::javax::management::MBeanServerConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) conn;
+ ::javax::management::ObjectName * bean;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_ManagementFactory$ManagementInvocationHandler__
diff --git a/gcc-4.8/libjava/java/lang/management/ManagementFactory.h b/gcc-4.8/libjava/java/lang/management/ManagementFactory.h
new file mode 100644
index 000000000..c51809371
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/ManagementFactory.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_ManagementFactory__
+#define __java_lang_management_ManagementFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace management
+ {
+ class MBeanServer;
+ class MBeanServerConnection;
+ }
+ }
+}
+
+class java::lang::management::ManagementFactory : public ::java::lang::Object
+{
+
+ ManagementFactory();
+public:
+ static ::java::lang::management::OperatingSystemMXBean * getOperatingSystemMXBean();
+ static ::java::lang::management::RuntimeMXBean * getRuntimeMXBean();
+ static ::java::lang::management::ClassLoadingMXBean * getClassLoadingMXBean();
+ static ::java::lang::management::ThreadMXBean * getThreadMXBean();
+ static ::java::lang::management::MemoryMXBean * getMemoryMXBean();
+ static ::java::lang::management::CompilationMXBean * getCompilationMXBean();
+ static ::java::util::List * getMemoryPoolMXBeans();
+ static ::java::util::List * getMemoryManagerMXBeans();
+ static ::java::util::List * getGarbageCollectorMXBeans();
+ static ::javax::management::MBeanServer * getPlatformMBeanServer();
+ static ::java::lang::Object * newPlatformMXBeanProxy(::javax::management::MBeanServerConnection *, ::java::lang::String *, ::java::lang::Class *);
+ static ::java::lang::String * CLASS_LOADING_MXBEAN_NAME;
+ static ::java::lang::String * COMPILATION_MXBEAN_NAME;
+ static ::java::lang::String * GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE;
+ static ::java::lang::String * MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE;
+ static ::java::lang::String * MEMORY_MXBEAN_NAME;
+ static ::java::lang::String * MEMORY_POOL_MXBEAN_DOMAIN_TYPE;
+ static ::java::lang::String * OPERATING_SYSTEM_MXBEAN_NAME;
+ static ::java::lang::String * RUNTIME_MXBEAN_NAME;
+ static ::java::lang::String * THREAD_MXBEAN_NAME;
+private:
+ static ::java::lang::management::OperatingSystemMXBean * osBean;
+ static ::java::lang::management::RuntimeMXBean * runtimeBean;
+ static ::java::lang::management::ClassLoadingMXBean * classLoadingBean;
+ static ::java::lang::management::ThreadMXBean * threadBean;
+ static ::java::lang::management::MemoryMXBean * memoryBean;
+ static ::java::lang::management::CompilationMXBean * compilationBean;
+ static ::javax::management::MBeanServer * platformServer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_ManagementFactory__
diff --git a/gcc-4.8/libjava/java/lang/management/ManagementPermission.h b/gcc-4.8/libjava/java/lang/management/ManagementPermission.h
new file mode 100644
index 000000000..4ac4a4fef
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/ManagementPermission.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_ManagementPermission__
+#define __java_lang_management_ManagementPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+
+class java::lang::management::ManagementPermission : public ::java::security::BasicPermission
+{
+
+public:
+ ManagementPermission(::java::lang::String *);
+ ManagementPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 1897496590799378737LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_ManagementPermission__
diff --git a/gcc-4.8/libjava/java/lang/management/MemoryMXBean.h b/gcc-4.8/libjava/java/lang/management/MemoryMXBean.h
new file mode 100644
index 000000000..2fb70add2
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MemoryMXBean.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MemoryMXBean__
+#define __java_lang_management_MemoryMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::management::MemoryMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual void gc() = 0;
+ virtual ::java::lang::management::MemoryUsage * getHeapMemoryUsage() = 0;
+ virtual ::java::lang::management::MemoryUsage * getNonHeapMemoryUsage() = 0;
+ virtual jint getObjectPendingFinalizationCount() = 0;
+ virtual jboolean isVerbose() = 0;
+ virtual void setVerbose(jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_MemoryMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/MemoryManagerMXBean.h b/gcc-4.8/libjava/java/lang/management/MemoryManagerMXBean.h
new file mode 100644
index 000000000..6509205a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MemoryManagerMXBean.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MemoryManagerMXBean__
+#define __java_lang_management_MemoryManagerMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::management::MemoryManagerMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::String * > * getMemoryPoolNames() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ virtual jboolean isValid() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_MemoryManagerMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/MemoryNotificationInfo.h b/gcc-4.8/libjava/java/lang/management/MemoryNotificationInfo.h
new file mode 100644
index 000000000..07cfefff3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MemoryNotificationInfo.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MemoryNotificationInfo__
+#define __java_lang_management_MemoryNotificationInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace management
+ {
+ namespace openmbean
+ {
+ class CompositeData;
+ }
+ }
+ }
+}
+
+class java::lang::management::MemoryNotificationInfo : public ::java::lang::Object
+{
+
+public:
+ MemoryNotificationInfo(::java::lang::String *, ::java::lang::management::MemoryUsage *, jlong);
+ static ::java::lang::management::MemoryNotificationInfo * from(::javax::management::openmbean::CompositeData *);
+ virtual jlong getCount();
+ virtual ::java::lang::String * getPoolName();
+ virtual ::java::lang::management::MemoryUsage * getUsage();
+ static ::java::lang::String * MEMORY_THRESHOLD_EXCEEDED;
+ static ::java::lang::String * MEMORY_COLLECTION_THRESHOLD_EXCEEDED;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) poolName;
+ ::java::lang::management::MemoryUsage * usage;
+ jlong count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_MemoryNotificationInfo__
diff --git a/gcc-4.8/libjava/java/lang/management/MemoryPoolMXBean.h b/gcc-4.8/libjava/java/lang/management/MemoryPoolMXBean.h
new file mode 100644
index 000000000..4209d573a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MemoryPoolMXBean.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MemoryPoolMXBean__
+#define __java_lang_management_MemoryPoolMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::management::MemoryPoolMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::management::MemoryUsage * getCollectionUsage() = 0;
+ virtual jlong getCollectionUsageThreshold() = 0;
+ virtual jlong getCollectionUsageThresholdCount() = 0;
+ virtual JArray< ::java::lang::String * > * getMemoryManagerNames() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ virtual ::java::lang::management::MemoryUsage * getPeakUsage() = 0;
+ virtual ::java::lang::management::MemoryType * getType() = 0;
+ virtual ::java::lang::management::MemoryUsage * getUsage() = 0;
+ virtual jlong getUsageThreshold() = 0;
+ virtual jlong getUsageThresholdCount() = 0;
+ virtual jboolean isCollectionUsageThresholdExceeded() = 0;
+ virtual jboolean isCollectionUsageThresholdSupported() = 0;
+ virtual jboolean isUsageThresholdExceeded() = 0;
+ virtual jboolean isUsageThresholdSupported() = 0;
+ virtual jboolean isValid() = 0;
+ virtual void resetPeakUsage() = 0;
+ virtual void setCollectionUsageThreshold(jlong) = 0;
+ virtual void setUsageThreshold(jlong) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_MemoryPoolMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/MemoryType.h b/gcc-4.8/libjava/java/lang/management/MemoryType.h
new file mode 100644
index 000000000..b93587d30
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MemoryType.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MemoryType__
+#define __java_lang_management_MemoryType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::lang::management::MemoryType : public ::java::lang::Enum
+{
+
+ MemoryType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::lang::management::MemoryType * > * values();
+ static ::java::lang::management::MemoryType * valueOf(::java::lang::String *);
+ static ::java::lang::management::MemoryType * HEAP;
+ static ::java::lang::management::MemoryType * NON_HEAP;
+private:
+ static JArray< ::java::lang::management::MemoryType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_MemoryType__
diff --git a/gcc-4.8/libjava/java/lang/management/MemoryUsage.h b/gcc-4.8/libjava/java/lang/management/MemoryUsage.h
new file mode 100644
index 000000000..3b126f818
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MemoryUsage.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MemoryUsage__
+#define __java_lang_management_MemoryUsage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace management
+ {
+ namespace openmbean
+ {
+ class CompositeData;
+ }
+ }
+ }
+}
+
+class java::lang::management::MemoryUsage : public ::java::lang::Object
+{
+
+public:
+ MemoryUsage(jlong, jlong, jlong, jlong);
+ static ::java::lang::management::MemoryUsage * from(::javax::management::openmbean::CompositeData *);
+ virtual jlong getCommitted();
+ virtual jlong getInit();
+ virtual jlong getMax();
+ virtual jlong getUsed();
+ virtual ::java::lang::String * toString();
+private:
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) init;
+ jlong used;
+ jlong committed;
+ jlong maximum;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_MemoryUsage__
diff --git a/gcc-4.8/libjava/java/lang/management/MonitorInfo.h b/gcc-4.8/libjava/java/lang/management/MonitorInfo.h
new file mode 100644
index 000000000..6d2a0f01f
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/MonitorInfo.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_MonitorInfo__
+#define __java_lang_management_MonitorInfo__
+
+#pragma interface
+
+#include <java/lang/management/LockInfo.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace management
+ {
+ namespace openmbean
+ {
+ class CompositeData;
+ }
+ }
+ }
+}
+
+class java::lang::management::MonitorInfo : public ::java::lang::management::LockInfo
+{
+
+public:
+ MonitorInfo(::java::lang::String *, jint, jint, ::java::lang::StackTraceElement *);
+ static ::java::lang::management::MonitorInfo * from(::javax::management::openmbean::CompositeData *);
+ virtual jint getLockedStackDepth();
+ virtual ::java::lang::StackTraceElement * getLockedStackFrame();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::management::LockInfo)))) stackDepth;
+ ::java::lang::StackTraceElement * stackFrame;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_MonitorInfo__
diff --git a/gcc-4.8/libjava/java/lang/management/OperatingSystemMXBean.h b/gcc-4.8/libjava/java/lang/management/OperatingSystemMXBean.h
new file mode 100644
index 000000000..bbf37070b
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/OperatingSystemMXBean.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_OperatingSystemMXBean__
+#define __java_lang_management_OperatingSystemMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::management::OperatingSystemMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getArch() = 0;
+ virtual jint getAvailableProcessors() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ virtual jdouble getSystemLoadAverage() = 0;
+ virtual ::java::lang::String * getVersion() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_OperatingSystemMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/RuntimeMXBean.h b/gcc-4.8/libjava/java/lang/management/RuntimeMXBean.h
new file mode 100644
index 000000000..c26667440
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/RuntimeMXBean.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_RuntimeMXBean__
+#define __java_lang_management_RuntimeMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::management::RuntimeMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getBootClassPath() = 0;
+ virtual ::java::lang::String * getClassPath() = 0;
+ virtual ::java::util::List * getInputArguments() = 0;
+ virtual ::java::lang::String * getLibraryPath() = 0;
+ virtual ::java::lang::String * getManagementSpecVersion() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ virtual ::java::lang::String * getSpecName() = 0;
+ virtual ::java::lang::String * getSpecVendor() = 0;
+ virtual ::java::lang::String * getSpecVersion() = 0;
+ virtual jlong getStartTime() = 0;
+ virtual ::java::util::Map * getSystemProperties() = 0;
+ virtual jlong getUptime() = 0;
+ virtual ::java::lang::String * getVmName() = 0;
+ virtual ::java::lang::String * getVmVendor() = 0;
+ virtual ::java::lang::String * getVmVersion() = 0;
+ virtual jboolean isBootClassPathSupported() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_RuntimeMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/ThreadInfo.h b/gcc-4.8/libjava/java/lang/management/ThreadInfo.h
new file mode 100644
index 000000000..4d87277be
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/ThreadInfo.h
@@ -0,0 +1,77 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_ThreadInfo__
+#define __java_lang_management_ThreadInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace javax
+ {
+ namespace management
+ {
+ namespace openmbean
+ {
+ class CompositeData;
+ class CompositeType;
+ class OpenType;
+ }
+ }
+ }
+}
+
+class java::lang::management::ThreadInfo : public ::java::lang::Object
+{
+
+ ThreadInfo(jlong, ::java::lang::String *, ::java::lang::Thread$State *, jlong, jlong, ::java::lang::String *, jlong, ::java::lang::String *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *, JArray< ::java::lang::management::MonitorInfo * > *, JArray< ::java::lang::management::LockInfo * > *);
+public: // actually package-private
+ static void checkAttribute(::javax::management::openmbean::CompositeType *, ::java::lang::String *, ::javax::management::openmbean::OpenType *);
+ static ::javax::management::openmbean::CompositeType * getStackTraceType();
+public:
+ static ::java::lang::management::ThreadInfo * from(::javax::management::openmbean::CompositeData *);
+ virtual jlong getBlockedCount();
+ virtual jlong getBlockedTime();
+ virtual JArray< ::java::lang::management::MonitorInfo * > * getLockedMonitors();
+ virtual JArray< ::java::lang::management::LockInfo * > * getLockedSynchronizers();
+ virtual ::java::lang::management::LockInfo * getLockInfo();
+ virtual ::java::lang::String * getLockName();
+ virtual jlong getLockOwnerId();
+ virtual ::java::lang::String * getLockOwnerName();
+ virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
+ virtual jlong getThreadId();
+ virtual ::java::lang::String * getThreadName();
+ virtual ::java::lang::Thread$State * getThreadState();
+ virtual jlong getWaitedCount();
+ virtual jlong getWaitedTime();
+ virtual jboolean isInNative();
+ virtual jboolean isSuspended();
+ virtual ::java::lang::String * toString();
+private:
+ jboolean isThreadBlocked();
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) threadId;
+ ::java::lang::String * threadName;
+ ::java::lang::Thread$State * threadState;
+ jlong blockedCount;
+ jlong blockedTime;
+ ::java::lang::String * lockName;
+ jlong lockOwnerId;
+ ::java::lang::String * lockOwnerName;
+ jlong waitedCount;
+ jlong waitedTime;
+ jboolean isInNative__;
+ jboolean isSuspended__;
+ JArray< ::java::lang::StackTraceElement * > * trace;
+ JArray< ::java::lang::management::MonitorInfo * > * lockedMonitors;
+ JArray< ::java::lang::management::LockInfo * > * lockedSynchronizers;
+ static ::java::lang::management::ThreadMXBean * bean;
+ static ::javax::management::openmbean::CompositeType * seType;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_ThreadInfo__
diff --git a/gcc-4.8/libjava/java/lang/management/ThreadMXBean.h b/gcc-4.8/libjava/java/lang/management/ThreadMXBean.h
new file mode 100644
index 000000000..a1d4636c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/ThreadMXBean.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_ThreadMXBean__
+#define __java_lang_management_ThreadMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::management::ThreadMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::management::ThreadInfo * > * dumpAllThreads(jboolean, jboolean) = 0;
+ virtual JArray< jlong > * findDeadlockedThreads() = 0;
+ virtual JArray< jlong > * findMonitorDeadlockedThreads() = 0;
+ virtual JArray< jlong > * getAllThreadIds() = 0;
+ virtual jlong getCurrentThreadCpuTime() = 0;
+ virtual jlong getCurrentThreadUserTime() = 0;
+ virtual jint getDaemonThreadCount() = 0;
+ virtual jint getPeakThreadCount() = 0;
+ virtual jint getThreadCount() = 0;
+ virtual jlong getThreadCpuTime(jlong) = 0;
+ virtual ::java::lang::management::ThreadInfo * getThreadInfo(jlong) = 0;
+ virtual JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *) = 0;
+ virtual JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *, jboolean, jboolean) = 0;
+ virtual ::java::lang::management::ThreadInfo * getThreadInfo(jlong, jint) = 0;
+ virtual JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *, jint) = 0;
+ virtual jlong getThreadUserTime(jlong) = 0;
+ virtual jlong getTotalStartedThreadCount() = 0;
+ virtual jboolean isCurrentThreadCpuTimeSupported() = 0;
+ virtual jboolean isObjectMonitorUsageSupported() = 0;
+ virtual jboolean isSynchronizerUsageSupported() = 0;
+ virtual jboolean isThreadContentionMonitoringEnabled() = 0;
+ virtual jboolean isThreadContentionMonitoringSupported() = 0;
+ virtual jboolean isThreadCpuTimeEnabled() = 0;
+ virtual jboolean isThreadCpuTimeSupported() = 0;
+ virtual void resetPeakThreadCount() = 0;
+ virtual void setThreadContentionMonitoringEnabled(jboolean) = 0;
+ virtual void setThreadCpuTimeEnabled(jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_management_ThreadMXBean__
diff --git a/gcc-4.8/libjava/java/lang/management/VMManagementFactory.h b/gcc-4.8/libjava/java/lang/management/VMManagementFactory.h
new file mode 100644
index 000000000..e712cbfc8
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/VMManagementFactory.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_management_VMManagementFactory__
+#define __java_lang_management_VMManagementFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::management::VMManagementFactory : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMManagementFactory();
+ static JArray< ::java::lang::String * > * getMemoryPoolNames();
+ static JArray< ::java::lang::String * > * getMemoryManagerNames();
+ static JArray< ::java::lang::String * > * getGarbageCollectorNames();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_management_VMManagementFactory__
diff --git a/gcc-4.8/libjava/java/lang/management/VMManagementFactory.java b/gcc-4.8/libjava/java/lang/management/VMManagementFactory.java
new file mode 100644
index 000000000..35b15e360
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/management/VMManagementFactory.java
@@ -0,0 +1,87 @@
+/* VMManagementFactory.java - VM interface for obtaining system beans.
+ Copyright (C) 2006, 2007 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang.management;
+
+/**
+ * Provides lists of resources required by the
+ * {@link java.lang.management.ManagementFactory} for
+ * creating beans.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+final class VMManagementFactory
+{
+
+ /**
+ * Return a list of the names of the currently available
+ * memory pools within the virtual machine.
+ *
+ * @return a list of memory pool names.
+ */
+ static String[] getMemoryPoolNames()
+ {
+ String[] result = {"Heap"};
+ return result;
+ }
+
+ /**
+ * Return a list of the names of the currently available
+ * memory managers within the virtual machine. This should
+ * not include the garbage collectors listed below.
+ *
+ * @return a list of memory manager names.
+ */
+ static String[] getMemoryManagerNames()
+ {
+ String[] result = {};
+ return result;
+ }
+
+ /**
+ * Return a list of the names of the currently available
+ * garbage collectors within the virtual machine.
+ *
+ * @return a list of garbage collector names.
+ */
+ static String[] getGarbageCollectorNames()
+ {
+ String[] result = {"BoehmGC"};
+ return result;
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/natAbstractStringBuffer.cc b/gcc-4.8/libjava/java/lang/natAbstractStringBuffer.cc
new file mode 100644
index 000000000..b2df69cc3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natAbstractStringBuffer.cc
@@ -0,0 +1,41 @@
+// natStringBuffer.cc - Implementation of java.lang.StringBuffer native methods.
+
+/* Copyright (C) 2001, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <gcj/cni.h>
+#include <java/lang/AbstractStringBuffer.h>
+
+java::lang::AbstractStringBuffer*
+java::lang::AbstractStringBuffer::append (jint num)
+{
+ // Use an array large enough for "-2147483648"; i.e. 11 chars.
+ jchar buffer[11];
+ int i = _Jv_FormatInt (buffer+11, num);
+ jint needed = count + i;
+ ensureCapacity_unsynchronized (needed);
+ jchar* dst = elements (value) + count;
+ jchar* src = buffer+11-i;
+ while (--i >= 0)
+ *dst++ = *src++;
+ count = needed;
+ return this;
+}
+
+jboolean
+java::lang::AbstractStringBuffer::regionMatches(jint toffset, jstring other)
+{
+ jint len = other->count;
+ jchar *tptr = elements(value) + toffset;
+ jchar *optr = JvGetStringChars(other);
+ while (--len >= 0)
+ if (*tptr++ != *optr++)
+ return false;
+ return true;
+}
diff --git a/gcc-4.8/libjava/java/lang/natCharacter.cc b/gcc-4.8/libjava/java/lang/natCharacter.cc
new file mode 100644
index 000000000..dea2086eb
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natCharacter.cc
@@ -0,0 +1,235 @@
+/* java.lang.Character -- Wrapper class for char, and Unicode subsets
+ Copyright (C) 1998, 1999, 2001, 2002, 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/lang/Character.h>
+
+#include <java-chartables.h>
+
+
+
+// These constants define the return values for characters that are unassigned
+// or reserved for private use.
+#define UNASSIGNED_TYPE 0
+#define UNASSIGNED_DIGIT -1
+#define UNASSIGNED_DIRECTION -1
+#define UNASSIGNED_NUMERIC_VALUE -1
+
+#define PRIVATE_TYPE 18
+#define PRIVATE_DIRECTION 0
+
+// The methods that take a char as an argument all have counterparts that
+// take ints. The ones that take chars only work for the BMP or plane 0 of the
+// Unicode standard but the ones that take ints work for all Unicode code
+// points. However, the ones that take chars don't simply redirect the calls
+// because the BMP is by far the most used plane so saving a little time on
+// each call makes sense.
+
+jchar
+java::lang::Character::readChar(jchar ch)
+{
+ // Perform 16-bit addition to find the correct entry in data.
+ return data[0][(jchar) (blocks[0][ch >> shift[0]] + ch)];
+}
+
+jchar
+java::lang::Character::readCodePoint(jint codePoint)
+{
+ jint plane = codePoint >> 16;
+ jchar offset = (jchar)(codePoint & 0xffff);
+ // Be careful not to call this method with an unassigned character. The only
+ // characters assigned as of Unicode 4.0.0 belong to planes 0, 1, 2, and 14.
+ return data[plane][(jchar) (blocks[plane][offset >> shift[plane]] + offset)];
+}
+
+jint
+java::lang::Character::getType(jchar ch)
+{
+ // Perform 16-bit addition to find the correct entry in data.
+ return (jint) (data[0][(jchar) (blocks[0][ch >> shift[0]] + ch)] & TYPE_MASK);
+}
+
+jint
+java::lang::Character::getType(jint codePoint)
+{
+ jint plane = codePoint >> 16;
+ if (plane < 0 || (plane > 2 && plane != 14))
+ {
+ if (plane > 14 && ((codePoint & 0xffff) < 0xfffe))
+ return (jint) PRIVATE_TYPE;
+ return (jint) UNASSIGNED_TYPE;
+ }
+ jint offset = codePoint & 0xffff;
+ return (jint)
+ (data[plane]
+ [(jchar) (blocks[plane][offset >> shift[plane]] + offset)] & TYPE_MASK);
+}
+
+jchar
+java::lang::Character::toLowerCase(jchar ch)
+{
+ return (jchar) (ch + lower[0][readChar(ch) >> 7]);
+}
+
+jint
+java::lang::Character::toLowerCase(jint codePoint)
+{
+ jint plane = codePoint >> 16;
+ if (plane < 0 || (plane > 2 && plane != 14))
+ return codePoint;
+ return (lower[plane][readCodePoint(codePoint) >> 7]) + codePoint;
+}
+
+jchar
+java::lang::Character::toUpperCase(jchar ch)
+{
+ return (jchar) (ch + upper[0][readChar(ch) >> 7]);
+}
+
+jint
+java::lang::Character::toUpperCase(jint codePoint)
+{
+ jint plane = codePoint >> 16;
+ if (plane < 0 || (plane > 2 && plane != 14))
+ return codePoint;
+ return (upper[plane][readCodePoint(codePoint) >> 7]) + codePoint;
+}
+
+jchar
+java::lang::Character::toTitleCase(jchar ch)
+{
+ // As title is short, it doesn't hurt to exhaustively iterate over it.
+ for (int i = title_length - 2; i >= 0; i -= 2)
+ if (title[i] == ch)
+ return title[i + 1];
+ return toUpperCase(ch);
+}
+
+jint
+java::lang::Character::toTitleCase(jint codePoint)
+{
+ // As of Unicode 4.0.0 no characters outside of plane 0 have titlecase
+ // mappings that are different from their uppercase mapping.
+ if (codePoint >= 0 && codePoint < 0x10000)
+ return toTitleCase((jchar)codePoint);
+ return toUpperCase(codePoint);
+}
+
+jint
+java::lang::Character::digit(jchar ch, jint radix)
+{
+ if (radix < MIN_RADIX || radix > MAX_RADIX)
+ return (jint) -1;
+ jchar attr = readChar(ch);
+ if (((1 << (attr & TYPE_MASK))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << DECIMAL_DIGIT_NUMBER))))
+ {
+ // Signedness doesn't matter; 0xffff vs. -1 are both rejected.
+ jint digit = (jint) numValue[0][attr >> 7];
+ return (digit >= 0 && digit < radix) ? digit : (jint) -1;
+ }
+ return (jint) -1;
+}
+
+jint
+java::lang::Character::digit(jint codePoint, jint radix)
+{
+ if (radix < MIN_RADIX || radix > MAX_RADIX)
+ return (jint) -1;
+
+ jint plane = codePoint >> 16;
+ if (plane < 0 || (plane > 2 && plane != 14))
+ return UNASSIGNED_DIGIT;
+
+ jchar attr = readCodePoint(codePoint);
+ if (((1 << (attr & TYPE_MASK))
+ & ((1 << UPPERCASE_LETTER)
+ | (1 << LOWERCASE_LETTER)
+ | (1 << DECIMAL_DIGIT_NUMBER))))
+ {
+ // Signedness doesn't matter; 0xffff vs. -1 are both rejected.
+ jint digit = (jint) numValue[plane][attr >> 7];
+ if (digit <= -3)
+ digit = largenums[-digit -3];
+ return (digit >= 0 && digit < radix) ? digit : (jint) -1;
+ }
+ return (jint) -1;
+
+}
+
+jint
+java::lang::Character::getNumericValue(jchar ch)
+{
+ // numValue is stored as an array of jshort, since 10000 is the maximum.
+ return (jint) numValue[0][readChar(ch) >> 7];
+}
+
+jint
+java::lang::Character::getNumericValue(jint codePoint)
+{
+ jint plane = codePoint >> 16;
+ if (plane < 0 || (plane > 2 && plane != 14))
+ return UNASSIGNED_NUMERIC_VALUE;
+ jshort num = numValue[plane][readCodePoint(codePoint) >> 7];
+ if (num <= -3)
+ return largenums[-num - 3];
+ return num;
+}
+
+jbyte
+java::lang::Character::getDirectionality(jchar ch)
+{
+ return direction[0][readChar(ch) >> 7];
+}
+
+jbyte
+java::lang::Character::getDirectionality(jint codePoint)
+{
+ jint plane = codePoint >> 16;
+ if (plane < 0 || (plane > 2 && plane != 14))
+ {
+ if (plane > 14 && ((codePoint & 0xffff) < 0xfffe))
+ return (jint) PRIVATE_DIRECTION;
+ return (jint) UNASSIGNED_DIRECTION;
+ }
+ return direction[plane][readCodePoint(codePoint) >> 7];
+}
diff --git a/gcc-4.8/libjava/java/lang/natClass.cc b/gcc-4.8/libjava/java/lang/natClass.cc
new file mode 100644
index 000000000..b5ad91f22
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natClass.cc
@@ -0,0 +1,2095 @@
+// natClass.cc - Implementation of java.lang.Class native methods.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+ 2010 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <limits.h>
+#include <string.h>
+#include <stddef.h>
+#include <stdio.h>
+
+#pragma implementation "Class.h"
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-threads.h>
+
+#include <java/lang/Class.h>
+#include <java/lang/ClassLoader.h>
+#include <java/lang/String.h>
+#include <java/lang/reflect/Modifier.h>
+#include <java/lang/reflect/Member.h>
+#include <java/lang/reflect/Method.h>
+#include <java/lang/reflect/Field.h>
+#include <java/lang/reflect/Proxy.h>
+#include <java/lang/reflect/Constructor.h>
+#include <java/lang/AbstractMethodError.h>
+#include <java/lang/ArrayStoreException.h>
+#include <java/lang/ClassCastException.h>
+#include <java/lang/ClassNotFoundException.h>
+#include <java/lang/ExceptionInInitializerError.h>
+#include <java/lang/IllegalAccessException.h>
+#include <java/lang/IllegalAccessError.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/IncompatibleClassChangeError.h>
+#include <java/lang/NoSuchFieldError.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/InstantiationException.h>
+#include <java/lang/NoClassDefFoundError.h>
+#include <java/lang/NoSuchFieldException.h>
+#include <java/lang/NoSuchMethodError.h>
+#include <java/lang/NoSuchMethodException.h>
+#include <java/lang/Thread.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/RuntimePermission.h>
+#include <java/lang/System.h>
+#include <java/lang/SecurityException.h>
+#include <java/lang/SecurityManager.h>
+#include <java/lang/StringBuffer.h>
+#include <java/lang/VMClassLoader.h>
+#include <gcj/method.h>
+#include <gnu/gcj/RawData.h>
+#include <java/lang/VerifyError.h>
+#include <java/lang/InternalError.h>
+#include <java/lang/TypeNotPresentException.h>
+#include <java/lang/Byte.h>
+#include <java/lang/Short.h>
+#include <java/lang/Integer.h>
+#include <java/lang/Float.h>
+#include <java/lang/Double.h>
+#include <java/lang/Long.h>
+#include <java/lang/Character.h>
+#include <java/lang/Boolean.h>
+#include <java/lang/annotation/Annotation.h>
+#include <java/util/HashMap.h>
+#include <java/util/Map.h>
+#include <sun/reflect/annotation/AnnotationInvocationHandler.h>
+#include <java/lang/Enum.h>
+
+#include <java-cpool.h>
+#include <java-interp.h>
+#include <java-assert.h>
+#include <java-stack.h>
+#include <execution.h>
+
+
+
+using namespace gcj;
+
+jclass
+java::lang::Class::forName (jstring className, jboolean initialize,
+ java::lang::ClassLoader *loader)
+{
+ if (! className)
+ throw new java::lang::NullPointerException;
+
+ jsize length = _Jv_GetStringUTFLength (className);
+ char buffer[length];
+ _Jv_GetStringUTFRegion (className, 0, className->length(), buffer);
+
+ _Jv_Utf8Const *name = _Jv_makeUtf8Const (buffer, length);
+
+ if (! _Jv_VerifyClassName (name))
+ throw new java::lang::ClassNotFoundException (className);
+
+ jclass klass = (buffer[0] == '['
+ ? _Jv_FindClassFromSignature (name->chars(), loader)
+ : _Jv_FindClass (name, loader));
+
+ if (klass == NULL)
+ throw new java::lang::ClassNotFoundException (className);
+
+ if (initialize)
+ _Jv_InitClass (klass);
+
+ return klass;
+}
+
+jclass
+java::lang::Class::forName (jstring className)
+{
+ java::lang::ClassLoader *loader = NULL;
+
+ jclass caller = _Jv_StackTrace::GetCallingClass (&Class::class$);
+ if (caller)
+ loader = caller->getClassLoaderInternal();
+
+ return forName (className, true, loader);
+}
+
+java::lang::ClassLoader *
+java::lang::Class::getClassLoader (void)
+{
+ java::lang::SecurityManager *s = java::lang::System::getSecurityManager();
+ if (s != NULL)
+ {
+ jclass caller = _Jv_StackTrace::GetCallingClass (&Class::class$);
+ return getClassLoader (caller);
+ }
+
+ return loader;
+}
+
+java::lang::ClassLoader *
+java::lang::Class::getClassLoader (jclass caller)
+{
+ java::lang::SecurityManager *s = java::lang::System::getSecurityManager();
+ if (s != NULL)
+ {
+ ClassLoader *caller_loader = caller->getClassLoaderInternal();
+
+ // If the caller has a non-null class loader, and that loader
+ // is not this class' loader or an ancestor thereof, then do a
+ // security check.
+ if (caller_loader != NULL && ! caller_loader->isAncestorOf(loader))
+ s->checkPermission (new RuntimePermission (JvNewStringLatin1 ("getClassLoader")));
+ }
+
+ return loader;
+}
+
+java::lang::reflect::Constructor *
+java::lang::Class::getConstructor (JArray<jclass> *param_types)
+{
+ memberAccessCheck(java::lang::reflect::Member::PUBLIC);
+
+ jstring partial_sig = getSignature (param_types, true);
+ jint hash = partial_sig->hashCode ();
+
+ int i = isPrimitive () ? 0 : method_count;
+ while (--i >= 0)
+ {
+ if (_Jv_equalUtf8Consts (methods[i].name, init_name)
+ && _Jv_equal (methods[i].signature, partial_sig, hash))
+ {
+ // Found it. For getConstructor, the constructor must be
+ // public.
+ using namespace java::lang::reflect;
+ if (! Modifier::isPublic(methods[i].accflags))
+ break;
+ Constructor *cons = new Constructor ();
+ cons->offset = (char *) (&methods[i]) - (char *) methods;
+ cons->declaringClass = this;
+ return cons;
+ }
+ }
+ throw new java::lang::NoSuchMethodException (_Jv_NewStringUtf8Const (init_name));
+}
+
+JArray<java::lang::reflect::Constructor *> *
+java::lang::Class::getDeclaredConstructors (jboolean publicOnly)
+{
+ int numConstructors = 0;
+ int max = isPrimitive () ? 0 : method_count;
+ int i;
+ for (i = max; --i >= 0; )
+ {
+ _Jv_Method *method = &methods[i];
+ if (method->name == NULL
+ || ! _Jv_equalUtf8Consts (method->name, init_name))
+ continue;
+ if (publicOnly
+ && ! java::lang::reflect::Modifier::isPublic(method->accflags))
+ continue;
+ numConstructors++;
+ }
+ JArray<java::lang::reflect::Constructor *> *result
+ = (JArray<java::lang::reflect::Constructor *> *)
+ JvNewObjectArray (numConstructors,
+ &java::lang::reflect::Constructor::class$,
+ NULL);
+ java::lang::reflect::Constructor** cptr = elements (result);
+ for (i = 0; i < max; i++)
+ {
+ _Jv_Method *method = &methods[i];
+ if (method->name == NULL
+ || ! _Jv_equalUtf8Consts (method->name, init_name))
+ continue;
+ if (publicOnly
+ && ! java::lang::reflect::Modifier::isPublic(method->accflags))
+ continue;
+ java::lang::reflect::Constructor *cons
+ = new java::lang::reflect::Constructor ();
+ cons->offset = (char *) method - (char *) methods;
+ cons->declaringClass = this;
+ *cptr++ = cons;
+ }
+ return result;
+}
+
+java::lang::reflect::Constructor *
+java::lang::Class::getDeclaredConstructor (JArray<jclass> *param_types)
+{
+ memberAccessCheck(java::lang::reflect::Member::DECLARED);
+
+ jstring partial_sig = getSignature (param_types, true);
+ jint hash = partial_sig->hashCode ();
+
+ int i = isPrimitive () ? 0 : method_count;
+ while (--i >= 0)
+ {
+ if (_Jv_equalUtf8Consts (methods[i].name, init_name)
+ && _Jv_equal (methods[i].signature, partial_sig, hash))
+ {
+ // Found it.
+ using namespace java::lang::reflect;
+ Constructor *cons = new Constructor ();
+ cons->offset = (char *) (&methods[i]) - (char *) methods;
+ cons->declaringClass = this;
+ return cons;
+ }
+ }
+ throw new java::lang::NoSuchMethodException (_Jv_NewStringUtf8Const (init_name));
+}
+
+java::lang::reflect::Field *
+java::lang::Class::getField (jstring name, jint hash)
+{
+ java::lang::reflect::Field* rfield;
+ for (int i = 0; i < field_count; i++)
+ {
+ _Jv_Field *field = &fields[i];
+ if (! _Jv_equal (field->name, name, hash))
+ continue;
+ if (! (field->getModifiers() & java::lang::reflect::Modifier::PUBLIC))
+ continue;
+ rfield = new java::lang::reflect::Field ();
+ rfield->offset = (char*) field - (char*) fields;
+ rfield->declaringClass = this;
+ rfield->name = name;
+ return rfield;
+ }
+ jclass superclass = getSuperclass();
+ if (superclass == NULL)
+ return NULL;
+ rfield = superclass->getField(name, hash);
+ for (int i = 0; i < interface_count && rfield == NULL; ++i)
+ rfield = interfaces[i]->getField (name, hash);
+ return rfield;
+}
+
+java::lang::reflect::Field *
+java::lang::Class::getDeclaredField (jstring name)
+{
+ memberAccessCheck(java::lang::reflect::Member::DECLARED);
+ int hash = name->hashCode();
+ for (int i = 0; i < field_count; i++)
+ {
+ _Jv_Field *field = &fields[i];
+ if (! _Jv_equal (field->name, name, hash))
+ continue;
+ java::lang::reflect::Field* rfield = new java::lang::reflect::Field ();
+ rfield->offset = (char*) field - (char*) fields;
+ rfield->declaringClass = this;
+ rfield->name = name;
+ return rfield;
+ }
+ throw new java::lang::NoSuchFieldException (name);
+}
+
+JArray<java::lang::reflect::Field *> *
+java::lang::Class::getDeclaredFields (jboolean public_only)
+{
+ int size;
+ if (public_only)
+ {
+ size = 0;
+ for (int i = 0; i < field_count; ++i)
+ {
+ _Jv_Field *field = &fields[i];
+ if ((field->flags & java::lang::reflect::Modifier::PUBLIC))
+ ++size;
+ }
+ }
+ else
+ size = field_count;
+
+ JArray<java::lang::reflect::Field *> *result
+ = (JArray<java::lang::reflect::Field *> *)
+ JvNewObjectArray (size, &java::lang::reflect::Field::class$, NULL);
+ java::lang::reflect::Field** fptr = elements (result);
+ for (int i = 0; i < field_count; i++)
+ {
+ _Jv_Field *field = &fields[i];
+ if (public_only
+ && ! (field->flags & java::lang::reflect::Modifier::PUBLIC))
+ continue;
+ java::lang::reflect::Field* rfield = new java::lang::reflect::Field ();
+ rfield->offset = (char*) field - (char*) fields;
+ rfield->declaringClass = this;
+ *fptr++ = rfield;
+ }
+ return result;
+}
+
+void
+java::lang::Class::getSignature (java::lang::StringBuffer *buffer)
+{
+ if (isPrimitive())
+ buffer->append((jchar) method_count);
+ else
+ {
+ jstring name = getName();
+ if (name->charAt(0) != '[')
+ buffer->append((jchar) 'L');
+ buffer->append(name);
+ if (name->charAt(0) != '[')
+ buffer->append((jchar) ';');
+ }
+}
+
+// This doesn't have to be native. It is an implementation detail
+// only called from the C++ code, though, so maybe this is clearer.
+jstring
+java::lang::Class::getSignature (JArray<jclass> *param_types,
+ jboolean is_constructor)
+{
+ java::lang::StringBuffer *buf = new java::lang::StringBuffer ();
+ buf->append((jchar) '(');
+ // A NULL param_types means "no parameters".
+ if (param_types != NULL)
+ {
+ jclass *v = elements (param_types);
+ for (int i = 0; i < param_types->length; ++i)
+ v[i]->getSignature(buf);
+ }
+ buf->append((jchar) ')');
+ if (is_constructor)
+ buf->append((jchar) 'V');
+ return buf->toString();
+}
+
+java::lang::reflect::Method *
+java::lang::Class::_getDeclaredMethod (jstring name,
+ JArray<jclass> *param_types)
+{
+ jstring partial_sig = getSignature (param_types, false);
+ jint p_len = partial_sig->length();
+ _Jv_Utf8Const *utf_name = _Jv_makeUtf8Const (name);
+ int i = isPrimitive () ? 0 : method_count;
+ while (--i >= 0)
+ {
+ if (_Jv_equalUtf8Consts (methods[i].name, utf_name)
+ && _Jv_equaln (methods[i].signature, partial_sig, p_len)
+ && (methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) == 0)
+ {
+ // Found it.
+ using namespace java::lang::reflect;
+ Method *rmethod = new Method ();
+ rmethod->offset = (char*) (&methods[i]) - (char*) methods;
+ rmethod->declaringClass = this;
+ return rmethod;
+ }
+ }
+ return NULL;
+}
+
+JArray<java::lang::reflect::Method *> *
+java::lang::Class::getDeclaredMethods (void)
+{
+ memberAccessCheck(java::lang::reflect::Member::DECLARED);
+
+ int numMethods = 0;
+ int max = isPrimitive () ? 0 : method_count;
+ int i;
+ for (i = max; --i >= 0; )
+ {
+ _Jv_Method *method = &methods[i];
+ if (method->name == NULL
+ || _Jv_equalUtf8Consts (method->name, clinit_name)
+ || _Jv_equalUtf8Consts (method->name, init_name)
+ || _Jv_equalUtf8Consts (method->name, finit_name)
+ || (methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) != 0)
+ continue;
+ numMethods++;
+ }
+ JArray<java::lang::reflect::Method *> *result
+ = (JArray<java::lang::reflect::Method *> *)
+ JvNewObjectArray (numMethods, &java::lang::reflect::Method::class$, NULL);
+ java::lang::reflect::Method** mptr = elements (result);
+ for (i = 0; i < max; i++)
+ {
+ _Jv_Method *method = &methods[i];
+ if (method->name == NULL
+ || _Jv_equalUtf8Consts (method->name, clinit_name)
+ || _Jv_equalUtf8Consts (method->name, init_name)
+ || _Jv_equalUtf8Consts (method->name, finit_name)
+ || (methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) != 0)
+ continue;
+ java::lang::reflect::Method* rmethod
+ = new java::lang::reflect::Method ();
+ rmethod->offset = (char*) method - (char*) methods;
+ rmethod->declaringClass = this;
+ *mptr++ = rmethod;
+ }
+ return result;
+}
+
+jstring
+java::lang::Class::getName (void)
+{
+ return name->toString();
+}
+
+JArray<jclass> *
+java::lang::Class::getInterfaces (void)
+{
+ jobjectArray r = JvNewObjectArray (interface_count, getClass (), NULL);
+ jobject *data = elements (r);
+ for (int i = 0; i < interface_count; ++i)
+ {
+ typedef unsigned int uaddr __attribute__ ((mode (pointer)));
+ data[i] = interfaces[i];
+ if ((uaddr)data[i] < (uaddr)constants.size)
+ fprintf (stderr, "ERROR !!!\n");
+ }
+ return reinterpret_cast<JArray<jclass> *> (r);
+}
+
+java::lang::reflect::Method *
+java::lang::Class::_getMethod (jstring name, JArray<jclass> *param_types)
+{
+ jstring partial_sig = getSignature (param_types, false);
+ jint p_len = partial_sig->length();
+ _Jv_Utf8Const *utf_name = _Jv_makeUtf8Const (name);
+
+ for (Class *klass = this; klass; klass = klass->getSuperclass())
+ {
+ int i = klass->isPrimitive () ? 0 : klass->method_count;
+ while (--i >= 0)
+ {
+ if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
+ && _Jv_equaln (klass->methods[i].signature, partial_sig, p_len)
+ && (klass->methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) == 0)
+ {
+ // Found it.
+ using namespace java::lang::reflect;
+
+ // Method must be public.
+ if (! Modifier::isPublic (klass->methods[i].accflags))
+ break;
+
+ Method *rmethod = new Method ();
+ rmethod->offset = ((char *) (&klass->methods[i])
+ - (char *) klass->methods);
+ rmethod->declaringClass = klass;
+ return rmethod;
+ }
+ }
+ }
+
+ // If we haven't found a match, and this class is an interface, then
+ // check all the superinterfaces.
+ if (isInterface())
+ {
+ for (int i = 0; i < interface_count; ++i)
+ {
+ using namespace java::lang::reflect;
+ Method *rmethod = interfaces[i]->_getMethod (name, param_types);
+ if (rmethod != NULL)
+ return rmethod;
+ }
+ }
+
+ return NULL;
+}
+
+// This is a very slow implementation, since it re-scans all the
+// methods we've already listed to make sure we haven't duplicated a
+// method. It also over-estimates the required size, so we have to
+// shrink the result array later.
+jint
+java::lang::Class::_getMethods (JArray<java::lang::reflect::Method *> *result,
+ jint offset)
+{
+ jint count = 0;
+
+ // First examine all local methods
+ for (int i = isPrimitive () ? 0 : method_count; --i >= 0; )
+ {
+ _Jv_Method *method = &methods[i];
+ if (method->name == NULL
+ || _Jv_equalUtf8Consts (method->name, clinit_name)
+ || _Jv_equalUtf8Consts (method->name, init_name)
+ || _Jv_equalUtf8Consts (method->name, finit_name)
+ || (method->accflags
+ & java::lang::reflect::Modifier::INVISIBLE) != 0)
+ continue;
+ // Only want public methods.
+ if (! java::lang::reflect::Modifier::isPublic (method->accflags))
+ continue;
+
+ // This is where we over-count the slots required if we aren't
+ // filling the result for real.
+ if (result != NULL)
+ {
+ jboolean add = true;
+ java::lang::reflect::Method **mp = elements (result);
+ // If we already have a method with this name and signature,
+ // then ignore this one. This can happen with virtual
+ // methods.
+ for (int j = 0; j < offset; ++j)
+ {
+ _Jv_Method *meth_2 = _Jv_FromReflectedMethod (mp[j]);
+ if (_Jv_equalUtf8Consts (method->name, meth_2->name)
+ && _Jv_equalUtf8Consts (method->signature,
+ meth_2->signature))
+ {
+ add = false;
+ break;
+ }
+ }
+ if (! add)
+ continue;
+ }
+
+ if (result != NULL)
+ {
+ using namespace java::lang::reflect;
+ Method *rmethod = new Method ();
+ rmethod->offset = (char *) method - (char *) methods;
+ rmethod->declaringClass = this;
+ Method **mp = elements (result);
+ mp[offset + count] = rmethod;
+ }
+ ++count;
+ }
+ offset += count;
+
+ // Now examine superclasses.
+ if (getSuperclass () != NULL)
+ {
+ jint s_count = getSuperclass()->_getMethods (result, offset);
+ offset += s_count;
+ count += s_count;
+ }
+
+ // Finally, examine interfaces.
+ for (int i = 0; i < interface_count; ++i)
+ {
+ int f_count = interfaces[i]->_getMethods (result, offset);
+ count += f_count;
+ offset += f_count;
+ }
+
+ return count;
+}
+
+JArray<java::lang::reflect::Method *> *
+java::lang::Class::getMethods (void)
+{
+ using namespace java::lang::reflect;
+
+ memberAccessCheck(Member::PUBLIC);
+
+ // This will overestimate the size we need.
+ jint count = _getMethods (NULL, 0);
+
+ JArray<Method *> *result
+ = ((JArray<Method *> *) JvNewObjectArray (count,
+ &Method::class$,
+ NULL));
+
+ // When filling the array for real, we get the actual count. Then
+ // we resize the array.
+ jint real_count = _getMethods (result, 0);
+
+ if (real_count != count)
+ {
+ JArray<Method *> *r2
+ = ((JArray<Method *> *) JvNewObjectArray (real_count,
+ &Method::class$,
+ NULL));
+
+ Method **destp = elements (r2);
+ Method **srcp = elements (result);
+
+ for (int i = 0; i < real_count; ++i)
+ *destp++ = *srcp++;
+
+ result = r2;
+ }
+
+ return result;
+}
+
+jboolean
+java::lang::Class::isAssignableFrom (jclass klass)
+{
+ // Arguments may not have been initialized, given ".class" syntax.
+ // This ensures we can at least look at their superclasses.
+ _Jv_Linker::wait_for_state (this, JV_STATE_LOADING);
+ _Jv_Linker::wait_for_state (klass, JV_STATE_LOADING);
+ return _Jv_IsAssignableFrom (klass, this);
+}
+
+jboolean
+java::lang::Class::isInstance (jobject obj)
+{
+ if (! obj)
+ return false;
+ return _Jv_IsAssignableFrom (JV_CLASS (obj), this);
+}
+
+jobject
+java::lang::Class::newInstance (void)
+{
+ memberAccessCheck(java::lang::reflect::Member::PUBLIC);
+
+ if (isPrimitive ()
+ || isInterface ()
+ || isArray ()
+ || java::lang::reflect::Modifier::isAbstract(accflags))
+ throw new java::lang::InstantiationException (getName ());
+
+ _Jv_InitClass (this);
+
+ _Jv_Method *meth = _Jv_GetMethodLocal (this, init_name, void_signature);
+ if (! meth)
+ throw new java::lang::InstantiationException (getName());
+
+ jobject r = _Jv_AllocObject (this);
+ /* Class constructors/destructors have __thiscall calling
+ convention for 32-bit native Windows ABI. */
+#if defined (__MINGW32__) && defined (__i386__)
+ ((void (__thiscall *) (jobject)) meth->ncode) (r);
+#else
+ ((void (*) (jobject)) meth->ncode) (r);
+#endif
+ return r;
+}
+
+void
+java::lang::Class::finalize (void)
+{
+ // Array classes don't have an engine, and don't need to be finalized.
+ if (engine)
+ engine->unregister(this);
+}
+
+#ifdef INTERPRETER
+void
+_Jv_ClosureList::releaseClosures (_Jv_ClosureList **closures)
+{
+ if (!closures)
+ return;
+
+ while (_Jv_ClosureList *current = *closures)
+ {
+ *closures = current->next;
+ ffi_closure_free (current->ptr);
+ }
+}
+
+void
+_Jv_ClosureList::registerClosure (jclass klass, void *ptr)
+{
+ _Jv_ClosureList **closures = klass->engine->get_closure_list (klass);
+ if (closures)
+ {
+ this->ptr = ptr;
+ this->next = *closures;
+ *closures = this;
+ }
+}
+#endif
+
+// This implements the initialization process for a class. From Spec
+// section 12.4.2.
+void
+java::lang::Class::initializeClass (void)
+{
+ // Short-circuit to avoid needless locking (expression includes
+ // JV_STATE_PHANTOM and JV_STATE_DONE).
+ if (state >= JV_STATE_PHANTOM)
+ return;
+
+ // Step 1. We introduce a new scope so we can synchronize more
+ // easily.
+ {
+ JvSynchronize sync (this);
+
+ if (state < JV_STATE_LINKED)
+ {
+ try
+ {
+ _Jv_Linker::wait_for_state(this, JV_STATE_LINKED);
+ }
+ catch (java::lang::SecurityException *x)
+ {
+ throw x;
+ }
+ catch (java::lang::Throwable *x)
+ {
+ // Turn into a NoClassDefFoundError.
+ java::lang::NoClassDefFoundError *result
+ = new java::lang::NoClassDefFoundError(getName());
+ result->initCause(x);
+ throw result;
+ }
+ }
+
+ // Step 2.
+ java::lang::Thread *self = java::lang::Thread::currentThread();
+ self = (java::lang::Thread *) ((long) self | 1);
+ while (state == JV_STATE_IN_PROGRESS && thread && thread != self)
+ wait ();
+
+ // Steps 3 & 4.
+ if (state == JV_STATE_DONE || state == JV_STATE_IN_PROGRESS)
+ return;
+
+ // Step 5.
+ if (state == JV_STATE_ERROR)
+ throw new java::lang::NoClassDefFoundError (getName());
+
+ // Step 6.
+ thread = self;
+ _Jv_Linker::wait_for_state (this, JV_STATE_LINKED);
+ state = JV_STATE_IN_PROGRESS;
+ }
+
+ // Step 7.
+ if (! isInterface () && superclass)
+ {
+ try
+ {
+ _Jv_InitClass (superclass);
+ }
+ catch (java::lang::SecurityException *x)
+ {
+ throw x;
+ }
+ catch (java::lang::Throwable *except)
+ {
+ // Caught an exception.
+ JvSynchronize sync (this);
+ state = JV_STATE_ERROR;
+ notifyAll ();
+ throw except;
+ }
+ }
+
+ // Steps 8, 9, 10, 11.
+ try
+ {
+ _Jv_Method *meth = _Jv_GetMethodLocal (this, clinit_name,
+ void_signature);
+ if (meth)
+ ((void (*) (void)) meth->ncode) ();
+ }
+ catch (java::lang::SecurityException *x)
+ {
+ throw x;
+ }
+ catch (java::lang::Throwable *except)
+ {
+ if (! java::lang::Error::class$.isInstance(except))
+ {
+ try
+ {
+ except = new ExceptionInInitializerError (except);
+ }
+ catch (java::lang::Throwable *t)
+ {
+ except = t;
+ }
+ }
+
+ JvSynchronize sync (this);
+ state = JV_STATE_ERROR;
+ notifyAll ();
+ throw except;
+ }
+
+ JvSynchronize sync (this);
+ state = JV_STATE_DONE;
+ notifyAll ();
+}
+
+// Only used by serialization
+java::lang::reflect::Field *
+java::lang::Class::getPrivateField (jstring name)
+{
+ int hash = name->hashCode ();
+
+ java::lang::reflect::Field* rfield;
+ for (int i = 0; i < field_count; i++)
+ {
+ _Jv_Field *field = &fields[i];
+ if (! _Jv_equal (field->name, name, hash))
+ continue;
+ rfield = new java::lang::reflect::Field ();
+ rfield->offset = (char*) field - (char*) fields;
+ rfield->declaringClass = this;
+ rfield->name = name;
+ return rfield;
+ }
+ jclass superclass = getSuperclass();
+ if (superclass == NULL)
+ return NULL;
+ rfield = superclass->getPrivateField(name);
+ for (int i = 0; i < interface_count && rfield == NULL; ++i)
+ rfield = interfaces[i]->getPrivateField (name);
+ return rfield;
+}
+
+// Only used by serialization
+java::lang::reflect::Method *
+java::lang::Class::getPrivateMethod (jstring name, JArray<jclass> *param_types)
+{
+ jstring partial_sig = getSignature (param_types, false);
+ jint p_len = partial_sig->length();
+ _Jv_Utf8Const *utf_name = _Jv_makeUtf8Const (name);
+ for (Class *klass = this; klass; klass = klass->getSuperclass())
+ {
+ int i = klass->isPrimitive () ? 0 : klass->method_count;
+ while (--i >= 0)
+ {
+ if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
+ && _Jv_equaln (klass->methods[i].signature, partial_sig, p_len))
+ {
+ // Found it.
+ using namespace java::lang::reflect;
+
+ Method *rmethod = new Method ();
+ rmethod->offset = ((char *) (&klass->methods[i])
+ - (char *) klass->methods);
+ rmethod->declaringClass = klass;
+ return rmethod;
+ }
+ }
+ }
+ throw new java::lang::NoSuchMethodException (name);
+}
+
+// Private accessor method for Java code to retrieve the protection domain.
+java::security::ProtectionDomain *
+java::lang::Class::getProtectionDomain0 ()
+{
+ return protectionDomain;
+}
+
+JArray<jobject> *
+java::lang::Class::getSigners()
+{
+ return hack_signers;
+}
+
+void
+java::lang::Class::setSigners(JArray<jobject> *s)
+{
+ hack_signers = s;
+}
+
+
+
+static unsigned char
+read_u1 (unsigned char *&p)
+{
+ return *p++;
+}
+
+static unsigned char
+read_u1 (unsigned char *&p, unsigned char *next)
+{
+ if (next - p < 1)
+ throw new java::lang::InternalError();
+ return *p++;
+}
+
+static unsigned int
+read_u2 (unsigned char *&p)
+{
+ unsigned int b1 = *p++;
+ unsigned int b2 = *p++;
+ return (b1 << 8) | b2;
+}
+
+static unsigned int
+read_u2 (unsigned char *&p, unsigned char *next)
+{
+ if (next - p < 2)
+ throw new java::lang::InternalError();
+ return read_u2 (p);
+}
+
+static int
+read_4 (unsigned char *&p)
+{
+ int b1 = *p++;
+ int b2 = *p++;
+ int b3 = *p++;
+ int b4 = *p++;
+ return (b1 << 24) | (b2 << 16) | (b3 << 8) | b4;
+}
+
+jstring
+java::lang::Class::getReflectionSignature (jint /*jv_attr_type*/ type,
+ jint obj_index)
+{
+ // We just re-parse the bytecode for this data each time. If
+ // necessary we can cache results, but I suspect this is not
+ // performance sensitive.
+ unsigned char *bytes = reflection_data;
+ if (bytes == NULL)
+ return NULL;
+ while (true)
+ {
+ int kind = read_u1 (bytes);
+ if (kind == JV_DONE_ATTR)
+ return NULL;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ if (kind != type)
+ {
+ bytes = next;
+ continue;
+ }
+ if (type != JV_CLASS_ATTR)
+ {
+ unsigned short index = read_u2 (bytes, next);
+ if (index != obj_index)
+ {
+ bytes = next;
+ continue;
+ }
+ }
+ int nt = read_u1 (bytes, next);
+ if (nt != JV_SIGNATURE_KIND)
+ {
+ bytes = next;
+ continue;
+ }
+ unsigned int cpool_idx = read_u2 (bytes, next);
+ if (cpool_idx >= (unsigned int) constants.size
+ || constants.tags[cpool_idx] != JV_CONSTANT_Utf8)
+ {
+ // We just ignore errors for now. It isn't clear what is
+ // best to do here, as an encoding error here means a bug
+ // either in the compiler or in defineclass.cc.
+ return NULL;
+ }
+ return _Jv_NewStringUtf8Const (constants.data[cpool_idx].utf8);
+ }
+}
+
+jstring
+java::lang::Class::getReflectionSignature (::java::lang::reflect::Constructor *c)
+{
+ _Jv_Method *meth = _Jv_FromReflectedConstructor (c);
+ unsigned short meth_index = meth - methods;
+ return getReflectionSignature (JV_METHOD_ATTR, meth_index);
+}
+
+jstring
+java::lang::Class::getReflectionSignature (::java::lang::reflect::Method *m)
+{
+ _Jv_Method *meth = _Jv_FromReflectedMethod (m);
+ unsigned short meth_index = meth - methods;
+ return getReflectionSignature (JV_METHOD_ATTR, meth_index);
+}
+
+jstring
+java::lang::Class::getReflectionSignature (::java::lang::reflect::Field *f)
+{
+ _Jv_Field *fld = _Jv_FromReflectedField (f);
+ unsigned short fld_index = fld - fields;
+ return getReflectionSignature (JV_FIELD_ATTR, fld_index);
+}
+
+jstring
+java::lang::Class::getClassSignature()
+{
+ return getReflectionSignature (JV_CLASS_ATTR, 0);
+}
+
+jint
+java::lang::Class::getEnclosingMethodData()
+{
+ unsigned char *bytes = reflection_data;
+ if (bytes == NULL)
+ return 0;
+ while (true)
+ {
+ int kind = read_u1 (bytes);
+ if (kind == JV_DONE_ATTR)
+ return 0;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ if (kind != JV_CLASS_ATTR)
+ {
+ bytes = next;
+ continue;
+ }
+ int type = read_u1 (bytes, next);
+ if (type != JV_ENCLOSING_METHOD_KIND)
+ {
+ bytes = next;
+ continue;
+ }
+ int class_index = read_u2 (bytes, next);
+ int method_index = read_u2 (bytes, next);
+ _Jv_word result;
+ _Jv_storeIndexes (&result, class_index, method_index);
+ return result.i;
+ }
+}
+
+jclass
+java::lang::Class::getEnclosingClass()
+{
+ _Jv_word indexes;
+ indexes.i = getEnclosingMethodData();
+ if (indexes.i == 0)
+ // No enclosing method, but perhaps a member or anonymous class
+ return getDeclaringClass();
+ _Jv_ushort class_index, method_index;
+ _Jv_loadIndexes (&indexes, class_index, method_index);
+ return _Jv_Linker::resolve_pool_entry (this, class_index).clazz;
+}
+
+::java::lang::reflect::Method *
+java::lang::Class::getEnclosingMethod()
+{
+ _Jv_word indexes;
+ indexes.i = getEnclosingMethodData();
+ if (indexes.i == 0)
+ return NULL;
+ _Jv_ushort class_index, method_index;
+ _Jv_loadIndexes (&indexes, class_index, method_index);
+ jclass found_class;
+ _Jv_Method *method = _Jv_Linker::resolve_method_entry (this, found_class,
+ class_index,
+ method_index,
+ false, false);
+ using namespace java::lang::reflect;
+ Method *rmethod = new Method ();
+ rmethod->offset = (char *) method - (char *) found_class->methods;
+ rmethod->declaringClass = found_class;
+ return rmethod;
+}
+
+::java::lang::reflect::Constructor *
+java::lang::Class::getEnclosingConstructor()
+{
+ _Jv_word indexes;
+ indexes.i = getEnclosingMethodData();
+ if (indexes.i == 0)
+ return NULL;
+ _Jv_ushort class_index, method_index;
+ _Jv_loadIndexes (&indexes, class_index, method_index);
+ jclass found_class;
+ _Jv_Method *method = _Jv_Linker::resolve_method_entry (this, found_class,
+ class_index,
+ method_index,
+ false, false);
+ using namespace java::lang::reflect;
+ Constructor *cons = new Constructor ();
+ cons->offset = (char *) method - (char *) found_class->methods;
+ cons->declaringClass = this;
+ return cons;
+}
+
+static void
+check_constant (_Jv_Constants *pool, jint cpool_index, jint type)
+{
+ if (cpool_index <= 0 || cpool_index >= pool->size)
+ throw new InternalError(JvNewStringLatin1("invalid constant pool index"));
+ if ((pool->tags[cpool_index] &
+ ~(JV_CONSTANT_ResolvedFlag|JV_CONSTANT_LazyFlag)) != type)
+ {
+ ::java::lang::StringBuffer *sb = new ::java::lang::StringBuffer();
+ sb->append(JvNewStringLatin1("expected pool constant "));
+ sb->append(type);
+ sb->append(JvNewStringLatin1(" but got "));
+ sb->append(jint (pool->tags[cpool_index]));
+ throw new InternalError(sb->toString());
+ }
+}
+
+// Forward declaration
+static ::java::lang::annotation::Annotation *
+parseAnnotation(jclass klass, _Jv_Constants *pool,
+ unsigned char *&bytes, unsigned char *last);
+
+static jobject
+parseAnnotationElement(jclass klass, _Jv_Constants *pool,
+ unsigned char *&bytes, unsigned char *last)
+{
+ int tag = read_u1 (bytes, last);
+ jobject result;
+ switch (tag)
+ {
+ case 'B':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Integer);
+ result = Byte::valueOf (pool->data[cindex].i);
+ }
+ break;
+ case 'C':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Integer);
+ result = Character::valueOf (pool->data[cindex].i);
+ }
+ break;
+ case 'S':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Integer);
+ result = Short::valueOf (pool->data[cindex].i);
+ }
+ break;
+ case 'Z':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Integer);
+ result = Boolean::valueOf (jboolean (pool->data[cindex].i));
+ }
+ break;
+ case 'I':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Integer);
+ result = Integer::valueOf (pool->data[cindex].i);
+ }
+ break;
+ case 'D':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Double);
+ _Jv_word2 word;
+ memcpy (&word, &pool->data[cindex], 2 * sizeof (_Jv_word));
+ result = Double::valueOf (word.d);
+ }
+ break;
+ case 'F':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Float);
+ result = Float::valueOf (pool->data[cindex].f);
+ }
+ break;
+ case 'J':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Long);
+ _Jv_word2 word;
+ memcpy (&word, &pool->data[cindex], 2 * sizeof (_Jv_word));
+ result = Long::valueOf (word.l);
+ }
+ break;
+ case 's':
+ {
+ int cindex = read_u2 (bytes, last);
+ // Despite what the JVM spec says, compilers generate a Utf8
+ // constant here, not a String.
+ check_constant (pool, cindex, JV_CONSTANT_Utf8);
+ result = pool->data[cindex].utf8->toString();
+ }
+ break;
+ case 'e':
+ {
+ int type_name_index = read_u2 (bytes, last);
+ check_constant (pool, type_name_index, JV_CONSTANT_Utf8);
+ int const_name_index = read_u2 (bytes, last);
+ check_constant (pool, const_name_index, JV_CONSTANT_Utf8);
+
+ _Jv_Utf8Const *u_name = pool->data[type_name_index].utf8;
+ _Jv_Utf8Const *e_name = pool->data[const_name_index].utf8;
+
+ // FIXME: throw correct exceptions at the correct times.
+ jclass e_class = _Jv_FindClassFromSignature(u_name->chars(),
+ klass->getClassLoaderInternal());
+ result = ::java::lang::Enum::valueOf(e_class, e_name->toString());
+ }
+ break;
+ case 'c':
+ {
+ int cindex = read_u2 (bytes, last);
+ check_constant (pool, cindex, JV_CONSTANT_Utf8);
+ _Jv_Utf8Const *u_name = pool->data[cindex].utf8;
+ jclass anno_class
+ = _Jv_FindClassFromSignatureNoException(u_name->chars(),
+ klass->getClassLoaderInternal());
+ // FIXME: not correct: we should lazily do this when trying to
+ // read the element. This means that
+ // AnnotationInvocationHandler needs to have a special case.
+ if (! anno_class)
+ // FIXME: original exception...
+ throw new TypeNotPresentException(u_name->toString(), NULL);
+ result = anno_class;
+ }
+ break;
+ case '@':
+ result = parseAnnotation (klass, pool, bytes, last);
+ break;
+ case '[':
+ {
+ int n_array_elts = read_u2 (bytes, last);
+ jobjectArray aresult = _Jv_NewObjectArray (n_array_elts,
+ &Object::class$, NULL);
+ jobject *elts = elements (aresult);
+ for (int i = 0; i < n_array_elts; ++i)
+ elts[i] = parseAnnotationElement(klass, pool, bytes, last);
+ result = aresult;
+ }
+ break;
+ default:
+ throw new java::lang::InternalError();
+ }
+ return result;
+}
+
+static ::java::lang::annotation::Annotation *
+parseAnnotation(jclass klass, _Jv_Constants *pool,
+ unsigned char *&bytes, unsigned char *last)
+{
+ int type_index = read_u2 (bytes, last);
+ check_constant (pool, type_index, JV_CONSTANT_Utf8);
+
+ _Jv_Utf8Const *u_name = pool->data[type_index].utf8;
+ jclass anno_class = _Jv_FindClassFromSignatureNoException(u_name->chars(),
+ klass->getClassLoaderInternal());
+ // FIXME: what to do if anno_class==NULL?
+
+ ::java::util::HashMap *hmap = new ::java::util::HashMap();
+ int npairs = read_u2 (bytes, last);
+ for (int i = 0; i < npairs; ++i)
+ {
+ int name_index = read_u2 (bytes, last);
+ check_constant (pool, name_index, JV_CONSTANT_Utf8);
+ jstring name = _Jv_NewStringUtf8Const (pool->data[name_index].utf8);
+ jobject value = parseAnnotationElement (klass, pool, bytes, last);
+ // FIXME: any checks needed for name?
+ hmap->put(name, value);
+ }
+ using namespace ::sun::reflect::annotation;
+ return AnnotationInvocationHandler::create (anno_class,
+ (::java::util::Map *) hmap);
+}
+
+static jobjectArray
+parseAnnotations(jclass klass, _Jv_Constants *pool,
+ unsigned char *&bytes, unsigned char *last)
+{
+ int num = read_u2 (bytes, last);
+ jobjectArray result = _Jv_NewObjectArray (num,
+ &::java::lang::annotation::Annotation::class$,
+ NULL);
+ jobject *elts = elements (result);
+ for (int i = 0; i < num; ++i)
+ elts[i] = parseAnnotation(klass, pool, bytes, last);
+ return result;
+}
+
+static jobjectArray
+parseParameterAnnotations(jclass klass, _Jv_Constants *pool,
+ unsigned char *&bytes, unsigned char *last)
+{
+ jclass anno = &::java::lang::annotation::Annotation::class$;
+ jclass annoary = _Jv_GetArrayClass (anno, anno->getClassLoaderInternal());
+
+ // FIXME: something should check the number of params versus the
+ // method
+ int n_params = read_u1 (bytes, last);
+ jobjectArray result = _Jv_NewObjectArray (n_params, annoary, NULL);
+ jobject *elts = elements (result);
+ for (int i = 0; i < n_params; ++i)
+ elts[i] = parseAnnotations(klass, pool, bytes, last);
+ return result;
+}
+
+jobject
+java::lang::Class::getMethodDefaultValue(::java::lang::reflect::Method *meth)
+{
+ // FIXME: could cache the value here...
+
+ unsigned char *bytes = reflection_data;
+ if (bytes == NULL)
+ return 0;
+
+ unsigned short meth_index = _Jv_FromReflectedMethod (meth) - methods;
+
+ while (true)
+ {
+ int type = read_u1 (bytes);
+ if (type == JV_DONE_ATTR)
+ return NULL;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ if (type != JV_METHOD_ATTR)
+ {
+ bytes = next;
+ continue;
+ }
+ int kind = read_u1 (bytes, next);
+ if (kind != JV_ANNOTATION_DEFAULT_KIND)
+ {
+ bytes = next;
+ continue;
+ }
+ int index = read_u2 (bytes, next);
+ if (meth_index != index)
+ {
+ bytes = next;
+ continue;
+ }
+
+ // FIXME: could cache here. If we do then we have to clone any
+ // array result.
+ return parseAnnotationElement(this, &this->constants, bytes, next);
+ }
+}
+
+jobjectArray
+java::lang::Class::getDeclaredAnnotations(jint /* jv_attr_type */ member_type,
+ jint member_index,
+ jint /* jv_attr_kind */ kind_req)
+{
+ using namespace java::lang::annotation;
+ jobjectArray result;
+
+ unsigned char *bytes = reflection_data;
+ if (bytes == NULL)
+ return 0;
+
+ if (loader == NULL)
+ loader = (ClassLoader *)VMClassLoader::bootLoader;
+
+ result = (loader->getDeclaredAnnotations
+ (this, member_type, member_index, kind_req));
+ if (result)
+ return result;
+
+ for (;;)
+ {
+ int type = read_u1 (bytes);
+ if (type == JV_DONE_ATTR)
+ return NULL;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ if (type != member_type)
+ {
+ bytes = next;
+ continue;
+ }
+ int kind = read_u1 (bytes, next);
+ if (kind != kind_req)
+ {
+ bytes = next;
+ continue;
+ }
+ if (member_type != JV_CLASS_ATTR)
+ {
+ int index = read_u2 (bytes, next);
+ if (member_index != index)
+ {
+ bytes = next;
+ continue;
+ }
+ }
+
+ if (kind_req == JV_PARAMETER_ANNOTATIONS_KIND)
+ result = ((parseParameterAnnotations
+ (this, &this->constants, bytes, next)));
+ else
+ result = ((parseAnnotations (this, &this->constants, bytes, next)));
+ break;
+ }
+
+ return (loader->putDeclaredAnnotations
+ (this, member_type, member_index, kind_req, result));
+}
+
+jobjectArray
+java::lang::Class::getDeclaredAnnotations(::java::lang::reflect::Method *meth,
+ jboolean is_param)
+{
+ unsigned short meth_index = _Jv_FromReflectedMethod (meth) - methods;
+ return getDeclaredAnnotations(JV_METHOD_ATTR, meth_index,
+ (is_param
+ ? JV_PARAMETER_ANNOTATIONS_KIND
+ : JV_ANNOTATIONS_KIND));
+}
+
+jobjectArray
+java::lang::Class::getDeclaredAnnotations(::java::lang::reflect::Constructor *cons,
+ jboolean is_param)
+{
+ unsigned short meth_index = _Jv_FromReflectedConstructor (cons) - methods;
+ return getDeclaredAnnotations(JV_METHOD_ATTR, meth_index,
+ (is_param
+ ? JV_PARAMETER_ANNOTATIONS_KIND
+ : JV_ANNOTATIONS_KIND));
+}
+
+jobjectArray
+java::lang::Class::getDeclaredAnnotations(::java::lang::reflect::Field *fld)
+{
+ unsigned short field_index = _Jv_FromReflectedField (fld) - fields;
+ return getDeclaredAnnotations(JV_FIELD_ATTR, field_index,
+ JV_ANNOTATIONS_KIND);
+}
+
+JArray< ::java::lang::annotation::Annotation *> *
+java::lang::Class::getDeclaredAnnotationsInternal()
+{
+ return (JArray< ::java::lang::annotation::Annotation *> *) getDeclaredAnnotations(JV_CLASS_ATTR, 0, JV_ANNOTATIONS_KIND);
+}
+
+static jclass
+resolve_class_constant (jclass klass, _Jv_Constants *pool, int cpool_index)
+{
+ check_constant (pool, cpool_index, JV_CONSTANT_Class);
+ // FIXME: what is the correct thing to do with an exception here?
+ return _Jv_Linker::resolve_pool_entry (klass, cpool_index, false).clazz;
+}
+
+jint
+java::lang::Class::findInnerClassAttribute()
+{
+ unsigned char *bytes = reflection_data;
+ if (bytes == NULL)
+ return -1;
+ while (true)
+ {
+ int type = read_u1 (bytes);
+ if (type == JV_DONE_ATTR)
+ break;
+ // After the type but before the length.
+ unsigned char *save = bytes;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ if (type != JV_CLASS_ATTR)
+ {
+ bytes = next;
+ continue;
+ }
+ int kind = read_u1 (bytes, next);
+ if (kind != JV_INNER_CLASSES_KIND)
+ {
+ bytes = next;
+ continue;
+ }
+ return save - reflection_data;
+ }
+ return -1;
+}
+
+jint
+java::lang::Class::findDeclaredClasses(JArray<jclass> *result,
+ jboolean publicOnly,
+ jint offset)
+{
+ unsigned char *bytes = reflection_data + offset;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ // Skip a byte.
+ read_u1 (bytes, next);
+ int n_classes = read_u2 (bytes, next);
+ int count = 0;
+ for (int i = 0; i < n_classes; ++i)
+ {
+ int inner_class_index = read_u2 (bytes, next);
+ int outer_class_index = read_u2 (bytes, next);
+ /*int inner_name_index = */ read_u2 (bytes, next);
+ int inner_flags = read_u2 (bytes, next);
+
+ if (inner_class_index == 0 || outer_class_index == 0)
+ continue;
+ if (resolve_class_constant (this, &constants, outer_class_index) == this)
+ {
+ jclass inner = resolve_class_constant (this, &constants,
+ inner_class_index);
+ if (! publicOnly
+ || ((inner_flags
+ & java::lang::reflect::Modifier::PUBLIC) != 0))
+ {
+ if (result)
+ {
+ jclass *elts = elements (result);
+ elts[count] = inner;
+ }
+ ++count;
+ }
+ }
+ }
+
+ return count;
+}
+
+JArray<jclass> *
+java::lang::Class::getDeclaredClasses (jboolean publicOnly)
+{
+ int offset = findInnerClassAttribute();
+ int count;
+ if (offset == -1)
+ {
+ // No InnerClasses attribute, so no declared classes.
+ count = 0;
+ }
+ else
+ count = findDeclaredClasses(NULL, publicOnly, offset);
+ JArray<jclass> *result
+ = (JArray<jclass> *) JvNewObjectArray (count, &java::lang::Class::class$,
+ NULL);
+ if (count > 0)
+ findDeclaredClasses(result, publicOnly, offset);
+ return result;
+}
+
+jclass
+java::lang::Class::getDeclaringClass (void)
+{
+ int offset = findInnerClassAttribute();
+ if (offset == -1)
+ return NULL;
+
+ unsigned char *bytes = reflection_data + offset;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ // Skip a byte.
+ read_u1 (bytes, next);
+ int n_classes = read_u2 (bytes, next);
+ for (int i = 0; i < n_classes; ++i)
+ {
+ int inner_class_index = read_u2 (bytes, next);
+ int outer_class_index = read_u2 (bytes, next);
+ /*int inner_name_index = */read_u2 (bytes, next);
+ /*int inner_flags = */read_u2 (bytes, next);
+
+ if (inner_class_index == 0 || outer_class_index == 0)
+ continue;
+ if (resolve_class_constant (this, &constants, inner_class_index) == this)
+ return resolve_class_constant (this, &constants, outer_class_index);
+ }
+
+ return NULL;
+}
+
+jboolean
+java::lang::Class::isAnonymousClass()
+{
+ int offset = findInnerClassAttribute();
+ if (offset == -1)
+ return false;
+
+ unsigned char *bytes = reflection_data + offset;
+ int len = read_4 (bytes);
+ unsigned char *next = bytes + len;
+ // Skip a byte.
+ read_u1 (bytes, next);
+ int n_classes = read_u2 (bytes, next);
+ for (int i = 0; i < n_classes; ++i)
+ {
+ int inner_class_index = read_u2 (bytes, next);
+ /*int outer_class_index = */read_u2 (bytes, next);
+ int inner_name_index = read_u2 (bytes, next);
+ /*int inner_flags = */read_u2 (bytes, next);
+
+ if (inner_class_index == 0)
+ continue;
+ if (resolve_class_constant (this, &constants, inner_class_index) == this)
+ return inner_name_index == 0;
+ }
+
+ return false;
+}
+
+jboolean
+java::lang::Class::isLocalClass()
+{
+ _Jv_word indexes;
+ indexes.i = getEnclosingMethodData();
+ return indexes.i != 0;
+}
+
+jboolean
+java::lang::Class::isMemberClass()
+{
+ // FIXME: is this correct?
+ return !isLocalClass() && getDeclaringClass() != NULL;
+}
+
+
+
+//
+// Some class-related convenience functions.
+//
+
+// Find a method declared in the class. If it is not declared locally
+// (or if it is inherited), return NULL.
+_Jv_Method *
+_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature)
+{
+ for (int i = 0; i < klass->method_count; ++i)
+ {
+ if (_Jv_equalUtf8Consts (name, klass->methods[i].name)
+ && _Jv_equalUtf8Consts (signature, klass->methods[i].signature))
+ return &klass->methods[i];
+ }
+ return NULL;
+}
+
+_Jv_Method *
+_Jv_LookupDeclaredMethod (jclass klass, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature,
+ jclass *declarer_result)
+{
+ for (; klass; klass = klass->getSuperclass())
+ {
+ _Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
+
+ if (meth)
+ {
+ if (declarer_result)
+ *declarer_result = klass;
+ return meth;
+ }
+ }
+
+ return NULL;
+}
+
+java::lang::reflect::Method *
+_Jv_GetReflectedMethod (jclass klass, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature)
+{
+ for (; klass; klass = klass->getSuperclass())
+ {
+ _Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
+ if (meth)
+ {
+ using namespace java::lang::reflect;
+ Method *rmethod = new Method ();
+ rmethod->offset = (char*) meth - (char*) klass->methods;
+ rmethod->declaringClass = klass;
+ return rmethod;
+ }
+ }
+
+ return NULL;
+}
+
+#ifdef HAVE_TLS
+
+// NOTE: MCACHE_SIZE should be a power of 2 minus one.
+#define MCACHE_SIZE 31
+
+struct _Jv_mcache
+{
+ jclass klass;
+ _Jv_Method *method;
+};
+
+static __thread _Jv_mcache *method_cache;
+#endif // HAVE_TLS
+
+static void *
+_Jv_FindMethodInCache (jclass klass MAYBE_UNUSED,
+ _Jv_Utf8Const *name MAYBE_UNUSED,
+ _Jv_Utf8Const *signature MAYBE_UNUSED)
+{
+#ifdef HAVE_TLS
+ _Jv_mcache *cache = method_cache;
+ if (cache)
+ {
+ int index = name->hash16 () & MCACHE_SIZE;
+ _Jv_mcache *mc = &cache[index];
+ _Jv_Method *m = mc->method;
+
+ if (mc->klass == klass
+ && _Jv_equalUtf8Consts (m->name, name)
+ && _Jv_equalUtf8Consts (m->signature, signature))
+ return mc->method->ncode;
+ }
+#endif // HAVE_TLS
+ return NULL;
+}
+
+static void
+_Jv_AddMethodToCache (jclass klass MAYBE_UNUSED,
+ _Jv_Method *method MAYBE_UNUSED)
+{
+#ifdef HAVE_TLS
+ if (method_cache == NULL)
+ method_cache = (_Jv_mcache *) _Jv_MallocUnchecked((MCACHE_SIZE + 1)
+ * sizeof (_Jv_mcache));
+ // If the allocation failed, just keep going.
+ if (method_cache != NULL)
+ {
+ int index = method->name->hash16 () & MCACHE_SIZE;
+ method_cache[index].method = method;
+ method_cache[index].klass = klass;
+ }
+#endif // HAVE_TLS
+}
+
+// Free this thread's method cache. We explicitly manage this memory
+// as the GC does not yet know how to scan TLS on all platforms.
+void
+_Jv_FreeMethodCache ()
+{
+#ifdef HAVE_TLS
+ if (method_cache != NULL)
+ {
+ _Jv_Free(method_cache);
+ method_cache = NULL;
+ }
+#endif // HAVE_TLS
+}
+
+void *
+_Jv_LookupInterfaceMethod (jclass klass, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *signature)
+{
+ using namespace java::lang::reflect;
+
+ void *ncode = _Jv_FindMethodInCache (klass, name, signature);
+ if (ncode != 0)
+ return ncode;
+
+ for (; klass; klass = klass->getSuperclass())
+ {
+ _Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
+ if (! meth)
+ continue;
+
+ if (Modifier::isStatic(meth->accflags))
+ throw new java::lang::IncompatibleClassChangeError
+ (_Jv_GetMethodString (klass, meth));
+ if (Modifier::isAbstract(meth->accflags))
+ throw new java::lang::AbstractMethodError
+ (_Jv_GetMethodString (klass, meth));
+ if (! Modifier::isPublic(meth->accflags))
+ throw new java::lang::IllegalAccessError
+ (_Jv_GetMethodString (klass, meth));
+
+ _Jv_AddMethodToCache (klass, meth);
+
+ return meth->ncode;
+ }
+ throw new java::lang::IncompatibleClassChangeError;
+}
+
+// Fast interface method lookup by index.
+void *
+_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface, int method_idx)
+{
+ _Jv_IDispatchTable *cldt = klass->idt;
+ int idx = iface->ioffsets[cldt->iindex] + method_idx;
+ return cldt->itable[idx];
+}
+
+jboolean
+_Jv_IsAssignableFrom (jclass source, jclass target)
+{
+ if (source == target)
+ return true;
+
+ // If target is array, so must source be.
+ while (target->isArray ())
+ {
+ if (! source->isArray())
+ return false;
+ target = target->getComponentType();
+ source = source->getComponentType();
+ }
+
+ if (target->isInterface())
+ {
+ // Abstract classes have no IDT, and IDTs provide no way to check
+ // two interfaces for assignability.
+ if (__builtin_expect
+ (source->idt == NULL || source->isInterface(), false))
+ return _Jv_InterfaceAssignableFrom (source, target);
+
+ _Jv_IDispatchTable *cl_idt = source->idt;
+
+ if (__builtin_expect ((target->ioffsets == NULL), false))
+ return false; // No class implementing TARGET has been loaded.
+ jshort cl_iindex = cl_idt->iindex;
+ if (cl_iindex < target->ioffsets[0])
+ {
+ jshort offset = target->ioffsets[cl_iindex];
+ if (offset != -1 && offset < cl_idt->itable_length
+ && cl_idt->itable[offset] == target)
+ return true;
+ }
+ return false;
+ }
+
+ // Primitive TYPE classes are only assignable to themselves.
+ if (__builtin_expect (target->isPrimitive() || source->isPrimitive(), false))
+ return false;
+
+ if (target == &java::lang::Object::class$)
+ return true;
+ else if (source->ancestors == NULL || target->ancestors == NULL)
+ {
+ // We need this case when either SOURCE or TARGET has not has
+ // its constant-time tables prepared.
+
+ // At this point we know that TARGET can't be Object, so it is
+ // safe to use that as the termination point.
+ while (source && source != &java::lang::Object::class$)
+ {
+ if (source == target)
+ return true;
+ source = source->getSuperclass();
+ }
+ }
+ else if (source->depth >= target->depth
+ && source->ancestors[source->depth - target->depth] == target)
+ return true;
+
+ return false;
+}
+
+// Interface type checking, the slow way. Returns TRUE if IFACE is a
+// superinterface of SOURCE. This is used when SOURCE is also an interface,
+// or a class with no interface dispatch table.
+jboolean
+_Jv_InterfaceAssignableFrom (jclass source, jclass iface)
+{
+ for (int i = 0; i < source->interface_count; i++)
+ {
+ jclass interface = source->interfaces[i];
+ if (iface == interface
+ || _Jv_InterfaceAssignableFrom (interface, iface))
+ return true;
+ }
+
+ if (!source->isInterface()
+ && source->superclass
+ && _Jv_InterfaceAssignableFrom (source->superclass, iface))
+ return true;
+
+ return false;
+}
+
+jboolean
+_Jv_IsInstanceOf(jobject obj, jclass cl)
+{
+ if (__builtin_expect (!obj, false))
+ return false;
+ return _Jv_IsAssignableFrom (JV_CLASS (obj), cl);
+}
+
+void *
+_Jv_CheckCast (jclass c, jobject obj)
+{
+ if (__builtin_expect
+ (obj != NULL && ! _Jv_IsAssignableFrom(JV_CLASS (obj), c), false))
+ throw new java::lang::ClassCastException
+ ((new java::lang::StringBuffer
+ (obj->getClass()->getName()))->append
+ (JvNewStringUTF(" cannot be cast to "))->append
+ (c->getName())->toString());
+
+ return obj;
+}
+
+void
+_Jv_CheckArrayStore (jobject arr, jobject obj)
+{
+ if (obj)
+ {
+ JvAssert (arr != NULL);
+ jclass elt_class = (JV_CLASS (arr))->getComponentType();
+ if (elt_class == &java::lang::Object::class$)
+ return;
+ jclass obj_class = JV_CLASS (obj);
+ if (__builtin_expect
+ (! _Jv_IsAssignableFrom (obj_class, elt_class), false))
+ throw new java::lang::ArrayStoreException
+ ((new java::lang::StringBuffer
+ (JvNewStringUTF("Cannot store ")))->append
+ (obj_class->getName())->append
+ (JvNewStringUTF(" in array of type "))->append
+ (elt_class->getName())->toString());
+ }
+}
+
+jboolean
+_Jv_IsAssignableFromSlow (jclass source, jclass target)
+{
+ // First, strip arrays.
+ while (target->isArray ())
+ {
+ // If target is array, source must be as well.
+ if (! source->isArray ())
+ return false;
+ target = target->getComponentType ();
+ source = source->getComponentType ();
+ }
+
+ // Quick success.
+ if (target == &java::lang::Object::class$)
+ return true;
+
+ // Ensure that the classes have their supers installed.
+ _Jv_Linker::wait_for_state (source, JV_STATE_LOADING);
+ _Jv_Linker::wait_for_state (target, JV_STATE_LOADING);
+
+ do
+ {
+ if (source == target)
+ return true;
+
+ if (target->isPrimitive () || source->isPrimitive ())
+ return false;
+
+ if (target->isInterface ())
+ {
+ for (int i = 0; i < source->interface_count; ++i)
+ {
+ // We use a recursive call because we also need to
+ // check superinterfaces.
+ if (_Jv_IsAssignableFromSlow (source->getInterface (i), target))
+ return true;
+ }
+ }
+ source = source->getSuperclass ();
+ }
+ while (source != NULL);
+
+ return false;
+}
+
+// Lookup an interface method by name. This is very similar to
+// purpose to _getMethod, but the interfaces are quite different. It
+// might be a good idea for _getMethod to call this function.
+//
+// Return true of the method is found, with the class in FOUND_CLASS
+// and the index in INDEX.
+bool
+_Jv_getInterfaceMethod (jclass search_class, jclass &found_class, int &index,
+ const _Jv_Utf8Const *utf_name,
+ const _Jv_Utf8Const *utf_sig)
+{
+ for (jclass klass = search_class; klass; klass = klass->getSuperclass())
+ {
+ // FIXME: Throw an exception?
+ if (!klass->isInterface ())
+ return false;
+
+ int max = klass->method_count;
+ int offset = 0;
+ for (int i = 0; i < max; ++i)
+ {
+ // Skip <clinit> here, as it will not be in the IDT.
+ if (klass->methods[i].name->first() == '<')
+ continue;
+
+ if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
+ && _Jv_equalUtf8Consts (klass->methods[i].signature, utf_sig))
+ {
+ // Found it.
+ using namespace java::lang::reflect;
+
+ // FIXME: Method must be public. Throw an exception?
+ if (! Modifier::isPublic (klass->methods[i].accflags))
+ break;
+
+ found_class = klass;
+ // Interface method indexes count from 1.
+ index = offset + 1;
+ return true;
+ }
+
+ ++offset;
+ }
+ }
+
+ // If we haven't found a match, and this class is an interface, then
+ // check all the superinterfaces.
+ if (search_class->isInterface())
+ {
+ for (int i = 0; i < search_class->interface_count; ++i)
+ {
+ using namespace java::lang::reflect;
+ bool found = _Jv_getInterfaceMethod (search_class->interfaces[i],
+ found_class, index,
+ utf_name, utf_sig);
+ if (found)
+ return true;
+ }
+ }
+
+ return false;
+}
+
+#ifdef INTERPRETER
+_Jv_MethodBase *
+_Jv_FindInterpreterMethod (jclass klass, jmethodID desired_method)
+{
+ using namespace java::lang::reflect;
+
+ _Jv_InterpClass *iclass
+ = reinterpret_cast<_Jv_InterpClass *> (klass->aux_info);
+ _Jv_MethodBase **imethods = _Jv_GetFirstMethod (iclass);
+
+ for (int i = 0; i < JvNumMethods (klass); ++i)
+ {
+ _Jv_MethodBase *imeth = imethods[i];
+ if (imeth->get_method () == desired_method)
+ return imeth;
+ }
+
+ return NULL;
+}
+#endif
+
+// Return Utf8 name of a class. This function is here for code that
+// can't access klass->name directly.
+_Jv_Utf8Const*
+_Jv_GetClassNameUtf8 (jclass klass)
+{
+ return klass->name;
+}
+
+jclass
+_Jv_GetMethodDeclaringClass (jmethodID method)
+{
+ _Jv_StackTrace::UpdateNCodeMap ();
+ jobject obj = reinterpret_cast<jobject> (method->ncode);
+ return reinterpret_cast<jclass> (_Jv_StackTrace::ncodeMap->get (obj));
+}
+
+jbyte
+_Jv_GetClassState (jclass klass)
+{
+ return klass->state;
+}
+
+#ifdef INTERPRETER
+jstring
+_Jv_GetInterpClassSourceFile (jclass klass)
+{
+ if (_Jv_IsInterpretedClass (klass))
+ {
+ _Jv_InterpClass *iclass =
+ reinterpret_cast<_Jv_InterpClass *> (klass->aux_info);
+ return iclass->source_file_name;
+ }
+
+ return NULL;
+}
+#endif
diff --git a/gcc-4.8/libjava/java/lang/natClassLoader.cc b/gcc-4.8/libjava/java/lang/natClassLoader.cc
new file mode 100644
index 000000000..237e038d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natClassLoader.cc
@@ -0,0 +1,734 @@
+// natClassLoader.cc - Implementation of java.lang.ClassLoader native methods.
+
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/* Author: Kresten Krab Thorup <krab@gnu.org> */
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <execution.h>
+
+#include <java-threads.h>
+#include <java-interp.h>
+
+#include <java/lang/Character.h>
+#include <java/lang/Thread.h>
+#include <java/lang/ClassLoader.h>
+#include <java/lang/InternalError.h>
+#include <java/lang/IllegalAccessError.h>
+#include <java/lang/LinkageError.h>
+#include <java/lang/NoClassDefFoundError.h>
+#include <java/lang/ClassNotFoundException.h>
+#include <java/lang/ClassCircularityError.h>
+#include <java/lang/IncompatibleClassChangeError.h>
+#include <java/lang/ClassFormatError.h>
+#include <java/lang/VirtualMachineError.h>
+#include <java/lang/VMClassLoader.h>
+#include <java/lang/reflect/Modifier.h>
+#include <java/lang/Runtime.h>
+#include <java/lang/StringBuffer.h>
+#include <java/io/Serializable.h>
+#include <java/lang/Cloneable.h>
+#include <java/lang/ref/WeakReference.h>
+#include <java/util/HashMap.h>
+#include <gnu/gcj/runtime/BootClassLoader.h>
+#include <gnu/gcj/runtime/SystemClassLoader.h>
+
+// Size of local hash table.
+#define HASH_LEN 1013
+
+// Hash function for Utf8Consts.
+#define HASH_UTF(Utf) ((Utf)->hash16() % HASH_LEN)
+
+// This records classes which will be registered with the system class
+// loader when it is initialized.
+static jclass system_class_list;
+
+// This is used as the value of system_class_list after we have
+// initialized the system class loader; it lets us know that we should
+// no longer pay attention to the system abi flag.
+#define SYSTEM_LOADER_INITIALIZED ((jclass) -1)
+
+static jclass loaded_classes[HASH_LEN];
+
+// This is the root of a linked list of classes
+static jclass stack_head;
+
+// While bootstrapping we keep a list of classes we found, so that we
+// can register their packages. There aren't many of these so we
+// just keep a small buffer here and abort if we overflow.
+#define BOOTSTRAP_CLASS_LIST_SIZE 20
+static jclass bootstrap_class_list[BOOTSTRAP_CLASS_LIST_SIZE];
+static int bootstrap_index;
+
+
+
+
+jclass
+java::lang::ClassLoader::loadClassFromSig(jstring name)
+{
+ int len = _Jv_GetStringUTFLength (name);
+ char sig[len + 1];
+ _Jv_GetStringUTFRegion (name, 0, name->length(), sig);
+ jclass result = _Jv_FindClassFromSignature(sig, this);
+ if (result == NULL)
+ throw new ClassNotFoundException(name);
+ return result;
+}
+
+
+
+// This tries to find a class in our built-in cache. This cache is
+// used only for classes which are linked in to the executable or
+// loaded via dlopen().
+jclass
+_Jv_FindClassInCache (_Jv_Utf8Const *name)
+{
+ JvSynchronize sync (&java::lang::Class::class$);
+ jint hash = HASH_UTF (name);
+
+ jclass klass;
+ for (klass = loaded_classes[hash]; klass; klass = klass->next_or_version)
+ {
+ if (_Jv_equalUtf8Consts (name, klass->name))
+ break;
+ }
+
+ return klass;
+}
+
+void
+_Jv_UnregisterClass (jclass the_class)
+{
+ // This can happen if the class could not be defined properly.
+ if (! the_class->name)
+ return;
+
+ JvSynchronize sync (&java::lang::Class::class$);
+ jint hash = HASH_UTF(the_class->name);
+
+ jclass *klass = &(loaded_classes[hash]);
+ for ( ; *klass; klass = &((*klass)->next_or_version))
+ {
+ if (*klass == the_class)
+ {
+ *klass = (*klass)->next_or_version;
+ break;
+ }
+ }
+}
+
+// Register an initiating class loader for a given class.
+void
+_Jv_RegisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
+{
+ if (! loader)
+ loader = java::lang::VMClassLoader::bootLoader;
+ if (! loader)
+ {
+ // Very early in the bootstrap process, the Bootstrap classloader may
+ // not exist yet.
+ // FIXME: We could maintain a list of these and come back and register
+ // them later.
+ return;
+ }
+
+ JvSynchronize sync (loader->loadingConstraints);
+
+ using namespace java::lang::ref;
+
+ jstring name = klass->getName();
+ WeakReference *ref = (WeakReference *) loader->loadingConstraints->get (name);
+ if (ref)
+ {
+ jclass constraint = (jclass) ref->get();
+ if (constraint && constraint != klass)
+ throw new java::lang::LinkageError(JvNewStringLatin1("loading constraint violated"));
+ }
+ loader->loadingConstraints->put(name, new WeakReference(klass));
+ loader->loadedClasses->put(name, klass);
+}
+
+// If we found an error while defining an interpreted class, we must
+// go back and unregister it.
+void
+_Jv_UnregisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
+{
+ if (! loader)
+ loader = java::lang::VMClassLoader::bootLoader;
+ loader->loadedClasses->remove(klass->name->toString());
+}
+
+// Check a loading constraint. In particular check that, if there is
+// a constraint for the name of KLASS in LOADER, that it maps to
+// KLASS. If there is no such constraint, make a new one. If the
+// constraint is violated, throw an exception. Do nothing for
+// primitive types.
+void
+_Jv_CheckOrCreateLoadingConstraint (jclass klass,
+ java::lang::ClassLoader *loader)
+{
+ // Strip arrays.
+ while (klass->isArray())
+ klass = klass->getComponentType();
+ // Ignore primitive types.
+ if (klass->isPrimitive())
+ return;
+
+ if (! loader)
+ loader = java::lang::VMClassLoader::bootLoader;
+ jstring name = klass->getName();
+
+ JvSynchronize sync (loader->loadingConstraints);
+
+ using namespace java::lang::ref;
+
+ WeakReference *ref = (WeakReference *) loader->loadingConstraints->get (name);
+ if (ref)
+ {
+ jclass constraint = (jclass) ref->get();
+ if (constraint)
+ {
+ if (klass != constraint)
+ throw new java::lang::LinkageError(JvNewStringLatin1("loading constraint violated"));
+ // Otherwise, all is ok.
+ return;
+ }
+ }
+ // No constraint (or old constraint GC'd). Make a new one.
+ loader->loadingConstraints->put(name, new WeakReference(klass));
+}
+
+
+// Class registration.
+//
+// There are two kinds of functions that register classes.
+//
+// Type 1:
+//
+// These take the address of a class that is in an object file.
+// Because these classes are not allocated on the heap, It is also
+// necessary to register the address of the object for garbage
+// collection. This is used with the "old" C++ ABI and with
+// -findirect-dispatch -fno-indirect-classes.
+//
+// Type 2:
+//
+// These take an initializer struct, create the class, and return the
+// address of the newly created class to their caller. These are used
+// with -findirect-dispatch.
+//
+// _Jv_RegisterClasses() and _Jv_RegisterClasses_Counted() are
+// functions of Type 1, and _Jv_NewClassFromInitializer() and
+// _Jv_RegisterNewClasses() are of Type 2.
+
+
+// Check that the file we're trying to load has been compiled with a
+// compatible version of gcj. In previous versions of libgcj we
+// silently failed to register classes of an incompatible ABI version,
+// but this was totally bogus.
+void
+_Jv_CheckABIVersion (unsigned long value)
+{
+ // We are compatible with GCJ 4.0.0 BC-ABI classes. This release used a
+ // different format for the version ID string.
+ if (value == OLD_GCJ_40_BC_ABI_VERSION)
+ return;
+
+ // The 20 low-end bits are used for the version number.
+ unsigned long version = value & 0xfffff;
+
+ if (value & FLAG_BINARYCOMPAT_ABI)
+ {
+ int abi_rev = version % 100;
+ int abi_ver = version - abi_rev;
+ // We are compatible with abi_rev 0 and 1.
+ if (abi_ver == GCJ_40_BC_ABI_VERSION && abi_rev <= 1)
+ return;
+ }
+ else
+ {
+ // C++ ABI
+ if (version == GCJ_CXX_ABI_VERSION)
+ return;
+
+ // If we've loaded a library that uses the C++ ABI, and this
+ // library is an incompatible version, then we're dead. There's
+ // no point throwing an exception: that will crash.
+ JvFail ("gcj linkage error.\n"
+ "Incorrect library ABI version detected. Aborting.\n");
+ }
+
+ throw new ::java::lang::ClassFormatError
+ (JvNewStringLatin1 ("Library compiled with later ABI version than"
+ " this version of libgcj supports"));
+}
+
+// This function is called many times during startup, before main() is
+// run. At that point in time we know for certain we are running
+// single-threaded, so we don't need to lock when adding classes to the
+// class chain. At all other times, the caller should synchronize on
+// Class::class$.
+void
+_Jv_RegisterClasses (const jclass *classes)
+{
+ _Jv_RegisterLibForGc (classes);
+
+ for (; *classes; ++classes)
+ {
+ jclass klass = *classes;
+
+ _Jv_CheckABIVersion ((unsigned long) klass->next_or_version);
+ (*_Jv_RegisterClassHook) (klass);
+ }
+}
+
+// This is a version of _Jv_RegisterClasses that takes a count.
+void
+_Jv_RegisterClasses_Counted (const jclass * classes, size_t count)
+{
+ size_t i;
+
+ _Jv_RegisterLibForGc (classes);
+
+ for (i = 0; i < count; i++)
+ {
+ jclass klass = classes[i];
+
+ _Jv_CheckABIVersion ((unsigned long) klass->next_or_version);
+ (*_Jv_RegisterClassHook) (klass);
+ }
+}
+
+// Create a class on the heap from an initializer struct.
+inline jclass
+_Jv_NewClassFromInitializer (const char *class_initializer)
+{
+ const unsigned long version
+ = ((unsigned long)
+ ((::java::lang::Class *)class_initializer)->next_or_version);
+ _Jv_CheckABIVersion (version);
+
+ /* We create an instance of java::lang::Class and copy all of its
+ fields except the first word (the vtable pointer) from
+ CLASS_INITIALIZER. This first word is pre-initialized by
+ _Jv_AllocObj, and we don't want to overwrite it. */
+
+ jclass new_class
+ = (jclass)_Jv_AllocObj (sizeof (::java::lang::Class),
+ &::java::lang::Class::class$);
+ const char *src = class_initializer + sizeof (void*);
+ char *dst = (char*)new_class + sizeof (void*);
+ size_t len = (::java::lang::Class::initializerSize (version)
+ - sizeof (void*));
+ memcpy (dst, src, len);
+
+ new_class->engine = &_Jv_soleIndirectCompiledEngine;
+
+ /* FIXME: Way back before the dawn of time, we overloaded the
+ SYNTHETIC class access modifier to mean INTERPRETED. This was a
+ Bad Thing, but it didn't matter then because classes were never
+ marked synthetic. However, it is possible to redeem the
+ situation: _Jv_NewClassFromInitializer is only called from
+ compiled classes, so we clear the INTERPRETED flag. This is a
+ kludge! */
+ new_class->accflags &= ~java::lang::reflect::Modifier::INTERPRETED;
+
+ (*_Jv_RegisterClassHook) (new_class);
+
+ return new_class;
+}
+
+// Called by compiler-generated code at DSO initialization. CLASSES
+// is an array of pairs: the first item of each pair is a pointer to
+// the initialized data that is a class initializer in a DSO, and the
+// second is a pointer to a class reference.
+// _Jv_NewClassFromInitializer() creates the new class (on the Java
+// heap) and we write the address of the new class into the address
+// pointed to by the second word.
+void
+_Jv_RegisterNewClasses (char **classes)
+{
+ _Jv_InitGC ();
+
+ const char *initializer;
+
+ while ((initializer = *classes++))
+ {
+ jclass *class_ptr = (jclass *)*classes++;
+ *class_ptr = _Jv_NewClassFromInitializer (initializer);
+ }
+}
+
+void
+_Jv_RegisterClassHookDefault (jclass klass)
+{
+ // This is bogus, but there doesn't seem to be a better place to do
+ // it.
+ if (! klass->engine)
+ klass->engine = &_Jv_soleCompiledEngine;
+
+ /* FIXME: Way back before the dawn of time, we overloaded the
+ SYNTHETIC class access modifier to mean INTERPRETED. This was a
+ Bad Thing, but it didn't matter then because classes were never
+ marked synthetic. However, it is possible to redeem the
+ situation: _Jv_RegisterClassHookDefault is only called from
+ compiled classes, so we clear the INTERPRETED flag. This is a
+ kludge! */
+ klass->accflags &= ~java::lang::reflect::Modifier::INTERPRETED;
+
+ if (system_class_list != SYSTEM_LOADER_INITIALIZED)
+ {
+ unsigned long abi = (unsigned long) klass->next_or_version;
+ if (! _Jv_ClassForBootstrapLoader (abi))
+ {
+ klass->next_or_version = system_class_list;
+ system_class_list = klass;
+ return;
+ }
+ }
+
+ jint hash = HASH_UTF (klass->name);
+
+ // If the class is already registered, don't re-register it.
+ for (jclass check_class = loaded_classes[hash];
+ check_class != NULL;
+ check_class = check_class->next_or_version)
+ {
+ if (check_class == klass)
+ {
+ // If you get this, it means you have the same class in two
+ // different libraries.
+#define TEXT "Duplicate class registration: "
+ // We size-limit MESSAGE so that you can't trash the stack.
+ char message[200];
+ strcpy (message, TEXT);
+ strncpy (message + sizeof (TEXT) - 1, klass->name->chars(),
+ sizeof (message) - sizeof (TEXT));
+ message[sizeof (message) - 1] = '\0';
+ if (! gcj::runtimeInitialized)
+ JvFail (message);
+ else
+ {
+ java::lang::String *str = JvNewStringLatin1 (message);
+ throw new java::lang::VirtualMachineError (str);
+ }
+ }
+ }
+
+ klass->next_or_version = loaded_classes[hash];
+ loaded_classes[hash] = klass;
+}
+
+// A pointer to a function that actually registers a class.
+// Normally _Jv_RegisterClassHookDefault, but could be some other function
+// that registers the class in e.g. a ClassLoader-local table.
+// Should synchronize on Class:class$ while setting/restore this variable.
+
+void (*_Jv_RegisterClassHook) (jclass cl) = _Jv_RegisterClassHookDefault;
+
+void
+_Jv_RegisterClass (jclass klass)
+{
+ jclass classes[2];
+ classes[0] = klass;
+ classes[1] = NULL;
+ _Jv_RegisterClasses (classes);
+}
+
+// This is used during initialization to register all compiled-in
+// classes that are not part of the core with the system class loader.
+void
+_Jv_CopyClassesToSystemLoader (gnu::gcj::runtime::SystemClassLoader *loader)
+{
+ for (jclass klass = system_class_list;
+ klass;
+ klass = klass->next_or_version)
+ {
+ klass->loader = loader;
+ loader->addClass(klass);
+ }
+ system_class_list = SYSTEM_LOADER_INITIALIZED;
+}
+
+// An internal variant of _Jv_FindClass which simply swallows a
+// NoClassDefFoundError or a ClassNotFoundException. This gives the
+// caller a chance to evaluate the situation and behave accordingly.
+jclass
+_Jv_FindClassNoException (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
+{
+ jclass klass;
+
+ try
+ {
+ klass = _Jv_FindClass(name, loader);
+ }
+ catch ( java::lang::NoClassDefFoundError *ncdfe )
+ {
+ return NULL;
+ }
+ catch ( java::lang::ClassNotFoundException *cnfe )
+ {
+ return NULL;
+ }
+
+ return klass;
+}
+
+jclass
+_Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
+{
+ // See if the class was already loaded by this loader. This handles
+ // initiating loader checks, as we register classes with their
+ // initiating loaders.
+
+ java::lang::ClassLoader *boot = java::lang::VMClassLoader::bootLoader;
+ java::lang::ClassLoader *real = loader;
+ if (! real)
+ real = boot;
+ jstring sname = name->toString();
+ // We might still be bootstrapping the VM, in which case there
+ // won't be a bootstrap class loader yet.
+ jclass klass = real ? real->findLoadedClass (sname) : NULL;
+
+ if (! klass)
+ {
+ if (loader)
+ {
+ // Load using a user-defined loader, jvmspec 5.3.2.
+ // Note that we explicitly must call the single-argument form.
+ klass = loader->loadClass(sname);
+
+ // If "loader" delegated the loadClass operation to another
+ // loader, explicitly register that it is also an initiating
+ // loader of the given class.
+ java::lang::ClassLoader *delegate = (loader == boot
+ ? NULL
+ : loader);
+ if (klass && klass->getClassLoaderInternal () != delegate)
+ _Jv_RegisterInitiatingLoader (klass, loader);
+ }
+ else if (boot)
+ {
+ // Load using the bootstrap loader jvmspec 5.3.1.
+ klass = java::lang::VMClassLoader::loadClass (sname, false);
+
+ // Register that we're an initiating loader.
+ if (klass)
+ _Jv_RegisterInitiatingLoader (klass, 0);
+ }
+ else
+ {
+ // Not even a bootstrap loader, try the built-in cache.
+ klass = _Jv_FindClassInCache (name);
+
+ if (klass)
+ {
+ bool found = false;
+ for (int i = 0; i < bootstrap_index; ++i)
+ {
+ if (bootstrap_class_list[i] == klass)
+ {
+ found = true;
+ break;
+ }
+ }
+ if (! found)
+ {
+ if (bootstrap_index == BOOTSTRAP_CLASS_LIST_SIZE)
+ abort ();
+ bootstrap_class_list[bootstrap_index++] = klass;
+ }
+ }
+ }
+ }
+
+ return klass;
+}
+
+void
+_Jv_RegisterBootstrapPackages ()
+{
+ for (int i = 0; i < bootstrap_index; ++i)
+ java::lang::VMClassLoader::definePackageForNative(bootstrap_class_list[i]->getName());
+}
+
+jclass
+_Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
+ java::lang::ClassLoader *loader)
+{
+ jclass ret = (jclass) _Jv_AllocObject (&java::lang::Class::class$);
+ ret->name = name;
+ ret->superclass = superclass;
+ ret->loader = loader;
+
+ _Jv_RegisterInitiatingLoader (ret, loader);
+
+ return ret;
+}
+
+static _Jv_IDispatchTable *array_idt = NULL;
+static jshort array_depth = 0;
+static jclass *array_ancestors = NULL;
+
+static jclass interfaces[] =
+{
+ &java::lang::Cloneable::class$,
+ &java::io::Serializable::class$
+};
+
+// Create a class representing an array of ELEMENT and store a pointer to it
+// in element->arrayclass. LOADER is the ClassLoader which _initiated_ the
+// instantiation of this array. ARRAY_VTABLE is the vtable to use for the new
+// array class. This parameter is optional.
+void
+_Jv_NewArrayClass (jclass element, java::lang::ClassLoader *loader,
+ _Jv_VTable *array_vtable)
+{
+ JvSynchronize sync (element);
+
+ _Jv_Utf8Const *array_name;
+ int len;
+
+ if (element->arrayclass)
+ return;
+
+ if (element->isPrimitive())
+ {
+ if (element == JvPrimClass (void))
+ throw new java::lang::ClassNotFoundException ();
+ len = 3;
+ }
+ else
+ len = element->name->len() + 5;
+
+ {
+ char signature[len];
+ int index = 0;
+ signature[index++] = '[';
+ // Compute name of array class.
+ if (element->isPrimitive())
+ {
+ signature[index++] = (char) element->method_count;
+ }
+ else
+ {
+ size_t length = element->name->len();
+ const char *const name = element->name->chars();
+ if (name[0] != '[')
+ signature[index++] = 'L';
+ memcpy (&signature[index], name, length);
+ index += length;
+ if (name[0] != '[')
+ signature[index++] = ';';
+ }
+ array_name = _Jv_makeUtf8Const (signature, index);
+ }
+
+ // Create new array class.
+ jclass array_class = _Jv_NewClass (array_name, &java::lang::Object::class$,
+ element->loader);
+
+ // Note that `vtable_method_count' doesn't include the initial
+ // gc_descr slot.
+ int dm_count = java::lang::Object::class$.vtable_method_count;
+
+ // Create a new vtable by copying Object's vtable.
+ _Jv_VTable *vtable;
+ if (array_vtable)
+ vtable = array_vtable;
+ else
+ vtable = _Jv_VTable::new_vtable (dm_count);
+ vtable->clas = array_class;
+ vtable->gc_descr = java::lang::Object::class$.vtable->gc_descr;
+ for (int i = 0; i < dm_count; ++i)
+ vtable->set_method (i, java::lang::Object::class$.vtable->get_method (i));
+
+ array_class->vtable = vtable;
+ array_class->vtable_method_count
+ = java::lang::Object::class$.vtable_method_count;
+
+ // Stash the pointer to the element type.
+ array_class->element_type = element;
+
+ // Register our interfaces.
+ array_class->interfaces = interfaces;
+ array_class->interface_count = sizeof interfaces / sizeof interfaces[0];
+
+ // Since all array classes have the same interface dispatch table, we can
+ // cache one and reuse it. It is not necessary to synchronize this.
+ if (!array_idt)
+ {
+ _Jv_Linker::wait_for_state(array_class, JV_STATE_PREPARED);
+ array_idt = array_class->idt;
+ array_depth = array_class->depth;
+ array_ancestors = array_class->ancestors;
+ }
+ else
+ {
+ array_class->idt = array_idt;
+ array_class->depth = array_depth;
+ array_class->ancestors = array_ancestors;
+ }
+
+ using namespace java::lang::reflect;
+ {
+ // Array classes are "abstract final" and inherit accessibility
+ // from element type, per vmspec 5.3.3.2
+ _Jv_ushort accflags = (Modifier::FINAL | Modifier::ABSTRACT
+ | (element->accflags
+ & (Modifier::PUBLIC | Modifier::PROTECTED
+ | Modifier::PRIVATE)));
+ array_class->accflags = accflags;
+ }
+
+ // An array class has no visible instance fields. "length" is invisible to
+ // reflection.
+
+ // Say this class is initialized and ready to go!
+ array_class->state = JV_STATE_DONE;
+
+ // vmspec, section 5.3.3 describes this
+ if (element->loader != loader)
+ _Jv_RegisterInitiatingLoader (array_class, loader);
+
+ element->arrayclass = array_class;
+}
+
+// These two functions form a stack of classes. When a class is loaded
+// it is pushed onto the stack by the class loader; this is so that
+// StackTrace can quickly determine which classes have been loaded.
+
+jclass
+_Jv_PopClass (void)
+{
+ JvSynchronize sync (&java::lang::Class::class$);
+ if (stack_head)
+ {
+ jclass tmp = stack_head;
+ stack_head = tmp->chain;
+ return tmp;
+ }
+ return NULL;
+}
+
+void
+_Jv_PushClass (jclass k)
+{
+ JvSynchronize sync (&java::lang::Class::class$);
+ jclass tmp = stack_head;
+ stack_head = k;
+ k->chain = tmp;
+}
diff --git a/gcc-4.8/libjava/java/lang/natEcosProcess.cc b/gcc-4.8/libjava/java/lang/natEcosProcess.cc
new file mode 100644
index 000000000..7d8edfb0e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natEcosProcess.cc
@@ -0,0 +1,25 @@
+// natEcosProcess.cc - Native side of eCos processes.
+
+/* Copyright (C) 1998, 1999, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// The configury system needs this file to exist, since we can't
+// really conditionally link files (an autoconf bug). To avoid having
+// an empty translation unit, we make a single method native. FIXME.
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/lang/EcosProcess.h>
+
+void
+java::lang::EcosProcess::destroy (void)
+{
+}
diff --git a/gcc-4.8/libjava/java/lang/natMath.cc b/gcc-4.8/libjava/java/lang/natMath.cc
new file mode 100644
index 000000000..d86d6307d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natMath.cc
@@ -0,0 +1,184 @@
+/* Copyright (C) 1998, 1999, 2000, 2002, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/**
+ * @author Andrew Haley <aph@cygnus.com>
+ * @date Tue Sep 22 1998 */
+/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
+ * "The Java Language Specification", ISBN 0-201-63451-1
+ * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
+ * Status: Believed complete and correct.
+ */
+
+#include <config.h>
+
+#include <java/lang/String.h>
+#include <java/lang/Float.h>
+#include <java/lang/Double.h>
+#include <java/lang/Integer.h>
+#include <java/lang/Long.h>
+#include <java/lang/Math.h>
+#include <gcj/array.h>
+
+#include "fdlibm.h"
+
+jdouble java::lang::Math::cos(jdouble x)
+{
+ return (jdouble)::cos((double)x);
+}
+
+jdouble java::lang::Math::sin(jdouble x)
+{
+ return (jdouble)::sin((double)x);
+}
+
+jdouble java::lang::Math::tan(jdouble x)
+{
+ return (jdouble)::tan((double)x);
+}
+
+jdouble java::lang::Math::asin(jdouble x)
+{
+ return (jdouble)::asin((double)x);
+}
+
+jdouble java::lang::Math::acos(jdouble x)
+{
+ return (jdouble)::acos((double)x);
+}
+
+jdouble java::lang::Math::atan(jdouble x)
+{
+ return (jdouble)::atan((double)x);
+}
+
+jdouble java::lang::Math::atan2(jdouble y, jdouble x)
+{
+ return (jdouble)::atan2((double)y, (double)x);
+}
+
+jdouble java::lang::Math::log(jdouble x)
+{
+ return (jdouble)::log((double)x);
+}
+
+jdouble java::lang::Math::exp(jdouble x)
+{
+ return (jdouble)::exp((double)x);
+}
+
+jdouble java::lang::Math::sqrt(jdouble x)
+{
+ return (jdouble)::sqrt((double)x);
+}
+
+jdouble java::lang::Math::pow(jdouble y, jdouble x)
+{
+ return (jdouble)::pow((double)y, (double)x);
+}
+
+jdouble java::lang::Math::IEEEremainder(jdouble y, jdouble x)
+{
+ return (jdouble)::__ieee754_remainder((double)y, (double)x);
+}
+
+jdouble java::lang::Math::rint(jdouble x)
+{
+ return (jdouble)::rint((double)x);
+}
+
+jdouble java::lang::Math::floor(jdouble x)
+{
+ return (jdouble)::floor((double)x);
+}
+
+jdouble java::lang::Math::ceil(jdouble x)
+{
+ return (jdouble)::ceil((double)x);
+}
+
+jdouble java::lang::Math::log10(jdouble x)
+{
+ return (jdouble)::log10((double)x);
+}
+
+jdouble java::lang::Math::cbrt(jdouble x)
+{
+ return (jdouble)::cbrt((double)x);
+}
+
+jdouble java::lang::Math::cosh(jdouble x)
+{
+ return (jdouble)::cosh((double)x);
+}
+
+jdouble java::lang::Math::expm1(jdouble x)
+{
+ return (jdouble)::expm1((double)x);
+}
+
+jdouble java::lang::Math::hypot(jdouble x, jdouble y)
+{
+ return (jdouble)::hypot((double)x, (double)y);
+}
+
+jdouble java::lang::Math::log1p(jdouble x)
+{
+ return (jdouble)::log1p((double)x);
+}
+
+jdouble java::lang::Math::sinh(jdouble x)
+{
+ return (jdouble)::sinh((double)x);
+}
+
+jdouble java::lang::Math::tanh(jdouble x)
+{
+ return (jdouble)::tanh((double)x);
+}
+
+static inline int
+floatToIntBits (jfloat value)
+{
+ union {
+ jint l;
+ jfloat d;
+ } u;
+ u.d = value;
+ return u.l;
+}
+
+static inline bool
+isNaN (jint bits)
+{
+ jint e = bits & 0x7f800000;
+ jint f = bits & 0x007fffff;
+
+ return e == 0x7f800000 && f != 0;
+}
+
+static inline jlong
+doubleToLongBits (jdouble value)
+{
+ union {
+ jlong l;
+ jdouble d;
+ } u;
+ u.d = value;
+ return u.l;
+}
+
+static inline bool
+isNaN (jlong bits)
+{
+ jlong e = bits & 0x7ff0000000000000LL;
+ jlong f = bits & 0x000fffffffffffffLL;
+
+ return e == 0x7ff0000000000000LL && f != 0LL;
+}
+
diff --git a/gcc-4.8/libjava/java/lang/natObject.cc b/gcc-4.8/libjava/java/lang/natObject.cc
new file mode 100644
index 000000000..87f2044dd
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natObject.cc
@@ -0,0 +1,1457 @@
+// natObject.cc - Implementation of the Object class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <string.h>
+
+#pragma implementation "Object.h"
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/lang/Object.h>
+#include <java-threads.h>
+#include <java-signal.h>
+#include <java/lang/CloneNotSupportedException.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/IllegalMonitorStateException.h>
+#include <java/lang/InterruptedException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/Class.h>
+#include <java/lang/Cloneable.h>
+#include <java/lang/Thread.h>
+
+#ifdef LOCK_DEBUG
+# include <stdio.h>
+#endif
+
+
+
+using namespace java::lang;
+
+// This is used to represent synchronization information.
+struct _Jv_SyncInfo
+{
+#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+ // We only need to keep track of initialization state if we can
+ // possibly finalize this object.
+ bool init;
+#endif
+ _Jv_ConditionVariable_t condition;
+ _Jv_Mutex_t mutex;
+};
+
+
+
+jclass
+java::lang::Object::getClass (void)
+{
+ _Jv_VTable **dt = (_Jv_VTable **) this;
+ return (*dt)->clas;
+}
+
+jint
+java::lang::Object::hashCode (void)
+{
+ return _Jv_HashCode (this);
+}
+
+jobject
+java::lang::Object::clone (void)
+{
+ jclass klass = getClass ();
+ jobject r;
+ jint size;
+
+ // We also clone arrays here. If we put the array code into
+ // __JArray, then we'd have to figure out a way to find the array
+ // vtbl when creating a new array class. This is easier, if uglier.
+ if (klass->isArray())
+ {
+ __JArray *array = (__JArray *) this;
+ jclass comp = getClass()->getComponentType();
+ jint eltsize;
+ if (comp->isPrimitive())
+ {
+ r = _Jv_NewPrimArray (comp, array->length);
+ eltsize = comp->size();
+ }
+ else
+ {
+ r = _Jv_NewObjectArray (array->length, comp, NULL);
+ eltsize = sizeof (jobject);
+ }
+ // We can't use sizeof on __JArray because we must account for
+ // alignment of the element type.
+ size = (_Jv_GetArrayElementFromElementType (array, comp) - (char *) array
+ + array->length * eltsize);
+ }
+ else
+ {
+ if (! java::lang::Cloneable::class$.isAssignableFrom(klass))
+ throw new CloneNotSupportedException;
+
+ size = klass->size();
+ r = _Jv_AllocObject (klass);
+ }
+
+ memcpy ((void *) r, (void *) this, size);
+#ifndef JV_HASH_SYNCHRONIZATION
+ // Guarantee that the locks associated to the two objects are
+ // distinct.
+ r->sync_info = NULL;
+#endif
+ return r;
+}
+
+void
+_Jv_FinalizeObject (jobject obj)
+{
+ // Ignore exceptions. From section 12.6 of the Java Language Spec.
+ try
+ {
+ obj->finalize ();
+ }
+ catch (java::lang::Throwable *t)
+ {
+ // Ignore.
+ }
+}
+
+
+//
+// Synchronization code.
+//
+
+#ifndef JV_HASH_SYNCHRONIZATION
+// This global is used to make sure that only one thread sets an
+// object's `sync_info' field.
+static _Jv_Mutex_t sync_mutex;
+
+// This macro is used to see if synchronization initialization is
+// needed.
+#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+# define INIT_NEEDED(Obj) (! (Obj)->sync_info \
+ || ! ((_Jv_SyncInfo *) ((Obj)->sync_info))->init)
+#else
+# define INIT_NEEDED(Obj) (! (Obj)->sync_info)
+#endif
+
+#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+// If we have to run a destructor for a sync_info member, then this
+// function is registered as a finalizer for the sync_info.
+static void
+finalize_sync_info (jobject obj)
+{
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj;
+#if defined (_Jv_HaveCondDestroy)
+ _Jv_CondDestroy (&si->condition);
+#endif
+#if defined (_Jv_HaveMutexDestroy)
+ _Jv_MutexDestroy (&si->mutex);
+#endif
+ si->init = false;
+}
+#endif
+
+// This is called to initialize the sync_info element of an object.
+void
+java::lang::Object::sync_init (void)
+{
+ _Jv_MutexLock (&sync_mutex);
+ // Check again to see if initialization is needed now that we have
+ // the lock.
+ if (INIT_NEEDED (this))
+ {
+ // We assume there are no pointers in the sync_info
+ // representation.
+ _Jv_SyncInfo *si;
+ // We always create a new sync_info, even if there is already
+ // one available. Any given object can only be finalized once.
+ // If we get here and sync_info is not null, then it has already
+ // been finalized. So if we just reinitialize the old one,
+ // we'll never be able to (re-)destroy the mutex and/or
+ // condition variable.
+ si = (_Jv_SyncInfo *) _Jv_AllocBytes (sizeof (_Jv_SyncInfo));
+ _Jv_MutexInit (&si->mutex);
+ _Jv_CondInit (&si->condition);
+#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+ // Register a finalizer.
+ si->init = true;
+ _Jv_RegisterFinalizer (si, finalize_sync_info);
+#endif
+ sync_info = (jobject) si;
+ }
+ _Jv_MutexUnlock (&sync_mutex);
+}
+
+void
+java::lang::Object::notify (void)
+{
+ if (__builtin_expect (INIT_NEEDED (this), false))
+ sync_init ();
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
+ if (__builtin_expect (_Jv_CondNotify (&si->condition, &si->mutex), false))
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("current thread not owner"));
+}
+
+void
+java::lang::Object::notifyAll (void)
+{
+ if (__builtin_expect (INIT_NEEDED (this), false))
+ sync_init ();
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
+ if (__builtin_expect (_Jv_CondNotifyAll (&si->condition, &si->mutex), false))
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("current thread not owner"));
+}
+
+void
+java::lang::Object::wait (jlong timeout, jint nanos)
+{
+ if (__builtin_expect (INIT_NEEDED (this), false))
+ sync_init ();
+ if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, false))
+ throw new IllegalArgumentException;
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
+ switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos))
+ {
+ case _JV_NOT_OWNER:
+ throw new IllegalMonitorStateException (JvNewStringLatin1
+ ("current thread not owner"));
+ case _JV_INTERRUPTED:
+ if (Thread::interrupted ())
+ throw new InterruptedException;
+ }
+}
+
+//
+// Some runtime code.
+//
+
+// This function is called at system startup to initialize the
+// `sync_mutex'.
+void
+_Jv_InitializeSyncMutex (void)
+{
+ _Jv_MutexInit (&sync_mutex);
+}
+
+void
+_Jv_MonitorEnter (jobject obj)
+{
+#ifndef HANDLE_SEGV
+ if (__builtin_expect (! obj, false))
+ throw new java::lang::NullPointerException;
+#endif
+ if (__builtin_expect (INIT_NEEDED (obj), false))
+ obj->sync_init ();
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
+ _Jv_MutexLock (&si->mutex);
+ // FIXME: In the Windows case, this can return a nonzero error code.
+ // We should turn that into some exception ...
+}
+
+void
+_Jv_MonitorExit (jobject obj)
+{
+ JvAssert (obj);
+ JvAssert (! INIT_NEEDED (obj));
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
+ if (__builtin_expect (_Jv_MutexUnlock (&si->mutex), false))
+ throw new java::lang::IllegalMonitorStateException;
+}
+
+bool
+_Jv_ObjectCheckMonitor (jobject obj)
+{
+ if (__builtin_expect (INIT_NEEDED (obj), false))
+ obj->sync_init ();
+ _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
+ return _Jv_MutexCheckMonitor (&si->mutex);
+}
+
+#else /* JV_HASH_SYNCHRONIZATION */
+
+// FIXME: We shouldn't be calling GC_register_finalizer directly.
+#ifndef HAVE_BOEHM_GC
+# error Hash synchronization currently requires boehm-gc
+// That's actually a bit of a lie: It should also work with the null GC,
+// probably even better than the alternative.
+// To really support alternate GCs here, we would need to widen the
+// interface to finalization, since we sometimes have to register a
+// second finalizer for an object that already has one.
+// We might also want to move the GC interface to a .h file, since
+// the number of procedure call levels involved in some of these
+// operations is already ridiculous, and would become worse if we
+// went through the proper intermediaries.
+#else
+# ifdef LIBGCJ_GC_DEBUG
+# define GC_DEBUG
+# endif
+# include "gc.h"
+#endif
+
+// What follows currenly assumes a Linux-like platform.
+// Some of it specifically assumes X86 or IA64 Linux, though that
+// should be easily fixable.
+
+// A Java monitor implemention based on a table of locks.
+// Each entry in the table describes
+// locks held for objects that hash to that location.
+// This started out as a reimplementation of the technique used in SGIs JVM,
+// for which we obtained permission from SGI.
+// But in fact, this ended up quite different, though some ideas are
+// still shared with the original.
+// It was also influenced by some of the published IBM work,
+// though it also differs in many ways from that.
+// We could speed this up if we had a way to atomically update
+// an entire cache entry, i.e. 2 contiguous words of memory.
+// That would usually be the case with a 32 bit ABI on a 64 bit processor.
+// But we don't currently go out of our way to target those.
+// I don't know how to do much better with a N bit ABI on a processor
+// that can atomically update only N bits at a time.
+// Author: Hans-J. Boehm (Hans_Boehm@hp.com, boehm@acm.org)
+
+#include <limits.h>
+#include <unistd.h> // for usleep, sysconf.
+#include <gcj/javaprims.h>
+#include <sysdep/locks.h>
+#include <java/lang/Thread.h>
+
+// Try to determine whether we are on a multiprocessor, i.e. whether
+// spinning may be profitable.
+// This should really use a suitable autoconf macro.
+// False is the conservative answer, though the right one is much better.
+static bool
+is_mp()
+{
+#ifdef _SC_NPROCESSORS_ONLN
+ long nprocs = sysconf(_SC_NPROCESSORS_ONLN);
+ return (nprocs > 1);
+#else
+ return false;
+#endif
+}
+
+// A call to keep_live(p) forces p to be accessible to the GC
+// at this point.
+inline static void
+keep_live(obj_addr_t p)
+{
+ __asm__ __volatile__("" : : "rm"(p) : "memory");
+}
+
+// Each hash table entry holds a single preallocated "lightweight" lock.
+// In addition, it holds a chain of "heavyweight" locks. Lightweight
+// locks do not support Object.wait(), and are converted to heavyweight
+// status in response to contention. Unlike the SGI scheme, both
+// ligtweight and heavyweight locks in one hash entry can be simultaneously
+// in use. (The SGI scheme requires that we be able to acquire a heavyweight
+// lock on behalf of another thread, and can thus convert a lock we don't
+// hold to heavyweight status. Here we don't insist on that, and thus
+// let the original holder of the lighweight lock keep it.)
+
+struct heavy_lock {
+ void * reserved_for_gc;
+ struct heavy_lock *next; // Hash chain link.
+ // Traced by GC.
+ void * old_client_data; // The only other field traced by GC.
+ GC_finalization_proc old_finalization_proc;
+ obj_addr_t address; // Object to which this lock corresponds.
+ // Should not be traced by GC.
+ // Cleared as heavy_lock is destroyed.
+ // Together with the rest of the heavy lock
+ // chain, this is protected by the lock
+ // bit in the hash table entry to which
+ // the chain is attached.
+ _Jv_SyncInfo si;
+ // The remaining fields save prior finalization info for
+ // the object, which we needed to replace in order to arrange
+ // for cleanup of the lock structure.
+};
+
+#ifdef LOCK_DEBUG
+void
+print_hl_list(heavy_lock *hl)
+{
+ heavy_lock *p = hl;
+ for (; 0 != p; p = p->next)
+ fprintf (stderr, "(hl = %p, addr = %p)", p, (void *)(p -> address));
+}
+#endif /* LOCK_DEBUG */
+
+#if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+// If we have to run a destructor for a sync_info member, then this
+// function could be registered as a finalizer for the sync_info.
+// In fact, we now only invoke it explicitly.
+static inline void
+heavy_lock_finalization_proc (heavy_lock *hl)
+{
+#if defined (_Jv_HaveCondDestroy)
+ _Jv_CondDestroy (&hl->si.condition);
+#endif
+#if defined (_Jv_HaveMutexDestroy)
+ _Jv_MutexDestroy (&hl->si.mutex);
+#endif
+ hl->si.init = false;
+}
+#endif /* defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy) */
+
+// We convert the lock back to lightweight status when
+// we exit, so that a single contention episode doesn't doom the lock
+// forever. But we also need to make sure that lock structures for dead
+// objects are eventually reclaimed. We do that in a an additional
+// finalizer on the underlying object.
+// Note that if the corresponding object is dead, it is safe to drop
+// the heavy_lock structure from its list. It is not necessarily
+// safe to deallocate it, since the unlock code could still be running.
+
+struct hash_entry {
+ volatile obj_addr_t address; // Address of object for which lightweight
+ // k is held.
+ // We assume the 3 low order bits are zero.
+ // With the Boehm collector and bitmap
+ // allocation, objects of size 4 bytes are
+ // broken anyway. Thus this is primarily
+ // a constraint on statically allocated
+ // objects used for synchronization.
+ // This allows us to use the low order
+ // bits as follows:
+# define LOCKED 1 // This hash entry is locked, and its
+ // state may be invalid.
+ // The lock protects both the hash_entry
+ // itself (except for the light_count
+ // and light_thr_id fields, which
+ // are protected by the lightweight
+ // lock itself), and any heavy_monitor
+ // structures attached to it.
+# define HEAVY 2 // Heavyweight locks associated with this
+ // hash entry may be held.
+ // The lightweight entry is still valid,
+ // if the leading bits of the address
+ // field are nonzero.
+ // If the LOCKED bit is clear, then this is
+ // set exactly when heavy_count is > 0 .
+ // Stored redundantly so a single
+ // compare-and-swap works in the easy case.
+ // If HEAVY is not set, it is safe to use
+ // an available lightweight lock entry
+ // without checking if there is an existing
+ // heavyweight lock for the same object.
+ // (There may be one, but it won't be held
+ // or waited for.)
+# define REQUEST_CONVERSION 4 // The lightweight lock is held. But
+ // one or more other threads have tried
+ // to acquire the lock, and hence request
+ // conversion to heavyweight status.
+ // The heavyweight lock is already allocated.
+ // Threads requesting conversion are
+ // waiting on the condition variable associated
+ // with the heavyweight lock.
+ // Not used for conversion due to
+ // Object.wait() calls.
+# define FLAGS (LOCKED | HEAVY | REQUEST_CONVERSION)
+ volatile _Jv_ThreadId_t light_thr_id;
+ // Thr_id of holder of lightweight lock.
+ // Only updated by lightweight lock holder.
+ // Must be recognizably invalid if the
+ // lightweight lock is not held.
+# define INVALID_THREAD_ID 0 // Works for Linux?
+ // If zero doesn't work, we have to
+ // initialize lock table.
+ volatile unsigned short light_count;
+ // Number of times the lightweight lock
+ // is held minus one. Zero if lightweight
+ // lock is not held. Only updated by
+ // lightweight lock holder or, in one
+ // case, while holding the LOCKED bit in
+ // a state in which there can be no
+ // lightweight lock holder.
+ unsigned short heavy_count; // Total number of times heavyweight locks
+ // associated with this hash entry are held
+ // or waiting to be acquired.
+ // Threads in wait() are included eventhough
+ // they have temporarily released the lock.
+ // Protected by LOCKED bit.
+ // Threads requesting conversion to heavyweight
+ // status are also included.
+ struct heavy_lock * heavy_locks;
+ // Chain of heavy locks. Protected
+ // by lockbit for he. Locks may
+ // remain allocated here even if HEAVY
+ // is not set and heavy_count is 0.
+ // If a lightweight and heavyweight lock
+ // correspond to the same address, the
+ // lightweight lock is the right one.
+};
+
+#ifndef JV_SYNC_TABLE_SZ
+# define JV_SYNC_TABLE_SZ 2048 // Must be power of 2.
+#endif
+
+hash_entry light_locks[JV_SYNC_TABLE_SZ];
+
+#define JV_SYNC_HASH(p) (((long)p ^ ((long)p >> 10)) & (JV_SYNC_TABLE_SZ-1))
+
+// Note that the light_locks table is scanned conservatively by the
+// collector. It is essential the the heavy_locks field is scanned.
+// Currently the address field may or may not cause the associated object
+// to be retained, depending on whether flag bits are set.
+// This means that we can conceivable get an unexpected deadlock if
+// 1) Object at address A is locked.
+// 2) The client drops A without unlocking it.
+// 3) Flag bits in the address entry are set, so the collector reclaims
+// the object at A.
+// 4) A is reallocated, and an attempt is made to lock the result.
+// This could be fixed by scanning light_locks in a more customized
+// manner that ignores the flag bits. But it can only happen with hand
+// generated semi-illegal .class files, and then it doesn't present a
+// security hole.
+
+#ifdef LOCK_DEBUG
+ void print_he(hash_entry *he)
+ {
+ fprintf(stderr, "lock hash entry = %p, index = %d, address = 0x%lx\n"
+ "\tlight_thr_id = 0x%lx, light_count = %d, "
+ "heavy_count = %d\n\theavy_locks:", he,
+ he - light_locks, (unsigned long)(he -> address),
+ (unsigned long)(he -> light_thr_id),
+ he -> light_count, he -> heavy_count);
+ print_hl_list(he -> heavy_locks);
+ fprintf(stderr, "\n");
+ }
+#endif /* LOCK_DEBUG */
+
+#ifdef LOCK_LOG
+ // Log locking operations. For debugging only.
+ // Logging is intended to be as unintrusive as possible.
+ // Log calls are made after an operation completes, and hence
+ // may not completely reflect actual synchronization ordering.
+ // The choice of events to log is currently a bit haphazard.
+ // The intent is that if we have to track down any other bugs
+ // inthis code, we extend the logging as appropriate.
+ typedef enum
+ {
+ ACQ_LIGHT, ACQ_LIGHT2, ACQ_HEAVY, ACQ_HEAVY2, PROMOTE, REL_LIGHT,
+ REL_HEAVY, REQ_CONV, PROMOTE2, WAIT_START, WAIT_END, NOTIFY, NOTIFY_ALL
+ } event_type;
+
+ struct lock_history
+ {
+ event_type tp;
+ obj_addr_t addr; // Often includes flags.
+ _Jv_ThreadId_t thr;
+ };
+
+ const int LOG_SIZE = 128; // Power of 2.
+
+ lock_history lock_log[LOG_SIZE];
+
+ volatile obj_addr_t log_next = 0;
+ // Next location in lock_log.
+ // Really an int, but we need compare_and_swap.
+
+ static void add_log_entry(event_type t, obj_addr_t a, _Jv_ThreadId_t th)
+ {
+ obj_addr_t my_entry;
+ obj_addr_t next_entry;
+ do
+ {
+ my_entry = log_next;
+ next_entry = ((my_entry + 1) & (LOG_SIZE - 1));
+ }
+ while (!compare_and_swap(&log_next, my_entry, next_entry));
+ lock_log[my_entry].tp = t;
+ lock_log[my_entry].addr = a;
+ lock_log[my_entry].thr = th;
+ }
+
+# define LOG(t, a, th) add_log_entry(t, a, th)
+#else /* !LOCK_LOG */
+# define LOG(t, a, th)
+#endif
+
+static bool mp = false; // Known multiprocesssor.
+
+// Wait for roughly 2^n units, touching as little memory as possible.
+static void
+spin(unsigned n)
+{
+ const unsigned MP_SPINS = 10;
+ const unsigned YIELDS = 4;
+ const unsigned SPINS_PER_UNIT = 30;
+ const unsigned MIN_SLEEP_USECS = 2001; // Shorter times spin under Linux.
+ const unsigned MAX_SLEEP_USECS = 200000;
+ static unsigned spin_limit = 0;
+ static unsigned yield_limit = YIELDS;
+ static bool spin_initialized = false;
+
+ if (!spin_initialized)
+ {
+ mp = is_mp();
+ if (mp)
+ {
+ spin_limit = MP_SPINS;
+ yield_limit = MP_SPINS + YIELDS;
+ }
+ spin_initialized = true;
+ }
+ if (n < spin_limit)
+ {
+ unsigned i = SPINS_PER_UNIT << n;
+ for (; i > 0; --i)
+ __asm__ __volatile__("");
+ }
+ else if (n < yield_limit)
+ {
+ _Jv_ThreadYield();
+ }
+ else
+ {
+ unsigned duration = MIN_SLEEP_USECS << (n - yield_limit);
+ if (n >= 15 + yield_limit || duration > MAX_SLEEP_USECS)
+ duration = MAX_SLEEP_USECS;
+ _Jv_platform_usleep(duration);
+ }
+}
+
+// Wait for a hash entry to become unlocked.
+static void
+wait_unlocked (hash_entry *he)
+{
+ unsigned i = 0;
+ while (he -> address & LOCKED)
+ spin (i++);
+}
+
+// Return the heavy lock for addr if it was already allocated.
+// The client passes in the appropriate hash_entry.
+// We hold the lock for he.
+static inline heavy_lock *
+find_heavy (obj_addr_t addr, hash_entry *he)
+{
+ heavy_lock *hl = he -> heavy_locks;
+ while (hl != 0 && hl -> address != addr) hl = hl -> next;
+ return hl;
+}
+
+// Unlink the heavy lock for the given address from its hash table chain.
+// Dies miserably and conspicuously if it's not there, since that should
+// be impossible.
+static inline void
+unlink_heavy (obj_addr_t addr, hash_entry *he)
+{
+ heavy_lock **currentp = &(he -> heavy_locks);
+ while ((*currentp) -> address != addr)
+ currentp = &((*currentp) -> next);
+ *currentp = (*currentp) -> next;
+}
+
+// Finalization procedure for objects that have associated heavy-weight
+// locks. This may replace the real finalization procedure.
+static void
+heavy_lock_obj_finalization_proc (void *obj, void *cd)
+{
+ heavy_lock *hl = (heavy_lock *)cd;
+
+// This only addresses misalignment of statics, not heap objects. It
+// works only because registering statics for finalization is a noop,
+// no matter what the least significant bits are.
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)obj & ~((obj_addr_t)0x7);
+#else
+ obj_addr_t addr = (obj_addr_t)obj;
+#endif
+ hash_entry *he = light_locks + JV_SYNC_HASH(addr);
+ obj_addr_t he_address = (he -> address & ~LOCKED);
+
+ // Acquire lock bit immediately. It's possible that the hl was already
+ // destroyed while we were waiting for the finalizer to run. If it
+ // was, the address field was set to zero. The address filed access is
+ // protected by the lock bit to ensure that we do this exactly once.
+ // The lock bit also protects updates to the objects finalizer.
+ while (!compare_and_swap(&(he -> address), he_address, he_address|LOCKED ))
+ {
+ // Hash table entry is currently locked. We can't safely
+ // touch the list of heavy locks.
+ wait_unlocked(he);
+ he_address = (he -> address & ~LOCKED);
+ }
+ if (0 == hl -> address)
+ {
+ // remove_all_heavy destroyed hl, and took care of the real finalizer.
+ release_set(&(he -> address), he_address);
+ return;
+ }
+ JvAssert(hl -> address == addr);
+ GC_finalization_proc old_finalization_proc = hl -> old_finalization_proc;
+ if (old_finalization_proc != 0)
+ {
+ // We still need to run a real finalizer. In an idealized
+ // world, in which people write thread-safe finalizers, that is
+ // likely to require synchronization. Thus we reregister
+ // ourselves as the only finalizer, and simply run the real one.
+ // Thus we don't clean up the lock yet, but we're likely to do so
+ // on the next GC cycle.
+ // It's OK if remove_all_heavy actually destroys the heavy lock,
+ // since we've updated old_finalization_proc, and thus the user's
+ // finalizer won't be rerun.
+ void * old_client_data = hl -> old_client_data;
+ hl -> old_finalization_proc = 0;
+ hl -> old_client_data = 0;
+# ifdef HAVE_BOEHM_GC
+ GC_REGISTER_FINALIZER_NO_ORDER(obj, heavy_lock_obj_finalization_proc, cd, 0, 0);
+# endif
+ release_set(&(he -> address), he_address);
+ old_finalization_proc(obj, old_client_data);
+ }
+ else
+ {
+ // The object is really dead, although it's conceivable that
+ // some thread may still be in the process of releasing the
+ // heavy lock. Unlink it and, if necessary, register a finalizer
+ // to destroy sync_info.
+ unlink_heavy(addr, he);
+ hl -> address = 0; // Don't destroy it again.
+ release_set(&(he -> address), he_address);
+# if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+ // Make sure lock is not held and then destroy condvar and mutex.
+ _Jv_MutexLock(&(hl->si.mutex));
+ _Jv_MutexUnlock(&(hl->si.mutex));
+ heavy_lock_finalization_proc (hl);
+# endif
+ }
+}
+
+// We hold the lock on he, and heavy_count is 0.
+// Release the lock by replacing the address with new_address_val.
+// Remove all heavy locks on the list. Note that the only possible way
+// in which a lock may still be in use is if it's in the process of
+// being unlocked.
+// FIXME: Why does this unlock the hash entry? I think that
+// could now be done more cleanly in MonitorExit.
+static void
+remove_all_heavy (hash_entry *he, obj_addr_t new_address_val)
+{
+ JvAssert(he -> heavy_count == 0);
+ JvAssert(he -> address & LOCKED);
+ heavy_lock *hl = he -> heavy_locks;
+ he -> heavy_locks = 0;
+ // We would really like to release the lock bit here. Unfortunately, that
+ // Creates a race between or finalizer removal, and the potential
+ // reinstallation of a new finalizer as a new heavy lock is created.
+ // This may need to be revisited.
+ for(; 0 != hl; hl = hl->next)
+ {
+ obj_addr_t obj = hl -> address;
+ JvAssert(0 != obj); // If this was previously finalized, it should no
+ // longer appear on our list.
+ hl -> address = 0; // Finalization proc might still see it after we
+ // finish.
+ GC_finalization_proc old_finalization_proc = hl -> old_finalization_proc;
+ void * old_client_data = hl -> old_client_data;
+# ifdef HAVE_BOEHM_GC
+ // Remove our finalization procedure.
+ // Reregister the clients if applicable.
+ GC_REGISTER_FINALIZER_NO_ORDER((GC_PTR)obj, old_finalization_proc,
+ old_client_data, 0, 0);
+ // Note that our old finalization procedure may have been
+ // previously determined to be runnable, and may still run.
+ // FIXME - direct dependency on boehm GC.
+# endif
+# if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+ // Wait for a possible lock holder to finish unlocking it.
+ // This is only an issue if we have to explicitly destroy the mutex
+ // or possibly if we have to destroy a condition variable that is
+ // still being notified.
+ _Jv_MutexLock(&(hl->si.mutex));
+ _Jv_MutexUnlock(&(hl->si.mutex));
+ heavy_lock_finalization_proc (hl);
+# endif
+ }
+ release_set(&(he -> address), new_address_val);
+}
+
+// We hold the lock on he and heavy_count is 0.
+// We release it by replacing the address field with new_address_val.
+// Remove all heavy locks on the list if the list is sufficiently long.
+// This is called periodically to avoid very long lists of heavy locks.
+// This seems to otherwise become an issue with SPECjbb, for example.
+static inline void
+maybe_remove_all_heavy (hash_entry *he, obj_addr_t new_address_val)
+{
+ static const int max_len = 5;
+ heavy_lock *hl = he -> heavy_locks;
+
+ for (int i = 0; i < max_len; ++i)
+ {
+ if (0 == hl)
+ {
+ release_set(&(he -> address), new_address_val);
+ return;
+ }
+ hl = hl -> next;
+ }
+ remove_all_heavy(he, new_address_val);
+}
+
+// Allocate a new heavy lock for addr, returning its address.
+// Assumes we already have the hash_entry locked, and there
+// is currently no lightweight or allocated lock for addr.
+// We register a finalizer for addr, which is responsible for
+// removing the heavy lock when addr goes away, in addition
+// to the responsibilities of any prior finalizer.
+// This unfortunately holds the lock bit for the hash entry while it
+// allocates two objects (on for the finalizer).
+// It would be nice to avoid that somehow ...
+static heavy_lock *
+alloc_heavy(obj_addr_t addr, hash_entry *he)
+{
+ heavy_lock * hl = (heavy_lock *) _Jv_AllocTraceTwo(sizeof (heavy_lock));
+
+ hl -> address = addr;
+ _Jv_MutexInit (&(hl -> si.mutex));
+ _Jv_CondInit (&(hl -> si.condition));
+# if defined (_Jv_HaveCondDestroy) || defined (_Jv_HaveMutexDestroy)
+ hl->si.init = true; // needed ?
+# endif
+ hl -> next = he -> heavy_locks;
+ he -> heavy_locks = hl;
+ // FIXME: The only call that cheats and goes directly to the GC interface.
+# ifdef HAVE_BOEHM_GC
+ GC_REGISTER_FINALIZER_NO_ORDER(
+ (void *)addr, heavy_lock_obj_finalization_proc,
+ hl, &hl->old_finalization_proc,
+ &hl->old_client_data);
+# endif /* HAVE_BOEHM_GC */
+ return hl;
+}
+
+// Return the heavy lock for addr, allocating if necessary.
+// Assumes we have the cache entry locked, and there is no lightweight
+// lock for addr.
+static heavy_lock *
+get_heavy(obj_addr_t addr, hash_entry *he)
+{
+ heavy_lock *hl = find_heavy(addr, he);
+ if (0 == hl)
+ hl = alloc_heavy(addr, he);
+ return hl;
+}
+
+void
+_Jv_MonitorEnter (jobject obj)
+{
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)obj & ~((obj_addr_t)FLAGS);
+#else
+ obj_addr_t addr = (obj_addr_t)obj;
+#endif
+ obj_addr_t address;
+ unsigned hash = JV_SYNC_HASH(addr);
+ hash_entry * he = light_locks + hash;
+ _Jv_ThreadId_t self = _Jv_ThreadSelf();
+ unsigned count;
+ const unsigned N_SPINS = 18;
+
+ // We need to somehow check that addr is not NULL on the fast path.
+ // A very predictable
+ // branch on a register value is probably cheaper than dereferencing addr.
+ // We could also permanently lock the NULL entry in the hash table.
+ // But it's not clear that's cheaper either.
+ if (__builtin_expect(!addr, false))
+ throw new java::lang::NullPointerException;
+
+ JvAssert(!(addr & FLAGS));
+retry:
+ if (__builtin_expect(compare_and_swap(&(he -> address),
+ 0, addr),true))
+ {
+ JvAssert(he -> light_thr_id == INVALID_THREAD_ID);
+ JvAssert(he -> light_count == 0);
+ he -> light_thr_id = self;
+ // Count fields are set correctly. Heavy_count was also zero,
+ // but can change asynchronously.
+ // This path is hopefully both fast and the most common.
+ LOG(ACQ_LIGHT, addr, self);
+ return;
+ }
+ address = he -> address;
+ if ((address & ~(HEAVY | REQUEST_CONVERSION)) == addr)
+ {
+ if (he -> light_thr_id == self)
+ {
+ // We hold the lightweight lock, and it's for the right
+ // address.
+ count = he -> light_count;
+ if (count == USHRT_MAX)
+ {
+ // I think most JVMs don't check for this.
+ // But I'm not convinced I couldn't turn this into a security
+ // hole, even with a 32 bit counter.
+ throw new java::lang::IllegalMonitorStateException(
+ JvNewStringLatin1("maximum monitor nesting level exceeded"));
+ }
+ he -> light_count = count + 1;
+ return;
+ }
+ else
+ {
+ JvAssert(!(address & LOCKED));
+ // Lightweight lock is held, but by somone else.
+ // Spin a few times. This avoids turning this into a heavyweight
+ // lock if the current holder is about to release it.
+ // FIXME: Does this make sense on a uniprocessor, where
+ // it actually yields? It's probably cheaper to convert.
+ for (unsigned int i = 0; i < N_SPINS; ++i)
+ {
+ if ((he -> address & ~LOCKED) != address) goto retry;
+ spin(i);
+ }
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED ))
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+ heavy_lock *hl = get_heavy(addr, he);
+ ++ (he -> heavy_count);
+ // The hl lock acquisition can't block for long, since it can
+ // only be held by other threads waiting for conversion, and
+ // they, like us, drop it quickly without blocking.
+ _Jv_MutexLock(&(hl->si.mutex));
+ JvAssert(he -> address == address | LOCKED );
+ release_set(&(he -> address), (address | REQUEST_CONVERSION | HEAVY));
+ // release lock on he
+ LOG(REQ_CONV, (address | REQUEST_CONVERSION | HEAVY), self);
+ // If _Jv_CondWait is interrupted, we ignore the interrupt, but
+ // restore the thread's interrupt status flag when done.
+ jboolean interrupt_flag = false;
+ while ((he -> address & ~FLAGS) == (address & ~FLAGS))
+ {
+ // Once converted, the lock has to retain heavyweight
+ // status, since heavy_count > 0.
+ int r = _Jv_CondWait (&(hl->si.condition), &(hl->si.mutex), 0, 0);
+ if (r == _JV_INTERRUPTED)
+ {
+ interrupt_flag = true;
+ Thread::currentThread()->interrupt_flag = false;
+ }
+ }
+ if (interrupt_flag)
+ Thread::currentThread()->interrupt_flag = interrupt_flag;
+ keep_live(addr);
+ // Guarantee that hl doesn't get unlinked by finalizer.
+ // This is only an issue if the client fails to release
+ // the lock, which is unlikely.
+ JvAssert(he -> address & HEAVY);
+ // Lock has been converted, we hold the heavyweight lock,
+ // heavy_count has been incremented.
+ return;
+ }
+ }
+ obj_addr_t was_heavy = (address & HEAVY);
+ if ((address & LOCKED) ||
+ !compare_and_swap(&(he -> address), address, (address | LOCKED )))
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+ if ((address & ~(HEAVY | REQUEST_CONVERSION)) == 0)
+ {
+ // Either was_heavy is true, or something changed out from under us,
+ // since the initial test for 0 failed.
+ JvAssert(!(address & REQUEST_CONVERSION));
+ // Can't convert a nonexistent lightweight lock.
+ heavy_lock *hl;
+ hl = (was_heavy? find_heavy(addr, he) : 0);
+ // The CAS succeeded, so was_heavy is still accurate.
+ if (0 == hl)
+ {
+ // It is OK to use the lighweight lock, since either the
+ // heavyweight lock does not exist, or none of the
+ // heavyweight locks are currently in use. Future threads
+ // trying to acquire the lock will see the lightweight
+ // one first and use that.
+ he -> light_thr_id = self; // OK, since nobody else can hold
+ // light lock or do this at the same time.
+ JvAssert(he -> light_count == 0);
+ JvAssert(was_heavy == (he -> address & HEAVY));
+ release_set(&(he -> address), (addr | was_heavy));
+ LOG(ACQ_LIGHT2, addr | was_heavy, self);
+ }
+ else
+ {
+ // Must use heavy lock.
+ ++ (he -> heavy_count);
+ JvAssert(0 == (address & ~HEAVY));
+ release_set(&(he -> address), HEAVY);
+ LOG(ACQ_HEAVY, addr | was_heavy, self);
+ _Jv_MutexLock(&(hl->si.mutex));
+ keep_live(addr);
+ }
+ return;
+ }
+ // Lightweight lock is held, but does not correspond to this object.
+ // We hold the lock on the hash entry, and he -> address can't
+ // change from under us. Neither can the chain of heavy locks.
+ {
+ JvAssert(0 == he -> heavy_count || (address & HEAVY));
+ heavy_lock *hl = get_heavy(addr, he);
+ ++ (he -> heavy_count);
+ release_set(&(he -> address), address | HEAVY);
+ LOG(ACQ_HEAVY2, address | HEAVY, self);
+ _Jv_MutexLock(&(hl->si.mutex));
+ keep_live(addr);
+ }
+}
+
+
+void
+_Jv_MonitorExit (jobject obj)
+{
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)obj & ~((obj_addr_t)FLAGS);
+#else
+ obj_addr_t addr = (obj_addr_t)obj;
+#endif
+ _Jv_ThreadId_t self = _Jv_ThreadSelf();
+ unsigned hash = JV_SYNC_HASH(addr);
+ hash_entry * he = light_locks + hash;
+ _Jv_ThreadId_t light_thr_id;
+ unsigned count;
+ obj_addr_t address;
+
+retry:
+ light_thr_id = he -> light_thr_id;
+ // Unfortunately, it turns out we always need to read the address
+ // first. Even if we are going to update it with compare_and_swap,
+ // we need to reset light_thr_id, and that's not safe unless we know
+ // that we hold the lock.
+ address = he -> address;
+ // First the (relatively) fast cases:
+ if (__builtin_expect(light_thr_id == self, true))
+ // Above must fail if addr == 0 .
+ {
+ count = he -> light_count;
+ if (__builtin_expect((address & ~HEAVY) == addr, true))
+ {
+ if (count != 0)
+ {
+ // We held the lightweight lock all along. Thus the values
+ // we saw for light_thr_id and light_count must have been valid.
+ he -> light_count = count - 1;
+ return;
+ }
+ else
+ {
+ // We hold the lightweight lock once.
+ he -> light_thr_id = INVALID_THREAD_ID;
+ if (compare_and_swap_release(&(he -> address), address,
+ address & HEAVY))
+ {
+ LOG(REL_LIGHT, address & HEAVY, self);
+ return;
+ }
+ else
+ {
+ he -> light_thr_id = light_thr_id; // Undo prior damage.
+ goto retry;
+ }
+ }
+ }
+ // else lock is not for this address, conversion is requested,
+ // or the lock bit in the address field is set.
+ }
+ else
+ {
+ if (__builtin_expect(!addr, false))
+ throw new java::lang::NullPointerException;
+ if ((address & ~(HEAVY | REQUEST_CONVERSION)) == addr)
+ {
+# ifdef LOCK_DEBUG
+ fprintf(stderr, "Lightweight lock held by other thread\n\t"
+ "light_thr_id = 0x%lx, self = 0x%lx, "
+ "address = 0x%lx, heavy_count = %d, pid = %d\n",
+ light_thr_id, self, (unsigned long)address,
+ he -> heavy_count, getpid());
+ print_he(he);
+ for(;;) {}
+# endif
+ // Someone holds the lightweight lock for this object, and
+ // it can't be us.
+ throw new java::lang::IllegalMonitorStateException(
+ JvNewStringLatin1("current thread not owner"));
+ }
+ else
+ count = he -> light_count;
+ }
+ if (address & LOCKED)
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+ // Now the unlikely cases.
+ // We do know that:
+ // - Address is set, and doesn't contain the LOCKED bit.
+ // - If address refers to the same object as addr, then he -> light_thr_id
+ // refers to this thread, and count is valid.
+ // - The case in which we held the lightweight lock has been
+ // completely handled, except for the REQUEST_CONVERSION case.
+ //
+ if ((address & ~FLAGS) == addr)
+ {
+ // The lightweight lock is assigned to this object.
+ // Thus we must be in the REQUEST_CONVERSION case.
+ if (0 != count)
+ {
+ // Defer conversion until we exit completely.
+ he -> light_count = count - 1;
+ return;
+ }
+ JvAssert(he -> light_thr_id == self);
+ JvAssert(address & REQUEST_CONVERSION);
+ // Conversion requested
+ // Convert now.
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED))
+ goto retry;
+ heavy_lock *hl = find_heavy(addr, he);
+ JvAssert (0 != hl);
+ // Requestor created it.
+ he -> light_count = 0;
+ JvAssert(he -> heavy_count > 0);
+ // was incremented by requestor.
+ _Jv_MutexLock(&(hl->si.mutex));
+ // Release the he lock after acquiring the mutex.
+ // Otherwise we can accidentally
+ // notify a thread that has already seen a heavyweight
+ // lock.
+ he -> light_thr_id = INVALID_THREAD_ID;
+ release_set(&(he -> address), HEAVY);
+ LOG(PROMOTE, address, self);
+ // lightweight lock now unused.
+ _Jv_CondNotifyAll(&(hl->si.condition), &(hl->si.mutex));
+ _Jv_MutexUnlock(&(hl->si.mutex));
+ // heavy_count was already incremented by original requestor.
+ keep_live(addr);
+ return;
+ }
+ // lightweight lock not for this object.
+ JvAssert(!(address & LOCKED));
+ JvAssert((address & ~FLAGS) != addr);
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED))
+ goto retry;
+ heavy_lock *hl = find_heavy(addr, he);
+ if (NULL == hl)
+ {
+# ifdef LOCK_DEBUG
+ fprintf(stderr, "Failed to find heavyweight lock for addr 0x%lx"
+ " pid = %d\n", addr, getpid());
+ print_he(he);
+ for(;;) {}
+# endif
+ release_set(&(he -> address), address);
+ throw new java::lang::IllegalMonitorStateException(
+ JvNewStringLatin1("current thread not owner"));
+ }
+ JvAssert(address & HEAVY);
+ count = he -> heavy_count;
+ JvAssert(count > 0);
+ --count;
+ he -> heavy_count = count;
+ if (0 == count)
+ {
+ const unsigned test_freq = 16; // Power of 2
+ static volatile unsigned counter = 0;
+ unsigned my_counter = counter;
+
+ counter = my_counter + 1;
+ if (my_counter%test_freq == 0)
+ {
+ // Randomize the interval length a bit.
+ counter = my_counter + (my_counter >> 4) % (test_freq/2);
+ // Unlock mutex first, to avoid self-deadlock, or worse.
+ _Jv_MutexUnlock(&(hl->si.mutex));
+ maybe_remove_all_heavy(he, address &~HEAVY);
+ // release lock bit, preserving
+ // REQUEST_CONVERSION
+ // and object address.
+ }
+ else
+ {
+ release_set(&(he -> address), address &~HEAVY);
+ _Jv_MutexUnlock(&(hl->si.mutex));
+ // Unlock after releasing the lock bit, so that
+ // we don't switch to another thread prematurely.
+ }
+ }
+ else
+ {
+ release_set(&(he -> address), address);
+ _Jv_MutexUnlock(&(hl->si.mutex));
+ }
+ LOG(REL_HEAVY, addr, self);
+ keep_live(addr);
+}
+
+// Return false if obj's monitor is held by the current thread
+bool
+_Jv_ObjectCheckMonitor (jobject obj)
+{
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)obj & ~((obj_addr_t)FLAGS);
+#else
+ obj_addr_t addr = (obj_addr_t)obj;
+#endif
+ obj_addr_t address;
+ unsigned hash = JV_SYNC_HASH(addr);
+ hash_entry * he = light_locks + hash;
+
+ JvAssert(!(addr & FLAGS));
+ address = he -> address;
+ // Try it the easy way first:
+ if (address == 0) return true;
+ _Jv_ThreadId_t self = _Jv_ThreadSelf();
+ if ((address & ~(HEAVY | REQUEST_CONVERSION)) == addr)
+ // Fails if entry is LOCKED.
+ // I can't asynchronously become or stop being the holder.
+ return he -> light_thr_id != self;
+retry:
+ // Acquire the hash table entry lock
+ address &= ~LOCKED;
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED))
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+
+ bool not_mine;
+
+ if ((address & ~FLAGS) == addr)
+ not_mine = (he -> light_thr_id != self);
+ else
+ {
+ heavy_lock* hl = find_heavy(addr, he);
+ not_mine = hl ? _Jv_MutexCheckMonitor(&hl->si.mutex) : true;
+ }
+
+ release_set(&(he -> address), address); // unlock hash entry
+ return not_mine;
+}
+
+// The rest of these are moderately thin veneers on _Jv_Cond ops.
+// The current version of Notify might be able to make the pthread
+// call AFTER releasing the lock, thus saving some context switches??
+
+void
+java::lang::Object::wait (jlong timeout, jint nanos)
+{
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)this & ~((obj_addr_t)FLAGS);
+#else
+ obj_addr_t addr = (obj_addr_t)this;
+#endif
+ _Jv_ThreadId_t self = _Jv_ThreadSelf();
+ unsigned hash = JV_SYNC_HASH(addr);
+ hash_entry * he = light_locks + hash;
+ unsigned count;
+ obj_addr_t address;
+ heavy_lock *hl;
+
+ if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, false))
+ throw new IllegalArgumentException;
+retry:
+ address = he -> address;
+ address &= ~LOCKED;
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED))
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+ // address did not have the lock bit set. We now hold the lock on he.
+ if ((address & ~FLAGS) == addr)
+ {
+ // Convert to heavyweight.
+ if (he -> light_thr_id != self)
+ {
+# ifdef LOCK_DEBUG
+ fprintf(stderr, "Found wrong lightweight lock owner in wait "
+ "address = 0x%lx pid = %d\n", address, getpid());
+ print_he(he);
+ for(;;) {}
+# endif
+ release_set(&(he -> address), address);
+ throw new IllegalMonitorStateException (JvNewStringLatin1
+ ("current thread not owner"));
+ }
+ count = he -> light_count;
+ hl = get_heavy(addr, he);
+ he -> light_count = 0;
+ he -> heavy_count += count + 1;
+ for (unsigned i = 0; i <= count; ++i)
+ _Jv_MutexLock(&(hl->si.mutex));
+ // Again release the he lock after acquiring the mutex.
+ he -> light_thr_id = INVALID_THREAD_ID;
+ release_set(&(he -> address), HEAVY); // lightweight lock now unused.
+ LOG(PROMOTE2, addr, self);
+ if (address & REQUEST_CONVERSION)
+ _Jv_CondNotifyAll (&(hl->si.condition), &(hl->si.mutex));
+ // Since we do this before we do a CondWait, we guarantee that
+ // threads waiting on requested conversion are awoken before
+ // a real wait on the same condition variable.
+ // No other notification can occur in the interim, since
+ // we hold the heavy lock, and notifications are made
+ // without acquiring it.
+ }
+ else /* We should hold the heavyweight lock. */
+ {
+ hl = find_heavy(addr, he);
+ release_set(&(he -> address), address);
+ if (0 == hl)
+ {
+# ifdef LOCK_DEBUG
+ fprintf(stderr, "Couldn't find heavy lock in wait "
+ "addr = 0x%lx pid = %d\n", addr, getpid());
+ print_he(he);
+ for(;;) {}
+# endif
+ throw new IllegalMonitorStateException (JvNewStringLatin1
+ ("current thread not owner"));
+ }
+ JvAssert(address & HEAVY);
+ }
+ LOG(WAIT_START, addr, self);
+ switch (_Jv_CondWait (&(hl->si.condition), &(hl->si.mutex), timeout, nanos))
+ {
+ case _JV_NOT_OWNER:
+ throw new IllegalMonitorStateException (JvNewStringLatin1
+ ("current thread not owner"));
+ case _JV_INTERRUPTED:
+ if (Thread::interrupted ())
+ throw new InterruptedException;
+ }
+ LOG(WAIT_END, addr, self);
+}
+
+void
+java::lang::Object::notify (void)
+{
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)this & ~((obj_addr_t)FLAGS);
+#else
+ obj_addr_t addr = (obj_addr_t)this;
+#endif
+ _Jv_ThreadId_t self = _Jv_ThreadSelf();
+ unsigned hash = JV_SYNC_HASH(addr);
+ hash_entry * he = light_locks + hash;
+ heavy_lock *hl;
+ obj_addr_t address;
+ int result;
+
+retry:
+ address = ((he -> address) & ~LOCKED);
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED))
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+ if ((address & ~FLAGS) == addr && he -> light_thr_id == self)
+ {
+ // We hold lightweight lock. Since it has not
+ // been inflated, there are no waiters.
+ release_set(&(he -> address), address); // unlock
+ return;
+ }
+ hl = find_heavy(addr, he);
+ // Hl can't disappear since we point to the underlying object.
+ // It's important that we release the lock bit before the notify, since
+ // otherwise we will try to wake up the target while we still hold the
+ // bit. This results in lock bit contention, which we don't handle
+ // terribly well.
+ release_set(&(he -> address), address); // unlock
+ if (0 == hl)
+ {
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("current thread not owner"));
+ return;
+ }
+ // We know that we hold the heavyweight lock at this point,
+ // and the lightweight lock is not in use.
+ result = _Jv_CondNotify(&(hl->si.condition), &(hl->si.mutex));
+ LOG(NOTIFY, addr, self);
+ keep_live(addr);
+ if (__builtin_expect (result, 0))
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("current thread not owner"));
+}
+
+void
+java::lang::Object::notifyAll (void)
+{
+#ifdef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+ obj_addr_t addr = (obj_addr_t)this & ~((obj_addr_t)FLAGS);
+#else
+ obj_addr_t addr = (obj_addr_t)this;
+#endif
+ _Jv_ThreadId_t self = _Jv_ThreadSelf();
+ unsigned hash = JV_SYNC_HASH(addr);
+ hash_entry * he = light_locks + hash;
+ heavy_lock *hl;
+ obj_addr_t address;
+ int result;
+
+retry:
+ address = (he -> address) & ~LOCKED;
+ if (!compare_and_swap(&(he -> address), address, address | LOCKED))
+ {
+ wait_unlocked(he);
+ goto retry;
+ }
+ hl = find_heavy(addr, he);
+ if ((address & ~FLAGS) == addr && he -> light_thr_id == self)
+ {
+ // We hold lightweight lock. Since it has not
+ // been inflated, there are no waiters.
+ release_set(&(he -> address), address); // unlock
+ return;
+ }
+ release_set(&(he -> address), address); // unlock
+ if (0 == hl)
+ {
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("current thread not owner"));
+ }
+ result = _Jv_CondNotifyAll(&(hl->si.condition), &(hl->si.mutex));
+ LOG(NOTIFY_ALL, addr, self);
+ if (__builtin_expect (result, 0))
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("current thread not owner"));
+}
+
+// This is declared in Java code and in Object.h.
+// It should never be called with JV_HASH_SYNCHRONIZATION
+void
+java::lang::Object::sync_init (void)
+{
+ throw new IllegalMonitorStateException(JvNewStringLatin1
+ ("internal error: sync_init"));
+}
+
+// This is called on startup and declared in Object.h.
+// For now we just make it a no-op.
+void
+_Jv_InitializeSyncMutex (void)
+{
+}
+
+#endif /* JV_HASH_SYNCHRONIZATION */
+
diff --git a/gcc-4.8/libjava/java/lang/natPosixProcess.cc b/gcc-4.8/libjava/java/lang/natPosixProcess.cc
new file mode 100644
index 000000000..fbd3f6a0a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natPosixProcess.cc
@@ -0,0 +1,515 @@
+// natPosixProcess.cc - Native side of POSIX process code.
+
+/* Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_RESOURCE_H
+#include <sys/resource.h>
+#endif
+#include <signal.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <pthread.h>
+
+#include <posix.h>
+#include <posix-threads.h>
+#include <jvm.h>
+
+#include <java/lang/PosixProcess$ProcessManager.h>
+#include <java/lang/PosixProcess.h>
+#include <java/lang/IllegalThreadStateException.h>
+#include <java/lang/InternalError.h>
+#include <java/lang/InterruptedException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/Thread.h>
+#include <java/io/File.h>
+#include <java/io/FileDescriptor.h>
+#include <gnu/java/nio/channels/FileChannelImpl.h>
+#include <java/io/FileInputStream.h>
+#include <java/io/FileOutputStream.h>
+#include <java/io/IOException.h>
+#include <java/lang/OutOfMemoryError.h>
+#include <java/lang/PosixProcess$EOFInputStream.h>
+
+using gnu::java::nio::channels::FileChannelImpl;
+using namespace java::lang;
+
+extern char **environ;
+
+static char *
+new_string (jstring string)
+{
+ jsize s = _Jv_GetStringUTFLength (string);
+ char *buf = (char *) _Jv_Malloc (s + 1);
+ _Jv_GetStringUTFRegion (string, 0, string->length(), buf);
+ buf[s] = '\0';
+ return buf;
+}
+
+static void
+cleanup (char **args, char **env, char *path)
+{
+ if (args != NULL)
+ {
+ for (int i = 0; args[i] != NULL; ++i)
+ _Jv_Free (args[i]);
+ _Jv_Free (args);
+ }
+ if (env != NULL)
+ {
+ for (int i = 0; env[i] != NULL; ++i)
+ _Jv_Free (env[i]);
+ _Jv_Free (env);
+ }
+ if (path != NULL)
+ _Jv_Free (path);
+}
+
+// This makes our error handling a bit simpler and it lets us avoid
+// thread bugs where we close a possibly-reopened file descriptor for
+// a second time.
+static void
+myclose (int &fd)
+{
+ if (fd != -1)
+ close (fd);
+ fd = -1;
+}
+
+namespace
+{
+ struct ProcessManagerInternal
+ {
+ int pipe_ends[2];
+ struct sigaction old_sigaction;
+ };
+}
+
+
+// There has to be a signal handler in order to be able to
+// sigwait() on SIGCHLD. The information passed is ignored as it
+// will be recovered by the waitpid() call.
+static void
+#ifdef SA_SIGINFO
+sigchld_handler (int sig, siginfo_t *si, void *third)
+#else
+sigchld_handler (int sig)
+#endif
+{
+ if (PosixProcess$ProcessManager::nativeData != NULL)
+ {
+ ProcessManagerInternal *pmi =
+ (ProcessManagerInternal *)PosixProcess$ProcessManager::nativeData;
+ char c = 0;
+ ::write(pmi->pipe_ends[1], &c, 1);
+ if (pmi->old_sigaction.sa_handler != SIG_DFL
+ && pmi->old_sigaction.sa_handler != SIG_IGN)
+ {
+#ifdef SA_SIGINFO
+ if ((pmi->old_sigaction.sa_flags & SA_SIGINFO) != 0)
+ pmi->old_sigaction.sa_sigaction(sig, si, third);
+ else
+#endif
+ (*pmi->old_sigaction.sa_handler)(sig);
+ }
+ }
+}
+
+
+// Get ready to enter the main reaper thread loop.
+void
+java::lang::PosixProcess$ProcessManager::init ()
+{
+ // The nativeData is static to avoid races installing the signal
+ // handler in the case that it is chained.
+ if (nativeData == NULL )
+ {
+ ProcessManagerInternal *pmi =
+ (ProcessManagerInternal *)JvAllocBytes(sizeof(ProcessManagerInternal));
+
+ if (0 != ::pipe(pmi->pipe_ends))
+ goto error;
+
+ // Make writing non-blocking so that the signal handler will
+ // never block.
+ int fl = ::fcntl(pmi->pipe_ends[1], F_GETFL);
+ ::fcntl(pmi->pipe_ends[1], F_SETFL, fl | O_NONBLOCK);
+
+ nativeData = (::gnu::gcj::RawDataManaged *)pmi;
+
+ // SIGCHLD is blocked in all threads in posix-threads.cc.
+ // Setup the SIGCHLD handler.
+ struct sigaction sa;
+ memset (&sa, 0, sizeof (sa));
+
+#ifdef SA_SIGINFO
+ sa.sa_sigaction = sigchld_handler;
+ // We only want signals when the things exit.
+ sa.sa_flags = SA_NOCLDSTOP | SA_SIGINFO;
+#else
+ sa.sa_handler = sigchld_handler;
+ // We only want signals when the things exit.
+ sa.sa_flags = SA_NOCLDSTOP;
+#endif
+
+ if (-1 == sigaction (SIGCHLD, &sa, &pmi->old_sigaction))
+ goto error;
+ }
+ // All OK.
+ return;
+
+error:
+ throw new InternalError (JvNewStringUTF (strerror (errno)));
+}
+
+void
+java::lang::PosixProcess$ProcessManager::waitForSignal ()
+{
+ // Wait for SIGCHLD
+ _Jv_UnBlockSigchld();
+ ProcessManagerInternal *pmi = (ProcessManagerInternal *)nativeData;
+
+ // Try to read multiple (64) notifications in one go.
+ char c[64];
+ ::read(pmi->pipe_ends[0], c, sizeof (c));
+
+ _Jv_BlockSigchld();
+
+ return;
+}
+
+jboolean java::lang::PosixProcess$ProcessManager::reap (PosixProcess *p)
+{
+ pid_t rv;
+
+ // Try to get the return code from the child process.
+ int status;
+ rv = ::waitpid ((pid_t)p->pid, &status, WNOHANG);
+ if (rv == -1)
+ throw new InternalError (JvNewStringUTF (strerror (errno)));
+
+ if (rv == 0)
+ return false; // No children to wait for.
+
+ JvSynchronize sync (p);
+ p->status = WIFEXITED (status) ? WEXITSTATUS (status) : -1;
+ p->state = PosixProcess::STATE_TERMINATED;
+ p->processTerminationCleanup();
+ p->notifyAll ();
+ return true;
+}
+
+void
+java::lang::PosixProcess$ProcessManager::signalReaper ()
+{
+ ProcessManagerInternal *pmi = (ProcessManagerInternal *)nativeData;
+ char c = 0;
+ ::write(pmi->pipe_ends[1], &c, 1);
+ // Ignore errors. If EPIPE the reaper has already exited.
+}
+
+void
+java::lang::PosixProcess::nativeDestroy ()
+{
+ int c = ::kill ((pid_t) pid, SIGKILL);
+ if (c == 0)
+ return;
+ // kill() failed.
+ throw new InternalError (JvNewStringUTF (strerror (errno)));
+}
+
+void
+java::lang::PosixProcess::nativeSpawn ()
+{
+ using namespace java::io;
+
+ // Initialize all locals here to make cleanup simpler.
+ char **args = NULL;
+ char **env = NULL;
+ char *path = NULL;
+ int inp[2], outp[2], errp[2], msgp[2];
+ inp[0] = -1;
+ inp[1] = -1;
+ outp[0] = -1;
+ outp[1] = -1;
+ errp[0] = -1;
+ errp[1] = -1;
+ msgp[0] = -1;
+ msgp[1] = -1;
+ errorStream = NULL;
+ inputStream = NULL;
+ outputStream = NULL;
+
+ try
+ {
+ // Transform arrays to native form.
+ args = (char **) _Jv_Malloc ((progarray->length + 1) * sizeof (char *));
+
+ // Initialize so we can gracefully recover.
+ jstring *elts = elements (progarray);
+ for (int i = 0; i <= progarray->length; ++i)
+ args[i] = NULL;
+
+ for (int i = 0; i < progarray->length; ++i)
+ args[i] = new_string (elts[i]);
+ args[progarray->length] = NULL;
+
+ if (envp)
+ {
+ bool need_path = true;
+ bool need_ld_library_path = true;
+ int i;
+
+ // Preserve PATH and LD_LIBRARY_PATH unless specified
+ // explicitly. We need three extra slots. Potentially PATH
+ // and LD_LIBRARY_PATH will be added plus the NULL
+ // termination.
+ env = (char **) _Jv_Malloc ((envp->length + 3) * sizeof (char *));
+ elts = elements (envp);
+
+ // Initialize so we can gracefully recover.
+ for (i = 0; i < envp->length + 3; ++i)
+ env[i] = NULL;
+
+ for (i = 0; i < envp->length; ++i)
+ {
+ env[i] = new_string (elts[i]);
+ if (!strncmp (env[i], "PATH=", sizeof("PATH=")))
+ need_path = false;
+ if (!strncmp (env[i], "LD_LIBRARY_PATH=",
+ sizeof("LD_LIBRARY_PATH=")))
+ need_ld_library_path = false;
+ }
+
+ if (need_path)
+ {
+ char *path_val = getenv ("PATH");
+ if (path_val)
+ {
+ env[i] = (char *) _Jv_Malloc (strlen (path_val) +
+ sizeof("PATH=") + 1);
+ strcpy (env[i], "PATH=");
+ strcat (env[i], path_val);
+ i++;
+ }
+ }
+ if (need_ld_library_path)
+ {
+ char *path_val = getenv ("LD_LIBRARY_PATH");
+ if (path_val)
+ {
+ env[i] =
+ (char *) _Jv_Malloc (strlen (path_val) +
+ sizeof("LD_LIBRARY_PATH=") + 1);
+ strcpy (env[i], "LD_LIBRARY_PATH=");
+ strcat (env[i], path_val);
+ i++;
+ }
+ }
+ env[i] = NULL;
+ }
+
+ // We allocate this here because we can't call malloc() after
+ // the fork.
+ if (dir != NULL)
+ path = new_string (dir->getPath ());
+
+ // Create pipes for I/O. MSGP is for communicating exec()
+ // status. If redirecting stderr to stdout, we don't need to
+ // create the ERRP pipe.
+ if (pipe (inp) || pipe (outp) || pipe (msgp)
+ || fcntl (msgp[1], F_SETFD, FD_CLOEXEC))
+ throw new IOException (JvNewStringUTF (strerror (errno)));
+ if (! redirect && pipe (errp))
+ throw new IOException (JvNewStringUTF (strerror (errno)));
+
+ // We create the streams before forking. Otherwise if we had an
+ // error while creating the streams we would have run the child
+ // with no way to communicate with it.
+ if (redirect)
+ errorStream = PosixProcess$EOFInputStream::instance;
+ else
+ errorStream =
+ new FileInputStream (new
+ FileChannelImpl (errp[0],
+ FileChannelImpl::READ));
+ inputStream =
+ new FileInputStream (new
+ FileChannelImpl (inp[0], FileChannelImpl::READ));
+ outputStream =
+ new FileOutputStream (new FileChannelImpl (outp[1],
+ FileChannelImpl::WRITE));
+
+ // We don't use vfork() because that would cause the local
+ // environment to be set by the child.
+
+ // Use temporary for fork result to avoid dirtying an extra page.
+ pid_t pid_tmp;
+ if ((pid_tmp = fork ()) == -1)
+ throw new IOException (JvNewStringUTF (strerror (errno)));
+
+ if (pid_tmp == 0)
+ {
+ // Child process, so remap descriptors, chdir and exec.
+ if (envp)
+ environ = env;
+
+ // We ignore errors from dup2 because they should never occur.
+ dup2 (outp[0], 0);
+ dup2 (inp[1], 1);
+ dup2 (redirect ? inp[1] : errp[1], 2);
+
+ // Use close and not myclose -- we're in the child, and we
+ // aren't worried about the possible race condition.
+ close (inp[0]);
+ close (inp[1]);
+ if (! redirect)
+ {
+ close (errp[0]);
+ close (errp[1]);
+ }
+ close (outp[0]);
+ close (outp[1]);
+ close (msgp[0]);
+
+ // Change directory.
+ if (path != NULL)
+ {
+ if (chdir (path) != 0)
+ {
+ char c = errno;
+ write (msgp[1], &c, 1);
+ _exit (127);
+ }
+ }
+ // Make sure all file descriptors are closed. In
+ // multi-threaded programs, there is a race between when a
+ // descriptor is obtained, when we can set FD_CLOEXEC, and
+ // fork(). If the fork occurs before FD_CLOEXEC is set, the
+ // descriptor would leak to the execed process if we did not
+ // manually close it. So that is what we do. Since we
+ // close all the descriptors, it is redundant to set
+ // FD_CLOEXEC on them elsewhere.
+ int max_fd;
+#ifdef HAVE_GETRLIMIT
+ rlimit rl;
+ int rv = getrlimit(RLIMIT_NOFILE, &rl);
+ if (rv == 0)
+ max_fd = rl.rlim_max - 1;
+ else
+ max_fd = 1024 - 1;
+#else
+ max_fd = 1024 - 1;
+#endif
+ while(max_fd > 2)
+ {
+ if (max_fd != msgp[1])
+ close (max_fd);
+ max_fd--;
+ }
+ // Make sure that SIGCHLD is unblocked for the new process.
+ sigset_t mask;
+ sigemptyset (&mask);
+ sigaddset (&mask, SIGCHLD);
+ sigprocmask (SIG_UNBLOCK, &mask, NULL);
+
+ execvp (args[0], args);
+
+ // Send the parent notification that the exec failed.
+ char c = errno;
+ write (msgp[1], &c, 1);
+ _exit (127);
+ }
+
+ // Parent. Close extra file descriptors and mark ours as
+ // close-on-exec.
+ pid = (jlong) pid_tmp;
+
+ myclose (outp[0]);
+ myclose (inp[1]);
+ if (! redirect)
+ myclose (errp[1]);
+ myclose (msgp[1]);
+
+ char c;
+ int r = read (msgp[0], &c, 1);
+ if (r == -1)
+ throw new IOException (JvNewStringUTF (strerror (errno)));
+ else if (r != 0)
+ throw new IOException (JvNewStringUTF (strerror (c)));
+ }
+ catch (java::lang::Throwable *thrown)
+ {
+ // Do some cleanup we only do on failure. If a stream object
+ // has been created, we must close the stream itself (to avoid
+ // duplicate closes when the stream object is collected).
+ // Otherwise we simply close the underlying file descriptor.
+ // We ignore errors here as they are uninteresting.
+
+ try
+ {
+ if (inputStream != NULL)
+ inputStream->close ();
+ else
+ myclose (inp[0]);
+ }
+ catch (java::lang::Throwable *ignore)
+ {
+ }
+
+ try
+ {
+ if (outputStream != NULL)
+ outputStream->close ();
+ else
+ myclose (outp[1]);
+ }
+ catch (java::lang::Throwable *ignore)
+ {
+ }
+
+ try
+ {
+ if (errorStream != NULL)
+ errorStream->close ();
+ else if (! redirect)
+ myclose (errp[0]);
+ }
+ catch (java::lang::Throwable *ignore)
+ {
+ }
+
+ // These are potentially duplicate, but it doesn't matter due to
+ // the use of myclose.
+ myclose (outp[0]);
+ myclose (inp[1]);
+ if (! redirect)
+ myclose (errp[1]);
+ myclose (msgp[1]);
+
+ exception = thrown;
+ }
+
+ myclose (msgp[0]);
+ cleanup (args, env, path);
+}
diff --git a/gcc-4.8/libjava/java/lang/natRuntime.cc b/gcc-4.8/libjava/java/lang/natRuntime.cc
new file mode 100644
index 000000000..02842b1df
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natRuntime.cc
@@ -0,0 +1,323 @@
+// natRuntime.cc - Implementation of native side of Runtime class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-props.h>
+#include <java-stack.h>
+#include <java/lang/Long.h>
+#include <java/lang/Runtime.h>
+#include <java/lang/UnknownError.h>
+#include <java/lang/UnsatisfiedLinkError.h>
+#include <gnu/gcj/runtime/FinalizerThread.h>
+#include <java/io/File.h>
+#include <java/util/TimeZone.h>
+#include <java/lang/StringBuffer.h>
+#include <java/lang/Process.h>
+#include <java/lang/ClassLoader.h>
+
+// It is convenient and safe to simply include all of these.
+#include <java/lang/Win32Process.h>
+#include <java/lang/EcosProcess.h>
+#include <java/lang/PosixProcess.h>
+
+#include <jni.h>
+
+#ifdef HAVE_PWD_H
+#include <pwd.h>
+#endif
+#include <errno.h>
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#ifdef HAVE_LANGINFO_H
+#include <langinfo.h>
+#endif
+
+
+
+#ifdef USE_LTDL
+#include <ltdl.h>
+
+/* FIXME: we don't always need this. The next libtool will let us use
+ AC_LTDL_PREOPEN to see if we do. */
+extern const lt_dlsymlist lt_preloaded_symbols[1] = { { 0, 0 } };
+
+struct lookup_data
+{
+ const char *symname;
+ void *result;
+};
+
+static int
+find_symbol (lt_dlhandle handle, lt_ptr data)
+{
+ lookup_data *ld = (lookup_data *) data;
+ ld->result = lt_dlsym (handle, ld->symname);
+ return ld->result != NULL;
+}
+
+void *
+_Jv_FindSymbolInExecutable (const char *symname)
+{
+ lookup_data data;
+ data.symname = symname;
+ data.result = NULL;
+ lt_dlforeach (find_symbol, (lt_ptr) &data);
+ return data.result;
+}
+
+#else
+
+void *
+_Jv_FindSymbolInExecutable (const char *)
+{
+ return NULL;
+}
+
+#endif /* USE_LTDL */
+
+
+
+void
+java::lang::Runtime::runFinalizationForExit ()
+{
+ if (finalizeOnExit)
+ _Jv_RunAllFinalizers ();
+}
+
+void
+java::lang::Runtime::exitInternal (jint status)
+{
+ // Make status right for Unix. This is perhaps strange.
+ if (status < 0 || status > 255)
+ status = 255;
+
+ ::exit (status);
+}
+
+jlong
+java::lang::Runtime::freeMemory (void)
+{
+ return _Jv_GCFreeMemory ();
+}
+
+void
+java::lang::Runtime::gc (void)
+{
+ _Jv_RunGC ();
+}
+
+#ifdef USE_LTDL
+// List of names for JNI_OnLoad.
+static const char *onload_names[] = _Jv_platform_onload_names;
+#endif
+
+void
+java::lang::Runtime::_load (jstring path, jboolean do_search)
+{
+ JvSynchronize sync (this);
+ using namespace java::lang;
+#ifdef USE_LTDL
+ jint len = _Jv_GetStringUTFLength (path);
+ char buf[len + 1 + strlen (_Jv_platform_solib_prefix)
+ + strlen (_Jv_platform_solib_suffix)];
+ int offset = 0;
+ if (do_search)
+ {
+ strcpy (buf, _Jv_platform_solib_prefix);
+ offset = strlen (_Jv_platform_solib_prefix);
+ }
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), &buf[offset]);
+ buf[offset + total] = '\0';
+
+ char *lib_name = buf;
+
+ if (do_search)
+ {
+ ClassLoader *look = _Jv_StackTrace::GetFirstNonSystemClassLoader ();
+
+ if (look != NULL)
+ {
+ // Don't include solib prefix in string passed to
+ // findLibrary.
+ jstring name = look->findLibrary(JvNewStringUTF(&buf[offset]));
+ if (name != NULL)
+ {
+ len = _Jv_GetStringUTFLength (name);
+ lib_name = (char *) _Jv_AllocBytes(len + 1);
+ total = JvGetStringUTFRegion (name, 0,
+ name->length(), lib_name);
+ lib_name[total] = '\0';
+ // Don't append suffixes any more; we have the full file
+ // name.
+ do_search = false;
+ }
+ }
+ }
+
+ lt_dlhandle h;
+ // FIXME: make sure path is absolute.
+ {
+ // Synchronize on java.lang.Class. This is to protect the class chain from
+ // concurrent modification by class registration calls which may be run
+ // during the dlopen().
+ JvSynchronize sync (&java::lang::Class::class$);
+ h = do_search ? lt_dlopenext (lib_name) : lt_dlopen (lib_name);
+ }
+ if (h == NULL)
+ {
+ const char *msg = lt_dlerror ();
+ jstring str = JvNewStringLatin1 (lib_name);
+ str = str->concat (JvNewStringLatin1 (": "));
+ str = str->concat (JvNewStringLatin1 (msg));
+ throw new UnsatisfiedLinkError (str);
+ }
+
+ // Search for JNI_OnLoad function.
+ void *onload = NULL;
+ const char **name = onload_names;
+ while (*name != NULL)
+ {
+ onload = lt_dlsym (h, *name);
+ if (onload != NULL)
+ break;
+ ++name;
+ }
+
+ if (onload != NULL)
+ {
+ JavaVM *vm = _Jv_GetJavaVM ();
+ if (vm == NULL)
+ {
+ // FIXME: what?
+ return;
+ }
+
+ // Push a new frame so that JNI_OnLoad will get the right class
+ // loader if it calls FindClass.
+ ::java::lang::ClassLoader *loader
+ = _Jv_StackTrace::GetFirstNonSystemClassLoader();
+ JNIEnv *env = _Jv_GetJNIEnvNewFrameWithLoader (loader);
+ jint vers = ((jint (JNICALL *) (JavaVM *, void *)) onload) (vm, NULL);
+ _Jv_JNI_PopSystemFrame (env);
+ if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2
+ && vers != JNI_VERSION_1_4)
+ {
+ // FIXME: unload the library.
+ throw new UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from JNI_OnLoad"));
+ }
+ }
+#else
+ throw new UnknownError
+ (JvNewStringLatin1 (do_search
+ ? "Runtime.loadLibrary not implemented"
+ : "Runtime.load not implemented"));
+#endif /* USE_LTDL */
+}
+
+jboolean
+java::lang::Runtime::loadLibraryInternal (jstring lib)
+{
+ JvSynchronize sync (this);
+ using namespace java::lang;
+#ifdef USE_LTDL
+ jint len = _Jv_GetStringUTFLength (lib);
+ char buf[len + 1];
+ jsize total = JvGetStringUTFRegion (lib, 0, lib->length(), buf);
+ buf[total] = '\0';
+ // FIXME: make sure path is absolute.
+ lt_dlhandle h = lt_dlopenext (buf);
+ return h != NULL;
+#else
+ return false;
+#endif /* USE_LTDL */
+}
+
+void
+java::lang::Runtime::init (void)
+{
+#ifdef USE_LTDL
+ lt_dlinit ();
+ // Set module load path.
+ lt_dlsetsearchpath (_Jv_Module_Load_Path);
+ // Make sure self is opened.
+ lt_dlopen (NULL);
+#endif
+}
+
+void
+java::lang::Runtime::runFinalization (void)
+{
+ gnu::gcj::runtime::FinalizerThread::finalizerReady ();
+}
+
+jlong
+java::lang::Runtime::totalMemory (void)
+{
+ return _Jv_GCTotalMemory ();
+}
+
+jlong
+java::lang::Runtime::maxMemory (void)
+{
+ // We don't have a maximum. FIXME: we might if we ask the GC for
+ // one.
+ return Long::MAX_VALUE;
+}
+
+void
+java::lang::Runtime::traceInstructions (jboolean)
+{
+ // Do nothing.
+}
+
+void
+java::lang::Runtime::traceMethodCalls (jboolean)
+{
+ // Do nothing.
+}
+
+java::lang::Process *
+java::lang::Runtime::execInternal (jstringArray cmd,
+ jstringArray env,
+ java::io::File *dir)
+{
+ return new _Jv_platform_process (cmd, env, dir, false);
+}
+
+jint
+java::lang::Runtime::availableProcessors (void)
+{
+ // FIXME: find the real value.
+ return 1;
+}
+
+jstring
+java::lang::Runtime::nativeGetLibname (jstring pathname, jstring libname)
+{
+ java::lang::StringBuffer *sb = new java::lang::StringBuffer ();
+ sb->append(pathname);
+ if (pathname->length() > 0)
+ sb->append (_Jv_platform_file_separator);
+
+ sb->append (JvNewStringLatin1 (_Jv_platform_solib_prefix));
+ sb->append(libname);
+ sb->append (JvNewStringLatin1 (_Jv_platform_solib_suffix));
+
+ return sb->toString();
+}
diff --git a/gcc-4.8/libjava/java/lang/natString.cc b/gcc-4.8/libjava/java/lang/natString.cc
new file mode 100644
index 000000000..75006a7c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natString.cc
@@ -0,0 +1,1068 @@
+// natString.cc - Implementation of java.lang.String native methods.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2007, 2008 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <java/lang/Character.h>
+#include <java/lang/CharSequence.h>
+#include <java/lang/String.h>
+#include <java/lang/IndexOutOfBoundsException.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/StringIndexOutOfBoundsException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/StringBuffer.h>
+#include <java/io/ByteArrayOutputStream.h>
+#include <java/io/CharConversionException.h>
+#include <java/io/OutputStreamWriter.h>
+#include <java/io/ByteArrayInputStream.h>
+#include <java/io/InputStreamReader.h>
+#include <java/util/Locale.h>
+#include <gnu/gcj/convert/UnicodeToBytes.h>
+#include <gnu/gcj/convert/BytesToUnicode.h>
+#include <gnu/gcj/runtime/StringBuffer.h>
+#include <jvm.h>
+
+static jstring* strhash = NULL;
+static int strhash_count = 0; /* Number of slots used in strhash. */
+static int strhash_size = 0; /* Number of slots available in strhash.
+ * Assumed be power of 2! */
+
+// Some defines used by toUpperCase / toLowerCase.
+#define ESSET 0x00df
+#define CAPITAL_S 0x0053
+#define SMALL_I 0x0069
+#define CAPITAL_I_WITH_DOT 0x0130
+#define SMALL_DOTLESS_I 0x0131
+#define CAPITAL_I 0x0049
+
+#define DELETED_STRING ((jstring)(~0))
+#define SET_STRING_IS_INTERNED(STR) /* nothing */
+
+#define UNMASK_PTR(Ptr) (((unsigned long) (Ptr)) & ~0x01)
+#define MASK_PTR(Ptr) (((unsigned long) (Ptr)) | 0x01)
+#define PTR_MASKED(Ptr) (((unsigned long) (Ptr)) & 0x01)
+
+/* Find a slot where the string with elements DATA, length LEN,
+ and hash HASH should go in the strhash table of interned strings. */
+jstring*
+_Jv_StringFindSlot (jchar* data, jint len, jint hash)
+{
+ JvSynchronize sync (&java::lang::String::class$);
+
+ int start_index = hash & (strhash_size - 1);
+ int deleted_index = -1;
+
+ int index = start_index;
+ /* step must be non-zero, and relatively prime with strhash_size. */
+ jint step = (hash ^ (hash >> 16)) | 1;
+ do
+ {
+ jstring* ptr = &strhash[index];
+ jstring value = (jstring) UNMASK_PTR (*ptr);
+ if (value == NULL)
+ {
+ if (deleted_index >= 0)
+ return (&strhash[deleted_index]);
+ else
+ return ptr;
+ }
+ else if (*ptr == DELETED_STRING)
+ deleted_index = index;
+ else if (value->length() == len
+ && memcmp(JvGetStringChars(value), data, 2*len) == 0)
+ return (ptr);
+ index = (index + step) & (strhash_size - 1);
+ }
+ while (index != start_index);
+ // Note that we can have INDEX == START_INDEX if the table has no
+ // NULL entries but does have DELETED_STRING entries.
+ JvAssert (deleted_index >= 0);
+ return &strhash[deleted_index];
+}
+
+/* Calculate a hash code for the string starting at PTR at given LENGTH.
+ This uses the same formula as specified for java.lang.String.hash. */
+
+static jint
+hashChars (jchar* ptr, jint length)
+{
+ jchar* limit = ptr + length;
+ jint hash = 0;
+ // Updated specification from
+ // http://www.javasoft.com/docs/books/jls/clarify.html.
+ while (ptr < limit)
+ hash = (31 * hash) + *ptr++;
+ return hash;
+}
+
+jint
+java::lang::String::hashCode()
+{
+ if (cachedHashCode == 0)
+ cachedHashCode = hashChars(JvGetStringChars(this), length());
+ return cachedHashCode;
+}
+
+jstring*
+_Jv_StringGetSlot (jstring str)
+{
+ jchar* data = JvGetStringChars(str);
+ int length = str->length();
+ return _Jv_StringFindSlot(data, length, hashChars (data, length));
+}
+
+static void
+rehash ()
+{
+ JvSynchronize sync (&java::lang::String::class$);
+
+ if (strhash == NULL)
+ {
+ strhash_size = 1024;
+ strhash = (jstring *) _Jv_AllocBytes (strhash_size * sizeof (jstring));
+ }
+ else
+ {
+ int i = strhash_size;
+ jstring* ptr = strhash + i;
+ int nsize = strhash_size * 2;
+ jstring *next = (jstring *) _Jv_AllocBytes (nsize * sizeof (jstring));
+
+ while (--i >= 0)
+ {
+ --ptr;
+ if (*ptr == NULL || *ptr == DELETED_STRING)
+ continue;
+
+ /* This is faster equivalent of
+ * *__JvGetInternSlot(*ptr) = *ptr; */
+ jstring val = (jstring) UNMASK_PTR (*ptr);
+ jint hash = val->hashCode();
+ jint index = hash & (nsize - 1);
+ jint step = (hash ^ (hash >> 16)) | 1;
+ for (;;)
+ {
+ if (next[index] == NULL)
+ {
+ next[index] = *ptr;
+ break;
+ }
+ index = (index + step) & (nsize - 1);
+ }
+ }
+
+ strhash_size = nsize;
+ strhash = next;
+ }
+}
+
+jstring
+java::lang::String::intern()
+{
+ JvSynchronize sync (&java::lang::String::class$);
+ if (3 * strhash_count >= 2 * strhash_size)
+ rehash();
+ jstring* ptr = _Jv_StringGetSlot(this);
+ if (*ptr != NULL && *ptr != DELETED_STRING)
+ {
+ // See description in _Jv_FinalizeString() to understand this.
+ *ptr = (jstring) MASK_PTR (*ptr);
+ return (jstring) UNMASK_PTR (*ptr);
+ }
+ jstring str = (this->data == this
+ ? this
+ : _Jv_NewString(JvGetStringChars(this), this->length()));
+ SET_STRING_IS_INTERNED(str);
+ strhash_count++;
+ *ptr = str;
+ // When string is GC'd, clear the slot in the hash table.
+ _Jv_RegisterStringFinalizer (str);
+ return str;
+}
+
+// The fake String finalizer. This is only used when the String has
+// been intern()d. However, we must check this case, as it might be
+// called by the Reference code for any String.
+void
+_Jv_FinalizeString (jobject obj)
+{
+ JvSynchronize sync (&java::lang::String::class$);
+
+ // We might not actually have intern()d any strings at all, if
+ // we're being called from Reference.
+ if (! strhash)
+ return;
+
+ jstring str = reinterpret_cast<jstring> (obj);
+ jstring *ptr = _Jv_StringGetSlot(str);
+ if (*ptr == NULL || *ptr == DELETED_STRING
+ || (jobject) UNMASK_PTR (*ptr) != obj)
+ return;
+
+ // We assume the lowest bit of the pointer is free for our nefarious
+ // manipulations. What we do is set it to `0' (implicitly) when
+ // interning the String. If we subsequently re-intern the same
+ // String, then we set the bit. When finalizing, if the bit is set
+ // then we clear it and re-register the finalizer. We know this is
+ // a safe approach because both intern() and _Jv_FinalizeString()
+ // acquire the class lock; this bit can't be manipulated when the
+ // lock is not held. So if we are finalizing and the bit is clear
+ // then we know all references are gone and we can clear the entry
+ // in the hash table. The naive approach of simply clearing the
+ // pointer here fails in the case where a request to intern a new
+ // string with the same contents is made between the time the
+ // intern()d string is found to be unreachable and when the
+ // finalizer is actually run. In this case we could clear a pointer
+ // to a valid string, and future intern() calls for that particular
+ // value would spuriously fail.
+ if (PTR_MASKED (*ptr))
+ {
+ *ptr = (jstring) UNMASK_PTR (*ptr);
+ _Jv_RegisterStringFinalizer (obj);
+ }
+ else
+ {
+ *ptr = DELETED_STRING;
+ strhash_count--;
+ }
+}
+
+jstring
+_Jv_NewStringUTF (const char *bytes)
+{
+ int size = strlen (bytes);
+ unsigned char *p = (unsigned char *) bytes;
+
+ int length = _Jv_strLengthUtf8 ((char *) p, size);
+ if (length < 0)
+ return NULL;
+
+ jstring jstr = JvAllocString (length);
+ jchar *chrs = JvGetStringChars (jstr);
+
+ p = (unsigned char *) bytes;
+ unsigned char *limit = p + size;
+ while (p < limit)
+ *chrs++ = UTF8_GET (p, limit);
+
+ return jstr;
+}
+
+jstring
+_Jv_NewStringUtf8Const (Utf8Const* str)
+{
+ jchar *chrs;
+ jchar buffer[100];
+ jstring jstr;
+ unsigned char* data = (unsigned char*) str->data;
+ unsigned char* limit = data + str->length;
+ int length = _Jv_strLengthUtf8(str->data, str->length);
+
+ if (length <= (int) (sizeof(buffer) / sizeof(jchar)))
+ {
+ jstr = NULL;
+ chrs = buffer;
+ }
+ else
+ {
+ jstr = JvAllocString(length);
+ chrs = JvGetStringChars(jstr);
+ }
+
+ jint hash = 0;
+ while (data < limit)
+ {
+ jchar ch = UTF8_GET(data, limit);
+ hash = (31 * hash) + ch;
+ *chrs++ = ch;
+ }
+ chrs -= length;
+
+ JvSynchronize sync (&java::lang::String::class$);
+ if (3 * strhash_count >= 2 * strhash_size)
+ rehash();
+ jstring* ptr = _Jv_StringFindSlot (chrs, length, hash);
+ if (*ptr != NULL && *ptr != DELETED_STRING)
+ return (jstring) UNMASK_PTR (*ptr);
+ strhash_count++;
+ if (jstr == NULL)
+ {
+ jstr = JvAllocString(length);
+ chrs = JvGetStringChars(jstr);
+ memcpy (chrs, buffer, sizeof(jchar)*length);
+ }
+ jstr->cachedHashCode = hash;
+ *ptr = jstr;
+ SET_STRING_IS_INTERNED(jstr);
+ // When string is GC'd, clear the slot in the hash table. Note that
+ // we don't have to call _Jv_RegisterStringFinalizer here, as we
+ // know the new object cannot be referred to by a Reference.
+ _Jv_RegisterFinalizer ((void *) jstr, _Jv_FinalizeString);
+ return jstr;
+}
+
+jsize
+_Jv_GetStringUTFLength (jstring string)
+{
+ jsize len = 0;
+ jchar *ptr = JvGetStringChars (string);
+ jsize i = string->length();
+ while (--i >= 0)
+ {
+ jchar ch = *ptr++;
+ if (ch > 0 && ch <= 0x7F)
+ len += 1;
+ else if (ch <= 0x7FF)
+ len += 2;
+ else
+ len += 3;
+ }
+ return len;
+}
+
+// Not sure this quite matches GetStringUTFRegion.
+// null-termination of result? len? throw exception?
+jsize
+_Jv_GetStringUTFRegion (jstring str, jsize start, jsize len, char *buf)
+{
+ jchar *sptr = JvGetStringChars (str) + start;
+ jsize i = len;
+ char *dptr = buf;
+ while (--i >= 0)
+ {
+ jchar ch = *sptr++;
+ if (ch > 0 && ch <= 0x7F)
+ *dptr++ = (char) ch;
+ else if (ch <= 0x7FF)
+ {
+ *dptr++ = (char) (0xC0 + ((ch >> 6) & 0x1F));
+ *dptr++ = (char) (0x80 + (ch & 0x3F));
+ }
+ else
+ {
+ *dptr++ = (char) (0xE0 + ((ch >> 12) & 0xF));
+ *dptr++ = (char) (0x80 + ((ch >> 6) & 0x3F));
+ *dptr++ = (char) (0x80 + (ch & 0x3F));
+ }
+ }
+ return dptr - buf;
+}
+
+/* Put printed (decimal) representation of NUM in a buffer.
+ BUFEND marks the end of the buffer, which must be at least 11 jchars long.
+ Returns the COUNT of jchars written. The result is in
+ (BUFEND - COUNT) (inclusive) upto (BUFEND) (exclusive). */
+
+jint
+_Jv_FormatInt (jchar* bufend, jint num)
+{
+ register jchar* ptr = bufend;
+ jboolean isNeg;
+ if (num < 0)
+ {
+ isNeg = true;
+ if (num != (jint) -2147483648U)
+ num = -(num);
+ else
+ {
+ // Handle special case of MIN_VALUE.
+ *--ptr = '8';
+ num = 214748364;
+ }
+ }
+ else
+ isNeg = false;
+
+ do
+ {
+ *--ptr = (jchar) ((int) '0' + (num % 10));
+ num /= 10;
+ }
+ while (num > 0);
+
+ if (isNeg)
+ *--ptr = '-';
+ return bufend - ptr;
+}
+
+jstring
+java::lang::String::valueOf (jint num)
+{
+ // Use an array large enough for "-2147483648"; i.e. 11 chars.
+ jchar buffer[11];
+ int i = _Jv_FormatInt (buffer+11, num);
+ return _Jv_NewString (buffer+11-i, i);
+}
+
+jstring
+_Jv_NewString(const jchar *chars, jsize len)
+{
+ jstring str = _Jv_AllocString(len);
+ jchar* data = JvGetStringChars (str);
+ memcpy (data, chars, len * sizeof (jchar));
+ return str;
+}
+
+jstring
+_Jv_NewStringLatin1(const char *bytes, jsize len)
+{
+ jstring str = JvAllocString(len);
+ jchar* data = JvGetStringChars (str);
+ while (--len >= 0)
+ *data++ = *(unsigned char*)bytes++;
+ return str;
+}
+
+void
+java::lang::String::init(jcharArray chars, jint offset, jint count,
+ jboolean dont_copy)
+{
+ if (! chars)
+ throw new NullPointerException;
+ jsize data_size = JvGetArrayLength (chars);
+ if (offset < 0 || count < 0 || offset + count < 0
+ || offset + count > data_size)
+ throw new ArrayIndexOutOfBoundsException;
+ jcharArray array;
+ jchar *pdst;
+ if (! dont_copy)
+ {
+ array = JvNewCharArray(count);
+ pdst = elements (array);
+ memcpy (pdst, elements (chars) + offset, count * sizeof (jchar));
+ }
+ else
+ {
+ array = chars;
+ pdst = &(elements(array)[offset]);
+ }
+
+ data = array;
+ boffset = (char *) pdst - (char *) array;
+ this->count = count;
+}
+
+void
+java::lang::String::init(jbyteArray ascii, jint hibyte, jint offset,
+ jint count)
+{
+ if (! ascii)
+ throw new NullPointerException;
+ jsize data_size = JvGetArrayLength (ascii);
+ if (offset < 0 || count < 0 || offset + count < 0
+ || offset + count > data_size)
+ throw new ArrayIndexOutOfBoundsException;
+ jcharArray array = JvNewCharArray(count);
+ jbyte *psrc = elements (ascii) + offset;
+ jchar *pdst = elements (array);
+ data = array;
+ boffset = (char *) pdst - (char *) array;
+ this->count = count;
+ hibyte = (hibyte & 0xff) << 8;
+ while (-- count >= 0)
+ {
+ *pdst++ = hibyte | (*psrc++ & 0xff);
+ }
+}
+
+void
+java::lang::String::init (jbyteArray bytes, jint offset, jint count,
+ jstring encoding)
+{
+ if (! bytes)
+ throw new NullPointerException;
+ jsize data_size = JvGetArrayLength (bytes);
+ if (offset < 0 || count < 0 || offset + count < 0
+ || offset + count > data_size)
+ throw new ArrayIndexOutOfBoundsException;
+ jcharArray array = JvNewCharArray (count);
+ gnu::gcj::convert::BytesToUnicode *converter
+ = gnu::gcj::convert::BytesToUnicode::getDecoder(encoding);
+ jint outpos = 0;
+ int avail = count;
+ converter->setInput(bytes, offset, offset+count);
+ while (converter->inpos < converter->inlength)
+ {
+ int done;
+ try
+ {
+ done = converter->read(array, outpos, avail);
+ }
+ catch (::java::io::CharConversionException *e)
+ {
+ // Ignore it and silently throw away the offending data.
+ break;
+ }
+ if (done == 0)
+ {
+ // done is zero if either there is no space available in the
+ // output *or* the input is incomplete. We assume that if
+ // there are 20 characters available in the output, the
+ // input must be incomplete and there is no more work to do.
+ // This means we may skip several bytes of input, but that
+ // is OK as the behavior is explicitly unspecified in this
+ // case.
+ if (avail - outpos > 20)
+ break;
+
+ jint new_size = 2 * (outpos + avail);
+ jcharArray new_array = JvNewCharArray (new_size);
+ memcpy (elements (new_array), elements (array),
+ outpos * sizeof(jchar));
+ array = new_array;
+ avail = new_size - outpos;
+ }
+ else
+ {
+ outpos += done;
+ avail -= done;
+ }
+ }
+ converter->done ();
+ this->data = array;
+ this->boffset = (char *) elements (array) - (char *) array;
+ this->count = outpos;
+}
+
+void
+java::lang::String::init (gnu::gcj::runtime::StringBuffer *buffer)
+{
+ init (buffer->value, 0, buffer->count, true);
+}
+
+jboolean
+java::lang::String::equals(jobject anObject)
+{
+ if (anObject == NULL)
+ return false;
+ if (anObject == this)
+ return true;
+ if (anObject->getClass() != &java::lang::String::class$)
+ return false;
+ jstring other = (jstring) anObject;
+ if (count != other->count)
+ return false;
+
+ // If both have cached hash codes, check that. If the cached hash
+ // codes are zero, don't bother trying to compute them.
+ int myHash = cachedHashCode;
+ int otherHash = other->cachedHashCode;
+ if (myHash && otherHash && myHash != otherHash)
+ return false;
+
+ // We could see if both are interned, and return false. But that
+ // seems too expensive.
+
+ jchar *xptr = JvGetStringChars (this);
+ jchar *yptr = JvGetStringChars (other);
+ return ! memcmp (xptr, yptr, count * sizeof (jchar));
+}
+
+jboolean
+java::lang::String::contentEquals(java::lang::StringBuffer* buffer)
+{
+ if (buffer == NULL)
+ throw new NullPointerException;
+ JvSynchronize sync(buffer);
+ if (count != buffer->count)
+ return false;
+ if (data == buffer->value)
+ return true; // Possible if shared.
+ jchar *xptr = JvGetStringChars(this);
+ jchar *yptr = elements(buffer->value);
+ return ! memcmp (xptr, yptr, count * sizeof (jchar));
+}
+
+jboolean
+java::lang::String::contentEquals(java::lang::CharSequence *seq)
+{
+ if (seq->length() != count)
+ return false;
+ jchar *value = JvGetStringChars(this);
+ for (int i = 0; i < count; ++i)
+ if (value[i] != seq->charAt(i))
+ return false;
+ return true;
+}
+
+jchar
+java::lang::String::charAt(jint i)
+{
+ if (i < 0 || i >= count)
+ throw new java::lang::StringIndexOutOfBoundsException(i);
+ return JvGetStringChars(this)[i];
+}
+
+void
+java::lang::String::getChars(jint srcBegin, jint srcEnd,
+ jcharArray dst, jint dstBegin)
+{
+ jint dst_length = JvGetArrayLength (dst);
+ if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count)
+ throw new java::lang::StringIndexOutOfBoundsException;
+ // The 2nd part of the test below is equivalent to
+ // dstBegin + (srcEnd-srcBegin) > dst_length
+ // except that it does not overflow.
+ if (dstBegin < 0 || dstBegin > dst_length - (srcEnd-srcBegin))
+ throw new ArrayIndexOutOfBoundsException;
+ jchar *dPtr = elements (dst) + dstBegin;
+ jchar *sPtr = JvGetStringChars (this) + srcBegin;
+ jint i = srcEnd - srcBegin;
+ memcpy (dPtr, sPtr, i * sizeof (jchar));
+}
+
+jbyteArray
+java::lang::String::getBytes (jstring enc)
+{
+ jint todo = length();
+ jint buflen = todo;
+ jbyteArray buffer = JvNewByteArray(todo);
+ jint bufpos = 0;
+ jint offset = 0;
+ gnu::gcj::convert::UnicodeToBytes *converter
+ = gnu::gcj::convert::UnicodeToBytes::getEncoder(enc);
+ while (todo > 0 || converter->havePendingBytes())
+ {
+ converter->setOutput(buffer, bufpos);
+ int converted = converter->write(this, offset, todo, NULL);
+ bufpos = converter->count;
+ if (converted == 0)
+ {
+ buflen *= 2;
+ jbyteArray newbuffer = JvNewByteArray(buflen);
+ memcpy (elements (newbuffer), elements (buffer), bufpos);
+ buffer = newbuffer;
+ }
+ else
+ {
+ offset += converted;
+ todo -= converted;
+ }
+ }
+ if (length() > 0)
+ {
+ converter->setFinished();
+ converter->write(this, 0, 0, NULL);
+ }
+ converter->done ();
+ if (bufpos == buflen)
+ return buffer;
+ jbyteArray result = JvNewByteArray(bufpos);
+ memcpy (elements (result), elements (buffer), bufpos);
+ return result;
+}
+
+void
+java::lang::String::getBytes(jint srcBegin, jint srcEnd,
+ jbyteArray dst, jint dstBegin)
+{
+ jint dst_length = JvGetArrayLength (dst);
+ if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count)
+ throw new java::lang::StringIndexOutOfBoundsException;
+ // The 2nd part of the test below is equivalent to
+ // dstBegin + (srcEnd-srcBegin) > dst_length
+ // except that it does not overflow.
+ if (dstBegin < 0 || dstBegin > dst_length - (srcEnd-srcBegin))
+ throw new ArrayIndexOutOfBoundsException;
+ jbyte *dPtr = elements (dst) + dstBegin;
+ jchar *sPtr = JvGetStringChars (this) + srcBegin;
+ jint i = srcEnd-srcBegin;
+ while (--i >= 0)
+ *dPtr++ = (jbyte) *sPtr++;
+}
+
+jcharArray
+java::lang::String::toCharArray()
+{
+ jcharArray array = JvNewCharArray(count);
+ jchar *dPtr = elements (array);
+ jchar *sPtr = JvGetStringChars (this);
+ jint i = count;
+ memcpy (dPtr, sPtr, i * sizeof (jchar));
+ return array;
+}
+
+jboolean
+java::lang::String::equalsIgnoreCase (jstring anotherString)
+{
+ if (anotherString == NULL || count != anotherString->count)
+ return false;
+ jchar *tptr = JvGetStringChars (this);
+ jchar *optr = JvGetStringChars (anotherString);
+ jint i = count;
+ while (--i >= 0)
+ {
+ jchar tch = *tptr++;
+ jchar och = *optr++;
+ if (tch != och
+ && (java::lang::Character::toLowerCase (tch)
+ != java::lang::Character::toLowerCase (och))
+ && (java::lang::Character::toUpperCase (tch)
+ != java::lang::Character::toUpperCase (och)))
+ return false;
+ }
+ return true;
+}
+
+jboolean
+java::lang::String::regionMatches (jint toffset,
+ jstring other, jint ooffset, jint len)
+{
+ if (toffset < 0 || ooffset < 0 || len < 0
+ || toffset > count - len
+ || ooffset > other->count - len)
+ return false;
+ jchar *tptr = JvGetStringChars (this) + toffset;
+ jchar *optr = JvGetStringChars (other) + ooffset;
+ jint i = len;
+ return ! memcmp (tptr, optr, i * sizeof (jchar));
+}
+
+jint
+java::lang::String::nativeCompareTo (jstring anotherString)
+{
+ jchar *tptr = JvGetStringChars (this);
+ jchar *optr = JvGetStringChars (anotherString);
+ jint tlen = this->count;
+ jint olen = anotherString->count;
+ jint i = tlen > olen ? olen : tlen;
+ while (--i >= 0)
+ {
+ jchar tch = *tptr++;
+ jchar och = *optr++;
+ if (tch != och)
+ return (jint) tch - (jint) och;
+ }
+ return tlen - olen;
+}
+
+jboolean
+java::lang::String::regionMatches (jboolean ignoreCase, jint toffset,
+ jstring other, jint ooffset, jint len)
+{
+ if (toffset < 0 || ooffset < 0 || len < 0
+ || toffset > count - len
+ || ooffset > other->count - len)
+ return false;
+ jchar *tptr = JvGetStringChars (this) + toffset;
+ jchar *optr = JvGetStringChars (other) + ooffset;
+ jint i = len;
+ if (ignoreCase)
+ {
+ while (--i >= 0)
+ {
+ jchar tch = *tptr++;
+ jchar och = *optr++;
+ if ((java::lang::Character::toLowerCase (tch)
+ != java::lang::Character::toLowerCase (och))
+ && (java::lang::Character::toUpperCase (tch)
+ != java::lang::Character::toUpperCase (och)))
+ return false;
+ }
+ return true;
+ }
+ return ! memcmp (tptr, optr, i * sizeof (jchar));
+}
+
+jboolean
+java::lang::String::startsWith (jstring prefix, jint toffset)
+{
+ jint i = prefix->count;
+ if (toffset < 0 || toffset > count - i)
+ return false;
+ jchar *xptr = JvGetStringChars (this) + toffset;
+ jchar *yptr = JvGetStringChars (prefix);
+ return ! memcmp (xptr, yptr, i * sizeof (jchar));
+}
+
+jint
+java::lang::String::indexOf (jint ch, jint fromIndex)
+{
+ if (fromIndex < 0)
+ fromIndex = 0;
+ jchar *ptr = JvGetStringChars(this);
+ for (;; ++fromIndex)
+ {
+ if (fromIndex >= count)
+ return -1;
+ if (ptr[fromIndex] == ch)
+ return fromIndex;
+ }
+}
+
+jint
+java::lang::String::indexOf (jstring s, jint fromIndex)
+{
+ const jchar *const xchars = JvGetStringChars(s);
+ const jchar *const ychars = JvGetStringChars(this) + fromIndex;
+
+ const int xlength = s->length ();
+ const int ylength = length () - fromIndex;
+
+ int i = 0;
+ int j = 0;
+
+ while (i < ylength && j < xlength)
+ {
+ if (xchars[j] != ychars[i])
+ {
+ i = i - j + 1;
+ j = 0;
+ }
+ else
+ i++, j++;
+ }
+
+ if (j >= xlength)
+ return fromIndex + i - xlength;
+ else
+ return -1;
+}
+
+jint
+java::lang::String::lastIndexOf (jint ch, jint fromIndex)
+{
+ if (fromIndex >= count)
+ fromIndex = count - 1;
+ jchar *ptr = JvGetStringChars(this);
+ for (;; --fromIndex)
+ {
+ if (fromIndex < 0)
+ return -1;
+ if (ptr[fromIndex] == ch)
+ return fromIndex;
+ }
+}
+
+jstring
+java::lang::String::substring (jint beginIndex, jint endIndex)
+{
+ if (beginIndex < 0 || endIndex > count || beginIndex > endIndex)
+ throw new StringIndexOutOfBoundsException;
+ if (beginIndex == 0 && endIndex == count)
+ return this;
+ jint newCount = endIndex - beginIndex;
+ // For very small strings, just allocate a new one. For other
+ // substrings, allocate a new one unless the substring is over half
+ // of the original string.
+ if (newCount <= 8 || newCount < (count >> 1))
+ return JvNewString(JvGetStringChars(this) + beginIndex, newCount);
+ jstring s = new String();
+ s->data = data;
+ s->count = newCount;
+ s->boffset = boffset + sizeof(jchar) * beginIndex;
+ return s;
+}
+
+jstring
+java::lang::String::concat(jstring str)
+{
+ jint str_count = str->count;
+ if (str_count == 0)
+ return this;
+ jstring result = JvAllocString(count + str_count);
+ jchar *dstPtr = JvGetStringChars(result);
+ jchar *srcPtr = JvGetStringChars(this);
+ jint i = count;
+ memcpy (dstPtr, srcPtr, i * sizeof (jchar));
+ dstPtr += i;
+ srcPtr = JvGetStringChars(str);
+ i = str->count;
+ memcpy (dstPtr, srcPtr, i * sizeof (jchar));
+ return result;
+}
+
+jstring
+java::lang::String::replace (jchar oldChar, jchar newChar)
+{
+ jint i;
+ jchar* chrs = JvGetStringChars (this);
+ for (i = 0; ; i++)
+ {
+ if (i == count)
+ return this;
+ if (chrs[i] == oldChar)
+ break;
+ }
+ jstring result = JvAllocString (count);
+ jchar *dPtr = JvGetStringChars (result);
+ for (int j = 0; j < i; j++)
+ *dPtr++ = chrs[j];
+ for (; i < count; i++)
+ {
+ jchar ch = chrs[i];
+ if (ch == oldChar)
+ ch = newChar;
+ *dPtr++ = ch;
+ }
+ return result;
+}
+
+jstring
+java::lang::String::toLowerCase (java::util::Locale *locale)
+{
+ jint i;
+ jchar* chrs = JvGetStringChars(this);
+ jchar ch = 0;
+
+ bool handle_tr = false;
+ if (locale != NULL)
+ {
+ String *lang = locale->getLanguage ();
+ if (lang->length () == 2
+ && lang->charAt (0) == 't'
+ && lang->charAt (1) == 'r')
+ handle_tr = true;
+ }
+
+ for (i = 0; ; i++)
+ {
+ if (i == count)
+ return this;
+ jchar origChar = chrs[i];
+
+ if (handle_tr && (origChar == CAPITAL_I
+ || origChar == CAPITAL_I_WITH_DOT))
+ break;
+
+ ch = java::lang::Character::toLowerCase(origChar);
+ if (ch != origChar)
+ break;
+ }
+ jstring result = JvAllocString(count);
+ jchar *dPtr = JvGetStringChars (result);
+ for (int j = 0; j < i; j++)
+ *dPtr++ = chrs[j];
+ *dPtr++ = ch; i++;
+ for (; i < count; i++)
+ {
+ if (handle_tr && chrs[i] == CAPITAL_I)
+ *dPtr++ = SMALL_DOTLESS_I;
+ else if (handle_tr && chrs[i] == CAPITAL_I_WITH_DOT)
+ *dPtr++ = SMALL_I;
+ else
+ *dPtr++ = java::lang::Character::toLowerCase(chrs[i]);
+ }
+ return result;
+}
+
+jstring
+java::lang::String::toUpperCase (java::util::Locale *locale)
+{
+ jint i;
+ jchar* chrs = JvGetStringChars(this);
+ jchar ch;
+
+ // When handling a specific locale there might be special rules.
+ // Currently all existing rules are simply handled inline, as there
+ // are only two and they are documented in the online 1.2 docs.
+ bool handle_esset = locale != NULL;
+ bool handle_tr = false;
+ if (locale != NULL)
+ {
+ String *lang = locale->getLanguage ();
+ if (lang->length () == 2
+ && lang->charAt (0) == 't'
+ && lang->charAt (1) == 'r')
+ handle_tr = true;
+ }
+
+ int new_count = count;
+ bool new_string = false;
+ for (i = 0; ; i++)
+ {
+ if (i == count)
+ break;
+ jchar origChar = chrs[i];
+
+ if (handle_esset && origChar == ESSET)
+ {
+ ++new_count;
+ new_string = true;
+ }
+ else if (handle_tr && (origChar == SMALL_I
+ || origChar == SMALL_DOTLESS_I))
+ new_string = true;
+ else
+ {
+ ch = java::lang::Character::toUpperCase(origChar);
+ if (ch != origChar)
+ new_string = true;
+ }
+
+ if (new_string && ! handle_esset)
+ break;
+ }
+ if (! new_string)
+ return this;
+ jstring result = JvAllocString(new_count);
+ jchar *dPtr = JvGetStringChars (result);
+ for (i = 0; i < count; i++)
+ {
+ if (handle_esset && chrs[i] == ESSET)
+ {
+ *dPtr++ = CAPITAL_S;
+ *dPtr++ = CAPITAL_S;
+ }
+ else if (handle_tr && chrs[i] == SMALL_I)
+ *dPtr++ = CAPITAL_I_WITH_DOT;
+ else if (handle_tr && chrs[i] == SMALL_DOTLESS_I)
+ *dPtr++ = CAPITAL_I;
+ else
+ *dPtr++ = java::lang::Character::toUpperCase(chrs[i]);
+ }
+ return result;
+}
+
+jstring
+java::lang::String::trim ()
+{
+ jchar* chrs = JvGetStringChars(this);
+ if (count == 0 || (chrs[0] > ' ' && chrs[count-1] > ' '))
+ return this;
+ jint preTrim = 0;
+ for (;; preTrim++)
+ {
+ if (preTrim == count)
+ return new String();
+ if (chrs[preTrim] > ' ')
+ break;
+ }
+ jint endTrim = count;
+ while (chrs[endTrim-1] <= ' ')
+ endTrim--;
+ return substring(preTrim, endTrim);
+}
+
+jstring
+java::lang::String::valueOf(jcharArray data, jint offset, jint count)
+{
+ jint data_length = JvGetArrayLength (data);
+ if (offset < 0 || count < 0 || offset > data_length - count)
+ throw new ArrayIndexOutOfBoundsException;
+ jstring result = JvAllocString(count);
+ jchar *sPtr = elements (data) + offset;
+ jchar *dPtr = JvGetStringChars(result);
+ memcpy (dPtr, sPtr, count * sizeof (jchar));
+ return result;
+}
+
+jstring
+java::lang::String::valueOf(jchar c)
+{
+ jstring result = JvAllocString(1);
+ JvGetStringChars (result)[0] = c;
+ return result;
+}
diff --git a/gcc-4.8/libjava/java/lang/natSystem.cc b/gcc-4.8/libjava/java/lang/natSystem.cc
new file mode 100644
index 000000000..42a13258d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natSystem.cc
@@ -0,0 +1,150 @@
+// natSystem.cc - Native code implementing System class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/lang/System.h>
+#include <java/lang/Class.h>
+#include <java/lang/ArrayStoreException.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/io/PrintStream.h>
+#include <java/io/InputStream.h>
+
+
+
+void
+java::lang::System::setErr0 (java::io::PrintStream *newErr)
+{
+ err = newErr;
+}
+
+void
+java::lang::System::setIn0 (java::io::InputStream *newIn)
+{
+ in = newIn;
+}
+
+void
+java::lang::System::setOut0 (java::io::PrintStream *newOut)
+{
+ out = newOut;
+}
+
+void
+java::lang::System::arraycopy (jobject src, jint src_offset,
+ jobject dst, jint dst_offset,
+ jint count)
+{
+ if (! src || ! dst)
+ throw new NullPointerException;
+
+ jclass src_c = src->getClass();
+ jclass dst_c = dst->getClass();
+ jclass src_comp = src_c->getComponentType();
+ jclass dst_comp = dst_c->getComponentType();
+
+ if (! src_c->isArray() || ! dst_c->isArray()
+ || src_comp->isPrimitive() != dst_comp->isPrimitive()
+ || (src_comp->isPrimitive() && src_comp != dst_comp))
+ throw new ArrayStoreException;
+
+ __JArray *src_a = (__JArray *) src;
+ __JArray *dst_a = (__JArray *) dst;
+ if (src_offset < 0 || dst_offset < 0 || count < 0
+ || (unsigned jint) src_offset > (unsigned jint) src_a->length
+ || (unsigned jint) (src_offset + count) > (unsigned jint) src_a->length
+ || (unsigned jint) dst_offset > (unsigned jint) dst_a->length
+ || (unsigned jint) (dst_offset + count) > (unsigned jint) dst_a->length)
+ throw new ArrayIndexOutOfBoundsException;
+
+ // Do-nothing cases.
+ if ((src == dst && src_offset == dst_offset)
+ || ! count)
+ return;
+
+ // If both are primitive, we can optimize trivially. If DST
+ // components are always assignable from SRC components, then we
+ // will never need to raise an error, and thus can do the
+ // optimization. If source and destinations are the same, then we
+ // know that the assignability premise always holds.
+ const bool prim = src_comp->isPrimitive();
+ if (prim || dst_comp->isAssignableFrom(src_comp) || src == dst)
+ {
+ const size_t size = (prim ? src_comp->size()
+ : sizeof elements((jobjectArray)src)[0]);
+
+ char *src_elts = _Jv_GetArrayElementFromElementType (src, src_comp);
+ src_elts += size * src_offset;
+
+ char *dst_elts = _Jv_GetArrayElementFromElementType (dst, dst_comp);
+ dst_elts += size * dst_offset;
+
+#if HAVE_MEMMOVE
+ // We don't bother trying memcpy. It can't be worth the cost of
+ // the check.
+ // Don't cast to (void*), as memmove may expect (char*)
+ memmove (dst_elts, src_elts, count * size);
+#else
+ bcopy (src_elts, dst_elts, count * size);
+#endif
+ }
+ else
+ {
+ jobject *src_elts = elements ((jobjectArray) src_a) + src_offset;
+ jobject *dst_elts = elements ((jobjectArray) dst_a) + dst_offset;
+
+ for (int i = 0; i < count; ++i)
+ {
+ if (*src_elts
+ && ! dst_comp->isAssignableFrom((*src_elts)->getClass()))
+ throw new ArrayStoreException;
+ *dst_elts++ = *src_elts++;
+ }
+ }
+}
+
+jlong
+java::lang::System::currentTimeMillis (void)
+{
+ return _Jv_platform_gettimeofday ();
+}
+
+jlong
+java::lang::System::nanoTime ()
+{
+ return _Jv_platform_nanotime ();
+}
+
+jint
+java::lang::System::identityHashCode (jobject obj)
+{
+ return _Jv_HashCode (obj);
+}
+
+jstring
+java::lang::System::getenv0 (jstring name)
+{
+ jint len = _Jv_GetStringUTFLength (name);
+ char buf[len + 1];
+ jsize total = JvGetStringUTFRegion (name, 0, name->length(), buf);
+ buf[total] = '\0';
+ const char *value = ::getenv (buf);
+ if (value == NULL)
+ return NULL;
+ return JvNewStringUTF (value);
+}
diff --git a/gcc-4.8/libjava/java/lang/natThread.cc b/gcc-4.8/libjava/java/lang/natThread.cc
new file mode 100644
index 000000000..d6abff13f
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natThread.cc
@@ -0,0 +1,534 @@
+// natThread.cc - Native part of Thread class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-threads.h>
+
+#include <gnu/gcj/RawDataManaged.h>
+#include <java/lang/Thread.h>
+#include <java/lang/Thread$State.h>
+#include <java/lang/Thread$UncaughtExceptionHandler.h>
+#include <java/lang/ThreadGroup.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/IllegalThreadStateException.h>
+#include <java/lang/InterruptedException.h>
+#include <java/lang/NullPointerException.h>
+
+#include <jni.h>
+
+#ifdef INTERPRETER
+#include <jvmti.h>
+#include "jvmti-int.h"
+#endif
+
+#ifdef ENABLE_JVMPI
+#include <jvmpi.h>
+#endif
+
+
+
+static void finalize_native (jobject ptr);
+
+// This is called from the constructor to initialize the native side
+// of the Thread.
+void
+java::lang::Thread::initialize_native (void)
+{
+ natThread *nt = (natThread *) _Jv_AllocBytes (sizeof (natThread));
+
+ state = JV_NEW;
+ nt->alive_flag = THREAD_DEAD;
+
+ data = (gnu::gcj::RawDataManaged *) nt;
+
+ // Register a finalizer to clean up the native thread resources.
+ _Jv_RegisterFinalizer (data, finalize_native);
+
+ _Jv_MutexInit (&nt->join_mutex);
+ _Jv_CondInit (&nt->join_cond);
+
+ nt->park_helper.init();
+
+ nt->thread = _Jv_ThreadInitData (this);
+ // FIXME: if JNI_ENV is set we will want to free it. It is
+ // malloc()d.
+ nt->jni_env = NULL;
+}
+
+static void
+finalize_native (jobject ptr)
+{
+ natThread *nt = (natThread *) ptr;
+ _Jv_ThreadDestroyData (nt->thread);
+#ifdef _Jv_HaveCondDestroy
+ _Jv_CondDestroy (&nt->join_cond);
+#endif
+#ifdef _Jv_HaveMutexDestroy
+ _Jv_MutexDestroy (&nt->join_mutex);
+#endif
+ _Jv_FreeJNIEnv((JNIEnv*)nt->jni_env);
+
+ nt->park_helper.destroy();
+}
+
+jint
+java::lang::Thread::countStackFrames (void)
+{
+ // NOTE: This is deprecated in JDK 1.2.
+
+ // Old applets still call this method. Rather than throwing
+ // UnsupportedOperationException we simply fail silently.
+
+ return 0;
+}
+
+java::lang::Thread *
+java::lang::Thread::currentThread (void)
+{
+ return _Jv_ThreadCurrent ();
+}
+
+jboolean
+java::lang::Thread::holdsLock (jobject obj)
+{
+ if (!obj)
+ throw new NullPointerException;
+ return !_Jv_ObjectCheckMonitor (obj);
+}
+
+jboolean
+java::lang::Thread::isAlive (void)
+{
+ natThread *nt = (natThread *) data;
+ return nt->alive_flag != (obj_addr_t)THREAD_DEAD;
+}
+
+void
+java::lang::Thread::interrupt (void)
+{
+ checkAccess ();
+
+ natThread *nt = (natThread *) data;
+
+ // If a thread is in state ALIVE, we atomically set it to state
+ // SIGNALED and send it a signal. Once we've sent it the signal, we
+ // set its state back to ALIVE.
+ if (compare_and_swap
+ (&nt->alive_flag, Thread::THREAD_ALIVE, Thread::THREAD_SIGNALED))
+ {
+ _Jv_ThreadInterrupt (nt->thread);
+ compare_and_swap
+ (&nt->alive_flag, THREAD_SIGNALED, Thread::THREAD_ALIVE);
+
+ // Even though we've interrupted this thread, it might still be
+ // parked.
+ nt->park_helper.unpark ();
+ }
+}
+
+void
+java::lang::Thread::join (jlong millis, jint nanos)
+{
+ if (millis < 0 || nanos < 0 || nanos > 999999)
+ throw new IllegalArgumentException;
+
+ Thread *current = currentThread ();
+
+ // Here `NT' is the native structure for the thread we are trying to join.
+ natThread *nt = (natThread *) data;
+
+ // Now wait for: (1) an interrupt, (2) the thread to exit, or (3)
+ // the timeout to occur.
+ _Jv_MutexLock (&nt->join_mutex);
+ if (! isAlive ())
+ {
+ _Jv_MutexUnlock (&nt->join_mutex);
+ return;
+ }
+ _Jv_CondWait (&nt->join_cond, &nt->join_mutex, millis, nanos);
+ _Jv_MutexUnlock (&nt->join_mutex);
+
+ if (current->isInterrupted (true))
+ throw new InterruptedException;
+}
+
+void
+java::lang::Thread::resume (void)
+{
+ checkAccess ();
+
+ // Old applets still call this method. Rather than throwing
+ // UnsupportedOperationException we simply fail silently.
+}
+
+void
+java::lang::Thread::setPriority (jint newPriority)
+{
+ checkAccess ();
+ if (newPriority < MIN_PRIORITY || newPriority > MAX_PRIORITY)
+ throw new IllegalArgumentException;
+
+ jint gmax = group->getMaxPriority();
+ if (newPriority > gmax)
+ newPriority = gmax;
+
+ priority = newPriority;
+ natThread *nt = (natThread *) data;
+ _Jv_ThreadSetPriority (nt->thread, priority);
+}
+
+void
+java::lang::Thread::sleep (jlong millis, jint nanos)
+{
+ if (millis < 0 || nanos < 0 || nanos > 999999)
+ throw new IllegalArgumentException;
+
+ if (millis == 0 && nanos == 0)
+ ++nanos;
+
+ Thread *current = currentThread ();
+
+ // We use a condition variable to implement sleeping so that an
+ // interrupt can wake us up.
+ natThread *nt = (natThread *) current->data;
+ _Jv_MutexLock (&nt->join_mutex);
+ _Jv_CondWait (&nt->join_cond, &nt->join_mutex, millis, nanos);
+ _Jv_MutexUnlock (&nt->join_mutex);
+
+ if (current->isInterrupted (true))
+ throw new InterruptedException;
+}
+
+void
+java::lang::Thread::finish_ ()
+{
+ __sync_synchronize();
+ natThread *nt = (natThread *) data;
+
+ nt->park_helper.deactivate ();
+ group->removeThread (this);
+
+#ifdef INTERPRETER
+ if (JVMTI_REQUESTED_EVENT (ThreadEnd))
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, this, nt->jni_env);
+#endif
+
+#ifdef ENABLE_JVMPI
+ if (_Jv_JVMPI_Notify_THREAD_END)
+ {
+ JVMPI_Event event;
+
+ event.event_type = JVMPI_EVENT_THREAD_END;
+ event.env_id = _Jv_GetCurrentJNIEnv ();
+
+ _Jv_DisableGC ();
+ (*_Jv_JVMPI_Notify_THREAD_END) (&event);
+ _Jv_EnableGC ();
+ }
+#endif
+
+ // If a method cache was created, free it.
+ _Jv_FreeMethodCache();
+
+ // Clear out thread locals.
+ locals = NULL;
+
+ // Signal any threads that are waiting to join() us.
+ _Jv_MutexLock (&nt->join_mutex);
+
+ {
+ JvSynchronize sync (this);
+ nt->alive_flag = THREAD_DEAD;
+ state = JV_TERMINATED;
+ }
+
+ _Jv_CondNotifyAll (&nt->join_cond, &nt->join_mutex);
+ _Jv_MutexUnlock (&nt->join_mutex);
+}
+
+// Run once at thread startup, either when thread is attached or when
+// _Jv_ThreadRun is called.
+static void
+_Jv_NotifyThreadStart (java::lang::Thread* thread)
+{
+#ifdef INTERPRETER
+ if (JVMTI_REQUESTED_EVENT (ThreadStart))
+ {
+ natThread *nt = reinterpret_cast<natThread *> (thread->data);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_START, thread, nt->jni_env);
+ }
+#endif
+
+#ifdef ENABLE_JVMPI
+ if (_Jv_JVMPI_Notify_THREAD_START)
+ {
+ JVMPI_Event event;
+
+ jstring thread_name = thread->getName ();
+ jstring group_name = NULL, parent_name = NULL;
+ java::lang::ThreadGroup *group = thread->getThreadGroup ();
+
+ if (group)
+ {
+ group_name = group->getName ();
+ group = group->getParent ();
+
+ if (group)
+ parent_name = group->getName ();
+ }
+
+ int thread_len = thread_name ? JvGetStringUTFLength (thread_name) : 0;
+ int group_len = group_name ? JvGetStringUTFLength (group_name) : 0;
+ int parent_len = parent_name ? JvGetStringUTFLength (parent_name) : 0;
+
+ char thread_chars[thread_len + 1];
+ char group_chars[group_len + 1];
+ char parent_chars[parent_len + 1];
+
+ if (thread_name)
+ JvGetStringUTFRegion (thread_name, 0,
+ thread_name->length(), thread_chars);
+ if (group_name)
+ JvGetStringUTFRegion (group_name, 0,
+ group_name->length(), group_chars);
+ if (parent_name)
+ JvGetStringUTFRegion (parent_name, 0,
+ parent_name->length(), parent_chars);
+
+ thread_chars[thread_len] = '\0';
+ group_chars[group_len] = '\0';
+ parent_chars[parent_len] = '\0';
+
+ event.event_type = JVMPI_EVENT_THREAD_START;
+ event.env_id = NULL;
+ event.u.thread_start.thread_name = thread_chars;
+ event.u.thread_start.group_name = group_chars;
+ event.u.thread_start.parent_name = parent_chars;
+ event.u.thread_start.thread_id = (jobjectID) thread;
+ event.u.thread_start.thread_env_id = _Jv_GetCurrentJNIEnv ();
+
+ _Jv_DisableGC ();
+ (*_Jv_JVMPI_Notify_THREAD_START) (&event);
+ _Jv_EnableGC ();
+ }
+#endif
+}
+
+void
+_Jv_ThreadRun (java::lang::Thread* thread)
+{
+ try
+ {
+ _Jv_NotifyThreadStart (thread);
+ thread->run ();
+ }
+ catch (java::lang::Throwable *t)
+ {
+ // Uncaught exceptions are forwarded to the ThreadGroup. If
+ // this results in an uncaught exception, that is ignored.
+ try
+ {
+ thread->getUncaughtExceptionHandler()->uncaughtException (thread, t);
+ }
+ catch (java::lang::Throwable *f)
+ {
+ // Nothing.
+ }
+ }
+
+ thread->finish_ ();
+}
+
+_Jv_Thread_t*
+_Jv_ThreadGetData (java::lang::Thread* thread)
+{
+ natThread* nt = (natThread*) thread->data;
+ return nt->thread;
+}
+
+void
+java::lang::Thread::start (void)
+{
+ JvSynchronize sync (this);
+
+ // Its illegal to re-start() a thread, even if its dead.
+ if (!startable_flag)
+ throw new IllegalThreadStateException;
+
+ natThread *nt = (natThread *) data;
+ nt->alive_flag = THREAD_ALIVE;
+ startable_flag = false;
+ state = JV_RUNNABLE;
+ _Jv_ThreadStart (this, nt->thread, (_Jv_ThreadStartFunc *) &_Jv_ThreadRun);
+}
+
+void
+java::lang::Thread::stop (java::lang::Throwable *)
+{
+ checkAccess ();
+
+ // Old applets still call this method. Rather than throwing
+ // UnsupportedOperationException we simply fail silently.
+}
+
+void
+java::lang::Thread::suspend (void)
+{
+ checkAccess ();
+
+ // Old applets still call this method. Rather than throwing
+ // UnsupportedOperationException we simply fail silently.
+}
+
+static int nextThreadNumber = 0;
+
+jstring
+java::lang::Thread::gen_name (void)
+{
+ jint i;
+ jclass sync = &java::lang::Thread::class$;
+ {
+ JvSynchronize dummy(sync);
+ i = ++nextThreadNumber;
+ }
+
+ // Use an array large enough for "-2147483648"; i.e. 11 chars, + "Thread-".
+ jchar buffer[7+11];
+ jchar *bufend = (jchar *) ((char *) buffer + sizeof(buffer));
+ i = _Jv_FormatInt (bufend, i);
+ jchar *ptr = bufend - i;
+ // Prepend "Thread-".
+ *--ptr = '-';
+ *--ptr = 'd';
+ *--ptr = 'a';
+ *--ptr = 'e';
+ *--ptr = 'r';
+ *--ptr = 'h';
+ *--ptr = 'T';
+ return JvNewString (ptr, bufend - ptr);
+}
+
+void
+java::lang::Thread::yield (void)
+{
+ _Jv_ThreadYield ();
+}
+
+::java::lang::Thread$State *
+java::lang::Thread::getState()
+{
+ _Jv_InitClass(&::java::lang::Thread$State::class$);
+
+ switch (state)
+ {
+ case JV_BLOCKED:
+ return ::java::lang::Thread$State::BLOCKED;
+ case JV_NEW:
+ return ::java::lang::Thread$State::NEW;
+
+ case JV_RUNNABLE:
+ return ::java::lang::Thread$State::RUNNABLE;
+ case JV_TERMINATED:
+ return ::java::lang::Thread$State::TERMINATED;
+ case JV_TIMED_WAITING:
+ return ::java::lang::Thread$State::TIMED_WAITING;
+ case JV_WAITING:
+ return ::java::lang::Thread$State::WAITING;
+ }
+
+ // We don't really need a default, but this makes the compiler
+ // happy.
+ return ::java::lang::Thread$State::RUNNABLE;
+}
+
+JNIEnv *
+_Jv_GetCurrentJNIEnv ()
+{
+ java::lang::Thread *t = _Jv_ThreadCurrent ();
+ if (t == NULL)
+ return NULL;
+ return ((natThread *) t->data)->jni_env;
+}
+
+void
+_Jv_SetCurrentJNIEnv (JNIEnv *env)
+{
+ java::lang::Thread *t = _Jv_ThreadCurrent ();
+ JvAssert (t != NULL);
+ ((natThread *) t->data)->jni_env = env;
+}
+
+// Attach the current native thread to an existing (but unstarted) Thread
+// object. Does not register thread with the garbage collector.
+// Returns -1 on failure, 0 upon success.
+jint
+_Jv_AttachCurrentThread(java::lang::Thread* thread)
+{
+ JvSynchronize sync (thread);
+ if (thread == NULL || thread->startable_flag == false)
+ return -1;
+ thread->startable_flag = false;
+ natThread *nt = (natThread *) thread->data;
+ nt->alive_flag = ::java::lang::Thread::THREAD_ALIVE;
+ thread->state = JV_RUNNABLE;
+ _Jv_ThreadRegister (nt->thread);
+ return 0;
+}
+
+java::lang::Thread*
+_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group)
+{
+ // Register thread with GC before attempting any allocations.
+ _Jv_GCAttachThread ();
+ java::lang::Thread *thread = _Jv_ThreadCurrent ();
+ if (thread != NULL)
+ return thread;
+ if (name == NULL)
+ name = java::lang::Thread::gen_name ();
+ thread = new java::lang::Thread (NULL, group, NULL, name, false);
+ _Jv_AttachCurrentThread (thread);
+ _Jv_NotifyThreadStart (thread);
+ return thread;
+}
+
+java::lang::Thread*
+_Jv_AttachCurrentThreadAsDaemon(jstring name, java::lang::ThreadGroup* group)
+{
+ java::lang::Thread *thread = _Jv_ThreadCurrent ();
+ if (thread != NULL)
+ return thread;
+ if (name == NULL)
+ name = java::lang::Thread::gen_name ();
+ thread = new java::lang::Thread (NULL, group, NULL, name, false);
+ thread->setDaemon (true);
+ _Jv_AttachCurrentThread (thread);
+ _Jv_NotifyThreadStart (thread);
+ return thread;
+}
+
+jint
+_Jv_DetachCurrentThread (void)
+{
+ java::lang::Thread *t = _Jv_ThreadCurrent ();
+ if (t == NULL)
+ return -1;
+
+ _Jv_ThreadUnRegister ();
+ _Jv_GCDetachThread ();
+ // Release the monitors.
+ t->finish_ ();
+
+ return 0;
+}
diff --git a/gcc-4.8/libjava/java/lang/natThreadLocal.cc b/gcc-4.8/libjava/java/lang/natThreadLocal.cc
new file mode 100644
index 000000000..cd61f4a62
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natThreadLocal.cc
@@ -0,0 +1,169 @@
+// natThreadLocal.cc - Native part of ThreadLocal class.
+
+// Fast thread local storage for systems that support the __thread
+// variable attribute.
+
+/* Copyright (C) 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-threads.h>
+
+#include <gnu/gcj/RawDataManaged.h>
+#include <java/lang/ThreadLocal.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/IllegalThreadStateException.h>
+#include <java/lang/InterruptedException.h>
+#include <java/util/Map.h>
+
+#include <jni.h>
+
+/* We would like to have fast thread local variables that behave in
+ the same way as C and C++ thread local variables. This would mean
+ having an field attribute "thread" (like static, final, etc.).
+ However, this is not compatible with java semantics, which we wish
+ to support transparently. The problems we must overcome are:
+
+ * In Java, ThreadLocal variables are not statically allocated: they
+ are objects, created at runtime.
+
+ * Class ThreadLocal is not final and neither are its methods, so it
+ is possible to create a subclass of ThreadLocal that overrides
+ any method.
+
+ * __thread variables in DSOs are not visible to the garbage
+ collector, so we must ensure that we keep a copy of every thread
+ local variable somewhere on the heap.
+
+ * Once a ThreadLocal instance has been created and assigned to a
+ static field, that field may be reassigned to a different
+ ThreadLocal instance or null.
+
+ So, we can't simply replace get() and set() with accesses of a
+ __thread variable.
+
+ So, we create a pthread_key in each ThreadLocal object and use that
+ as a kind of "look-aside cache". When a ThreadLocal is set, we
+ also set the corresponding thread-specific value. When the
+ ThreadLocal is collected, we delete the key.
+
+ This scheme is biased towards efficiency when get() is called much
+ more frequently than set(). It is slightly internaler than the
+ all-Java solution using the underlying map in the set() case.
+ However, get() is very much more frequently invoked than set().
+
+*/
+
+
+#ifdef _POSIX_PTHREAD_SEMANTICS
+
+class tls_t
+{
+public:
+ pthread_key_t key;
+};
+
+void
+java::lang::ThreadLocal::constructNative (void)
+{
+ tls_t *tls = (tls_t *)_Jv_Malloc (sizeof (tls_t));
+ if (pthread_key_create (&tls->key, NULL) == 0)
+ TLSPointer = (::gnu::gcj::RawData *)tls;
+ else
+ _Jv_Free (tls);
+}
+
+void
+java::lang::ThreadLocal::set (::java::lang::Object *value)
+{
+ if (TLSPointer != NULL)
+ {
+ tls_t* tls = (tls_t*)TLSPointer;
+ pthread_setspecific (tls->key, value);
+ }
+
+ internalSet (value);
+}
+
+::java::lang::Object *
+java::lang::ThreadLocal::get (void)
+{
+ if (TLSPointer == NULL)
+ return internalGet ();
+
+ tls_t* tls = (tls_t*)TLSPointer;
+ void *obj = pthread_getspecific(tls->key);
+
+ if (obj)
+ return (::java::lang::Object *)obj;
+
+ ::java::lang::Object *value = internalGet ();
+ pthread_setspecific (tls->key, value);
+
+ return value;
+}
+
+void
+java::lang::ThreadLocal::remove (void)
+{
+ if (TLSPointer != NULL)
+ {
+ tls_t* tls = (tls_t*)TLSPointer;
+ pthread_setspecific (tls->key, NULL);
+ }
+
+ internalRemove ();
+}
+
+void
+java::lang::ThreadLocal::finalize (void)
+{
+ if (TLSPointer != NULL)
+ {
+ tls_t* tls = (tls_t*)TLSPointer;
+ pthread_key_delete (tls->key);
+ _Jv_Free (tls);
+ }
+}
+
+#else
+
+void
+java::lang::ThreadLocal::constructNative (void)
+{
+}
+
+void
+java::lang::ThreadLocal::set (::java::lang::Object *value)
+{
+ internalSet (value);
+}
+
+::java::lang::Object *
+java::lang::ThreadLocal::get (void)
+{
+ return internalGet ();
+}
+
+void
+java::lang::ThreadLocal::remove (void)
+{
+ internalRemove ();
+}
+
+void
+java::lang::ThreadLocal::finalize (void)
+{
+}
+
+#endif
diff --git a/gcc-4.8/libjava/java/lang/natVMClassLoader.cc b/gcc-4.8/libjava/java/lang/natVMClassLoader.cc
new file mode 100644
index 000000000..4edff7daf
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natVMClassLoader.cc
@@ -0,0 +1,245 @@
+// natVMClassLoader.cc - VMClassLoader native methods
+
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/* Author: Kresten Krab Thorup <krab@gnu.org> */
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java-threads.h>
+#include <java-interp.h>
+
+#include <java/lang/VMClassLoader.h>
+#include <java/lang/VMCompiler.h>
+#include <gnu/gcj/runtime/ExtensionClassLoader.h>
+#include <gnu/gcj/runtime/SystemClassLoader.h>
+#include <gnu/gcj/runtime/BootClassLoader.h>
+#include <java/lang/ClassLoader.h>
+#include <java/lang/Class.h>
+#include <java/lang/Throwable.h>
+#include <java/security/ProtectionDomain.h>
+#include <java/lang/ClassFormatError.h>
+#include <java/lang/StringBuffer.h>
+#include <java/lang/SecurityManager.h>
+#include <java/lang/Runtime.h>
+#include <java/util/HashSet.h>
+#include <java/lang/SecurityException.h>
+#include <java/lang/VirtualMachineError.h>
+
+java::lang::Class *
+java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
+ jstring name,
+ jbyteArray data,
+ jint offset,
+ jint length,
+ java::security::ProtectionDomain *pd)
+{
+ jclass klass = VMCompiler::compileClass(loader, name, data,
+ offset, length, pd);
+
+ if (klass)
+ _Jv_RegisterInitiatingLoader (klass, klass->loader);
+
+#ifdef INTERPRETER
+ if (klass == NULL)
+ {
+ klass = new java::lang::Class ();
+
+ // Synchronize on the class, so that it is not attempted initialized
+ // until we're done loading.
+ JvSynchronize sync (klass);
+
+ // Record the defining loader. For the bootstrap class loader,
+ // we record NULL.
+ if (loader != bootLoader)
+ klass->loader = loader;
+
+ if (name != 0)
+ {
+ _Jv_Utf8Const *name2 = _Jv_makeUtf8Const (name);
+
+ if (! _Jv_VerifyClassName (name2))
+ throw new java::lang::ClassFormatError
+ (JvNewStringLatin1 ("erroneous class name"));
+
+ klass->name = name2;
+ }
+
+ _Jv_Utf8Const *found_name = NULL;
+ try
+ {
+ _Jv_DefineClass (klass, data, offset, length, pd, &found_name);
+ }
+ catch (java::lang::Throwable *ex)
+ {
+ klass->state = JV_STATE_ERROR;
+ klass->notifyAll ();
+
+ if (found_name != NULL)
+ _Jv_UnregisterInitiatingLoader (klass, klass->loader);
+
+ // If EX is not a ClassNotFoundException, that's ok, because we
+ // account for the possibility in defineClass().
+ throw ex;
+ }
+
+ // if everything proceeded sucessfully, we're loaded.
+ JvAssert (klass->state == JV_STATE_READ);
+ }
+#endif // INTERPRETER
+
+ if (! klass)
+ {
+ StringBuffer *sb = new StringBuffer();
+ if (name)
+ {
+ sb->append(JvNewStringLatin1("found class file for class "));
+ sb->append(name);
+ }
+ else
+ sb->append(JvNewStringLatin1("found unnamed class file"));
+ sb->append(JvNewStringLatin1(", but no interpreter configured in this libgcj"));
+ throw new VirtualMachineError(sb->toString());
+ }
+
+ return klass;
+}
+
+java::lang::ClassLoader *
+java::lang::VMClassLoader::getSystemClassLoaderInternal()
+{
+ _Jv_InitClass (&gnu::gcj::runtime::ExtensionClassLoader::class$);
+ _Jv_CopyClassesToSystemLoader (gnu::gcj::runtime::ExtensionClassLoader::system_instance);
+ return gnu::gcj::runtime::ExtensionClassLoader::system_instance;
+}
+
+jclass
+java::lang::VMClassLoader::getPrimitiveClass (jchar type)
+{
+ char sig[2];
+ sig[0] = (char) type;
+ sig[1] = '\0';
+ // Note: this cannot return NULL, since the input is always correct.
+ return _Jv_FindClassFromSignature (sig, NULL);
+}
+
+void
+java::lang::VMClassLoader::initBootLoader(jstring libdir)
+{
+ bootLoader = new gnu::gcj::runtime::BootClassLoader(libdir);
+}
+
+jclass
+java::lang::VMClassLoader::nativeFindClass (jstring name)
+{
+ jclass klass = NULL;
+
+ if (lib_control != LIB_NEVER)
+ {
+ // Turn `gnu.pkg.quux' into `lib-gnu-pkg-quux'. Then search for
+ // a module named (eg, on Linux) `lib-gnu-pkg-quux.so', followed
+ // by `lib-gnu-pkg.so' and `lib-gnu.so'. If loading one of
+ // these causes the class to appear in the cache, then use it.
+ java::lang::StringBuffer *sb
+ = new java::lang::StringBuffer (JvNewStringLatin1("lib-"));
+ // Skip inner classes
+ jstring cn;
+ jint ci = name->indexOf('$');
+ if (ci == -1)
+ cn = name;
+ else
+ cn = name->substring (0, ci);
+ jstring so_base_name
+ = (sb->append (cn)->toString ())->replace ('.', '-');
+
+ using namespace ::java::lang;
+ Runtime *rt = Runtime::getRuntime();
+
+ _Jv_Utf8Const *name_u = NULL;
+
+ // Compare against `3' because that is the length of "lib".
+ while (! klass && so_base_name && so_base_name->length() > 3)
+ {
+ if (lib_control == LIB_CACHE)
+ {
+ // If we've already tried this name, we're done.
+ if (tried_libraries->contains(so_base_name))
+ break;
+ tried_libraries->add(so_base_name);
+ }
+
+ jboolean loaded = rt->loadLibraryInternal (so_base_name);
+
+ jint nd = so_base_name->lastIndexOf ('-');
+ if (nd == -1)
+ so_base_name = NULL;
+ else
+ so_base_name = so_base_name->substring (0, nd);
+
+ if (loaded)
+ {
+ if (name_u == NULL)
+ name_u = _Jv_makeUtf8Const (name);
+ klass = _Jv_FindClassInCache (name_u);
+ }
+ }
+ }
+
+ if (klass)
+ definePackageForNative(name);
+
+ return klass;
+}
+
+jclass
+java::lang::VMClassLoader::loadClass(jstring name, jboolean resolve)
+{
+ using namespace ::java::lang;
+
+ SecurityManager *sm = (SecurityManager *)SecurityManager::current;
+ if (sm)
+ {
+ jint lastDot = name->lastIndexOf('.');
+ if (lastDot != -1)
+ sm->checkPackageAccess(name->substring(0, lastDot));
+ }
+
+ // We try the boot loader first, so that the endorsed directory
+ // overrides compiled-in classes.
+ jclass klass = NULL;
+ if (bootLoader)
+ klass = bootLoader->bootLoadClass(name);
+ if (! klass)
+ {
+ _Jv_Utf8Const *utf = _Jv_makeUtf8Const (name);
+ klass = _Jv_FindClassInCache (utf);
+ }
+ if (! klass)
+ klass = nativeFindClass(name);
+ if (klass)
+ {
+ // We never want to return a class without its supers linked.
+ // It isn't clear from the spec, but this is what other
+ // implementations do in practice.
+ if (resolve)
+ resolveClass (klass);
+ else
+ _Jv_Linker::wait_for_state (klass, JV_STATE_LOADING);
+
+ definePackageForNative(name);
+ }
+
+ return klass;
+}
diff --git a/gcc-4.8/libjava/java/lang/natVMDouble.cc b/gcc-4.8/libjava/java/lang/natVMDouble.cc
new file mode 100644
index 000000000..f770bc422
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natVMDouble.cc
@@ -0,0 +1,215 @@
+// natVMDouble.cc - Implementation of java.lang.VMDouble native methods.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2006, 2007
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <java/lang/String.h>
+#include <java/lang/Double.h>
+#include <java/lang/VMDouble.h>
+#include <java/lang/Character.h>
+#include <java/lang/NumberFormatException.h>
+#include <jvm.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "fdlibm.h"
+
+union u
+{
+ jlong l;
+ jdouble d;
+};
+
+jlong
+java::lang::VMDouble::doubleToLongBits(jdouble value)
+{
+ union u u;
+ u.d = value;
+
+ jlong e = u.l & 0x7ff0000000000000LL;
+ jlong f = u.l & 0x000fffffffffffffLL;
+
+ if (e == 0x7ff0000000000000LL && f != 0L)
+ u.l = 0x7ff8000000000000LL;
+
+ return u.l;
+}
+
+jlong
+java::lang::VMDouble::doubleToRawLongBits(jdouble value)
+{
+ union u u;
+ u.d = value;
+ return u.l;
+}
+
+jdouble
+java::lang::VMDouble::longBitsToDouble(jlong bits)
+{
+ union u u;
+ u.l = bits;
+ return u.d;
+}
+
+jstring
+java::lang::VMDouble::toString(jdouble value, jboolean isFloat)
+{
+ if (Double::isNaN (value))
+ return JvNewStringLatin1 ("NaN", sizeof ("NaN") - 1);
+
+ if (value == Double::POSITIVE_INFINITY)
+ return JvNewStringLatin1 ("Infinity", sizeof ("Infinity") - 1);
+
+ if (value == Double::NEGATIVE_INFINITY)
+ return JvNewStringLatin1 ("-Infinity", sizeof ("-Infinity") - 1);
+
+ char buffer[50], result[50];
+ int decpt, sign;
+
+ _dtoa (value, 0, 20, &decpt, &sign, NULL, buffer, (int)isFloat);
+
+ value = fabs (value);
+
+ char *s = buffer;
+ char *d = result;
+
+ if (sign)
+ *d++ = '-';
+
+ if ((value >= 1e-3 && value < 1e7) || value == 0)
+ {
+ if (decpt <= 0)
+ *d++ = '0';
+ else
+ {
+ for (int i = 0; i < decpt; i++)
+ if (*s)
+ *d++ = *s++;
+ else
+ *d++ = '0';
+ }
+
+ *d++ = '.';
+
+ if (*s == 0)
+ {
+ *d++ = '0';
+ decpt++;
+ }
+
+ while (decpt++ < 0)
+ *d++ = '0';
+
+ while (*s)
+ *d++ = *s++;
+
+ *d = 0;
+
+ return JvNewStringLatin1 (result, strlen (result));
+ }
+
+ *d++ = *s++;
+ decpt--;
+ *d++ = '.';
+
+ if (*s == 0)
+ *d++ = '0';
+
+ while (*s)
+ *d++ = *s++;
+
+ *d++ = 'E';
+
+ if (decpt < 0)
+ {
+ *d++ = '-';
+ decpt = -decpt;
+ }
+
+ {
+ char exp[4];
+ char *e = exp + sizeof exp;
+
+ *--e = 0;
+ do
+ {
+ *--e = '0' + decpt % 10;
+ decpt /= 10;
+ }
+ while (decpt > 0);
+
+ while (*e)
+ *d++ = *e++;
+ }
+
+ *d = 0;
+
+ return JvNewStringLatin1 (result, strlen (result));
+}
+
+jdouble
+java::lang::VMDouble::parseDouble(jstring str)
+{
+ int length = str->length();
+
+ while (length > 0
+ && Character::isWhitespace(str->charAt(length - 1)))
+ length--;
+
+ // The String could end with a f/F/d/D which is valid but we don't need.
+ bool saw_trailer = false;
+ if (length > 0)
+ {
+ jchar last = str->charAt(length-1);
+ if (last == 'f' || last == 'F' || last == 'd' || last == 'D')
+ {
+ length--;
+ saw_trailer = true;
+ }
+ }
+
+ jsize start = 0;
+ while (length > 0
+ && Character::isWhitespace(str->charAt(start)))
+ start++, length--;
+
+ if (length > 0)
+ {
+ // Note that UTF can expand 3x.
+ char *data = (char *) __builtin_alloca (3 * length + 1);
+ jsize blength = _Jv_GetStringUTFRegion (str, start, length, data);
+ data[blength] = 0;
+
+ if (! saw_trailer)
+ {
+ if (! strcmp (data, "NaN") || ! strcmp (data, "+NaN")
+ || ! strcmp (data, "-NaN"))
+ return Double::NaN;
+ else if (! strcmp (data, "Infinity") || ! strcmp (data, "+Infinity"))
+ return Double::POSITIVE_INFINITY;
+ else if (! strcmp (data, "-Infinity"))
+ return Double::NEGATIVE_INFINITY;
+ }
+
+ struct _Jv_reent reent;
+ memset (&reent, 0, sizeof reent);
+
+ char *endptr;
+ double val = _strtod_r (&reent, data, &endptr);
+ if (endptr == data + blength)
+ return val;
+ }
+ throw new NumberFormatException(str);
+}
diff --git a/gcc-4.8/libjava/java/lang/natVMFloat.cc b/gcc-4.8/libjava/java/lang/natVMFloat.cc
new file mode 100644
index 000000000..54ae5191d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natVMFloat.cc
@@ -0,0 +1,52 @@
+// natVMFloat.cc - Implementation of java.lang.VMFloat native methods.
+
+/* Copyright (C) 1998, 1999, 2001, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <java/lang/Float.h>
+#include <java/lang/VMFloat.h>
+#include <jvm.h>
+
+union u
+{
+ jint l;
+ jfloat d;
+};
+
+jint
+java::lang::VMFloat::floatToIntBits(jfloat value)
+{
+ union u u;
+ u.d = value;
+ jint e = u.l & 0x7f800000;
+ jint f = u.l & 0x007fffff;
+
+ if (e == 0x7f800000 && f != 0)
+ u.l = 0x7fc00000;
+
+ return u.l;
+}
+
+jint
+java::lang::VMFloat::floatToRawIntBits(jfloat value)
+{
+ union u u;
+ u.d = value;
+ return u.l;
+}
+
+jfloat
+java::lang::VMFloat::intBitsToFloat(jint bits)
+{
+ union u u;
+ u.l = bits;
+ return u.d;
+}
+
diff --git a/gcc-4.8/libjava/java/lang/natVMProcess.cc b/gcc-4.8/libjava/java/lang/natVMProcess.cc
new file mode 100644
index 000000000..dfc6f6023
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natVMProcess.cc
@@ -0,0 +1,33 @@
+// natVMProcess.cc - native code for ProcessBuilder
+
+/* Copyright (C) 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <platform.h>
+
+#include <jvm.h>
+
+#include <java/lang/VMProcess.h>
+#include <java/lang/Process.h>
+#include <java/io/File.h>
+
+// It is convenient and safe to simply include all of these.
+#include <java/lang/Win32Process.h>
+#include <java/lang/EcosProcess.h>
+#include <java/lang/PosixProcess.h>
+
+::java::lang::Process *
+java::lang::VMProcess::nativeExec (jstringArray cmd,
+ jstringArray env,
+ ::java::io::File *dir,
+ jboolean redirect)
+{
+ return new _Jv_platform_process (cmd, env, dir, redirect);
+}
diff --git a/gcc-4.8/libjava/java/lang/natVMThrowable.cc b/gcc-4.8/libjava/java/lang/natVMThrowable.cc
new file mode 100644
index 000000000..b198f9073
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natVMThrowable.cc
@@ -0,0 +1,45 @@
+// natVMThrowable.cc - Native part of VMThrowable class.
+
+/* Copyright (C) 2003, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-stack.h>
+
+#include <java/lang/Throwable.h>
+#include <java/lang/VMThrowable.h>
+
+using namespace gnu::gcj;
+
+java::lang::VMThrowable *
+java::lang::VMThrowable::fillInStackTrace (java::lang::Throwable *)
+{
+ using namespace java::lang;
+
+ // Don't trace stack during initialization of the runtime.
+ if (! gcj::runtimeInitialized)
+ return NULL;
+
+ _Jv_StackTrace *trace = _Jv_StackTrace::GetStackTrace ();
+ VMThrowable *vmthrowable = new VMThrowable ();
+ vmthrowable->data = (RawDataManaged *) trace;
+ return vmthrowable;
+}
+
+
+JArray< ::java::lang::StackTraceElement *> *
+java::lang::VMThrowable::getStackTrace (java::lang::Throwable *throwable)
+{
+ _Jv_StackTrace *trace = reinterpret_cast <_Jv_StackTrace *> (data);
+ return _Jv_StackTrace::GetStackTraceElements (trace, throwable);
+}
diff --git a/gcc-4.8/libjava/java/lang/natWin32Process.cc b/gcc-4.8/libjava/java/lang/natWin32Process.cc
new file mode 100644
index 000000000..0e7f60d6c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/natWin32Process.cc
@@ -0,0 +1,360 @@
+// natWin32Process.cc - Native side of Win32 process code.
+
+/* Copyright (C) 2003, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+// Conflicts with the definition in "java/lang/reflect/Modifier.h"
+#undef STRICT
+
+#include <java/lang/Win32Process.h>
+#include <java/lang/IllegalThreadStateException.h>
+#include <java/lang/InterruptedException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/Thread.h>
+#include <java/io/File.h>
+#include <java/io/FileDescriptor.h>
+#include <java/io/FileInputStream.h>
+#include <java/io/FileOutputStream.h>
+#include <java/io/IOException.h>
+#include <java/lang/OutOfMemoryError.h>
+#include <java/lang/Win32Process$EOFInputStream.h>
+#include <gnu/java/nio/channels/FileChannelImpl.h>
+
+using gnu::java::nio::channels::FileChannelImpl;
+
+void
+java::lang::Win32Process::cleanup (void)
+{
+ // FIXME:
+ // We used to close the input, output and
+ // error streams here, but we can't do that
+ // because the caller also has the right
+ // to close these and FileInputStream and FileOutputStream
+ // scream if you attempt to close() them twice. Presently,
+ // we use _Jv_platform_close_on_exec, which is similar
+ // to the POSIX approach.
+ //
+ // What I wanted to do is have private nested
+ // classes in Win32Process which extend FileInputStream
+ // and FileOutputStream, respectively, but override
+ // close() to permit multiple calls to close(). This
+ // led to class header and platform configury issues
+ // that I didn't feel like dealing with. However,
+ // this approach could conceivably be a good multiplatform
+ // one since delaying the pipe close until process
+ // termination could be wasteful if many child processes
+ // are spawned within the parent process' lifetime.
+ inputStream = NULL;
+ outputStream = NULL;
+ errorStream = NULL;
+
+ if (procHandle)
+ {
+ CloseHandle((HANDLE) procHandle);
+ procHandle = (jint) INVALID_HANDLE_VALUE;
+ }
+}
+
+void
+java::lang::Win32Process::destroy (void)
+{
+ if (! hasExited ())
+ {
+ // Kill it forcibly and assign an (arbitrary) exit code of 0.
+ TerminateProcess ((HANDLE) procHandle, 0);
+ exitCode = 0;
+
+ cleanup ();
+ }
+}
+
+jboolean
+java::lang::Win32Process::hasExited (void)
+{
+ DWORD exitStatus;
+
+ if (GetExitCodeProcess ((HANDLE) procHandle, &exitStatus) != 0)
+ {
+ // NOTE: STILL_ACTIVE is defined as "259" by Win32 - if the
+ // child actually exits with this return code, we have a
+ // problem here. See MSDN documentation on GetExitCodeProcess( ).
+
+ if (exitStatus == STILL_ACTIVE)
+ return false;
+ else
+ {
+ cleanup ();
+ exitCode = exitStatus;
+ return true;
+ }
+ }
+ else
+ return true;
+}
+
+jint
+java::lang::Win32Process::waitFor (void)
+{
+ if (! hasExited ())
+ {
+ DWORD exitStatus = 0UL;
+
+ // Set up our waitable objects array
+ // - 0: the handle to the process we just launched
+ // - 1: our thread's interrupt event
+ HANDLE arh[2];
+ arh[0] = (HANDLE) procHandle;
+ arh[1] = _Jv_Win32GetInterruptEvent ();
+ DWORD rval = WaitForMultipleObjects (2, arh, 0, INFINITE);
+
+ // Use the returned value from WaitForMultipleObjects
+ // instead of our thread's interrupt_flag to test for
+ // thread interruption. See the comment for
+ // _Jv_Win32GetInterruptEvent().
+ bool bInterrupted = rval == (WAIT_OBJECT_0 + 1);
+
+ if (bInterrupted)
+ {
+ // Querying this forces a reset our thread's interrupt flag.
+ Thread::interrupted();
+
+ cleanup ();
+ throw new InterruptedException ();
+ }
+
+ GetExitCodeProcess ((HANDLE) procHandle, &exitStatus);
+ exitCode = exitStatus;
+
+ cleanup ();
+ }
+
+ return exitCode;
+}
+
+
+// Helper class for creating and managing the pipes
+// used for I/O redirection for child processes.
+class ChildProcessPipe
+{
+public:
+ // Indicates from the child process' point of view
+ // whether the pipe is for reading or writing.
+ enum EType {INPUT, OUTPUT, DUMMY};
+
+ ChildProcessPipe(EType eType);
+ ~ChildProcessPipe();
+
+ // Returns a pipe handle suitable for use by the parent process
+ HANDLE getParentHandle();
+
+ // Returns a pipe handle suitable for use by the child process.
+ HANDLE getChildHandle();
+
+private:
+ EType m_eType;
+ HANDLE m_hRead, m_hWrite;
+};
+
+ChildProcessPipe::ChildProcessPipe(EType eType):
+ m_eType(eType), m_hRead(0), m_hWrite(0)
+{
+ if (eType == DUMMY)
+ return;
+
+ SECURITY_ATTRIBUTES sAttrs;
+
+ // Explicitly allow the handles to the pipes to be inherited.
+ sAttrs.nLength = sizeof (SECURITY_ATTRIBUTES);
+ sAttrs.bInheritHandle = 1;
+ sAttrs.lpSecurityDescriptor = NULL;
+
+ if (CreatePipe (&m_hRead, &m_hWrite, &sAttrs, 0) == 0)
+ {
+ DWORD dwErrorCode = GetLastError ();
+ throw new java::io::IOException (
+ _Jv_WinStrError (_T("Error creating pipe"), dwErrorCode));
+ }
+
+ // If this is the read end of the child, we need
+ // to make the parent write end non-inheritable. Similarly,
+ // if this is the write end of the child, we need to make
+ // the parent read end non-inheritable. If we didn't
+ // do this, the child would inherit these ends and we wouldn't
+ // be able to close them from our end. For full details,
+ // do a Google search on "Q190351".
+ HANDLE& rhStd = m_eType==INPUT ? m_hWrite : m_hRead;
+ _Jv_platform_close_on_exec (rhStd);
+}
+
+ChildProcessPipe::~ChildProcessPipe()
+{
+ // Close the parent end of the pipe. This
+ // destructor is called after the child process
+ // has been spawned.
+ if (m_eType != DUMMY)
+ CloseHandle(getChildHandle());
+}
+
+HANDLE ChildProcessPipe::getParentHandle()
+{
+ return m_eType==INPUT ? m_hWrite : m_hRead;
+}
+
+HANDLE ChildProcessPipe::getChildHandle()
+{
+ return m_eType==INPUT ? m_hRead : m_hWrite;
+}
+
+void
+java::lang::Win32Process::startProcess (jstringArray progarray,
+ jstringArray envp,
+ java::io::File *dir,
+ jboolean redirect)
+{
+ using namespace java::io;
+
+ procHandle = (jint) INVALID_HANDLE_VALUE;
+
+ // Reconstruct the command line.
+ jstring *elts = elements (progarray);
+
+ int cmdLineLen = 0;
+
+ for (int i = 0; i < progarray->length; ++i)
+ cmdLineLen += (elts[i]->length() + 1);
+
+ LPTSTR cmdLine = (LPTSTR) _Jv_Malloc ((cmdLineLen + 1) * sizeof(TCHAR));
+ LPTSTR cmdLineCurPos = cmdLine;
+
+ for (int i = 0; i < progarray->length; ++i)
+ {
+ if (i > 0)
+ *cmdLineCurPos++ = _T(' ');
+
+ jint len = elts[i]->length();
+ JV_TEMP_STRING_WIN32(thiselt, elts[i]);
+ _tcscpy(cmdLineCurPos, thiselt);
+ cmdLineCurPos += len;
+ }
+ *cmdLineCurPos = _T('\0');
+
+ // Get the environment, if any.
+ LPTSTR env = NULL;
+ if (envp)
+ {
+ elts = elements (envp);
+
+ int envLen = 0;
+ for (int i = 0; i < envp->length; ++i)
+ envLen += (elts[i]->length() + 1);
+
+ env = (LPTSTR) _Jv_Malloc ((envLen + 1) * sizeof(TCHAR));
+
+ int j = 0;
+ for (int i = 0; i < envp->length; ++i)
+ {
+ jint len = elts[i]->length();
+
+ JV_TEMP_STRING_WIN32(thiselt, elts[i]);
+ _tcscpy(env + j, thiselt);
+
+ j += len;
+
+ // Skip past the null terminator that _tcscpy just inserted.
+ j++;
+ }
+ *(env + j) = _T('\0');
+ }
+
+ // Get the working directory path, if specified.
+ JV_TEMP_STRING_WIN32 (wdir, dir ? dir->getPath () : 0);
+
+ errorStream = NULL;
+ inputStream = NULL;
+ outputStream = NULL;
+
+ java::lang::Throwable *exc = NULL;
+
+ try
+ {
+ // We create anonymous pipes to communicate with the child
+ // on each of standard streams.
+ ChildProcessPipe aChildStdIn(ChildProcessPipe::INPUT);
+ ChildProcessPipe aChildStdOut(ChildProcessPipe::OUTPUT);
+ ChildProcessPipe aChildStdErr(redirect ? ChildProcessPipe::DUMMY
+ : ChildProcessPipe::OUTPUT);
+
+ outputStream = new FileOutputStream (new FileChannelImpl (
+ (jint) aChildStdIn.getParentHandle (),
+ FileChannelImpl::WRITE));
+ inputStream = new FileInputStream (new FileChannelImpl (
+ (jint) aChildStdOut.getParentHandle (),
+ FileChannelImpl::READ));
+ if (redirect)
+ errorStream = Win32Process$EOFInputStream::instance;
+ else
+ errorStream = new FileInputStream (new FileChannelImpl (
+ (jint) aChildStdErr.getParentHandle (),
+ FileChannelImpl::READ));
+
+ // Now create the child process.
+ PROCESS_INFORMATION pi;
+ STARTUPINFO si;
+
+ ZeroMemory (&pi, sizeof (PROCESS_INFORMATION));
+
+ ZeroMemory (&si, sizeof (STARTUPINFO));
+ si.cb = sizeof (STARTUPINFO);
+
+ // Explicitly specify the handles to the standard streams.
+ si.dwFlags |= STARTF_USESTDHANDLES;
+
+ si.hStdInput = aChildStdIn.getChildHandle();
+ si.hStdOutput = aChildStdOut.getChildHandle();
+ si.hStdError = redirect ? aChildStdOut.getChildHandle()
+ : aChildStdErr.getChildHandle();
+
+ // Spawn the process. CREATE_NO_WINDOW only applies when
+ // starting a console application; it suppresses the
+ // creation of a console window. This flag is ignored on
+ // Win9X.
+
+ if (CreateProcess (NULL,
+ cmdLine,
+ NULL,
+ NULL,
+ 1,
+ CREATE_NO_WINDOW | CREATE_UNICODE_ENVIRONMENT,
+ env,
+ wdir,
+ &si,
+ &pi) == 0)
+ {
+ DWORD dwErrorCode = GetLastError ();
+ throw new IOException (
+ _Jv_WinStrError (_T("Error creating child process"), dwErrorCode));
+ }
+
+ procHandle = (jint ) pi.hProcess;
+
+ _Jv_Free (cmdLine);
+ if (env != NULL)
+ _Jv_Free (env);
+ }
+ catch (java::lang::Throwable *thrown)
+ {
+ cleanup ();
+ exc = thrown;
+ }
+
+ if (exc != NULL)
+ throw exc;
+}
diff --git a/gcc-4.8/libjava/java/lang/ref/PhantomReference.h b/gcc-4.8/libjava/java/lang/ref/PhantomReference.h
new file mode 100644
index 000000000..0c8a823d4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/PhantomReference.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ref_PhantomReference__
+#define __java_lang_ref_PhantomReference__
+
+#pragma interface
+
+#include <java/lang/ref/Reference.h>
+
+class java::lang::ref::PhantomReference : public ::java::lang::ref::Reference
+{
+
+public:
+ PhantomReference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
+ virtual ::java::lang::Object * get();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ref_PhantomReference__
diff --git a/gcc-4.8/libjava/java/lang/ref/Reference.h b/gcc-4.8/libjava/java/lang/ref/Reference.h
new file mode 100644
index 000000000..3eeaf65c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/Reference.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ref_Reference__
+#define __java_lang_ref_Reference__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+}
+
+class java::lang::ref::Reference : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Reference(::java::lang::Object *);
+ Reference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
+private:
+ void create(::java::lang::Object *);
+public:
+ virtual ::java::lang::Object * get();
+ virtual void clear();
+ virtual jboolean isEnqueued();
+ virtual jboolean enqueue();
+public: // actually package-private
+ ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) referent;
+ ::gnu::gcj::RawData * copy;
+ jboolean cleared;
+ ::java::lang::ref::ReferenceQueue * queue;
+ ::java::lang::ref::Reference * nextOnQueue;
+ static ::java::lang::Object * lock;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ref_Reference__
diff --git a/gcc-4.8/libjava/java/lang/ref/Reference.java b/gcc-4.8/libjava/java/lang/ref/Reference.java
new file mode 100644
index 000000000..a5184cee8
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/Reference.java
@@ -0,0 +1,204 @@
+/* java.lang.ref.Reference
+ Copyright (C) 1999, 2002, 2003, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.ref;
+
+/**
+ * This is the base class of all references. A reference allows
+ * refering to an object without preventing the garbage collector to
+ * collect it. The only way to get the referred object is via the
+ * <code>get()</code>-method. This method will return
+ * <code>null</code> if the object was collected. <br>
+ *
+ * A reference may be registered with a queue. When a referred
+ * element gets collected the reference will be put on the queue, so
+ * that you will be notified. <br>
+ *
+ * There are currently three types of references: soft reference,
+ * weak reference and phantom reference. <br>
+ *
+ * Soft references will be cleared if the garbage collector is told
+ * to free some memory and there are no unreferenced or weakly referenced
+ * objects. It is useful for caches. <br>
+ *
+ * Weak references will be cleared as soon as the garbage collector
+ * determines that the refered object is only weakly reachable. They
+ * are useful as keys in hashtables (see <code>WeakHashtable</code>) as
+ * you get notified when nobody has the key anymore.
+ *
+ * Phantom references don't prevent finalization. If an object is only
+ * phantom reachable, it will be finalized, and the reference will be
+ * enqueued, but not cleared. Since you mustn't access an finalized
+ * object, the <code>get</code> method of a phantom reference will never
+ * work. It is useful to keep track, when an object is finalized.
+ *
+ * @author Jochen Hoenicke
+ * @see java.util.WeakHashtable
+ */
+public abstract class Reference<T>
+{
+ /**
+ * The underlying object. This field is handled in a special way by
+ * the garbage collector.
+ * GCJ LOCAL:
+ * This is a RawData because it must be disguised from the GC.
+ * END GCJ LOCAL
+ */
+ gnu.gcj.RawData referent;
+
+ /**
+ * This is like REFERENT but is not scanned by the GC. We keep a
+ * copy around so that we can clean up our internal data structure
+ * even after clear() is called.
+ * GCJ LOCAL:
+ * This field doesn't exist in Classpath.
+ * END GCJ LOCAL
+ */
+ gnu.gcj.RawData copy;
+
+ /**
+ * Set to true if {@link #clear()} is called.
+ * GCJ LOCAL:
+ * This field doesn't exist in Classpath. It is used internally in
+ * natReference.cc, which enqueues the reference unless it is true
+ * (has been cleared).
+ * END GCJ LOCAL
+ */
+ boolean cleared = false;
+
+ /**
+ * The queue this reference is registered on. This is null, if this
+ * wasn't registered to any queue or reference was already enqueued.
+ */
+ ReferenceQueue<? super T> queue;
+
+ /**
+ * Link to the next entry on the queue. If this is null, this
+ * reference is not enqueued. Otherwise it points to the next
+ * reference. The last reference on a queue will point to itself
+ * (not to null, that value is used to mark a not enqueued
+ * reference).
+ */
+ Reference nextOnQueue;
+
+ /**
+ * This lock should be taken by the garbage collector, before
+ * determining reachability. It will prevent the get()-method to
+ * return the reference so that reachability doesn't change.
+ */
+ static Object lock = new Object();
+
+ /**
+ * Creates a new reference that is not registered to any queue.
+ * Since it is package private, it is not possible to overload this
+ * class in a different package.
+ * @param referent the object we refer to.
+ */
+ Reference(T ref)
+ {
+ create (ref);
+ }
+
+ /**
+ * Creates a reference that is registered to a queue. Since this is
+ * package private, it is not possible to overload this class in a
+ * different package.
+ * @param referent the object we refer to.
+ * @param q the reference queue to register on.
+ * @exception NullPointerException if q is null.
+ */
+ Reference(T ref, ReferenceQueue<? super T> q)
+ {
+ if (q == null)
+ throw new NullPointerException();
+ queue = q;
+ create (ref);
+ }
+
+ /**
+ * Notifies the VM that a new Reference has been created.
+ */
+ private native void create (T o);
+
+ /**
+ * Returns the object, this reference refers to.
+ * @return the object, this reference refers to, or null if the
+ * reference was cleared.
+ */
+ public native T get();
+
+ /**
+ * Clears the reference, so that it doesn't refer to its object
+ * anymore. For soft and weak references this is called by the
+ * garbage collector. For phantom references you should call
+ * this when enqueuing the reference.
+ */
+ public void clear()
+ {
+ // Must synchronize so changes are visible in finalizer thread.
+ synchronized (lock)
+ {
+ referent = null;
+ cleared = true;
+ }
+ }
+
+ /**
+ * Tells if the object is enqueued on a reference queue.
+ * @return true if it is enqueued, false otherwise.
+ */
+ public boolean isEnqueued()
+ {
+ return nextOnQueue != null;
+ }
+
+ /**
+ * Enqueue an object on a reference queue. This is normally executed
+ * by the garbage collector.
+ */
+ public boolean enqueue()
+ {
+ if (queue != null && nextOnQueue == null)
+ {
+ queue.enqueue(this);
+ queue = null;
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/ref/ReferenceQueue.h b/gcc-4.8/libjava/java/lang/ref/ReferenceQueue.h
new file mode 100644
index 000000000..bd4a9d8b7
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/ReferenceQueue.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ref_ReferenceQueue__
+#define __java_lang_ref_ReferenceQueue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::ref::ReferenceQueue : public ::java::lang::Object
+{
+
+public:
+ ReferenceQueue();
+ virtual ::java::lang::ref::Reference * poll();
+public: // actually package-private
+ virtual jboolean enqueue(::java::lang::ref::Reference *);
+private:
+ ::java::lang::ref::Reference * dequeue();
+public:
+ virtual ::java::lang::ref::Reference * remove(jlong);
+ virtual ::java::lang::ref::Reference * remove();
+private:
+ ::java::lang::ref::Reference * __attribute__((aligned(__alignof__( ::java::lang::Object)))) first;
+ ::java::lang::Object * lock;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ref_ReferenceQueue__
diff --git a/gcc-4.8/libjava/java/lang/ref/SoftReference.h b/gcc-4.8/libjava/java/lang/ref/SoftReference.h
new file mode 100644
index 000000000..faa98e7bd
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/SoftReference.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ref_SoftReference__
+#define __java_lang_ref_SoftReference__
+
+#pragma interface
+
+#include <java/lang/ref/Reference.h>
+
+class java::lang::ref::SoftReference : public ::java::lang::ref::Reference
+{
+
+public:
+ SoftReference(::java::lang::Object *);
+ SoftReference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
+ virtual ::java::lang::Object * get();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ref_SoftReference__
diff --git a/gcc-4.8/libjava/java/lang/ref/WeakReference.h b/gcc-4.8/libjava/java/lang/ref/WeakReference.h
new file mode 100644
index 000000000..b540274d3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/WeakReference.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ref_WeakReference__
+#define __java_lang_ref_WeakReference__
+
+#pragma interface
+
+#include <java/lang/ref/Reference.h>
+
+class java::lang::ref::WeakReference : public ::java::lang::ref::Reference
+{
+
+public:
+ WeakReference(::java::lang::Object *);
+ WeakReference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ref_WeakReference__
diff --git a/gcc-4.8/libjava/java/lang/ref/natReference.cc b/gcc-4.8/libjava/java/lang/ref/natReference.cc
new file mode 100644
index 000000000..ac7272cf5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/ref/natReference.cc
@@ -0,0 +1,377 @@
+// natReference.cc - Native code for References
+
+/* Copyright (C) 2001, 2002, 2003, 2005, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// Written by Tom Tromey <tromey@redhat.com>
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/lang/Throwable.h>
+#include <java/lang/ref/Reference.h>
+#include <java/lang/ref/SoftReference.h>
+#include <java/lang/ref/WeakReference.h>
+#include <java/lang/ref/PhantomReference.h>
+#include <java/lang/ref/ReferenceQueue.h>
+
+static void finalize_reference (jobject ref);
+static void finalize_referred_to_object (jobject obj);
+
+
+
+enum weight
+{
+ SOFT = 0,
+ WEAK = 1,
+ FINALIZE = 2,
+ PHANTOM = 3,
+
+ // This is used to mark the head of a list.
+ HEAD = 4,
+
+ // This is used to mark a deleted item.
+ DELETED = 5
+};
+
+// Objects of this type are used in the hash table to keep track of
+// the mapping between a finalizable object and the various References
+// which refer to it.
+struct object_list
+{
+ // The reference object. This is NULL for FINALIZE weight.
+ jobject reference;
+
+ // The weight of this object.
+ enum weight weight;
+
+ // Next in list.
+ object_list *next;
+};
+
+// Hash table used to hold mapping from object to References. The
+// object_list item in the hash holds the object itself in the
+// reference field; chained to it are all the references sorted in
+// order of weight (lowest first).
+static object_list *hash = NULL;
+
+// Number of slots used in HASH.
+static int hash_count = 0;
+
+// Number of slots total in HASH. Must be power of 2.
+static int hash_size = 0;
+
+#define DELETED_REFERENCE ((jobject) -1)
+
+static object_list *
+find_slot (jobject key)
+{
+ jint hcode = _Jv_HashCode (key);
+ /* step must be non-zero, and relatively prime with hash_size. */
+ jint step = (hcode ^ (hcode >> 16)) | 1;
+ int start_index = hcode & (hash_size - 1);
+ int index = start_index;
+ int deleted_index = -1;
+ do
+ {
+ object_list *ptr = &hash[index];
+ if (ptr->reference == key)
+ return ptr;
+ else if (ptr->reference == NULL)
+ {
+ if (deleted_index == -1)
+ return ptr;
+ else
+ return &hash[deleted_index];
+ }
+ else if (ptr->weight == DELETED)
+ {
+ deleted_index = index;
+ JvAssert (ptr->reference == DELETED_REFERENCE);
+ }
+ index = (index + step) & (hash_size - 1);
+ }
+ while (index != start_index);
+ // Note that we can have INDEX == START_INDEX if the table has no
+ // NULL entries but does have DELETED entries.
+ JvAssert (deleted_index >= 0);
+ return &hash[deleted_index];
+}
+
+static void
+rehash ()
+{
+ if (hash == NULL)
+ {
+ hash_size = 1024;
+ hash = (object_list *) _Jv_Malloc (hash_size * sizeof (object_list));
+ memset (hash, 0, hash_size * sizeof (object_list));
+ }
+ else
+ {
+ object_list *old = hash;
+ int i = hash_size;
+
+ hash_size *= 2;
+ hash = (object_list *) _Jv_Malloc (hash_size * sizeof (object_list));
+ memset (hash, 0, hash_size * sizeof (object_list));
+
+ while (--i >= 0)
+ {
+ if (old[i].reference == NULL || old[i].weight == DELETED)
+ continue;
+ object_list *newslot = find_slot (old[i].reference);
+ *newslot = old[i];
+ }
+
+ _Jv_Free (old);
+ }
+}
+
+// Remove a Reference.
+static void
+remove_from_hash (jobject obj)
+{
+ java::lang::ref::Reference *ref
+ = reinterpret_cast<java::lang::ref::Reference *> (obj);
+ object_list *head = find_slot (ref->copy);
+
+ // We might have found a new slot. We can just ignore that here.
+ if (head->reference != ref->copy)
+ return;
+
+ object_list **link = &head->next;
+ head = head->next;
+
+ while (head && head->reference != ref)
+ {
+ link = &head->next;
+ head = head->next;
+ }
+
+ // Remove the slot.
+ if (head)
+ {
+ *link = head->next;
+ _Jv_Free (head);
+ }
+}
+
+// Return list head if object is in hash, NULL otherwise.
+object_list *
+in_hash (jobject obj)
+{
+ // The hash table might not yet be initialized.
+ if (hash == NULL)
+ return NULL;
+ object_list *head = find_slot (obj);
+ if (head->reference != obj)
+ return NULL;
+ return head;
+}
+
+// FIXME what happens if an object's finalizer creates a Reference to
+// the object, and the object has never before been added to the hash?
+// Madness!
+
+// Add an item to the hash table. If the item is new, we also add a
+// finalizer item. We keep items in the hash table until they are
+// completely collected; this lets us know when an item is new, even
+// if it has been resurrected after its finalizer has been run.
+static void
+add_to_hash (java::lang::ref::Reference *the_reference)
+{
+ JvSynchronize sync (java::lang::ref::Reference::lock);
+
+ if (3 * hash_count >= 2 * hash_size)
+ rehash ();
+
+ // Use `copy' here because the `referent' field has been cleared.
+ jobject referent = the_reference->copy;
+ object_list *item = find_slot (referent);
+ if (item->reference == NULL || item->reference == DELETED_REFERENCE)
+ {
+ // New item, so make an entry for the finalizer.
+ item->reference = referent;
+ item->weight = HEAD;
+
+ item->next = (object_list *) _Jv_Malloc (sizeof (object_list));
+ item->next->reference = NULL;
+ item->next->weight = FINALIZE;
+ item->next->next = NULL;
+ ++hash_count;
+ }
+
+ object_list *n = (object_list *) _Jv_Malloc (sizeof (object_list));
+ n->reference = the_reference;
+
+ enum weight w = PHANTOM;
+ if (java::lang::ref::SoftReference::class$.isInstance (the_reference))
+ w = SOFT;
+ else if (java::lang::ref::WeakReference::class$.isInstance (the_reference))
+ w = WEAK;
+ n->weight = w;
+
+ object_list **link = &item->next;
+ object_list *iter = *link;
+ while (iter && iter->weight < n->weight)
+ {
+ link = &iter->next;
+ iter = *link;
+ }
+ n->next = *link;
+ *link = n;
+}
+
+// Add a FINALIZE entry if one doesn't exist.
+static void
+maybe_add_finalize (object_list *entry, jobject obj)
+{
+ object_list **link = &entry->next;
+ object_list *iter = *link;
+ while (iter && iter->weight < FINALIZE)
+ {
+ link = &iter->next;
+ iter = *link;
+ }
+
+ // We want at most one FINALIZE entry in the queue.
+ if (iter && iter->weight == FINALIZE)
+ return;
+
+ object_list *n = (object_list *) _Jv_Malloc (sizeof (object_list));
+ n->reference = obj;
+ n->weight = FINALIZE;
+ n->next = *link;
+ *link = n;
+}
+
+// This is called when an object is ready to be finalized. This
+// actually implements the appropriate Reference semantics.
+static void
+finalize_referred_to_object (jobject obj)
+{
+ JvSynchronize sync (java::lang::ref::Reference::lock);
+
+ object_list *list = find_slot (obj);
+ object_list *head = list->next;
+ if (head == NULL)
+ {
+ // We have a truly dead object: the object's finalizer has been
+ // run, all the object's references have been processed, and the
+ // object is unreachable. There is, at long last, no way to
+ // resurrect it.
+ list->reference = DELETED_REFERENCE;
+ list->weight = DELETED;
+ --hash_count;
+ return;
+ }
+
+ enum weight w = head->weight;
+ if (w == FINALIZE)
+ {
+ // Update the list first, as _Jv_FinalizeString might end up
+ // looking at this data structure.
+ list->next = head->next;
+ _Jv_Free (head);
+
+ // If we have a Reference A to a Reference B, and B is
+ // finalized, then we have to take special care to make sure
+ // that B is properly deregistered. This is super gross. FIXME
+ // will it fail if B's finalizer resurrects B?
+ if (java::lang::ref::Reference::class$.isInstance (obj))
+ finalize_reference (obj);
+ else if (obj->getClass() == &java::lang::String::class$)
+ _Jv_FinalizeString (obj);
+ else
+ _Jv_FinalizeObject (obj);
+ }
+ else if (w != SOFT || _Jv_GCCanReclaimSoftReference (obj))
+ {
+ // If we just decided to reclaim a soft reference, we might as
+ // well do all the weak references at the same time.
+ if (w == SOFT)
+ w = WEAK;
+
+ while (head && head->weight <= w)
+ {
+ java::lang::ref::Reference *ref
+ = reinterpret_cast<java::lang::ref::Reference *> (head->reference);
+ if (! ref->cleared)
+ ref->enqueue ();
+
+ object_list *next = head->next;
+ _Jv_Free (head);
+ head = next;
+ }
+ list->next = head;
+ }
+
+ // Re-register this finalizer. We always re-register because we
+ // can't know until the next collection cycle whether or not the
+ // object is truly unreachable.
+ _Jv_RegisterFinalizer (obj, finalize_referred_to_object);
+}
+
+// This is called when a Reference object is finalized. If there is a
+// Reference pointing to this Reference then that case is handled by
+// finalize_referred_to_object.
+static void
+finalize_reference (jobject ref)
+{
+ JvSynchronize sync (java::lang::ref::Reference::lock);
+ remove_from_hash (ref);
+ // The user might have a subclass of Reference with a finalizer.
+ _Jv_FinalizeObject (ref);
+}
+
+void
+_Jv_RegisterStringFinalizer (jobject str)
+{
+ // This function might be called before any other Reference method,
+ // so we must ensure the class is initialized.
+ _Jv_InitClass (&java::lang::ref::Reference::class$);
+ JvSynchronize sync (java::lang::ref::Reference::lock);
+ // If the object is in our hash table, then we might need to add a
+ // new FINALIZE entry. Otherwise, we just register an ordinary
+ // finalizer.
+ object_list *entry = in_hash (str);
+ if (entry)
+ maybe_add_finalize (entry, str);
+ else
+ _Jv_RegisterFinalizer ((void *) str, _Jv_FinalizeString);
+}
+
+void
+::java::lang::ref::Reference::create (jobject ref)
+{
+ // Nothing says you can't make a Reference with a NULL referent.
+ // But there's nothing to do in such a case.
+ referent = reinterpret_cast<gnu::gcj::RawData *> (ref);
+ copy = referent;
+ if (referent != NULL)
+ {
+ JvSynchronize sync (java::lang::ref::Reference::lock);
+ // `this' is a new Reference object. We register a new
+ // finalizer for pointed-to object and we arrange a special
+ // finalizer for ourselves as well.
+ _Jv_RegisterFinalizer (this, finalize_reference);
+ _Jv_RegisterFinalizer (referent, finalize_referred_to_object);
+ gnu::gcj::RawData **p = &referent;
+ _Jv_GCRegisterDisappearingLink ((jobject *) p);
+ add_to_hash (this);
+ }
+}
+
+::java::lang::Object *
+::java::lang::ref::Reference::get()
+{
+ JvSynchronize sync (lock);
+ return referent;
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/AccessibleObject.h b/gcc-4.8/libjava/java/lang/reflect/AccessibleObject.h
new file mode 100644
index 000000000..d140e300c
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/AccessibleObject.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_AccessibleObject__
+#define __java_lang_reflect_AccessibleObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::AccessibleObject : public ::java::lang::Object
+{
+
+public: // actually protected
+ AccessibleObject();
+public:
+ virtual jboolean isAccessible();
+ static void setAccessible(JArray< ::java::lang::reflect::AccessibleObject * > *, jboolean);
+ virtual void setAccessible(jboolean);
+private:
+ static void checkPermission();
+ void secureSetAccessible(jboolean);
+public:
+ virtual ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *);
+ virtual JArray< ::java::lang::annotation::Annotation * > * getAnnotations();
+ virtual JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations();
+ virtual jboolean isAnnotationPresent(::java::lang::Class *);
+public: // actually package-private
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) flag;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_AccessibleObject__
diff --git a/gcc-4.8/libjava/java/lang/reflect/AnnotatedElement.h b/gcc-4.8/libjava/java/lang/reflect/AnnotatedElement.h
new file mode 100644
index 000000000..5792b75e0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/AnnotatedElement.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_AnnotatedElement__
+#define __java_lang_reflect_AnnotatedElement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::AnnotatedElement : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *) = 0;
+ virtual JArray< ::java::lang::annotation::Annotation * > * getAnnotations() = 0;
+ virtual JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations() = 0;
+ virtual jboolean isAnnotationPresent(::java::lang::Class *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_AnnotatedElement__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Array.h b/gcc-4.8/libjava/java/lang/reflect/Array.h
new file mode 100644
index 000000000..48df7d3fa
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Array.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Array__
+#define __java_lang_reflect_Array__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::Array : public ::java::lang::Object
+{
+
+ Array();
+public:
+ static ::java::lang::Object * newInstance(::java::lang::Class *, jint);
+ static ::java::lang::Object * newInstance(::java::lang::Class *, JArray< jint > *);
+ static jint getLength(::java::lang::Object *);
+ static ::java::lang::Object * get(::java::lang::Object *, jint);
+ static jboolean getBoolean(::java::lang::Object *, jint);
+ static jbyte getByte(::java::lang::Object *, jint);
+ static jchar getChar(::java::lang::Object *, jint);
+ static jshort getShort(::java::lang::Object *, jint);
+ static jint getInt(::java::lang::Object *, jint);
+ static jlong getLong(::java::lang::Object *, jint);
+ static jfloat getFloat(::java::lang::Object *, jint);
+ static jdouble getDouble(::java::lang::Object *, jint);
+private:
+ static ::java::lang::Class * getElementType(::java::lang::Object *, jint);
+ static void set(::java::lang::Object *, jint, ::java::lang::Object *, ::java::lang::Class *);
+public:
+ static void set(::java::lang::Object *, jint, ::java::lang::Object *);
+ static void setBoolean(::java::lang::Object *, jint, jboolean);
+ static void setByte(::java::lang::Object *, jint, jbyte);
+ static void setChar(::java::lang::Object *, jint, jchar);
+ static void setShort(::java::lang::Object *, jint, jshort);
+ static void setInt(::java::lang::Object *, jint, jint);
+ static void setLong(::java::lang::Object *, jint, jlong);
+ static void setFloat(::java::lang::Object *, jint, jfloat);
+ static void setDouble(::java::lang::Object *, jint, jdouble);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Array__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Array.java b/gcc-4.8/libjava/java/lang/reflect/Array.java
new file mode 100644
index 000000000..639cc0e02
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Array.java
@@ -0,0 +1,458 @@
+/* java.lang.reflect.Array - manipulate arrays by reflection
+ Copyright (C) 1998, 1999, 2001, 2003, 2005, 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import gnu.classpath.Configuration;
+
+/**
+ * Array holds static helper functions that allow you to create and
+ * manipulate arrays by reflection. Operations know how to perform widening
+ * conversions, but throw {@link IllegalArgumentException} if you attempt
+ * a narrowing conversion. Also, when accessing primitive arrays, this
+ * class performs object wrapping and unwrapping as necessary.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type. They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc. These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes. Note also that the shorthand <code>Object[].class</code>
+ * is a convenient way to get array Classes.<p>
+ *
+ * <B>Performance note:</B> This class performs best when it does not have
+ * to convert primitive types. The further along the chain it has to convert,
+ * the worse performance will be. You're best off using the array as whatever
+ * type it already is, and then converting the result. You will do even
+ * worse if you do this and use the generic set() function.
+ *
+ * @author John Keiser
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Per Bothner (bothner@cygnus.com)
+ * @see java.lang.Boolean#TYPE
+ * @see java.lang.Byte#TYPE
+ * @see java.lang.Short#TYPE
+ * @see java.lang.Character#TYPE
+ * @see java.lang.Integer#TYPE
+ * @see java.lang.Long#TYPE
+ * @see java.lang.Float#TYPE
+ * @see java.lang.Double#TYPE
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Array
+{
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary("javalangreflect");
+ }
+ }
+
+ /**
+ * This class is uninstantiable.
+ */
+ private Array()
+ {
+ }
+
+ /**
+ * Creates a new single-dimensioned array.
+ * @param componentType the type of the array to create
+ * @param length the length of the array to create
+ * @return the created array, cast to an Object
+ * @throws NullPointerException if <code>componentType</code> is null
+ * @throws IllegalArgumentException if <code>componentType</code> is
+ * <code>Void.TYPE</code>
+ * @throws NegativeArraySizeException when length is less than 0
+ * @throws OutOfMemoryError if memory allocation fails
+ */
+ public static native Object newInstance(Class<?> componentType, int length);
+
+ /**
+ * Creates a new multi-dimensioned array. The new array has the same
+ * component type as the argument class, and the number of dimensions
+ * in the new array is the sum of the dimensions of the argument class
+ * and the length of the argument dimensions. Virtual Machine limitations
+ * forbid too many dimensions (usually 255 is the maximum); but even
+ * 50 dimensions of 2 elements in each dimension would exceed your memory
+ * long beforehand!
+ *
+ * @param componentType the type of the array to create.
+ * @param dimensions the dimensions of the array to create. Each element
+ * in <code>dimensions</code> makes another dimension of the new
+ * array. Thus, <code>Array.newInstance(java.lang.Boolean,
+ * new int[]{1,2,3})</code> is the same as
+ * <code>new java.lang.Boolean[1][2][3]</code>
+ * @return the created array, cast to an Object
+ * @throws NullPointerException if componentType or dimension is null
+ * @throws IllegalArgumentException if the the size of
+ * <code>dimensions</code> is 0 or exceeds the maximum number of
+ * array dimensions in the VM; or if componentType is Void.TYPE
+ * @throws NegativeArraySizeException when any of the dimensions is less
+ * than 0
+ * @throws OutOfMemoryError if memory allocation fails
+ */
+ public static native Object newInstance(Class<?> elementType, int[] dimensions);
+
+ /**
+ * Gets the array length.
+ * @param array the array
+ * @return the length of the array
+ * @throws IllegalArgumentException if <code>array</code> is not an array
+ * @throws NullPointerException if <code>array</code> is null
+ */
+ public static native int getLength(Object array);
+
+ /**
+ * Gets an element of an array. Primitive elements will be wrapped in
+ * the corresponding class type.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not an array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #getBoolean(Object, int)
+ * @see #getByte(Object, int)
+ * @see #getChar(Object, int)
+ * @see #getShort(Object, int)
+ * @see #getInt(Object, int)
+ * @see #getLong(Object, int)
+ * @see #getFloat(Object, int)
+ * @see #getDouble(Object, int)
+ */
+ public static native Object get(Object array, int index);
+
+ /**
+ * Gets an element of a boolean array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the boolean element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a boolean
+ * array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native boolean getBoolean(Object array, int index);
+
+ /**
+ * Gets an element of a byte array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the byte element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a byte
+ * array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native byte getByte(Object array, int index);
+
+ /**
+ * Gets an element of a char array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the char element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a char
+ * array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native char getChar(Object array, int index);
+
+ /**
+ * Gets an element of a short array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the short element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a byte
+ * or char array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native short getShort(Object array, int index);
+
+ /**
+ * Gets an element of an int array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the int element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a byte,
+ * char, short, or int array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native int getInt(Object array, int index);
+
+ /**
+ * Gets an element of a long array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the long element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a byte,
+ * char, short, int, or long array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native long getLong(Object array, int index);
+
+ /**
+ * Gets an element of a float array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the float element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a byte,
+ * char, short, int, long, or float array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native float getFloat(Object array, int index);
+
+ /**
+ * Gets an element of a double array.
+ *
+ * @param array the array to access
+ * @param index the array index to access
+ * @return the double element at <code>array[index]</code>
+ * @throws IllegalArgumentException if <code>array</code> is not a byte,
+ * char, short, int, long, float, or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #get(Object, int)
+ */
+ public static native double getDouble(Object array, int index);
+
+ private static native Class getElementType(Object array, int index);
+
+ private static native void set(Object array, int index,
+ Object value, Class elType);
+
+ /**
+ * Sets an element of an array. If the array is primitive, then the new
+ * value is unwrapped and widened.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not an array,
+ * or the array is primitive and unwrapping value fails, or the
+ * value is not assignable to the array component type
+ * @throws NullPointerException if array is null, or if array is primitive
+ * and value is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #setBoolean(Object, int, boolean)
+ * @see #setByte(Object, int, byte)
+ * @see #setChar(Object, int, char)
+ * @see #setShort(Object, int, short)
+ * @see #setInt(Object, int, int)
+ * @see #setLong(Object, int, long)
+ * @see #setFloat(Object, int, float)
+ * @see #setDouble(Object, int, double)
+ */
+ public static void set(Object array, int index, Object value)
+ {
+ Class elType = getElementType(array, index);
+ if (! elType.isPrimitive())
+ set(array, index, value, elType);
+ else if (value instanceof Byte)
+ setByte(array, index, ((Byte) value).byteValue());
+ else if (value instanceof Short)
+ setShort(array, index, ((Short) value).shortValue());
+ else if (value instanceof Integer)
+ setInt(array, index, ((Integer) value).intValue());
+ else if (value instanceof Long)
+ setLong(array, index, ((Long) value).longValue());
+ else if (value instanceof Float)
+ setFloat(array, index, ((Float) value).floatValue());
+ else if (value instanceof Double)
+ setDouble(array, index, ((Double) value).doubleValue());
+ else if (value instanceof Character)
+ setChar(array, index, ((Character) value).charValue());
+ else if (value instanceof Boolean)
+ setBoolean(array, index, ((Boolean) value).booleanValue());
+ else
+ throw new IllegalArgumentException();
+ }
+
+ /**
+ * Sets an element of a boolean array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a boolean
+ * array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setBoolean(Object array, int index, boolean value);
+
+ /**
+ * Sets an element of a byte array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a byte,
+ * short, int, long, float, or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setByte(Object array, int index, byte value);
+
+ /**
+ * Sets an element of a char array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a char,
+ * int, long, float, or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setChar(Object array, int index, char value);
+
+ /**
+ * Sets an element of a short array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a short,
+ * int, long, float, or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setShort(Object array, int index, short value);
+
+ /**
+ * Sets an element of an int array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not an int,
+ * long, float, or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setInt(Object array, int index, int value);
+
+ /**
+ * Sets an element of a long array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a long,
+ * float, or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setLong(Object array, int index, long value);
+
+ /**
+ * Sets an element of a float array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a float
+ * or double array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setFloat(Object array, int index, float value);
+
+ /**
+ * Sets an element of a double array.
+ *
+ * @param array the array to set a value of
+ * @param index the array index to set the value to
+ * @param value the value to set
+ * @throws IllegalArgumentException if <code>array</code> is not a double
+ * array
+ * @throws NullPointerException if <code>array</code> is null
+ * @throws ArrayIndexOutOfBoundsException if <code>index</code> is out of
+ * bounds
+ * @see #set(Object, int, Object)
+ */
+ public static native void setDouble(Object array, int index, double value);
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/Constructor.h b/gcc-4.8/libjava/java/lang/reflect/Constructor.h
new file mode 100644
index 000000000..1491ed7b5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Constructor.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Constructor__
+#define __java_lang_reflect_Constructor__
+
+#pragma interface
+
+#include <java/lang/reflect/AccessibleObject.h>
+#include <gcj/array.h>
+
+
+jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
+jobject JNICALL _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
+
+class java::lang::reflect::Constructor : public ::java::lang::reflect::AccessibleObject
+{
+
+ Constructor();
+public:
+ ::java::lang::Class * getDeclaringClass();
+ ::java::lang::String * getName();
+private:
+ jint getModifiersInternal();
+public:
+ jint getModifiers();
+ jboolean isSynthetic();
+ jboolean isVarArgs();
+ JArray< ::java::lang::Class * > * getParameterTypes();
+ JArray< ::java::lang::Class * > * getExceptionTypes();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+public: // actually package-private
+ static void addTypeParameters(::java::lang::StringBuilder *, JArray< ::java::lang::reflect::TypeVariable * > *);
+public:
+ ::java::lang::String * toGenericString();
+ ::java::lang::Object * newInstance(JArray< ::java::lang::Object * > *);
+ JArray< ::java::lang::reflect::TypeVariable * > * getTypeParameters();
+private:
+ ::java::lang::String * getSignature();
+public:
+ JArray< ::java::lang::reflect::Type * > * getGenericExceptionTypes();
+ JArray< ::java::lang::reflect::Type * > * getGenericParameterTypes();
+ ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *);
+ JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations();
+ JArray< JArray< ::java::lang::annotation::Annotation * > * > * getParameterAnnotations();
+private:
+ JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotationsInternal();
+ JArray< JArray< ::java::lang::annotation::Annotation * > * > * getParameterAnnotationsInternal();
+ void getType();
+ static const jint CONSTRUCTOR_MODIFIERS = 7;
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::reflect::AccessibleObject)))) declaringClass;
+ JArray< ::java::lang::Class * > * exception_types;
+ JArray< ::java::lang::Class * > * parameter_types;
+ jint offset;
+public:
+ static ::java::lang::Class class$;
+
+ friend jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);
+ friend jobject JNICALL (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
+ friend class java::lang::Class;
+};
+
+#endif // __java_lang_reflect_Constructor__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Constructor.java b/gcc-4.8/libjava/java/lang/reflect/Constructor.java
new file mode 100644
index 000000000..adebc600a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Constructor.java
@@ -0,0 +1,424 @@
+/* java.lang.reflect.Constructor - reflection of Java constructors
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import gnu.java.lang.reflect.MethodSignatureParser;
+import java.lang.annotation.Annotation;
+
+/**
+ * The Constructor class represents a constructor of a class. It also allows
+ * dynamic creation of an object, via reflection. Invocation on Constructor
+ * objects knows how to do widening conversions, but throws
+ * {@link IllegalArgumentException} if a narrowing conversion would be
+ * necessary. You can query for information on this Constructor regardless
+ * of location, but construction access may be limited by Java language
+ * access controls. If you can't do it in the compiler, you can't normally
+ * do it here either.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type. They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc. These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes.<p>
+ *
+ * Also note that this is not a serializable class. It is entirely feasible
+ * to make it serializable using the Externalizable interface, but this is
+ * on Sun, not me.
+ *
+ * @author John Keiser
+ * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey <tromey@redhat.com>
+ * @see Member
+ * @see Class
+ * @see java.lang.Class#getConstructor(Class[])
+ * @see java.lang.Class#getDeclaredConstructor(Class[])
+ * @see java.lang.Class#getConstructors()
+ * @see java.lang.Class#getDeclaredConstructors()
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Constructor<T> extends AccessibleObject
+ implements Member, GenericDeclaration
+{
+ private static final int CONSTRUCTOR_MODIFIERS
+ = Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC;
+
+ /**
+ * This class is uninstantiable except from native code.
+ */
+ private Constructor ()
+ {
+ }
+
+ /**
+ * Gets the class that declared this constructor.
+ * @return the class that declared this member
+ */
+ public Class<T> getDeclaringClass ()
+ {
+ return declaringClass;
+ }
+
+ /**
+ * Gets the name of this constructor (the non-qualified name of the class
+ * it was declared in).
+ * @return the name of this constructor
+ */
+ public String getName()
+ {
+ return declaringClass.getName();
+ }
+
+ /**
+ * Return the raw modifiers for this constructor. In particular
+ * this will include the synthetic and varargs bits.
+ * @return the constructor's modifiers
+ */
+ private native int getModifiersInternal();
+
+ /**
+ * Gets the modifiers this constructor uses. Use the <code>Modifier</code>
+ * class to interpret the values. A constructor can only have a subset of the
+ * following modifiers: public, private, protected.
+ *
+ * @return an integer representing the modifiers to this Member
+ * @see Modifier
+ */
+ public int getModifiers ()
+ {
+ return getModifiersInternal() & CONSTRUCTOR_MODIFIERS;
+ }
+
+ /**
+ * Return true if this constructor is synthetic, false otherwise.
+ * A synthetic member is one which is created by the compiler,
+ * and which does not appear in the user's source code.
+ * @since 1.5
+ */
+ public boolean isSynthetic()
+ {
+ return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+ }
+
+ /**
+ * Return true if this is a varargs constructor, that is if
+ * the constructor takes a variable number of arguments.
+ * @since 1.5
+ */
+ public boolean isVarArgs()
+ {
+ return (getModifiersInternal() & Modifier.VARARGS) != 0;
+ }
+
+ /**
+ * Get the parameter list for this constructor, in declaration order. If the
+ * constructor takes no parameters, returns a 0-length array (not null).
+ *
+ * @return a list of the types of the constructor's parameters
+ */
+ public Class<?>[] getParameterTypes ()
+ {
+ if (parameter_types == null)
+ getType ();
+ return (Class<?>[]) parameter_types.clone();
+ }
+
+ /**
+ * Get the exception types this constructor says it throws, in no particular
+ * order. If the constructor has no throws clause, returns a 0-length array
+ * (not null).
+ *
+ * @return a list of the types in the constructor's throws clause
+ */
+ public Class<?>[] getExceptionTypes ()
+ {
+ if (exception_types == null)
+ getType();
+ return (Class<?>[]) exception_types.clone();
+ }
+
+ /**
+ * Compare two objects to see if they are semantically equivalent.
+ * Two Constructors are semantically equivalent if they have the same
+ * declaring class and the same parameter list.
+ *
+ * @param o the object to compare to
+ * @return <code>true</code> if they are equal; <code>false</code> if not.
+ */
+ public boolean equals (Object obj)
+ {
+ if (! (obj instanceof Constructor))
+ return false;
+ Constructor c = (Constructor) obj;
+ return declaringClass == c.declaringClass && offset == c.offset;
+ }
+
+ /**
+ * Get the hash code for the Constructor. The Constructor hash code is the
+ * hash code of the declaring class's name.
+ *
+ * @return the hash code for the object
+ */
+ public int hashCode ()
+ {
+ return declaringClass.getName().hashCode();
+ }
+
+ /**
+ * Get a String representation of the Constructor. A Constructor's String
+ * representation is "&lt;modifier&gt; &lt;classname&gt;(&lt;paramtypes&gt;)
+ * throws &lt;exceptions&gt;", where everything after ')' is omitted if
+ * there are no exceptions.<br> Example:
+ * <code>public java.io.FileInputStream(java.lang.Runnable)
+ * throws java.io.FileNotFoundException</code>
+ *
+ * @return the String representation of the Constructor
+ */
+ public String toString()
+ {
+ if (parameter_types == null)
+ getType ();
+ StringBuffer b = new StringBuffer ();
+ int mods = getModifiers();
+ if (mods != 0)
+ {
+ Modifier.toString(mods, b);
+ b.append(" ");
+ }
+ Method.appendClassName (b, declaringClass);
+ b.append("(");
+ for (int i = 0; i < parameter_types.length; ++i)
+ {
+ Method.appendClassName (b, parameter_types[i]);
+ if (i < parameter_types.length - 1)
+ b.append(",");
+ }
+ b.append(")");
+ return b.toString();
+ }
+
+ static <X extends GenericDeclaration>
+ void addTypeParameters(StringBuilder sb, TypeVariable<X>[] typeArgs)
+ {
+ if (typeArgs.length == 0)
+ return;
+ sb.append('<');
+ for (int i = 0; i < typeArgs.length; ++i)
+ {
+ if (i > 0)
+ sb.append(',');
+ sb.append(typeArgs[i]);
+ }
+ sb.append("> ");
+ }
+
+ public String toGenericString()
+ {
+ StringBuilder sb = new StringBuilder(128);
+ Modifier.toString(getModifiers(), sb).append(' ');
+ addTypeParameters(sb, getTypeParameters());
+ sb.append(getDeclaringClass().getName()).append('(');
+ Type[] types = getGenericParameterTypes();
+ if (types.length > 0)
+ {
+ sb.append(types[0]);
+ for (int i = 1; i < types.length; ++i)
+ sb.append(',').append(types[i]);
+ }
+ sb.append(')');
+ types = getGenericExceptionTypes();
+ if (types.length > 0)
+ {
+ sb.append(" throws ").append(types[0]);
+ for (int i = 1; i < types.length; i++)
+ sb.append(',').append(types[i]);
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Create a new instance by invoking the constructor. Arguments are
+ * automatically unwrapped and widened, if needed.<p>
+ *
+ * If this class is abstract, you will get an
+ * <code>InstantiationException</code>. If the constructor takes 0
+ * arguments, you may use null or a 0-length array for <code>args</code>.<p>
+ *
+ * If this Constructor enforces access control, your runtime context is
+ * evaluated, and you may have an <code>IllegalAccessException</code> if
+ * you could not create this object in similar compiled code. If the class
+ * is uninitialized, you trigger class initialization, which may end in a
+ * <code>ExceptionInInitializerError</code>.<p>
+ *
+ * Then, the constructor is invoked. If it completes normally, the return
+ * value will be the new object. If it completes abruptly, the exception is
+ * wrapped in an <code>InvocationTargetException</code>.
+ *
+ * @param args the arguments to the constructor
+ * @return the newly created object
+ * @throws IllegalAccessException if the constructor could not normally be
+ * called by the Java code (i.e. it is not public)
+ * @throws IllegalArgumentException if the number of arguments is incorrect;
+ * or if the arguments types are wrong even with a widening
+ * conversion
+ * @throws InstantiationException if the class is abstract
+ * @throws InvocationTargetException if the constructor throws an exception
+ * @throws ExceptionInInitializerError if construction triggered class
+ * initialization, which then failed
+ */
+ public native T newInstance (Object... args)
+ throws InstantiationException, IllegalAccessException,
+ IllegalArgumentException, InvocationTargetException;
+
+ /**
+ * Returns an array of <code>TypeVariable</code> objects that represents
+ * the type variables declared by this constructor, in declaration order.
+ * An array of size zero is returned if this constructor has no type
+ * variables.
+ *
+ * @return the type variables associated with this constructor.
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public TypeVariable<Constructor<T>>[] getTypeParameters()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return new TypeVariable[0];
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getTypeParameters();
+ }
+
+ /**
+ * Return the String in the Signature attribute for this constructor. If there
+ * is no Signature attribute, return null.
+ */
+ private native String getSignature();
+
+ /**
+ * Returns an array of <code>Type</code> objects that represents
+ * the exception types declared by this constructor, in declaration order.
+ * An array of size zero is returned if this constructor declares no
+ * exceptions.
+ *
+ * @return the exception types declared by this constructor.
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public Type[] getGenericExceptionTypes()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return getExceptionTypes();
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getGenericExceptionTypes();
+ }
+
+ /**
+ * Returns an array of <code>Type</code> objects that represents
+ * the parameter list for this constructor, in declaration order.
+ * An array of size zero is returned if this constructor takes no
+ * parameters.
+ *
+ * @return a list of the types of the constructor's parameters
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public Type[] getGenericParameterTypes()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return getParameterTypes();
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getGenericParameterTypes();
+ }
+
+ public <T extends Annotation> T getAnnotation(Class<T> annoClass)
+ {
+ Annotation[] annos = getDeclaredAnnotations();
+ for (int i = 0; i < annos.length; ++i)
+ if (annos[i].annotationType() == annoClass)
+ return (T) annos[i];
+ return null;
+ }
+
+ public Annotation[] getDeclaredAnnotations()
+ {
+ Annotation[] result = getDeclaredAnnotationsInternal();
+ if (result == null)
+ result = new Annotation[0];
+ return result;
+ }
+
+ public Annotation[][] getParameterAnnotations()
+ {
+ // FIXME: should check that we have the right number
+ // of parameters ...?
+ Annotation[][] result = getParameterAnnotationsInternal();
+ if (result == null)
+ result = new Annotation[0][0];
+ return result;
+ }
+
+ private native Annotation[] getDeclaredAnnotationsInternal();
+ private native Annotation[][] getParameterAnnotationsInternal();
+
+ // Update cached values from method descriptor in class.
+ private native void getType ();
+
+ // Declaring class.
+ private Class<T> declaringClass;
+
+ // Exception types.
+ private Class[] exception_types;
+ // Parameter types.
+ private Class[] parameter_types;
+
+ // Offset in bytes from the start of declaringClass's methods array.
+ private int offset;
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/Field.h b/gcc-4.8/libjava/java/lang/reflect/Field.h
new file mode 100644
index 000000000..9eb71c3e3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Field.h
@@ -0,0 +1,98 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Field__
+#define __java_lang_reflect_Field__
+
+#pragma interface
+
+#include <java/lang/reflect/AccessibleObject.h>
+#include <gcj/array.h>
+
+
+jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
+jobject JNICALL _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
+jobject _Jv_getFieldInternal (java::lang::reflect::Field *f, jclass c, jobject o);
+
+class java::lang::reflect::Field : public ::java::lang::reflect::AccessibleObject
+{
+
+public: // actually package-private
+ Field();
+public:
+ ::java::lang::Class * getDeclaringClass();
+ ::java::lang::String * getName();
+private:
+ jint getModifiersInternal();
+public:
+ jint getModifiers();
+ jboolean isSynthetic();
+ jboolean isEnumConstant();
+ ::java::lang::Class * getType();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+ ::java::lang::String * toGenericString();
+ ::java::lang::Object * get(::java::lang::Object *);
+ jboolean getBoolean(::java::lang::Object *);
+ jbyte getByte(::java::lang::Object *);
+ jchar getChar(::java::lang::Object *);
+ jshort getShort(::java::lang::Object *);
+ jint getInt(::java::lang::Object *);
+ jlong getLong(::java::lang::Object *);
+ jfloat getFloat(::java::lang::Object *);
+ jdouble getDouble(::java::lang::Object *);
+private:
+ jboolean getBoolean(::java::lang::Class *, ::java::lang::Object *);
+ jchar getChar(::java::lang::Class *, ::java::lang::Object *);
+ jbyte getByte(::java::lang::Class *, ::java::lang::Object *);
+ jshort getShort(::java::lang::Class *, ::java::lang::Object *);
+ jint getInt(::java::lang::Class *, ::java::lang::Object *);
+ jlong getLong(::java::lang::Class *, ::java::lang::Object *);
+ jfloat getFloat(::java::lang::Class *, ::java::lang::Object *);
+ jdouble getDouble(::java::lang::Class *, ::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Class *, ::java::lang::Object *);
+public:
+ void set(::java::lang::Object *, ::java::lang::Object *);
+ void setBoolean(::java::lang::Object *, jboolean);
+ void setByte(::java::lang::Object *, jbyte);
+ void setChar(::java::lang::Object *, jchar);
+ void setShort(::java::lang::Object *, jshort);
+ void setInt(::java::lang::Object *, jint);
+ void setLong(::java::lang::Object *, jlong);
+ void setFloat(::java::lang::Object *, jfloat);
+ void setDouble(::java::lang::Object *, jdouble);
+ ::java::lang::reflect::Type * getGenericType();
+ ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *);
+ JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations();
+private:
+ JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotationsInternal();
+ ::java::lang::String * getSignature();
+public: // actually package-private
+ void setByte(::java::lang::Class *, ::java::lang::Object *, jbyte, jboolean);
+ void setShort(::java::lang::Class *, ::java::lang::Object *, jshort, jboolean);
+ void setInt(::java::lang::Class *, ::java::lang::Object *, jint, jboolean);
+ void setLong(::java::lang::Class *, ::java::lang::Object *, jlong, jboolean);
+ void setFloat(::java::lang::Class *, ::java::lang::Object *, jfloat, jboolean);
+ void setDouble(::java::lang::Class *, ::java::lang::Object *, jdouble, jboolean);
+ void setChar(::java::lang::Class *, ::java::lang::Object *, jchar, jboolean);
+ void setBoolean(::java::lang::Class *, ::java::lang::Object *, jboolean, jboolean);
+ void set(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::lang::Class *, jboolean);
+private:
+ void set(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::reflect::AccessibleObject)))) declaringClass;
+ ::java::lang::String * name;
+ jint offset;
+ ::java::lang::Class * type;
+public: // actually package-private
+ static const jint FIELD_MODIFIERS = 223;
+public:
+ static ::java::lang::Class class$;
+
+ friend jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);
+ friend jobject JNICALL (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
+ friend class java::lang::Class;
+ friend jobject (::_Jv_getFieldInternal) (java::lang::reflect::Field *f, jclass c, jobject o);
+};
+
+#endif // __java_lang_reflect_Field__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Field.java b/gcc-4.8/libjava/java/lang/reflect/Field.java
new file mode 100644
index 000000000..61db14df5
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Field.java
@@ -0,0 +1,817 @@
+/* java.lang.reflect.Field - reflection of Java fields
+ Copyright (C) 1998, 2001, 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import gnu.java.lang.ClassHelper;
+
+import gnu.java.lang.reflect.FieldSignatureParser;
+import java.lang.annotation.Annotation;
+
+/**
+ * The Field class represents a member variable of a class. It also allows
+ * dynamic access to a member, via reflection. This works for both
+ * static and instance fields. Operations on Field objects know how to
+ * do widening conversions, but throw {@link IllegalArgumentException} if
+ * a narrowing conversion would be necessary. You can query for information
+ * on this Field regardless of location, but get and set access may be limited
+ * by Java language access controls. If you can't do it in the compiler, you
+ * can't normally do it here either.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type. They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc. These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes.<p>
+ *
+ * Also note that this is not a serializable class. It is entirely feasible
+ * to make it serializable using the Externalizable interface, but this is
+ * on Sun, not me.
+ *
+ * @author John Keiser
+ * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Per Bothner <bothner@cygnus.com>
+ * @see Member
+ * @see Class
+ * @see Class#getField(String)
+ * @see Class#getDeclaredField(String)
+ * @see Class#getFields()
+ * @see Class#getDeclaredFields()
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Field
+ extends AccessibleObject implements Member
+{
+ private Class declaringClass;
+ private String name;
+
+ // Offset in bytes from the start of declaringClass's fields array.
+ private int offset;
+
+ // The Class (or primitive TYPE) of this field.
+ private Class type;
+
+ static final int FIELD_MODIFIERS
+ = Modifier.FINAL | Modifier.PRIVATE | Modifier.PROTECTED
+ | Modifier.PUBLIC | Modifier.STATIC | Modifier.TRANSIENT
+ | Modifier.VOLATILE;
+
+ // This is instantiated by Class sometimes, but it uses C++ and
+ // avoids the Java protection check.
+ Field ()
+ {
+ }
+
+ /**
+ * Gets the class that declared this field, or the class where this field
+ * is a non-inherited member.
+ * @return the class that declared this member
+ */
+ public Class<?> getDeclaringClass()
+ {
+ return declaringClass;
+ }
+
+ /**
+ * Gets the name of this field.
+ * @return the name of this field
+ */
+ public native String getName();
+
+ /**
+ * Return the raw modifiers for this field.
+ * @return the field's modifiers
+ */
+ private native int getModifiersInternal();
+
+ /**
+ * Gets the modifiers this field uses. Use the <code>Modifier</code>
+ * class to interpret the values. A field can only have a subset of the
+ * following modifiers: public, private, protected, static, final,
+ * transient, and volatile.
+ *
+ * @return an integer representing the modifiers to this Member
+ * @see Modifier
+ */
+ public int getModifiers()
+ {
+ return getModifiersInternal() & FIELD_MODIFIERS;
+ }
+
+ /**
+ * Return true if this field is synthetic, false otherwise.
+ * @since 1.5
+ */
+ public boolean isSynthetic()
+ {
+ return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+ }
+
+ /**
+ * Return true if this field represents an enum constant,
+ * false otherwise.
+ * @since 1.5
+ */
+ public boolean isEnumConstant()
+ {
+ return (getModifiersInternal() & Modifier.ENUM) != 0;
+ }
+
+ /**
+ * Gets the type of this field.
+ * @return the type of this field
+ */
+ public native Class<?> getType();
+
+ /**
+ * Compare two objects to see if they are semantically equivalent.
+ * Two Fields are semantically equivalent if they have the same declaring
+ * class, name, and type. Since you can't creat a Field except through
+ * the VM, this is just the == relation.
+ *
+ * @param o the object to compare to
+ * @return <code>true</code> if they are equal; <code>false</code> if not
+ */
+ public boolean equals (Object fld)
+ {
+ if (! (fld instanceof Field))
+ return false;
+ Field f = (Field) fld;
+ return declaringClass == f.declaringClass && offset == f.offset;
+ }
+
+ /**
+ * Get the hash code for the Field. The Field hash code is the hash code
+ * of its name XOR'd with the hash code of its class name.
+ *
+ * @return the hash code for the object.
+ */
+ public int hashCode()
+ {
+ return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
+ }
+
+ /**
+ * Get a String representation of the Field. A Field's String
+ * representation is "&lt;modifiers&gt; &lt;type&gt;
+ * &lt;class&gt;.&lt;fieldname&gt;".<br> Example:
+ * <code>public transient boolean gnu.parse.Parser.parseComplete</code>
+ *
+ * @return the String representation of the Field
+ */
+ public String toString ()
+ {
+ StringBuffer sbuf = new StringBuffer ();
+ int mods = getModifiers();
+ if (mods != 0)
+ {
+ Modifier.toString(mods, sbuf);
+ sbuf.append(' ');
+ }
+ Method.appendClassName (sbuf, getType ());
+ sbuf.append(' ');
+ Method.appendClassName (sbuf, getDeclaringClass());
+ sbuf.append('.');
+ sbuf.append(getName());
+ return sbuf.toString();
+ }
+
+ public String toGenericString()
+ {
+ StringBuilder sb = new StringBuilder(64);
+ Modifier.toString(getModifiers(), sb).append(' ');
+ sb.append(getGenericType()).append(' ');
+ sb.append(getDeclaringClass().getName()).append('.');
+ sb.append(getName());
+ return sb.toString();
+ }
+
+ /**
+ * Get the value of this Field. If it is primitive, it will be wrapped
+ * in the appropriate wrapper type (boolean = java.lang.Boolean).<p>
+ *
+ * If the field is static, <code>o</code> will be ignored. Otherwise, if
+ * <code>o</code> is null, you get a <code>NullPointerException</code>,
+ * and if it is incompatible with the declaring class of the field, you
+ * get an <code>IllegalArgumentException</code>.<p>
+ *
+ * Next, if this Field enforces access control, your runtime context is
+ * evaluated, and you may have an <code>IllegalAccessException</code> if
+ * you could not access this field in similar compiled code. If the field
+ * is static, and its class is uninitialized, you trigger class
+ * initialization, which may end in a
+ * <code>ExceptionInInitializerError</code>.<p>
+ *
+ * Finally, the field is accessed, and primitives are wrapped (but not
+ * necessarily in new objects). This method accesses the field of the
+ * declaring class, even if the instance passed in belongs to a subclass
+ * which declares another field to hide this one.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if <code>o</code> is not an instance of
+ * the class or interface declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #getBoolean(Object)
+ * @see #getByte(Object)
+ * @see #getChar(Object)
+ * @see #getShort(Object)
+ * @see #getInt(Object)
+ * @see #getLong(Object)
+ * @see #getFloat(Object)
+ * @see #getDouble(Object)
+ */
+ public Object get(Object obj)
+ throws IllegalAccessException
+ {
+ return get(null, obj);
+ }
+
+ /**
+ * Get the value of this boolean Field. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a boolean field of
+ * <code>o</code>, or if <code>o</code> is not an instance of the
+ * declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public boolean getBoolean(Object obj)
+ throws IllegalAccessException
+ {
+ return getBoolean(null, obj);
+ }
+
+ /**
+ * Get the value of this byte Field. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte field of
+ * <code>o</code>, or if <code>o</code> is not an instance of the
+ * declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public byte getByte(Object obj)
+ throws IllegalAccessException
+ {
+ return getByte(null, obj);
+ }
+
+ /**
+ * Get the value of this Field as a char. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a char field of
+ * <code>o</code>, or if <code>o</code> is not an instance
+ * of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public char getChar(Object obj)
+ throws IllegalAccessException
+ {
+ return getChar(null, obj);
+ }
+
+ /**
+ * Get the value of this Field as a short. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte or short
+ * field of <code>o</code>, or if <code>o</code> is not an instance
+ * of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public short getShort(Object obj)
+ throws IllegalAccessException
+ {
+ return getShort(null, obj);
+ }
+
+ /**
+ * Get the value of this Field as an int. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, or
+ * int field of <code>o</code>, or if <code>o</code> is not an
+ * instance of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public int getInt(Object obj)
+ throws IllegalAccessException
+ {
+ return getInt(null, obj);
+ }
+
+ /**
+ * Get the value of this Field as a long. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, int,
+ * or long field of <code>o</code>, or if <code>o</code> is not an
+ * instance of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public long getLong(Object obj)
+ throws IllegalAccessException
+ {
+ return getLong(null, obj);
+ }
+
+ /**
+ * Get the value of this Field as a float. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, int,
+ * long, or float field of <code>o</code>, or if <code>o</code> is
+ * not an instance of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public float getFloat(Object obj)
+ throws IllegalAccessException
+ {
+ return getFloat(null, obj);
+ }
+
+ /**
+ * Get the value of this Field as a double. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, int,
+ * long, float, or double field of <code>o</code>, or if
+ * <code>o</code> is not an instance of the declaring class of this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ public double getDouble(Object obj)
+ throws IllegalAccessException
+ {
+ return getDouble(null, obj);
+ }
+
+ private native boolean getBoolean (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native char getChar (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native byte getByte (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native short getShort (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native int getInt (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native long getLong (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native float getFloat (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native double getDouble (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private native Object get (Class caller, Object obj)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ /**
+ * Set the value of this Field. If it is a primitive field, the value
+ * will be unwrapped from the passed object (boolean = java.lang.Boolean).<p>
+ *
+ * If the field is static, <code>o</code> will be ignored. Otherwise, if
+ * <code>o</code> is null, you get a <code>NullPointerException</code>,
+ * and if it is incompatible with the declaring class of the field, you
+ * get an <code>IllegalArgumentException</code>.<p>
+ *
+ * Next, if this Field enforces access control, your runtime context is
+ * evaluated, and you may have an <code>IllegalAccessException</code> if
+ * you could not access this field in similar compiled code. This also
+ * occurs whether or not there is access control if the field is final.
+ * If the field is primitive, and unwrapping your argument fails, you will
+ * get an <code>IllegalArgumentException</code>; likewise, this error
+ * happens if <code>value</code> cannot be cast to the correct object type.
+ * If the field is static, and its class is uninitialized, you trigger class
+ * initialization, which may end in a
+ * <code>ExceptionInInitializerError</code>.<p>
+ *
+ * Finally, the field is set with the widened value. This method accesses
+ * the field of the declaring class, even if the instance passed in belongs
+ * to a subclass which declares another field to hide this one.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if <code>value</code> cannot be
+ * converted by a widening conversion to the underlying type of
+ * the Field, or if <code>o</code> is not an instance of the class
+ * declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #setBoolean(Object, boolean)
+ * @see #setByte(Object, byte)
+ * @see #setChar(Object, char)
+ * @see #setShort(Object, short)
+ * @see #setInt(Object, int)
+ * @see #setLong(Object, long)
+ * @see #setFloat(Object, float)
+ * @see #setDouble(Object, double)
+ */
+ public void set(Object object, Object value)
+ throws IllegalAccessException
+ {
+ set(null, object, value);
+ }
+
+ /**
+ * Set this boolean Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a boolean field, or if
+ * <code>o</code> is not an instance of the class declaring this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setBoolean(Object obj, boolean b)
+ throws IllegalAccessException
+ {
+ setBoolean(null, obj, b, true);
+ }
+
+ /**
+ * Set this byte Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, int, long,
+ * float, or double field, or if <code>o</code> is not an instance
+ * of the class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setByte(Object obj, byte b)
+ throws IllegalAccessException
+ {
+ setByte(null, obj, b, true);
+ }
+
+ /**
+ * Set this char Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a char, int, long,
+ * float, or double field, or if <code>o</code> is not an instance
+ * of the class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setChar(Object obj, char c)
+ throws IllegalAccessException
+ {
+ setChar(null, obj, c, true);
+ }
+
+ /**
+ * Set this short Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a short, int, long,
+ * float, or double field, or if <code>o</code> is not an instance
+ * of the class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setShort(Object obj, short s)
+ throws IllegalAccessException
+ {
+ setShort(null, obj, s, true);
+ }
+
+ /**
+ * Set this int Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not an int, long, float, or
+ * double field, or if <code>o</code> is not an instance of the
+ * class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setInt(Object obj, int i)
+ throws IllegalAccessException
+ {
+ setInt(null, obj, i, true);
+ }
+
+ /**
+ * Set this long Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a long, float, or double
+ * field, or if <code>o</code> is not an instance of the class
+ * declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setLong(Object obj, long l)
+ throws IllegalArgumentException, IllegalAccessException
+ {
+ setLong(null, obj, l, true);
+ }
+
+ /**
+ * Set this float Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a float or long field, or
+ * if <code>o</code> is not an instance of the class declaring this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setFloat(Object obj, float f)
+ throws IllegalAccessException
+ {
+ setFloat(null, obj, f, true);
+ }
+
+ /**
+ * Set this double Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a double field, or if
+ * <code>o</code> is not an instance of the class declaring this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ public void setDouble(Object obj, double d)
+ throws IllegalAccessException
+ {
+ setDouble(null, obj, d, true);
+ }
+
+ /**
+ * Return the generic type of the field. If the field type is not a generic
+ * type, the method returns the same as <code>getType()</code>.
+ *
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public Type getGenericType()
+ {
+ String signature = getSignature();
+ if (signature == null)
+ return getType();
+ FieldSignatureParser p = new FieldSignatureParser(getDeclaringClass(),
+ signature);
+ return p.getFieldType();
+ }
+
+ public <T extends Annotation> T getAnnotation(Class<T> annoClass)
+ {
+ Annotation[] annos = getDeclaredAnnotations();
+ for (int i = 0; i < annos.length; ++i)
+ if (annos[i].annotationType() == annoClass)
+ return (T) annos[i];
+ return null;
+ }
+
+ public Annotation[] getDeclaredAnnotations()
+ {
+ Annotation[] result = getDeclaredAnnotationsInternal();
+ if (result == null)
+ result = new Annotation[0];
+ return result;
+ }
+
+ private native Annotation[] getDeclaredAnnotationsInternal();
+
+ /**
+ * Return the String in the Signature attribute for this field. If there
+ * is no Signature attribute, return null.
+ */
+ private native String getSignature();
+
+ native void setByte (Class caller, Object obj, byte b, boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setShort (Class caller, Object obj, short s, boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setInt (Class caller, Object obj, int i, boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setLong (Class caller, Object obj, long l, boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setFloat (Class caller, Object obj, float f, boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setDouble (Class caller, Object obj, double d,
+ boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setChar (Class caller, Object obj, char c, boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void setBoolean (Class caller, Object obj, boolean b,
+ boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ native void set (Class caller, Object obj, Object val, Class type,
+ boolean checkFinal)
+ throws IllegalArgumentException, IllegalAccessException;
+
+ private void set (Class caller, Object object, Object value)
+ throws IllegalArgumentException, IllegalAccessException
+ {
+ Class type = getType();
+ if (! type.isPrimitive())
+ set(caller, object, value, type, true);
+ else if (value instanceof Byte)
+ setByte(caller, object, ((Byte) value).byteValue(), true);
+ else if (value instanceof Short)
+ setShort (caller, object, ((Short) value).shortValue(), true);
+ else if (value instanceof Integer)
+ setInt(caller, object, ((Integer) value).intValue(), true);
+ else if (value instanceof Long)
+ setLong(caller, object, ((Long) value).longValue(), true);
+ else if (value instanceof Float)
+ setFloat(caller, object, ((Float) value).floatValue(), true);
+ else if (value instanceof Double)
+ setDouble(caller, object, ((Double) value).doubleValue(), true);
+ else if (value instanceof Character)
+ setChar(caller, object, ((Character) value).charValue(), true);
+ else if (value instanceof Boolean)
+ setBoolean(caller, object, ((Boolean) value).booleanValue(), true);
+ else
+ throw new IllegalArgumentException();
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/GenericArrayType.h b/gcc-4.8/libjava/java/lang/reflect/GenericArrayType.h
new file mode 100644
index 000000000..cdeb0b2a3
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/GenericArrayType.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_GenericArrayType__
+#define __java_lang_reflect_GenericArrayType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::reflect::GenericArrayType : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::reflect::Type * getGenericComponentType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_GenericArrayType__
diff --git a/gcc-4.8/libjava/java/lang/reflect/GenericDeclaration.h b/gcc-4.8/libjava/java/lang/reflect/GenericDeclaration.h
new file mode 100644
index 000000000..5c484ea96
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/GenericDeclaration.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_GenericDeclaration__
+#define __java_lang_reflect_GenericDeclaration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::GenericDeclaration : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::reflect::TypeVariable * > * getTypeParameters() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_GenericDeclaration__
diff --git a/gcc-4.8/libjava/java/lang/reflect/GenericSignatureFormatError.h b/gcc-4.8/libjava/java/lang/reflect/GenericSignatureFormatError.h
new file mode 100644
index 000000000..c46c9264a
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/GenericSignatureFormatError.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_GenericSignatureFormatError__
+#define __java_lang_reflect_GenericSignatureFormatError__
+
+#pragma interface
+
+#include <java/lang/ClassFormatError.h>
+
+class java::lang::reflect::GenericSignatureFormatError : public ::java::lang::ClassFormatError
+{
+
+public:
+ GenericSignatureFormatError();
+private:
+ static const jlong serialVersionUID = 6709919147137911034LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_GenericSignatureFormatError__
diff --git a/gcc-4.8/libjava/java/lang/reflect/InvocationHandler.h b/gcc-4.8/libjava/java/lang/reflect/InvocationHandler.h
new file mode 100644
index 000000000..722195321
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/InvocationHandler.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_InvocationHandler__
+#define __java_lang_reflect_InvocationHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::InvocationHandler : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_InvocationHandler__
diff --git a/gcc-4.8/libjava/java/lang/reflect/InvocationTargetException.h b/gcc-4.8/libjava/java/lang/reflect/InvocationTargetException.h
new file mode 100644
index 000000000..5132c76fa
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/InvocationTargetException.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_InvocationTargetException__
+#define __java_lang_reflect_InvocationTargetException__
+
+#pragma interface
+
+#include <java/lang/ReflectiveOperationException.h>
+
+class java::lang::reflect::InvocationTargetException : public ::java::lang::ReflectiveOperationException
+{
+
+public: // actually protected
+ InvocationTargetException();
+public:
+ InvocationTargetException(::java::lang::Throwable *);
+ InvocationTargetException(::java::lang::Throwable *, ::java::lang::String *);
+ virtual ::java::lang::Throwable * getTargetException();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = 4085088731926701167LL;
+ ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::ReflectiveOperationException)))) target;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_InvocationTargetException__
diff --git a/gcc-4.8/libjava/java/lang/reflect/MalformedParameterizedTypeException.h b/gcc-4.8/libjava/java/lang/reflect/MalformedParameterizedTypeException.h
new file mode 100644
index 000000000..a48f669c0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/MalformedParameterizedTypeException.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_MalformedParameterizedTypeException__
+#define __java_lang_reflect_MalformedParameterizedTypeException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::reflect::MalformedParameterizedTypeException : public ::java::lang::RuntimeException
+{
+
+public:
+ MalformedParameterizedTypeException();
+private:
+ static const jlong serialVersionUID = -5696557788586220964LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_MalformedParameterizedTypeException__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Member.h b/gcc-4.8/libjava/java/lang/reflect/Member.h
new file mode 100644
index 000000000..9e3522be0
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Member.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Member__
+#define __java_lang_reflect_Member__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::reflect::Member : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * getDeclaringClass() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ virtual jint getModifiers() = 0;
+ virtual jboolean isSynthetic() = 0;
+ static const jint DECLARED = 1;
+ static const jint PUBLIC = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_Member__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Method.h b/gcc-4.8/libjava/java/lang/reflect/Method.h
new file mode 100644
index 000000000..914e04bed
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Method.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Method__
+#define __java_lang_reflect_Method__
+
+#pragma interface
+
+#include <java/lang/reflect/AccessibleObject.h>
+#include <gcj/array.h>
+
+
+jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
+jobject JNICALL _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
+::java::lang::reflect::Method *_Jv_GetReflectedMethod (jclass, _Jv_Utf8Const*, _Jv_Utf8Const*);
+
+class java::lang::reflect::Method : public ::java::lang::reflect::AccessibleObject
+{
+
+ Method();
+public:
+ ::java::lang::Class * getDeclaringClass();
+ ::java::lang::String * getName();
+private:
+ jint getModifiersInternal();
+public:
+ jint getModifiers();
+ jboolean isBridge();
+ jboolean isSynthetic();
+ jboolean isVarArgs();
+ ::java::lang::Class * getReturnType();
+ JArray< ::java::lang::Class * > * getParameterTypes();
+public: // actually package-private
+ JArray< ::java::lang::Class * > * internalGetParameterTypes();
+public:
+ JArray< ::java::lang::Class * > * getExceptionTypes();
+public: // actually package-private
+ JArray< ::java::lang::Class * > * internalGetExceptionTypes();
+public:
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+ ::java::lang::String * toGenericString();
+ ::java::lang::Object * invoke(::java::lang::Object *, JArray< ::java::lang::Object * > *);
+ JArray< ::java::lang::reflect::TypeVariable * > * getTypeParameters();
+private:
+ ::java::lang::String * getSignature();
+public:
+ JArray< ::java::lang::reflect::Type * > * getGenericExceptionTypes();
+ JArray< ::java::lang::reflect::Type * > * getGenericParameterTypes();
+ ::java::lang::reflect::Type * getGenericReturnType();
+ ::java::lang::Object * getDefaultValue();
+ ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *);
+ JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations();
+ JArray< JArray< ::java::lang::annotation::Annotation * > * > * getParameterAnnotations();
+private:
+ JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotationsInternal();
+ JArray< JArray< ::java::lang::annotation::Annotation * > * > * getParameterAnnotationsInternal();
+ void getType();
+public: // actually package-private
+ static void appendClassName(::java::lang::StringBuffer *, ::java::lang::Class *);
+ static const jint METHOD_MODIFIERS = 3391;
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::reflect::AccessibleObject)))) declaringClass;
+public: // actually package-private
+ JArray< ::java::lang::Class * > * exception_types;
+private:
+ ::java::lang::String * name;
+public: // actually package-private
+ JArray< ::java::lang::Class * > * parameter_types;
+ ::java::lang::Class * return_type;
+private:
+ jint offset;
+public:
+ static ::java::lang::Class class$;
+
+ friend jmethodID (::_Jv_FromReflectedMethod) (java::lang::reflect::Method *);
+ friend jobject JNICALL (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
+ friend class java::lang::Class;
+ friend class java::io::ObjectInputStream;
+ friend java::lang::reflect::Method* ::_Jv_GetReflectedMethod (jclass, _Jv_Utf8Const*, _Jv_Utf8Const*);
+};
+
+#endif // __java_lang_reflect_Method__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Method.java b/gcc-4.8/libjava/java/lang/reflect/Method.java
new file mode 100644
index 000000000..878210abb
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Method.java
@@ -0,0 +1,501 @@
+// Method.java - Represent method of class or interface.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.lang.reflect;
+
+import gnu.gcj.RawData;
+import gnu.java.lang.reflect.MethodSignatureParser;
+import java.lang.annotation.Annotation;
+
+/**
+ * The Method class represents a member method of a class. It also allows
+ * dynamic invocation, via reflection. This works for both static and
+ * instance methods. Invocation on Method objects knows how to do
+ * widening conversions, but throws {@link IllegalArgumentException} if
+ * a narrowing conversion would be necessary. You can query for information
+ * on this Method regardless of location, but invocation access may be limited
+ * by Java language access controls. If you can't do it in the compiler, you
+ * can't normally do it here either.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type. They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc. These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes.<p>
+ *
+ * Also note that this is not a serializable class. It is entirely feasible
+ * to make it serializable using the Externalizable interface, but this is
+ * on Sun, not me.
+ *
+ * @author John Keiser
+ * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey <tromey@redhat.com>
+ * @see Member
+ * @see Class
+ * @see java.lang.Class#getMethod(String,Class[])
+ * @see java.lang.Class#getDeclaredMethod(String,Class[])
+ * @see java.lang.Class#getMethods()
+ * @see java.lang.Class#getDeclaredMethods()
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Method
+ extends AccessibleObject implements Member, GenericDeclaration
+{
+ static final int METHOD_MODIFIERS
+ = Modifier.ABSTRACT | Modifier.FINAL | Modifier.NATIVE
+ | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC
+ | Modifier.STATIC | Modifier.STRICT | Modifier.SYNCHRONIZED;
+
+ /**
+ * This class is uninstantiable.
+ */
+ private Method ()
+ {
+ }
+
+ /**
+ * Gets the class that declared this method, or the class where this method
+ * is a non-inherited member.
+ * @return the class that declared this member
+ */
+ public Class<?> getDeclaringClass()
+ {
+ return declaringClass;
+ }
+
+ /**
+ * Gets the name of this method.
+ * @return the name of this method
+ */
+ public native String getName ();
+
+ /**
+ * Return the raw modifiers for this method.
+ * @return the method's modifiers
+ */
+ private native int getModifiersInternal();
+
+ /**
+ * Gets the modifiers this method uses. Use the <code>Modifier</code>
+ * class to interpret the values. A method can only have a subset of the
+ * following modifiers: public, private, protected, abstract, static,
+ * final, synchronized, native, and strictfp.
+ *
+ * @return an integer representing the modifiers to this Member
+ * @see Modifier
+ */
+ public int getModifiers()
+ {
+ return getModifiersInternal() & METHOD_MODIFIERS;
+ }
+
+ /**
+ * Return true if this method is a bridge method. A bridge method
+ * is generated by the compiler in some situations involving
+ * generics and inheritance.
+ * @since 1.5
+ */
+ public boolean isBridge()
+ {
+ return (getModifiersInternal() & Modifier.BRIDGE) != 0;
+ }
+
+ /**
+ * Return true if this method is synthetic, false otherwise.
+ * @since 1.5
+ */
+ public boolean isSynthetic()
+ {
+ return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+ }
+
+ /**
+ * Return true if this is a varargs method, that is if
+ * the method takes a variable number of arguments.
+ * @since 1.5
+ */
+ public boolean isVarArgs()
+ {
+ return (getModifiersInternal() & Modifier.VARARGS) != 0;
+ }
+
+ /**
+ * Gets the return type of this method.
+ * @return the type of this method
+ */
+ public Class<?> getReturnType ()
+ {
+ if (return_type == null)
+ getType();
+ return return_type;
+ }
+
+ /**
+ * Get the parameter list for this method, in declaration order. If the
+ * method takes no parameters, returns a 0-length array (not null).
+ *
+ * @return a list of the types of the method's parameters
+ */
+ public Class<?>[] getParameterTypes ()
+ {
+ if (parameter_types == null)
+ getType();
+ return (Class<?>[]) parameter_types.clone();
+ }
+
+ // Just like getParameterTypes, but don't clone the array.
+ // Package private for use by VMProxy.
+ final Class<?>[] internalGetParameterTypes ()
+ {
+ if (parameter_types == null)
+ getType();
+ return (Class<?>[]) parameter_types;
+ }
+
+ /**
+ * Get the exception types this method says it throws, in no particular
+ * order. If the method has no throws clause, returns a 0-length array
+ * (not null).
+ *
+ * @return a list of the types in the method's throws clause
+ */
+ public Class<?>[] getExceptionTypes ()
+ {
+ if (exception_types == null)
+ getType();
+ return (Class<?>[]) exception_types.clone();
+ }
+
+ // Just like getExceptionTypes, but don't clone the array.
+ // Package private for use by VMProxy.
+ final Class<?>[] internalGetExceptionTypes ()
+ {
+ if (exception_types == null)
+ getType();
+ return (Class<?>[]) exception_types;
+ }
+
+ /**
+ * Compare two objects to see if they are semantically equivalent.
+ * Two Methods are semantically equivalent if they have the same declaring
+ * class, name, and parameter list. This ignores different exception
+ * clauses or return types.
+ *
+ * @param o the object to compare to
+ * @return <code>true</code> if they are equal; <code>false</code> if not
+ */
+ public boolean equals (Object obj)
+ {
+ if (! (obj instanceof Method))
+ return false;
+ Method m = (Method) obj;
+ return declaringClass == m.declaringClass && offset == m.offset;
+ }
+
+ /**
+ * Get the hash code for the Method. The Method hash code is the hash code
+ * of its name XOR'd with the hash code of its class name.
+ *
+ * @return the hash code for the object
+ */
+ public int hashCode()
+ {
+ return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
+ }
+
+ /**
+ * Get a String representation of the Method. A Method's String
+ * representation is "&lt;modifiers&gt; &lt;returntype&gt;
+ * &lt;methodname&gt;(&lt;paramtypes&gt;) throws &lt;exceptions&gt;", where
+ * everything after ')' is omitted if there are no exceptions.<br> Example:
+ * <code>public static int run(java.lang.Runnable,int)</code>
+ *
+ * @return the String representation of the Method
+ */
+ public String toString()
+ {
+ if (parameter_types == null)
+ getType ();
+
+ StringBuffer b = new StringBuffer ();
+ int mods = getModifiers();
+ if (mods != 0)
+ {
+ Modifier.toString(mods, b);
+ b.append(" ");
+ }
+ appendClassName (b, return_type);
+ b.append(" ");
+ appendClassName (b, declaringClass);
+ b.append(".");
+ b.append(getName());
+ b.append("(");
+ for (int i = 0; i < parameter_types.length; ++i)
+ {
+ appendClassName (b, parameter_types[i]);
+ if (i < parameter_types.length - 1)
+ b.append(",");
+ }
+ b.append(")");
+ if (exception_types.length > 0)
+ {
+ b.append(" throws ");
+ for (int i = 0; i < exception_types.length; ++i)
+ {
+ appendClassName (b, exception_types[i]);
+ if (i < exception_types.length - 1)
+ b.append(",");
+ }
+ }
+ return b.toString();
+ }
+
+ public String toGenericString()
+ {
+ // 128 is a reasonable buffer initial size for constructor
+ StringBuilder sb = new StringBuilder(128);
+ Modifier.toString(getModifiers(), sb).append(' ');
+ Constructor.addTypeParameters(sb, getTypeParameters());
+ sb.append(getGenericReturnType()).append(' ');
+ sb.append(getDeclaringClass().getName()).append('.');
+ sb.append(getName()).append('(');
+ Type[] types = getGenericParameterTypes();
+ if (types.length > 0)
+ {
+ sb.append(types[0]);
+ for (int i = 1; i < types.length; i++)
+ sb.append(',').append(types[i]);
+ }
+ sb.append(')');
+ types = getGenericExceptionTypes();
+ if (types.length > 0)
+ {
+ sb.append(" throws ").append(types[0]);
+ for (int i = 1; i < types.length; i++)
+ sb.append(',').append(types[i]);
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Invoke the method. Arguments are automatically unwrapped and widened,
+ * and the result is automatically wrapped, if needed.<p>
+ *
+ * If the method is static, <code>o</code> will be ignored. Otherwise,
+ * the method uses dynamic lookup as described in JLS 15.12.4.4. You cannot
+ * mimic the behavior of nonvirtual lookup (as in super.foo()). This means
+ * you will get a <code>NullPointerException</code> if <code>o</code> is
+ * null, and an <code>IllegalArgumentException</code> if it is incompatible
+ * with the declaring class of the method. If the method takes 0 arguments,
+ * you may use null or a 0-length array for <code>args</code>.<p>
+ *
+ * Next, if this Method enforces access control, your runtime context is
+ * evaluated, and you may have an <code>IllegalAccessException</code> if
+ * you could not acces this method in similar compiled code. If the method
+ * is static, and its class is uninitialized, you trigger class
+ * initialization, which may end in a
+ * <code>ExceptionInInitializerError</code>.<p>
+ *
+ * Finally, the method is invoked. If it completes normally, the return value
+ * will be null for a void method, a wrapped object for a primitive return
+ * method, or the actual return of an Object method. If it completes
+ * abruptly, the exception is wrapped in an
+ * <code>InvocationTargetException</code>.
+ *
+ * @param o the object to invoke the method on
+ * @param args the arguments to the method
+ * @return the return value of the method, wrapped in the appropriate
+ * wrapper if it is primitive
+ * @throws IllegalAccessException if the method could not normally be called
+ * by the Java code (i.e. it is not public)
+ * @throws IllegalArgumentException if the number of arguments is incorrect;
+ * if the arguments types are wrong even with a widening conversion;
+ * or if <code>o</code> is not an instance of the class or interface
+ * declaring this method
+ * @throws InvocationTargetException if the method throws an exception
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static method triggered
+ * class initialization, which then failed
+ */
+ public native Object invoke (Object obj, Object... args)
+ throws IllegalAccessException, IllegalArgumentException,
+ InvocationTargetException;
+
+ /**
+ * Returns an array of <code>TypeVariable</code> objects that represents
+ * the type variables declared by this constructor, in declaration order.
+ * An array of size zero is returned if this class has no type
+ * variables.
+ *
+ * @return the type variables associated with this class.
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public TypeVariable<Method>[] getTypeParameters()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return new TypeVariable[0];
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getTypeParameters();
+ }
+
+ /**
+ * Return the String in the Signature attribute for this method. If there
+ * is no Signature attribute, return null.
+ */
+ private native String getSignature();
+
+ /**
+ * Returns an array of <code>Type</code> objects that represents
+ * the exception types declared by this method, in declaration order.
+ * An array of size zero is returned if this method declares no
+ * exceptions.
+ *
+ * @return the exception types declared by this method.
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public Type[] getGenericExceptionTypes()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return getExceptionTypes();
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getGenericExceptionTypes();
+ }
+
+ /**
+ * Returns an array of <code>Type</code> objects that represents
+ * the parameter list for this method, in declaration order.
+ * An array of size zero is returned if this method takes no
+ * parameters.
+ *
+ * @return a list of the types of the method's parameters
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public Type[] getGenericParameterTypes()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return getParameterTypes();
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getGenericParameterTypes();
+ }
+
+ /**
+ * Returns the return type of this method.
+ *
+ * @return the return type of this method
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
+ * @since 1.5
+ */
+ public Type getGenericReturnType()
+ {
+ String sig = getSignature();
+ if (sig == null)
+ return getReturnType();
+ MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ return p.getGenericReturnType();
+ }
+
+ /**
+ * If this method is an annotation method, returns the default
+ * value for the method. If there is no default value, or if the
+ * method is not a member of an annotation type, returns null.
+ * Primitive types are wrapped.
+ *
+ * @throws TypeNotPresentException if the method returns a Class,
+ * and the class cannot be found
+ *
+ * @since 1.5
+ */
+ public native Object getDefaultValue();
+
+ public <T extends Annotation> T getAnnotation(Class<T> annoClass)
+ {
+ Annotation[] annos = getDeclaredAnnotations();
+ for (int i = 0; i < annos.length; ++i)
+ if (annos[i].annotationType() == annoClass)
+ return (T) annos[i];
+ return null;
+ }
+
+ public Annotation[] getDeclaredAnnotations()
+ {
+ Annotation[] result = getDeclaredAnnotationsInternal();
+ if (result == null)
+ result = new Annotation[0];
+ return result;
+ }
+
+ public Annotation[][] getParameterAnnotations()
+ {
+ // FIXME: should check that we have the right number
+ // of parameters ...?
+ Annotation[][] result = getParameterAnnotationsInternal();
+ if (result == null)
+ result = new Annotation[0][0];
+ return result;
+ }
+
+ private native Annotation[] getDeclaredAnnotationsInternal();
+ private native Annotation[][] getParameterAnnotationsInternal();
+
+ private native void getType ();
+
+ // Append a class name to a string buffer. We try to print the
+ // fully-qualified name, the way that a Java programmer would expect
+ // it to be written. Weirdly, Class has no appropriate method for
+ // this.
+ static void appendClassName (StringBuffer buf, Class k)
+ {
+ if (k.isArray ())
+ {
+ appendClassName (buf, k.getComponentType ());
+ buf.append ("[]");
+ }
+ else
+ {
+ // This is correct for primitive and reference types. Really
+ // we'd like `Main$Inner' to be printed as `Main.Inner', I
+ // think, but that is a pain.
+ buf.append (k.getName ());
+ }
+ }
+
+ // Declaring class.
+ private Class declaringClass;
+
+ // Exception types.
+ Class[] exception_types;
+ // Name cache. (Initially null.)
+ private String name;
+ // Parameter types.
+ Class[] parameter_types;
+ // Return type.
+ Class return_type;
+
+ // Offset in bytes from the start of declaringClass's methods array.
+ private int offset;
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/Modifier.h b/gcc-4.8/libjava/java/lang/reflect/Modifier.h
new file mode 100644
index 000000000..4ee474a95
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Modifier.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Modifier__
+#define __java_lang_reflect_Modifier__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::reflect::Modifier : public ::java::lang::Object
+{
+
+public:
+ Modifier();
+ static jboolean isAbstract(jint);
+ static jboolean isFinal(jint);
+ static jboolean isInterface(jint);
+ static jboolean isNative(jint);
+ static jboolean isPrivate(jint);
+ static jboolean isProtected(jint);
+ static jboolean isPublic(jint);
+ static jboolean isStatic(jint);
+ static jboolean isStrict(jint);
+ static jboolean isSynchronized(jint);
+ static jboolean isTransient(jint);
+ static jboolean isVolatile(jint);
+ static ::java::lang::String * toString(jint);
+public: // actually package-private
+ static ::java::lang::StringBuilder * toString(jint, ::java::lang::StringBuilder *);
+ static ::java::lang::StringBuffer * toString(jint, ::java::lang::StringBuffer *);
+public:
+ static const jint PUBLIC = 1;
+ static const jint PRIVATE = 2;
+ static const jint PROTECTED = 4;
+ static const jint STATIC = 8;
+ static const jint FINAL = 16;
+ static const jint SYNCHRONIZED = 32;
+ static const jint VOLATILE = 64;
+ static const jint TRANSIENT = 128;
+ static const jint NATIVE = 256;
+ static const jint INTERFACE = 512;
+ static const jint ABSTRACT = 1024;
+ static const jint STRICT = 2048;
+public: // actually package-private
+ static const jint SUPER = 32;
+ static const jint ALL_FLAGS = 4095;
+ static const jint BRIDGE = 64;
+ static const jint VARARGS = 128;
+ static const jint SYNTHETIC = 4096;
+ static const jint ENUM = 16384;
+ static const jint INVISIBLE = 32768;
+ static const jint INTERPRETED = 4096;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Modifier__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Modifier.java b/gcc-4.8/libjava/java/lang/reflect/Modifier.java
new file mode 100644
index 000000000..f9a9ca2c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Modifier.java
@@ -0,0 +1,375 @@
+/* java.lang.reflect.Modifier
+ Copyright (C) 1998, 1999, 2001, 2002, 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+/**
+ * Modifier is a helper class with static methods to determine whether an
+ * int returned from getModifiers() represents static, public, protected,
+ * native, final, etc... and provides an additional method to print
+ * out all of the modifiers in an int in order.
+ * <p>
+ * The methods in this class use the bitmask values in the VM spec to
+ * determine the modifiers of an int. This means that a VM must return a
+ * standard mask, conformant with the VM spec. I don't know if this is how
+ * Sun does it, but I'm willing to bet money that it is.
+ *
+ * @author John Keiser
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @see Member#getModifiers()
+ * @see Method#getModifiers()
+ * @see Field#getModifiers()
+ * @see Constructor#getModifiers()
+ * @see Class#getModifiers()
+ * @since 1.1
+ */
+public class Modifier
+{
+ /** <STRONG>This constructor really shouldn't be here ... there are no
+ * instance methods or variables of this class, so instantiation is
+ * worthless. However, this function is in the 1.1 spec, so it is added
+ * for completeness.</STRONG>
+ */
+ public Modifier()
+ {
+ }
+
+ /**
+ * Public: accessible from any other class.
+ */
+ public static final int PUBLIC = 0x0001;
+
+ /**
+ * Private: accessible only from the same enclosing class.
+ */
+ public static final int PRIVATE = 0x0002;
+
+ /**
+ * Protected: accessible only to subclasses, or within the package.
+ */
+ public static final int PROTECTED = 0x0004;
+
+ /**
+ * Static:<br><ul>
+ * <li>Class: no enclosing instance for nested class.</li>
+ * <li>Field or Method: can be accessed or invoked without an
+ * instance of the declaring class.</li>
+ * </ul>
+ */
+ public static final int STATIC = 0x0008;
+
+ /**
+ * Final:<br><ul>
+ * <li>Class: no subclasses allowed.</li>
+ * <li>Field: cannot be changed.</li>
+ * <li>Method: cannot be overriden.</li>
+ * </ul>
+ */
+ public static final int FINAL = 0x0010;
+
+ /**
+ * Synchronized: Method: lock the class while calling this method.
+ */
+ public static final int SYNCHRONIZED = 0x0020;
+
+ /**
+ * Volatile: Field: cannot be cached.
+ */
+ public static final int VOLATILE = 0x0040;
+
+ /**
+ * Transient: Field: not serialized or deserialized.
+ */
+ public static final int TRANSIENT = 0x0080;
+
+ /**
+ * Native: Method: use JNI to call this method.
+ */
+ public static final int NATIVE = 0x0100;
+
+ /**
+ * Interface: Class: is an interface.
+ */
+ public static final int INTERFACE = 0x0200;
+
+ /**
+ * Abstract:<br><ul>
+ * <li>Class: may not be instantiated.</li>
+ * <li>Method: may not be called.</li>
+ * </ul>
+ */
+ public static final int ABSTRACT = 0x0400;
+
+ /**
+ * Strictfp: Method: expressions are FP-strict.<p>
+ * Also used as a modifier for classes, to mean that all initializers
+ * and constructors are FP-strict, but does not show up in
+ * Class.getModifiers.
+ */
+ public static final int STRICT = 0x0800;
+
+
+ /**
+ * Super - treat invokespecial as polymorphic so that super.foo() works
+ * according to the JLS. This is a reuse of the synchronized constant
+ * to patch a hole in JDK 1.0. *shudder*.
+ */
+ static final int SUPER = 0x0020;
+
+ /**
+ * All the flags, only used by code in this package.
+ */
+ static final int ALL_FLAGS = 0xfff;
+
+ /**
+ * Flag indicating a bridge method.
+ */
+ static final int BRIDGE = 0x40;
+
+ /**
+ * Flag indicating a varargs method.
+ */
+ static final int VARARGS = 0x80;
+
+ /**
+ * Flag indicating a synthetic member.
+ */
+ static final int SYNTHETIC = 0x1000;
+
+ /**
+ * Flag indicating an enum constant or an enum class.
+ */
+ static final int ENUM = 0x4000;
+
+ /**
+ * GCJ-LOCAL: This access flag is set on methods we declare
+ * internally but which must not be visible to reflection.
+ */
+ static final int INVISIBLE = 0x8000;
+
+ /**
+ * GCJ-LOCAL: This access flag is set on interpreted classes.
+ */
+ static final int INTERPRETED = 0x1000;
+
+ /**
+ * Check whether the given modifier is abstract.
+ * @param mod the modifier.
+ * @return <code>true</code> if abstract, <code>false</code> otherwise.
+ */
+ public static boolean isAbstract(int mod)
+ {
+ return (mod & ABSTRACT) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is final.
+ * @param mod the modifier.
+ * @return <code>true</code> if final, <code>false</code> otherwise.
+ */
+ public static boolean isFinal(int mod)
+ {
+ return (mod & FINAL) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is an interface.
+ * @param mod the modifier.
+ * @return <code>true</code> if an interface, <code>false</code> otherwise.
+ */
+ public static boolean isInterface(int mod)
+ {
+ return (mod & INTERFACE) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is native.
+ * @param mod the modifier.
+ * @return <code>true</code> if native, <code>false</code> otherwise.
+ */
+ public static boolean isNative(int mod)
+ {
+ return (mod & NATIVE) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is private.
+ * @param mod the modifier.
+ * @return <code>true</code> if private, <code>false</code> otherwise.
+ */
+ public static boolean isPrivate(int mod)
+ {
+ return (mod & PRIVATE) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is protected.
+ * @param mod the modifier.
+ * @return <code>true</code> if protected, <code>false</code> otherwise.
+ */
+ public static boolean isProtected(int mod)
+ {
+ return (mod & PROTECTED) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is public.
+ * @param mod the modifier.
+ * @return <code>true</code> if public, <code>false</code> otherwise.
+ */
+ public static boolean isPublic(int mod)
+ {
+ return (mod & PUBLIC) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is static.
+ * @param mod the modifier.
+ * @return <code>true</code> if static, <code>false</code> otherwise.
+ */
+ public static boolean isStatic(int mod)
+ {
+ return (mod & STATIC) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is strictfp.
+ * @param mod the modifier.
+ * @return <code>true</code> if strictfp, <code>false</code> otherwise.
+ */
+ public static boolean isStrict(int mod)
+ {
+ return (mod & STRICT) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is synchronized.
+ * @param mod the modifier.
+ * @return <code>true</code> if synchronized, <code>false</code> otherwise.
+ */
+ public static boolean isSynchronized(int mod)
+ {
+ return (mod & SYNCHRONIZED) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is transient.
+ * @param mod the modifier.
+ * @return <code>true</code> if transient, <code>false</code> otherwise.
+ */
+ public static boolean isTransient(int mod)
+ {
+ return (mod & TRANSIENT) != 0;
+ }
+
+ /**
+ * Check whether the given modifier is volatile.
+ * @param mod the modifier.
+ * @return <code>true</code> if volatile, <code>false</code> otherwise.
+ */
+ public static boolean isVolatile(int mod)
+ {
+ return (mod & VOLATILE) != 0;
+ }
+
+ /**
+ * Get a string representation of all the modifiers represented by the
+ * given int. The keywords are printed in this order:
+ * <code>&lt;public|protected|private&gt; abstract static final transient
+ * volatile synchronized native strictfp interface</code>.
+ *
+ * @param mod the modifier.
+ * @return the String representing the modifiers.
+ */
+ public static String toString(int mod)
+ {
+ return toString(mod, new StringBuffer()).toString();
+ }
+
+ /**
+ * Package helper method that can take a StringBuilder.
+ * @param mod the modifier
+ * @param r the StringBuilder to which the String representation is appended
+ * @return r, with information appended
+ */
+ static StringBuilder toString(int mod, StringBuilder r)
+ {
+ r.append(toString(mod, new StringBuffer()));
+ return r;
+ }
+
+ /**
+ * Package helper method that can take a StringBuffer.
+ * @param mod the modifier
+ * @param r the StringBuffer to which the String representation is appended
+ * @return r, with information appended
+ */
+ static StringBuffer toString(int mod, StringBuffer r)
+ {
+ if (isPublic(mod))
+ r.append("public ");
+ if (isProtected(mod))
+ r.append("protected ");
+ if (isPrivate(mod))
+ r.append("private ");
+ if (isAbstract(mod))
+ r.append("abstract ");
+ if (isStatic(mod))
+ r.append("static ");
+ if (isFinal(mod))
+ r.append("final ");
+ if (isTransient(mod))
+ r.append("transient ");
+ if (isVolatile(mod))
+ r.append("volatile ");
+ if (isSynchronized(mod))
+ r.append("synchronized ");
+ if (isNative(mod))
+ r.append("native ");
+ if (isStrict(mod))
+ r.append("strictfp ");
+ if (isInterface(mod))
+ r.append("interface ");
+
+ // Trim trailing space.
+ if ((mod & ALL_FLAGS) != 0)
+ r.setLength(r.length() - 1);
+ return r;
+ }
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/ParameterizedType.h b/gcc-4.8/libjava/java/lang/reflect/ParameterizedType.h
new file mode 100644
index 000000000..dab9ad953
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/ParameterizedType.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_ParameterizedType__
+#define __java_lang_reflect_ParameterizedType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::ParameterizedType : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::reflect::Type * > * getActualTypeArguments() = 0;
+ virtual ::java::lang::reflect::Type * getOwnerType() = 0;
+ virtual ::java::lang::reflect::Type * getRawType() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_ParameterizedType__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Proxy$ClassFactory.h b/gcc-4.8/libjava/java/lang/reflect/Proxy$ClassFactory.h
new file mode 100644
index 000000000..c4cfb883d
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Proxy$ClassFactory.h
@@ -0,0 +1,78 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Proxy$ClassFactory__
+#define __java_lang_reflect_Proxy$ClassFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::Proxy$ClassFactory : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Proxy$ClassFactory(::java::lang::reflect::Proxy$ProxyData *);
+private:
+ void emitMethod(jint, JArray< ::java::lang::Class * > *);
+public: // actually package-private
+ ::java::lang::Class * generate(::java::lang::ClassLoader *);
+private:
+ void putU1(jint);
+ void putU2(jint);
+ void putU4(jint);
+ void putConst(jint);
+ void putLoad(jint, ::java::lang::Class *);
+ ::java::lang::String * wrapper(::java::lang::Class *);
+ jchar utf8Info(::java::lang::String *);
+ jchar classInfo(::java::lang::String *);
+ jchar classInfo(::java::lang::Class *);
+ jchar refInfo(jbyte, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ jchar nameAndTypeInfo(::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * toUtf8(::java::lang::String *);
+ jchar poolIndex(::java::lang::String *);
+ static const jbyte FIELD = 1;
+ static const jbyte METHOD = 2;
+ static const jbyte INTERFACE = 3;
+ static ::java::lang::String * CTOR_SIG;
+ static ::java::lang::String * INVOKE_SIG;
+ static const jchar ACONST_NULL = 1;
+ static const jchar ICONST_0 = 3;
+ static const jchar BIPUSH = 16;
+ static const jchar SIPUSH = 17;
+ static const jchar ILOAD = 21;
+ static const jchar ILOAD_0 = 26;
+ static const jchar ALOAD_0 = 42;
+ static const jchar ALOAD_1 = 43;
+ static const jchar AALOAD = 50;
+ static const jchar AASTORE = 83;
+ static const jchar DUP = 89;
+ static const jchar DUP_X1 = 90;
+ static const jchar SWAP = 95;
+ static const jchar IRETURN = 172;
+ static const jchar LRETURN = 173;
+ static const jchar FRETURN = 174;
+ static const jchar DRETURN = 175;
+ static const jchar ARETURN = 176;
+ static const jchar RETURN = 177;
+ static const jchar GETSTATIC = 178;
+ static const jchar GETFIELD = 180;
+ static const jchar INVOKEVIRTUAL = 182;
+ static const jchar INVOKESPECIAL = 183;
+ static const jchar INVOKEINTERFACE = 185;
+ static const jchar NEW = 187;
+ static const jchar ANEWARRAY = 189;
+ static const jchar ATHROW = 191;
+ static const jchar CHECKCAST = 192;
+ ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pool;
+ ::java::lang::StringBuffer * stream;
+ ::java::util::Map * poolEntries;
+ ::java::lang::String * qualName;
+ JArray< ::java::lang::reflect::Method * > * methods;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Proxy$ClassFactory__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyData.h b/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyData.h
new file mode 100644
index 000000000..2c0d91e5e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyData.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Proxy$ProxyData__
+#define __java_lang_reflect_Proxy$ProxyData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::Proxy$ProxyData : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Proxy$ProxyData();
+private:
+ static ::java::lang::String * getPackage(::java::lang::Class *);
+public: // actually package-private
+ static ::java::lang::reflect::Proxy$ProxyData * getProxyData(::java::lang::reflect::Proxy$ProxyType *);
+private:
+ static jboolean isCoreObjectMethod(::java::lang::reflect::Method *);
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pack;
+ JArray< ::java::lang::Class * > * interfaces;
+ JArray< ::java::lang::reflect::Method * > * methods;
+ JArray< JArray< ::java::lang::Class * > * > * exceptions;
+private:
+ static jint count;
+public: // actually package-private
+ jint id;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Proxy$ProxyData__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxySignature.h b/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxySignature.h
new file mode 100644
index 000000000..ae0f028de
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxySignature.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Proxy$ProxySignature__
+#define __java_lang_reflect_Proxy$ProxySignature__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::reflect::Proxy$ProxySignature : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Proxy$ProxySignature(::java::lang::reflect::Method *);
+ void checkCompatibility(::java::lang::reflect::Proxy$ProxySignature *);
+public:
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ static ::java::util::HashMap * coreMethods;
+ ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::java::lang::Object)))) method;
+ ::java::util::Set * exceptions;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Proxy$ProxySignature__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyType.h b/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyType.h
new file mode 100644
index 000000000..da7653539
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Proxy$ProxyType.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Proxy$ProxyType__
+#define __java_lang_reflect_Proxy$ProxyType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::Proxy$ProxyType : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Proxy$ProxyType(::java::lang::ClassLoader *, JArray< ::java::lang::Class * > *);
+public:
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loader;
+ JArray< ::java::lang::Class * > * interfaces;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Proxy$ProxyType__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Proxy.h b/gcc-4.8/libjava/java/lang/reflect/Proxy.h
new file mode 100644
index 000000000..4dad2cffd
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Proxy.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Proxy__
+#define __java_lang_reflect_Proxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::Proxy : public ::java::lang::Object
+{
+
+public: // actually protected
+ Proxy(::java::lang::reflect::InvocationHandler *);
+public:
+ static ::java::lang::Class * getProxyClass(::java::lang::ClassLoader *, JArray< ::java::lang::Class * > *);
+ static ::java::lang::Object * newProxyInstance(::java::lang::ClassLoader *, JArray< ::java::lang::Class * > *, ::java::lang::reflect::InvocationHandler *);
+ static jboolean isProxyClass(::java::lang::Class *);
+ static ::java::lang::reflect::InvocationHandler * getInvocationHandler(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -2222568056686623797LL;
+ static ::java::util::Map * proxyClasses;
+public: // actually protected
+ ::java::lang::reflect::InvocationHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) h;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_Proxy__
diff --git a/gcc-4.8/libjava/java/lang/reflect/ReflectPermission.h b/gcc-4.8/libjava/java/lang/reflect/ReflectPermission.h
new file mode 100644
index 000000000..0e6a7c32e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/ReflectPermission.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_ReflectPermission__
+#define __java_lang_reflect_ReflectPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+
+class java::lang::reflect::ReflectPermission : public ::java::security::BasicPermission
+{
+
+public:
+ ReflectPermission(::java::lang::String *);
+ ReflectPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7412737110241507485LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_ReflectPermission__
diff --git a/gcc-4.8/libjava/java/lang/reflect/Type.h b/gcc-4.8/libjava/java/lang/reflect/Type.h
new file mode 100644
index 000000000..55c317fa4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/Type.h
@@ -0,0 +1,18 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_Type__
+#define __java_lang_reflect_Type__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::lang::reflect::Type : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_Type__
diff --git a/gcc-4.8/libjava/java/lang/reflect/TypeVariable.h b/gcc-4.8/libjava/java/lang/reflect/TypeVariable.h
new file mode 100644
index 000000000..6029c0190
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/TypeVariable.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_TypeVariable__
+#define __java_lang_reflect_TypeVariable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::TypeVariable : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::reflect::Type * > * getBounds() = 0;
+ virtual ::java::lang::reflect::GenericDeclaration * getGenericDeclaration() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_TypeVariable__
diff --git a/gcc-4.8/libjava/java/lang/reflect/UndeclaredThrowableException.h b/gcc-4.8/libjava/java/lang/reflect/UndeclaredThrowableException.h
new file mode 100644
index 000000000..01b969b0e
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/UndeclaredThrowableException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_UndeclaredThrowableException__
+#define __java_lang_reflect_UndeclaredThrowableException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::lang::reflect::UndeclaredThrowableException : public ::java::lang::RuntimeException
+{
+
+public:
+ UndeclaredThrowableException(::java::lang::Throwable *);
+ UndeclaredThrowableException(::java::lang::Throwable *, ::java::lang::String *);
+ virtual ::java::lang::Throwable * getUndeclaredThrowable();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = 330127114055056639LL;
+ ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) undeclaredThrowable;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_UndeclaredThrowableException__
diff --git a/gcc-4.8/libjava/java/lang/reflect/VMProxy.h b/gcc-4.8/libjava/java/lang/reflect/VMProxy.h
new file mode 100644
index 000000000..e48e8e4e8
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/VMProxy.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_VMProxy__
+#define __java_lang_reflect_VMProxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::VMProxy : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMProxy();
+ static ::java::lang::Class * getProxyClass(::java::lang::ClassLoader *, JArray< ::java::lang::Class * > *);
+ static ::java::lang::reflect::Proxy$ProxyData * getProxyData(::java::lang::ClassLoader *, JArray< ::java::lang::Class * > *);
+ static ::java::lang::Class * generateProxyClass(::java::lang::ClassLoader *, ::java::lang::reflect::Proxy$ProxyData *);
+ static jboolean HAVE_NATIVE_GET_PROXY_CLASS;
+ static jboolean HAVE_NATIVE_GET_PROXY_DATA;
+ static jboolean HAVE_NATIVE_GENERATE_PROXY_CLASS;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_reflect_VMProxy__
diff --git a/gcc-4.8/libjava/java/lang/reflect/VMProxy.java b/gcc-4.8/libjava/java/lang/reflect/VMProxy.java
new file mode 100644
index 000000000..ea1c88506
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/VMProxy.java
@@ -0,0 +1,140 @@
+/* VMProxy.java -- VM interface for proxy class
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+final class VMProxy
+{
+ /**
+ * Set to true if the VM provides a native method to implement
+ * Proxy.getProxyClass completely, including argument verification.
+ * If this is true, HAVE_NATIVE_GET_PROXY_DATA and
+ * HAVE_NATIVE_GENERATE_PROXY_CLASS should be false.
+ * @see java.lang.reflect.Proxy
+ */
+ static boolean HAVE_NATIVE_GET_PROXY_CLASS = false;
+
+ /**
+ * Set to true if the VM provides a native method to implement
+ * the first part of Proxy.getProxyClass: generation of the array
+ * of methods to convert, and verification of the arguments.
+ * If this is true, HAVE_NATIVE_GET_PROXY_CLASS should be false.
+ * @see java.lang.reflect.Proxy
+ */
+ static boolean HAVE_NATIVE_GET_PROXY_DATA = false;
+
+ /**
+ * Set to true if the VM provides a native method to implement
+ * the second part of Proxy.getProxyClass: conversion of an array of
+ * methods into an actual proxy class.
+ * If this is true, HAVE_NATIVE_GET_PROXY_CLASS should be false.
+ * @see java.lang.reflect.Proxy
+ */
+ static boolean HAVE_NATIVE_GENERATE_PROXY_CLASS = true;
+
+ /**
+ * Optional native method to replace (and speed up) the pure Java
+ * implementation of getProxyClass. Only needed if
+ * VMProxy.HAVE_NATIVE_GET_PROXY_CLASS is true, this does the
+ * work of both getProxyData and generateProxyClass with no
+ * intermediate form in Java. The native code may safely assume that
+ * this class must be created, and does not already exist.
+ *
+ * @param loader the class loader to define the proxy class in; null
+ * implies the bootstrap class loader
+ * @param interfaces the interfaces the class will extend
+ * @return the generated proxy class
+ * @throws IllegalArgumentException if the constraints for getProxyClass
+ * were violated, except for problems with null
+ * @throws NullPointerException if `interfaces' is null or contains
+ * a null entry, or if handler is null
+ * @see Configuration#HAVE_NATIVE_GET_PROXY_CLASS
+ * @see #getProxyClass(ClassLoader, Class[])
+ * @see #getProxyData(ClassLoader, Class[])
+ * @see #generateProxyClass(ProxyData)
+ */
+ static Class getProxyClass(ClassLoader loader, Class[] interfaces)
+ {
+ return null;
+ }
+
+ /**
+ * Optional native method to replace (and speed up) the pure Java
+ * implementation of getProxyData. Only needed if
+ * Configuration.HAVE_NATIVE_GET_PROXY_DATA is true. The native code
+ * may safely assume that a new ProxyData object must be created which
+ * does not duplicate any existing ones.
+ *
+ * @param loader the class loader to define the proxy class in; null
+ * implies the bootstrap class loader
+ * @param interfaces the interfaces the class will extend
+ * @return all data that is required to make this proxy class
+ * @throws IllegalArgumentException if the constraints for getProxyClass
+ * were violated, except for problems with null
+ * @throws NullPointerException if `interfaces' is null or contains
+ * a null entry, or if handler is null
+ * @see Configuration.HAVE_NATIVE_GET_PROXY_DATA
+ * @see #getProxyClass(ClassLoader, Class[])
+ * @see #getProxyClass(ClassLoader, Class[])
+ * @see ProxyType#getProxyData()
+ */
+ static Proxy.ProxyData getProxyData(ClassLoader loader, Class[] interfaces)
+ {
+ return null;
+ }
+
+ /**
+ * Optional native method to replace (and speed up) the pure Java
+ * implementation of generateProxyClass. Only needed if
+ * Configuration.HAVE_NATIVE_GENERATE_PROXY_CLASS is true. The native
+ * code may safely assume that a new Class must be created, and that
+ * the ProxyData object does not describe any existing class.
+ *
+ * @param loader the class loader to define the proxy class in; null
+ * implies the bootstrap class loader
+ * @param data the struct of information to convert to a Class. This
+ * has already been verified for all problems except exceeding
+ * VM limitations
+ * @return the newly generated class
+ * @throws IllegalArgumentException if VM limitations are exceeded
+ * @see #getProxyClass(ClassLoader, Class[])
+ * @see #getProxyClass(ClassLoader, Class[])
+ * @see ProxyData#generateProxyClass(ClassLoader)
+ */
+ static native Class generateProxyClass(ClassLoader loader, Proxy.ProxyData data);
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/WildcardType.h b/gcc-4.8/libjava/java/lang/reflect/WildcardType.h
new file mode 100644
index 000000000..2c5b93d65
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/WildcardType.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_reflect_WildcardType__
+#define __java_lang_reflect_WildcardType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::reflect::WildcardType : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::lang::reflect::Type * > * getLowerBounds() = 0;
+ virtual JArray< ::java::lang::reflect::Type * > * getUpperBounds() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_lang_reflect_WildcardType__
diff --git a/gcc-4.8/libjava/java/lang/reflect/natArray.cc b/gcc-4.8/libjava/java/lang/reflect/natArray.cc
new file mode 100644
index 000000000..b7bc8beff
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/natArray.cc
@@ -0,0 +1,360 @@
+// natField.cc - Implementation of java.lang.reflect.Field native methods.
+
+/* Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <jvm.h>
+#include <gcj/cni.h>
+#include <java-stack.h>
+#include <java/lang/reflect/Array.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/Byte.h>
+#include <java/lang/Short.h>
+#include <java/lang/Integer.h>
+#include <java/lang/Long.h>
+#include <java/lang/Float.h>
+#include <java/lang/Double.h>
+#include <java/lang/Boolean.h>
+#include <java/lang/Character.h>
+
+jobject
+java::lang::reflect::Array::newInstance (jclass componentType, jint length)
+{
+ if (componentType->isPrimitive())
+ {
+ // We could check for this in _Jv_NewPrimArray, but that seems
+ // like needless overhead when the only real route to this
+ // problem is here.
+ if (componentType == JvPrimClass (void))
+ throw new java::lang::IllegalArgumentException ();
+ return _Jv_NewPrimArray (componentType, length);
+ }
+ else
+ // FIXME: class loader?
+ return JvNewObjectArray (length, componentType, NULL);
+}
+
+jobject
+java::lang::reflect::Array::newInstance (jclass componentType,
+ jintArray dimensions)
+{
+ jint ndims = dimensions->length;
+ if (ndims == 0)
+ throw new java::lang::IllegalArgumentException ();
+ jint* dims = elements (dimensions);
+ if (ndims == 1)
+ return newInstance (componentType, dims[0]);
+
+ Class *caller = _Jv_StackTrace::GetCallingClass (&Array::class$);
+ ClassLoader *caller_loader = NULL;
+ if (caller)
+ caller_loader = caller->getClassLoaderInternal();
+
+ jclass arrayType = componentType;
+ for (int i = 0; i < ndims; i++)
+ arrayType = _Jv_GetArrayClass (arrayType, caller_loader);
+
+ return _Jv_NewMultiArray (arrayType, ndims, dims);
+}
+
+jint
+java::lang::reflect::Array::getLength (jobject array)
+{
+ jclass arrayType = array->getClass();
+ if (! arrayType->isArray ())
+ throw new java::lang::IllegalArgumentException;
+ return ((__JArray*) array)->length;
+}
+
+jclass
+java::lang::reflect::Array::getElementType (jobject array, jint index)
+{
+ jclass arrayType = array->getClass();
+ if (! arrayType->isArray ())
+ throw new java::lang::IllegalArgumentException;
+ jint length = ((__JArray*) array)->length;
+ if ((_Jv_uint) index >= (_Jv_uint) length)
+ _Jv_ThrowBadArrayIndex(index);
+ return arrayType->getComponentType ();
+}
+
+jboolean
+java::lang::reflect::Array::getBoolean (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (boolean))
+ return elements ((jbooleanArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jchar
+java::lang::reflect::Array::getChar (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (char))
+ return elements ((jcharArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jbyte
+java::lang::reflect::Array::getByte (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (byte))
+ return elements ((jbyteArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jshort
+java::lang::reflect::Array::getShort (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (short))
+ return elements ((jshortArray) array) [index];
+ if (elementType == JvPrimClass (byte))
+ return elements ((jbyteArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jint
+java::lang::reflect::Array::getInt (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (int))
+ return elements ((jintArray) array) [index];
+ if (elementType == JvPrimClass (short))
+ return elements ((jshortArray) array) [index];
+ if (elementType == JvPrimClass (byte))
+ return elements ((jbyteArray) array) [index];
+ if (elementType == JvPrimClass (char))
+ return elements ((jcharArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jlong
+java::lang::reflect::Array::getLong (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (long))
+ return elements ((jlongArray) array) [index];
+ if (elementType == JvPrimClass (int))
+ return elements ((jintArray) array) [index];
+ if (elementType == JvPrimClass (short))
+ return elements ((jshortArray) array) [index];
+ if (elementType == JvPrimClass (byte))
+ return elements ((jbyteArray) array) [index];
+ if (elementType == JvPrimClass (char))
+ return elements ((jcharArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jfloat
+java::lang::reflect::Array::getFloat (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (float))
+ return elements ((jfloatArray) array) [index];
+ if (elementType == JvPrimClass (long))
+ return elements ((jlongArray) array) [index];
+ if (elementType == JvPrimClass (int))
+ return elements ((jintArray) array) [index];
+ if (elementType == JvPrimClass (short))
+ return elements ((jshortArray) array) [index];
+ if (elementType == JvPrimClass (byte))
+ return elements ((jbyteArray) array) [index];
+ if (elementType == JvPrimClass (char))
+ return elements ((jcharArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jdouble
+java::lang::reflect::Array::getDouble (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (double))
+ return elements ((jdoubleArray) array) [index];
+ if (elementType == JvPrimClass (float))
+ return elements ((jfloatArray) array) [index];
+ if (elementType == JvPrimClass (long))
+ return elements ((jlongArray) array) [index];
+ if (elementType == JvPrimClass (int))
+ return elements ((jintArray) array) [index];
+ if (elementType == JvPrimClass (short))
+ return elements ((jshortArray) array) [index];
+ if (elementType == JvPrimClass (byte))
+ return elements ((jbyteArray) array) [index];
+ if (elementType == JvPrimClass (char))
+ return elements ((jcharArray) array) [index];
+ throw new java::lang::IllegalArgumentException;
+}
+
+jobject
+java::lang::reflect::Array::get (jobject array, jint index)
+{
+ jclass elementType = getElementType (array, index);
+ if (! elementType->isPrimitive ())
+ return elements ((jobjectArray) array) [index];
+ if (elementType == JvPrimClass (double))
+ return new java::lang::Double (elements ((jdoubleArray) array) [index]);
+ if (elementType == JvPrimClass (float))
+ return new java::lang::Float (elements ((jfloatArray) array) [index]);
+ if (elementType == JvPrimClass (long))
+ return new java::lang::Long (elements ((jlongArray) array) [index]);
+ if (elementType == JvPrimClass (int))
+ return new java::lang::Integer (elements ((jintArray) array) [index]);
+ if (elementType == JvPrimClass (short))
+ return new java::lang::Short (elements ((jshortArray) array) [index]);
+ if (elementType == JvPrimClass (byte))
+ return new java::lang::Byte (elements ((jbyteArray) array) [index]);
+ if (elementType == JvPrimClass (char))
+ return new java::lang::Character (elements ((jcharArray) array) [index]);
+ if (elementType == JvPrimClass (boolean))
+ {
+ _Jv_InitClass (&java::lang::Boolean::class$);
+ if (elements ((jbooleanArray) array) [index])
+ return java::lang::Boolean::TRUE;
+ else
+ return java::lang::Boolean::FALSE;
+ }
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setChar (jobject array, jint index, jchar value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (char))
+ elements ((jcharArray) array) [index] = value;
+ else if (elementType == JvPrimClass (int))
+ elements ((jintArray) array) [index] = value;
+ else if (elementType == JvPrimClass (long))
+ elements ((jlongArray) array) [index] = value;
+ else if (elementType == JvPrimClass (float))
+ elements ((jfloatArray) array) [index] = value;
+ else if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setByte (jobject array, jint index, jbyte value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (byte))
+ elements ((jbyteArray) array) [index] = value;
+ else if (elementType == JvPrimClass (short))
+ elements ((jshortArray) array) [index] = value;
+ else if (elementType == JvPrimClass (int))
+ elements ((jintArray) array) [index] = value;
+ else if (elementType == JvPrimClass (long))
+ elements ((jlongArray) array) [index] = value;
+ else if (elementType == JvPrimClass (float))
+ elements ((jfloatArray) array) [index] = value;
+ else if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setShort (jobject array, jint index, jshort value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (short))
+ elements ((jshortArray) array) [index] = value;
+ else if (elementType == JvPrimClass (int))
+ elements ((jintArray) array) [index] = value;
+ else if (elementType == JvPrimClass (long))
+ elements ((jlongArray) array) [index] = value;
+ else if (elementType == JvPrimClass (float))
+ elements ((jfloatArray) array) [index] = value;
+ else if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setInt (jobject array, jint index, jint value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (int))
+ elements ((jintArray) array) [index] = value;
+ else if (elementType == JvPrimClass (long))
+ elements ((jlongArray) array) [index] = value;
+ else if (elementType == JvPrimClass (float))
+ elements ((jfloatArray) array) [index] = value;
+ else if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setLong (jobject array, jint index, jlong value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (long))
+ elements ((jlongArray) array) [index] = value;
+ else if (elementType == JvPrimClass (float))
+ elements ((jfloatArray) array) [index] = value;
+ else if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setFloat (jobject array, jint index, jfloat value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (float))
+ elements ((jfloatArray) array) [index] = value;
+ else if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setDouble (jobject array, jint index, jdouble value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (double))
+ elements ((jdoubleArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::setBoolean (jobject array,
+ jint index, jboolean value)
+{
+ jclass elementType = getElementType (array, index);
+ if (elementType == JvPrimClass (boolean))
+ elements ((jbooleanArray) array) [index] = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Array::set (jobject array, jint index,
+ jobject value, jclass elType)
+{
+ // We don't have to call getElementType here, or check INDEX,
+ // because it was already done in the Java wrapper.
+ if (value != NULL && ! _Jv_IsInstanceOf (value, elType))
+ throw new java::lang::IllegalArgumentException;
+ elements ((jobjectArray) array) [index] = value;
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/natConstructor.cc b/gcc-4.8/libjava/java/lang/reflect/natConstructor.cc
new file mode 100644
index 000000000..953d86dd4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/natConstructor.cc
@@ -0,0 +1,93 @@
+// natConstructor.cc - Native code for Constructor class.
+
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-stack.h>
+
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/IllegalAccessException.h>
+#include <java/lang/reflect/Constructor.h>
+#include <java/lang/reflect/Method.h>
+#include <java/lang/reflect/InvocationTargetException.h>
+#include <java/lang/reflect/Modifier.h>
+#include <java/lang/InstantiationException.h>
+#include <gcj/method.h>
+
+typedef JArray< ::java::lang::annotation::Annotation * > * anno_a_t;
+typedef JArray< JArray< ::java::lang::annotation::Annotation * > *> * anno_aa_t;
+
+jint
+java::lang::reflect::Constructor::getModifiersInternal ()
+{
+ return _Jv_FromReflectedConstructor (this)->accflags;
+}
+
+jstring
+java::lang::reflect::Constructor::getSignature()
+{
+ return declaringClass->getReflectionSignature (this);
+}
+
+anno_a_t
+java::lang::reflect::Constructor::getDeclaredAnnotationsInternal()
+{
+ return (anno_a_t) declaringClass->getDeclaredAnnotations(this, false);
+}
+
+anno_aa_t
+java::lang::reflect::Constructor::getParameterAnnotationsInternal()
+{
+ return (anno_aa_t) declaringClass->getDeclaredAnnotations(this, true);
+}
+
+void
+java::lang::reflect::Constructor::getType ()
+{
+ _Jv_GetTypesFromSignature (_Jv_FromReflectedConstructor (this),
+ declaringClass,
+ &parameter_types,
+ NULL);
+
+ // FIXME: for now we have no way to get exception information.
+ exception_types =
+ (JArray<jclass> *) JvNewObjectArray (0, &java::lang::Class::class$, NULL);
+}
+
+jobject
+java::lang::reflect::Constructor::newInstance (jobjectArray args)
+{
+ using namespace java::lang::reflect;
+
+ if (parameter_types == NULL)
+ getType ();
+
+ jmethodID meth = _Jv_FromReflectedConstructor (this);
+
+ // Check accessibility, if required.
+ if (! (Modifier::isPublic (meth->accflags) || this->isAccessible()))
+ {
+ Class *caller = _Jv_StackTrace::GetCallingClass (&Constructor::class$);
+ if (! _Jv_CheckAccess(caller, declaringClass, meth->accflags))
+ throw new IllegalAccessException;
+ }
+
+ if (Modifier::isAbstract (declaringClass->getModifiers()))
+ throw new InstantiationException;
+
+ _Jv_InitClass (declaringClass);
+
+ // In the constructor case the return type is the type of the
+ // constructor.
+ return _Jv_CallAnyMethodA (NULL, declaringClass, meth, true,
+ parameter_types, args);
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/natField.cc b/gcc-4.8/libjava/java/lang/reflect/natField.cc
new file mode 100644
index 000000000..734f65316
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/natField.cc
@@ -0,0 +1,449 @@
+// natField.cc - Implementation of java.lang.reflect.Field native methods.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <jvm.h>
+#include <java-stack.h>
+#include <java/lang/reflect/Field.h>
+#include <java/lang/reflect/Modifier.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/IllegalAccessException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/Byte.h>
+#include <java/lang/Short.h>
+#include <java/lang/Integer.h>
+#include <java/lang/Long.h>
+#include <java/lang/Float.h>
+#include <java/lang/Double.h>
+#include <java/lang/Boolean.h>
+#include <java/lang/Character.h>
+
+typedef JArray< ::java::lang::annotation::Annotation * > * anno_a_t;
+
+jint
+java::lang::reflect::Field::getModifiersInternal ()
+{
+ return _Jv_FromReflectedField (this)->flags;
+}
+
+jstring
+java::lang::reflect::Field::getSignature()
+{
+ return declaringClass->getReflectionSignature (this);
+}
+
+anno_a_t
+java::lang::reflect::Field::getDeclaredAnnotationsInternal()
+{
+ return (anno_a_t) declaringClass->getDeclaredAnnotations(this);
+}
+
+jstring
+java::lang::reflect::Field::getName ()
+{
+ if (name == NULL)
+ name = _Jv_NewStringUtf8Const (_Jv_FromReflectedField (this)->name);
+ return name;
+}
+
+jclass
+java::lang::reflect::Field::getType ()
+{
+ if (type == NULL)
+ {
+ jfieldID fld = _Jv_FromReflectedField (this);
+ JvSynchronize sync (declaringClass);
+ _Jv_Linker::resolve_field (fld, declaringClass->getClassLoaderInternal ());
+ type = fld->type;
+ }
+ return type;
+}
+
+static void*
+getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj,
+ jboolean checkFinal)
+{
+ using namespace java::lang::reflect;
+
+ jfieldID fld = _Jv_FromReflectedField (field);
+ _Jv_ushort flags = fld->getModifiers();
+
+ // Setting a final field is usually not allowed.
+ if (checkFinal
+ // As of 1.5, you can set a non-static final field if it is
+ // accessible.
+ && (! field->isAccessible()
+ || (field->getModifiers() & java::lang::reflect::Modifier::STATIC))
+ && (field->getModifiers() & java::lang::reflect::Modifier::FINAL))
+ throw new java::lang::IllegalAccessException(JvNewStringUTF
+ ("Field is final"));
+
+ // Check accessibility, if required.
+ if (! (Modifier::isPublic (flags) || field->isAccessible()))
+ {
+ if (! caller)
+ caller = _Jv_StackTrace::GetCallingClass (&Field::class$);
+ if (! _Jv_CheckAccess (caller, field->getDeclaringClass(), flags))
+ throw new java::lang::IllegalAccessException;
+ }
+
+ if (flags & Modifier::STATIC)
+ {
+ jclass fldClass = field->getDeclaringClass ();
+ JvInitClass(fldClass);
+ return fld->u.addr;
+ }
+ else
+ {
+ if (obj == NULL)
+ throw new java::lang::NullPointerException;
+ if (! _Jv_IsInstanceOf (obj, field->getDeclaringClass()))
+ throw new java::lang::IllegalArgumentException;
+ return (void*) ((char*) obj + fld->getOffset ());
+ }
+}
+
+static jboolean
+getBoolean (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (boolean))
+ return * (jboolean *) addr;
+ throw new java::lang::IllegalArgumentException;
+}
+
+static jchar
+getChar (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (char))
+ return * (jchar *) addr;
+ throw new java::lang::IllegalArgumentException;
+}
+
+static jbyte
+getByte (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (byte))
+ return * (jbyte *) addr;
+ throw new java::lang::IllegalArgumentException;
+}
+
+static jshort
+getShort (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (short))
+ return * (jshort *) addr;
+ if (cls == JvPrimClass (byte))
+ return * (jbyte *) addr;
+ throw new java::lang::IllegalArgumentException;
+}
+
+static jint
+getInt (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (int))
+ return * (jint *) addr;
+ if (cls == JvPrimClass (short))
+ return * (jshort *) addr;
+ if (cls == JvPrimClass (char))
+ return * (jchar *) addr;
+ if (cls == JvPrimClass (byte))
+ return * (jbyte *) addr;
+ throw new java::lang::IllegalArgumentException;
+}
+
+static jlong
+getLong (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (long))
+ return * (jlong *) addr;
+ return ::getInt(cls, addr);
+}
+
+static jfloat
+getFloat (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (float))
+ return * (jfloat *) addr;
+ if (cls == JvPrimClass (long))
+ return * (jlong *) addr;
+ return ::getInt(cls, addr);
+}
+
+static jdouble
+getDouble (jclass cls, void* addr)
+{
+ if (cls == JvPrimClass (double))
+ return * (jdouble *) addr;
+ if (cls == JvPrimClass (float))
+ return * (jfloat *) addr;
+ if (cls == JvPrimClass (long))
+ return * (jlong *) addr;
+ return ::getInt(cls, addr);
+}
+
+jboolean
+java::lang::reflect::Field::getBoolean (jclass caller, jobject obj)
+{
+ return ::getBoolean (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jchar
+java::lang::reflect::Field::getChar (jclass caller, jobject obj)
+{
+ return ::getChar (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jbyte
+java::lang::reflect::Field::getByte (jclass caller, jobject obj)
+{
+ return ::getByte (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jshort
+java::lang::reflect::Field::getShort (jclass caller, jobject obj)
+{
+ return ::getShort (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jint
+java::lang::reflect::Field::getInt (jclass caller, jobject obj)
+{
+ return ::getInt (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jlong
+java::lang::reflect::Field::getLong (jclass caller, jobject obj)
+{
+ return ::getLong (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jfloat
+java::lang::reflect::Field::getFloat (jclass caller, jobject obj)
+{
+ return ::getFloat (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jdouble
+java::lang::reflect::Field::getDouble (jclass caller, jobject obj)
+{
+ return ::getDouble (this->getType(), getAddr (this, caller, obj, false));
+}
+
+jobject
+java::lang::reflect::Field::get (jclass caller, jobject obj)
+{
+ jclass type = this->getType();
+ void* addr = getAddr (this, caller, obj, false);
+ if (! type->isPrimitive ())
+ return * (jobject*) addr;
+ if (type == JvPrimClass (double))
+ return new java::lang::Double (* (jdouble*) addr);
+ if (type == JvPrimClass (float))
+ return new java::lang::Float (* (jfloat*) addr);
+ if (type == JvPrimClass (long))
+ return new java::lang::Long (* (jlong*) addr);
+ if (type == JvPrimClass (int))
+ return new java::lang::Integer (* (jint*) addr);
+ if (type == JvPrimClass (short))
+ return new java::lang::Short (* (jshort*) addr);
+ if (type == JvPrimClass (byte))
+ return new java::lang::Byte (* (jbyte*) addr);
+ if (type == JvPrimClass (char))
+ return new java::lang::Character (* (jchar*) addr);
+ if (type == JvPrimClass (boolean))
+ {
+ _Jv_InitClass (&java::lang::Boolean::class$);
+ if (* (jboolean*) addr)
+ return java::lang::Boolean::TRUE;
+ else
+ return java::lang::Boolean::FALSE;
+ }
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setBoolean (jclass type, void *addr, jboolean value)
+{
+ if (type == JvPrimClass (boolean))
+ * (jboolean *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setChar (jclass type, void *addr, jchar value)
+{
+ if (type == JvPrimClass (char))
+ * (jchar *) addr = value;
+ else if (type == JvPrimClass (int))
+ * (jint *) addr = value;
+ else if (type == JvPrimClass (long))
+ * (jlong *) addr = value;
+ else if (type == JvPrimClass (float))
+ * (jfloat *) addr = value;
+ else if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setByte (jclass type, void *addr, jbyte value)
+{
+ if (type == JvPrimClass (byte))
+ * (jbyte *) addr = value;
+ else if (type == JvPrimClass (short))
+ * (jshort *) addr = value;
+ else if (type == JvPrimClass (int))
+ * (jint *) addr = value;
+ else if (type == JvPrimClass (long))
+ * (jlong *) addr = value;
+ else if (type == JvPrimClass (float))
+ * (jfloat *) addr = value;
+ else if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setShort (jclass type, void *addr, jshort value)
+{
+ if (type == JvPrimClass (short))
+ * (jshort *) addr = value;
+ else if (type == JvPrimClass (int))
+ * (jint *) addr = value;
+ else if (type == JvPrimClass (long))
+ * (jlong *) addr = value;
+ else if (type == JvPrimClass (float))
+ * (jfloat *) addr = value;
+ else if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setInt (jclass type, void *addr, jint value)
+{
+ if (type == JvPrimClass (int))
+ * (jint *) addr = value;
+ else if (type == JvPrimClass (long))
+ * (jlong *) addr = value;
+ else if (type == JvPrimClass (float))
+ * (jfloat *) addr = value;
+ else if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setLong (jclass type, void *addr, jlong value)
+{
+ if (type == JvPrimClass (long))
+ * (jlong *) addr = value;
+ else if (type == JvPrimClass (float))
+ * (jfloat *) addr = value;
+ else if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setFloat (jclass type, void *addr, jfloat value)
+{
+ if (type == JvPrimClass (float))
+ * (jfloat *) addr = value;
+ else if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+static void
+setDouble (jclass type, void *addr, jdouble value)
+{
+ if (type == JvPrimClass (double))
+ * (jdouble *) addr = value;
+ else
+ throw new java::lang::IllegalArgumentException;
+}
+
+void
+java::lang::reflect::Field::setBoolean (jclass caller, jobject obj, jboolean b,
+ jboolean checkFinal)
+{
+ ::setBoolean (this->getType(), getAddr (this, caller, obj, checkFinal), b);
+}
+
+void
+java::lang::reflect::Field::setChar (jclass caller, jobject obj, jchar c,
+ jboolean checkFinal)
+{
+ ::setChar (this->getType(), getAddr (this, caller, obj, checkFinal), c);
+}
+
+void
+java::lang::reflect::Field::setByte (jclass caller, jobject obj, jbyte b,
+ jboolean checkFinal)
+{
+ ::setByte (this->getType(), getAddr (this, caller, obj, checkFinal), b);
+}
+
+void
+java::lang::reflect::Field::setShort (jclass caller, jobject obj, jshort s,
+ jboolean checkFinal)
+{
+ ::setShort (this->getType(), getAddr (this, caller, obj, checkFinal), s);
+}
+
+void
+java::lang::reflect::Field::setInt (jclass caller, jobject obj, jint i,
+ jboolean checkFinal)
+{
+ ::setInt (this->getType(), getAddr (this, caller, obj, checkFinal), i);
+}
+
+void
+java::lang::reflect::Field::setLong (jclass caller, jobject obj, jlong l,
+ jboolean checkFinal)
+{
+ ::setLong (this->getType(), getAddr (this, caller, obj, checkFinal), l);
+}
+
+void
+java::lang::reflect::Field::setFloat (jclass caller, jobject obj, jfloat f,
+ jboolean checkFinal)
+{
+ ::setFloat (this->getType(), getAddr (this, caller, obj, checkFinal), f);
+}
+
+void
+java::lang::reflect::Field::setDouble (jclass caller, jobject obj, jdouble d,
+ jboolean checkFinal)
+{
+ ::setDouble (this->getType(), getAddr (this, caller, obj, checkFinal), d);
+}
+
+void
+java::lang::reflect::Field::set (jclass caller, jobject object, jobject value,
+ jclass type, jboolean checkFinal)
+{
+ void* addr = getAddr (this, caller, object, checkFinal);
+ if (value != NULL && ! _Jv_IsInstanceOf (value, type))
+ throw new java::lang::IllegalArgumentException;
+ * (jobject*) addr = value;
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/natMethod.cc b/gcc-4.8/libjava/java/lang/reflect/natMethod.cc
new file mode 100644
index 000000000..8ac87fcb4
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/natMethod.cc
@@ -0,0 +1,706 @@
+// natMethod.cc - Native code for Method class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001 , 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <jni.h>
+#include <java-stack.h>
+
+#include <java/lang/reflect/Method.h>
+#include <java/lang/reflect/Constructor.h>
+#include <java/lang/reflect/InvocationTargetException.h>
+#include <java/lang/reflect/Modifier.h>
+
+#include <java/lang/Void.h>
+#include <java/lang/Byte.h>
+#include <java/lang/Boolean.h>
+#include <java/lang/Character.h>
+#include <java/lang/Short.h>
+#include <java/lang/Integer.h>
+#include <java/lang/Long.h>
+#include <java/lang/Float.h>
+#include <java/lang/Double.h>
+#include <java/lang/IllegalAccessException.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/IncompatibleClassChangeError.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/VirtualMachineError.h>
+#include <java/lang/Class.h>
+#include <gcj/method.h>
+#include <gnu/gcj/RawData.h>
+#include <java/lang/NoClassDefFoundError.h>
+
+#include <stdlib.h>
+
+#if USE_LIBFFI
+#include <ffi.h>
+#else
+#include <java/lang/UnsupportedOperationException.h>
+#endif
+
+typedef JArray< ::java::lang::annotation::Annotation * > * anno_a_t;
+typedef JArray< JArray< ::java::lang::annotation::Annotation * > *> * anno_aa_t;
+
+
+
+struct cpair
+{
+ jclass prim;
+ jclass wrap;
+};
+
+// This is used to determine when a primitive widening conversion is
+// allowed.
+static cpair primitives[] =
+{
+#define BOOLEAN 0
+ { JvPrimClass (boolean), &java::lang::Boolean::class$ },
+ { JvPrimClass (byte), &java::lang::Byte::class$ },
+#define SHORT 2
+ { JvPrimClass (short), &java::lang::Short::class$ },
+#define CHAR 3
+ { JvPrimClass (char), &java::lang::Character::class$ },
+ { JvPrimClass (int), &java::lang::Integer::class$ },
+ { JvPrimClass (long), &java::lang::Long::class$ },
+ { JvPrimClass (float), &java::lang::Float::class$ },
+ { JvPrimClass (double), &java::lang::Double::class$ },
+ { NULL, NULL }
+};
+
+static inline jboolean
+can_widen (jclass from, jclass to)
+{
+ int fromx = -1, tox = -1;
+
+ for (int i = 0; primitives[i].prim; ++i)
+ {
+ if (primitives[i].wrap == from)
+ fromx = i;
+ if (primitives[i].prim == to)
+ tox = i;
+ }
+
+ // Can't handle a miss.
+ if (fromx == -1 || tox == -1)
+ return false;
+ // Boolean arguments may not be widened.
+ if (fromx == BOOLEAN && tox != BOOLEAN)
+ return false;
+ // Nothing promotes to char.
+ if (tox == CHAR && fromx != CHAR)
+ return false;
+
+ return fromx <= tox;
+}
+
+#ifdef USE_LIBFFI
+static inline ffi_type *
+get_ffi_type (jclass klass)
+{
+ // A special case.
+ if (klass == NULL)
+ return &ffi_type_pointer;
+
+ ffi_type *r;
+ if (klass == JvPrimClass (byte))
+ r = &ffi_type_sint8;
+ else if (klass == JvPrimClass (short))
+ r = &ffi_type_sint16;
+ else if (klass == JvPrimClass (int))
+ r = &ffi_type_sint32;
+ else if (klass == JvPrimClass (long))
+ r = &ffi_type_sint64;
+ else if (klass == JvPrimClass (float))
+ r = &ffi_type_float;
+ else if (klass == JvPrimClass (double))
+ r = &ffi_type_double;
+ else if (klass == JvPrimClass (boolean))
+ {
+ // On some platforms a bool is a byte, on others an int.
+ if (sizeof (jboolean) == sizeof (jbyte))
+ r = &ffi_type_sint8;
+ else
+ {
+ JvAssert (sizeof (jboolean) == sizeof (jint));
+ r = &ffi_type_sint32;
+ }
+ }
+ else if (klass == JvPrimClass (char))
+ r = &ffi_type_uint16;
+ else
+ {
+ JvAssert (! klass->isPrimitive());
+ r = &ffi_type_pointer;
+ }
+
+ return r;
+}
+#endif // USE_LIBFFI
+
+jobject
+java::lang::reflect::Method::invoke (jobject obj, jobjectArray args)
+{
+ using namespace java::lang::reflect;
+ jclass iface = NULL;
+
+ if (parameter_types == NULL)
+ getType ();
+
+ jmethodID meth = _Jv_FromReflectedMethod (this);
+
+ if (Modifier::isStatic(meth->accflags))
+ {
+ // We have to initialize a static class. It is safe to do this
+ // here and not in _Jv_CallAnyMethodA because JNI initializes a
+ // class whenever a method lookup is done.
+ _Jv_InitClass (declaringClass);
+ }
+ else
+ {
+ jclass objClass = JV_CLASS (obj);
+ if (! _Jv_IsAssignableFrom (objClass, declaringClass))
+ throw new java::lang::IllegalArgumentException;
+ }
+
+ // Check accessibility, if required.
+ if (! this->isAccessible())
+ {
+ if (! (Modifier::isPublic (meth->accflags)))
+ {
+ Class *caller = _Jv_StackTrace::GetCallingClass (&Method::class$);
+ if (! _Jv_CheckAccess(caller, declaringClass, meth->accflags))
+ throw new IllegalAccessException;
+ }
+ else
+ // Method is public, check to see if class is accessible.
+ {
+ jint flags = (declaringClass->accflags
+ & (Modifier::PUBLIC
+ | Modifier::PROTECTED
+ | Modifier::PRIVATE));
+ if (flags == 0) // i.e. class is package private
+ {
+ Class *caller = _Jv_StackTrace::GetCallingClass (&Method::class$);
+ if (! _Jv_ClassNameSamePackage (caller->name,
+ declaringClass->name))
+ throw new IllegalAccessException;
+ }
+ }
+ }
+
+ if (declaringClass->isInterface())
+ iface = declaringClass;
+
+ return _Jv_CallAnyMethodA (obj, return_type, meth, false,
+ parameter_types, args, iface);
+}
+
+jint
+java::lang::reflect::Method::getModifiersInternal ()
+{
+ return _Jv_FromReflectedMethod (this)->accflags;
+}
+
+jstring
+java::lang::reflect::Method::getSignature()
+{
+ return declaringClass->getReflectionSignature (this);
+}
+
+jobject
+java::lang::reflect::Method::getDefaultValue()
+{
+ return declaringClass->getMethodDefaultValue(this);
+}
+
+anno_a_t
+java::lang::reflect::Method::getDeclaredAnnotationsInternal()
+{
+ return (anno_a_t) declaringClass->getDeclaredAnnotations(this, false);
+}
+
+anno_aa_t
+java::lang::reflect::Method::getParameterAnnotationsInternal()
+{
+ return (anno_aa_t) declaringClass->getDeclaredAnnotations(this, true);
+}
+
+jstring
+java::lang::reflect::Method::getName ()
+{
+ if (name == NULL)
+ name = _Jv_NewStringUtf8Const (_Jv_FromReflectedMethod (this)->name);
+ return name;
+}
+
+/* Internal method to set return_type and parameter_types fields. */
+
+void
+java::lang::reflect::Method::getType ()
+{
+ _Jv_Method *method = _Jv_FromReflectedMethod (this);
+ _Jv_GetTypesFromSignature (method,
+ declaringClass,
+ &parameter_types,
+ &return_type);
+
+ int count = 0;
+ if (method->throws != NULL)
+ {
+ while (method->throws[count] != NULL)
+ ++count;
+ }
+
+ exception_types
+ = (JArray<jclass> *) JvNewObjectArray (count, &java::lang::Class::class$,
+ NULL);
+ jclass *elts = elements (exception_types);
+ for (int i = 0; i < count; ++i)
+ elts[i] = _Jv_FindClass (method->throws[i],
+ declaringClass->getClassLoaderInternal ());
+}
+
+void
+_Jv_GetTypesFromSignature (jmethodID method,
+ jclass declaringClass,
+ JArray<jclass> **arg_types_out,
+ jclass *return_type_out)
+{
+
+ _Jv_Utf8Const* sig = method->signature;
+ java::lang::ClassLoader *loader = declaringClass->getClassLoaderInternal();
+ char *ptr = sig->chars();
+ int numArgs = 0;
+ /* First just count the number of parameters. */
+ // FIXME: should do some validation here, e.g., that there is only
+ // one return type.
+ for (; ; ptr++)
+ {
+ switch (*ptr)
+ {
+ case 0:
+ case ')':
+ case 'V':
+ break;
+ case '[':
+ case '(':
+ continue;
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'F':
+ case 'S':
+ case 'I':
+ case 'J':
+ case 'Z':
+ numArgs++;
+ continue;
+ case 'L':
+ numArgs++;
+ do
+ ptr++;
+ while (*ptr != ';' && ptr[1] != '\0');
+ continue;
+ }
+ break;
+ }
+
+ JArray<jclass> *args = (JArray<jclass> *)
+ JvNewObjectArray (numArgs, &java::lang::Class::class$, NULL);
+ jclass* argPtr = elements (args);
+ for (ptr = sig->chars(); *ptr != '\0'; ptr++)
+ {
+ if (*ptr == '(')
+ continue;
+ if (*ptr == ')')
+ {
+ argPtr = return_type_out;
+ continue;
+ }
+
+ char *end_ptr;
+ jclass type = _Jv_FindClassFromSignature (ptr, loader, &end_ptr);
+ if (type == NULL)
+ // FIXME: This isn't ideal.
+ throw new java::lang::NoClassDefFoundError (sig->toString());
+
+ // ARGPTR can be NULL if we are processing the return value of a
+ // call from Constructor.
+ if (argPtr)
+ *argPtr++ = type;
+
+ ptr = end_ptr;
+ }
+ *arg_types_out = args;
+}
+
+// This is a very rough analog of the JNI CallNonvirtual<type>MethodA
+// functions. It handles both Methods and Constructors, and it can
+// handle any return type. In the Constructor case, the `obj'
+// argument is unused and should be NULL; also, the `return_type' is
+// the class that the constructor will construct. RESULT is a pointer
+// to a `jvalue' (see jni.h); for a void method this should be NULL.
+// This function returns an exception (if one was thrown), or NULL if
+// the call went ok.
+void
+_Jv_CallAnyMethodA (jobject obj,
+ jclass return_type,
+ jmethodID meth,
+ jboolean is_constructor,
+ jboolean is_virtual_call,
+ JArray<jclass> *parameter_types,
+ const jvalue *args,
+ jvalue *result,
+ jboolean is_jni_call,
+ jclass iface)
+{
+ using namespace java::lang::reflect;
+
+#ifdef USE_LIBFFI
+ JvAssert (! is_constructor || ! obj);
+ JvAssert (! is_constructor || return_type);
+
+ // See whether call needs an object as the first argument. A
+ // constructor does need a `this' argument, but it is one we create.
+ jboolean needs_this = false;
+ if (is_constructor
+ || ! Modifier::isStatic(meth->accflags))
+ needs_this = true;
+
+ int param_count = parameter_types->length;
+ if (needs_this)
+ ++param_count;
+
+ ffi_type *rtype;
+ // A constructor itself always returns void.
+ if (is_constructor || return_type == JvPrimClass (void))
+ rtype = &ffi_type_void;
+ else
+ rtype = get_ffi_type (return_type);
+ ffi_type **argtypes = (ffi_type **) __builtin_alloca (param_count
+ * sizeof (ffi_type *));
+
+ jclass *paramelts = elements (parameter_types);
+
+ // Special case for the `this' argument of a constructor. Note that
+ // the JDK 1.2 docs specify that the new object must be allocated
+ // before argument conversions are done.
+ if (is_constructor)
+ obj = _Jv_AllocObject (return_type);
+
+ const int size_per_arg = sizeof(jvalue);
+ ffi_cif cif;
+
+ char *p = (char *) __builtin_alloca (param_count * size_per_arg);
+ // Overallocate to get correct alignment.
+ void **values = (void **)
+ __builtin_alloca (param_count * sizeof (void *));
+
+ int i = 0;
+ if (needs_this)
+ {
+ // The `NULL' type is `Object'.
+ argtypes[i] = get_ffi_type (NULL);
+ values[i] = p;
+ memcpy (p, &obj, sizeof (jobject));
+ p += size_per_arg;
+ ++i;
+ }
+
+ for (int arg = 0; i < param_count; ++i, ++arg)
+ {
+ int tsize;
+
+ argtypes[i] = get_ffi_type (paramelts[arg]);
+ if (paramelts[arg]->isPrimitive())
+ tsize = paramelts[arg]->size();
+ else
+ tsize = sizeof (jobject);
+
+ // Copy appropriate bits from the jvalue into the ffi array.
+ // FIXME: we could do this copying all in one loop, above, by
+ // over-allocating a bit.
+ // How do we do this without breaking big-endian platforms?
+ values[i] = p;
+ memcpy (p, &args[arg], tsize);
+ p += size_per_arg;
+ }
+
+ ffi_abi cabi = FFI_DEFAULT_ABI;
+#if defined (X86_WIN32) && !defined (__CYGWIN__)
+ if (needs_this)
+ cabi = FFI_THISCALL;
+#endif
+ if (ffi_prep_cif (&cif, cabi, param_count,
+ rtype, argtypes) != FFI_OK)
+ throw new java::lang::VirtualMachineError(JvNewStringLatin1("internal error: ffi_prep_cif failed"));
+
+ using namespace java::lang;
+ using namespace java::lang::reflect;
+
+ union
+ {
+ ffi_arg i;
+ jobject o;
+ jlong l;
+ jfloat f;
+ jdouble d;
+ } ffi_result;
+
+ switch (rtype->type)
+ {
+ case FFI_TYPE_VOID:
+ break;
+ case FFI_TYPE_SINT8:
+ result->b = 0;
+ break;
+ case FFI_TYPE_SINT16:
+ result->s = 0;
+ break;
+ case FFI_TYPE_UINT16:
+ result->c = 0;
+ break;
+ case FFI_TYPE_SINT32:
+ result->i = 0;
+ break;
+ case FFI_TYPE_SINT64:
+ result->j = 0;
+ break;
+ case FFI_TYPE_FLOAT:
+ result->f = 0;
+ break;
+ case FFI_TYPE_DOUBLE:
+ result->d = 0;
+ break;
+ case FFI_TYPE_POINTER:
+ result->l = 0;
+ break;
+ default:
+ JvFail ("Unknown ffi_call return type");
+ break;
+ }
+
+ void *ncode;
+
+ // FIXME: If a vtable index is -1 at this point it is invalid, so we
+ // have to use the ncode.
+ //
+ // This can happen because methods in final classes don't have
+ // vtable entries, but _Jv_isVirtualMethod() doesn't know that. We
+ // could solve this problem by allocating a vtable index for methods
+ // in final classes.
+ if (is_virtual_call
+ && ! Modifier::isFinal (meth->accflags)
+ && (_Jv_ushort)-1 != meth->index)
+ {
+ _Jv_VTable *vtable = *(_Jv_VTable **) obj;
+ if (iface == NULL)
+ {
+ if (is_jni_call && Modifier::isAbstract (meth->accflags))
+ {
+ // With JNI we don't know if this is an interface call
+ // or a call to an abstract method. Look up the method
+ // by name, the slow way.
+ _Jv_Method *concrete_meth
+ = _Jv_LookupDeclaredMethod (vtable->clas,
+ meth->name,
+ meth->signature,
+ NULL);
+ if (concrete_meth == NULL
+ || concrete_meth->ncode == NULL
+ || Modifier::isAbstract(concrete_meth->accflags))
+ throw new java::lang::IncompatibleClassChangeError
+ (_Jv_GetMethodString (vtable->clas, meth));
+ ncode = concrete_meth->ncode;
+ }
+ else
+ ncode = vtable->get_method (meth->index);
+ }
+ else
+ ncode = _Jv_LookupInterfaceMethodIdx (vtable->clas, iface,
+ meth->index);
+ }
+ else
+ {
+ ncode = meth->ncode;
+ }
+
+ try
+ {
+ ffi_call (&cif, (void (*)()) ncode, &ffi_result, values);
+ }
+ catch (Throwable *ex)
+ {
+ // For JNI we just throw the real error. For reflection, we
+ // wrap the underlying method's exception in an
+ // InvocationTargetException.
+ if (! is_jni_call)
+ ex = new InvocationTargetException (ex);
+ throw ex;
+ }
+
+ // Since ffi_call returns integer values promoted to a word, use
+ // a narrowing conversion for jbyte, jchar, etc. results.
+ // Note that boolean is handled either by the FFI_TYPE_SINT8 or
+ // FFI_TYPE_SINT32 case.
+ if (is_constructor)
+ result->l = obj;
+ else
+ {
+ switch (rtype->type)
+ {
+ case FFI_TYPE_VOID:
+ break;
+ case FFI_TYPE_SINT8:
+ result->b = (jbyte)ffi_result.i;
+ break;
+ case FFI_TYPE_SINT16:
+ result->s = (jshort)ffi_result.i;
+ break;
+ case FFI_TYPE_UINT16:
+ result->c = (jchar)ffi_result.i;
+ break;
+ case FFI_TYPE_SINT32:
+ result->i = (jint)ffi_result.i;
+ break;
+ case FFI_TYPE_SINT64:
+ result->j = (jlong)ffi_result.l;
+ break;
+ case FFI_TYPE_FLOAT:
+ result->f = (jfloat)ffi_result.f;
+ break;
+ case FFI_TYPE_DOUBLE:
+ result->d = (jdouble)ffi_result.d;
+ break;
+ case FFI_TYPE_POINTER:
+ result->l = (jobject)ffi_result.o;
+ break;
+ default:
+ JvFail ("Unknown ffi_call return type");
+ break;
+ }
+ }
+#else
+ throw new java::lang::UnsupportedOperationException(JvNewStringLatin1("reflection not available in this build"));
+#endif // USE_LIBFFI
+}
+
+// This is another version of _Jv_CallAnyMethodA, but this one does
+// more checking and is used by the reflection (and not JNI) code.
+jobject
+_Jv_CallAnyMethodA (jobject obj,
+ jclass return_type,
+ jmethodID meth,
+ jboolean is_constructor,
+ JArray<jclass> *parameter_types,
+ jobjectArray args,
+ jclass iface)
+{
+ if (parameter_types->length == 0 && args == NULL)
+ {
+ // The JDK accepts this, so we do too.
+ }
+ else if (parameter_types->length != args->length)
+ throw new java::lang::IllegalArgumentException;
+
+ int param_count = parameter_types->length;
+
+ jclass *paramelts = elements (parameter_types);
+ jobject *argelts = args == NULL ? NULL : elements (args);
+ jvalue argvals[param_count];
+
+#define COPY(Where, What, Type) \
+ do { \
+ Type val = (What); \
+ memcpy ((Where), &val, sizeof (Type)); \
+ } while (0)
+
+ for (int i = 0; i < param_count; ++i)
+ {
+ jclass k = argelts[i] ? argelts[i]->getClass() : NULL;
+ if (paramelts[i]->isPrimitive())
+ {
+ if (! argelts[i]
+ || ! k
+ || ! can_widen (k, paramelts[i]))
+ throw new java::lang::IllegalArgumentException;
+
+ if (paramelts[i] == JvPrimClass (boolean))
+ COPY (&argvals[i],
+ ((java::lang::Boolean *) argelts[i])->booleanValue(),
+ jboolean);
+ else if (paramelts[i] == JvPrimClass (char))
+ COPY (&argvals[i],
+ ((java::lang::Character *) argelts[i])->charValue(),
+ jchar);
+ else
+ {
+ java::lang::Number *num = (java::lang::Number *) argelts[i];
+ if (paramelts[i] == JvPrimClass (byte))
+ COPY (&argvals[i], num->byteValue(), jbyte);
+ else if (paramelts[i] == JvPrimClass (short))
+ COPY (&argvals[i], num->shortValue(), jshort);
+ else if (paramelts[i] == JvPrimClass (int))
+ COPY (&argvals[i], num->intValue(), jint);
+ else if (paramelts[i] == JvPrimClass (long))
+ COPY (&argvals[i], num->longValue(), jlong);
+ else if (paramelts[i] == JvPrimClass (float))
+ COPY (&argvals[i], num->floatValue(), jfloat);
+ else if (paramelts[i] == JvPrimClass (double))
+ COPY (&argvals[i], num->doubleValue(), jdouble);
+ }
+ }
+ else
+ {
+ if (argelts[i] && ! paramelts[i]->isAssignableFrom (k))
+ throw new java::lang::IllegalArgumentException;
+ COPY (&argvals[i], argelts[i], jobject);
+ }
+ }
+
+ jvalue ret_value;
+ _Jv_CallAnyMethodA (obj, return_type, meth, is_constructor,
+ _Jv_isVirtualMethod (meth),
+ parameter_types, argvals, &ret_value,
+ false, iface);
+
+ jobject r;
+#define VAL(Wrapper, Field) (new Wrapper (ret_value.Field))
+ if (is_constructor)
+ r = ret_value.l;
+ else if (return_type == JvPrimClass (byte))
+ r = VAL (java::lang::Byte, b);
+ else if (return_type == JvPrimClass (short))
+ r = VAL (java::lang::Short, s);
+ else if (return_type == JvPrimClass (int))
+ r = VAL (java::lang::Integer, i);
+ else if (return_type == JvPrimClass (long))
+ r = VAL (java::lang::Long, j);
+ else if (return_type == JvPrimClass (float))
+ r = VAL (java::lang::Float, f);
+ else if (return_type == JvPrimClass (double))
+ r = VAL (java::lang::Double, d);
+ else if (return_type == JvPrimClass (boolean))
+ r = VAL (java::lang::Boolean, z);
+ else if (return_type == JvPrimClass (char))
+ r = VAL (java::lang::Character, c);
+ else if (return_type == JvPrimClass (void))
+ r = NULL;
+ else
+ {
+ JvAssert (return_type == NULL || ! return_type->isPrimitive());
+ r = ret_value.l;
+ }
+
+ return r;
+}
diff --git a/gcc-4.8/libjava/java/lang/reflect/natVMProxy.cc b/gcc-4.8/libjava/java/lang/reflect/natVMProxy.cc
new file mode 100644
index 000000000..e46263d85
--- /dev/null
+++ b/gcc-4.8/libjava/java/lang/reflect/natVMProxy.cc
@@ -0,0 +1,463 @@
+// natVMProxy.cc -- Implementation of VMProxy methods.
+
+/* Copyright (C) 2006, 2007
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// The idea of behind this code is to utilize libffi's ability to
+// create closures to provide a fast "cut-through" way to generate
+// proxy classes. Instead of generating bytecode and then
+// interpreting that, we copy the method definitions for each of the
+// methods we're supposed to be prxying and generate a libffi closure
+// for each one.
+
+#include <config.h>
+#include <platform.h>
+#include <sysdep/descriptor.h>
+
+#include <limits.h>
+#include <string.h>
+#include <stddef.h>
+#include <stdio.h>
+
+#include <gcj/cni.h>
+#include <gcj/javaprims.h>
+#include <jvm.h>
+#include <jni.h>
+#include <java-threads.h>
+#include <java-interp.h>
+#include <ffi.h>
+#include <execution.h>
+#include <gcj/method.h>
+
+#include <gnu/gcj/runtime/BootClassLoader.h>
+#include <java/lang/Class.h>
+#include <java/lang/ClassCastException.h>
+#include <java/lang/Error.h>
+#include <java/lang/IllegalArgumentException.h>
+#include <java/lang/Integer.h>
+#include <java/lang/StringBuffer.h>
+#include <java/lang/UnsupportedOperationException.h>
+#include <java/lang/VMClassLoader.h>
+#include <java/lang/VMCompiler.h>
+#include <java/lang/reflect/InvocationHandler.h>
+#include <java/lang/reflect/Method.h>
+#include <java/lang/reflect/Proxy$ClassFactory.h>
+#include <java/lang/reflect/Proxy$ProxyData.h>
+#include <java/lang/reflect/Proxy.h>
+#include <java/lang/reflect/UndeclaredThrowableException.h>
+#include <java/lang/reflect/VMProxy.h>
+
+#include <java/lang/Byte.h>
+#include <java/lang/Short.h>
+#include <java/lang/Integer.h>
+#include <java/lang/Long.h>
+#include <java/lang/Float.h>
+#include <java/lang/Double.h>
+#include <java/lang/Boolean.h>
+#include <java/lang/Character.h>
+
+
+using namespace java::lang::reflect;
+using namespace java::lang;
+
+#ifndef INTERPRETER
+jclass
+java::lang::reflect::VMProxy::generateProxyClass
+ (ClassLoader *, Proxy$ProxyData *)
+{
+ throw new UnsupportedOperationException (
+ JvNewStringLatin1 ("Interpreter not available"));
+}
+#else
+typedef void (*closure_fun) (ffi_cif*, void*, void**, void*);
+static void *ncode (int method_index, jclass klass, _Jv_Method *self, closure_fun fun);
+static void run_proxy (ffi_cif*, void*, void**, void*);
+
+typedef jobject
+#if defined (X86_WIN32) && !defined (__CYGWIN__)
+ __attribute__ ((thiscall))
+#endif
+ invoke_t (jobject, Proxy *, Method *, JArray< jobject > *);
+
+// True if pc points to a proxy frame.
+
+bool
+_Jv_is_proxy (void *pc)
+{
+ return pc == UNWRAP_FUNCTION_DESCRIPTOR ((void*)&run_proxy);
+}
+
+// Generate a proxy class by using libffi closures for each entry
+// point.
+
+jclass
+java::lang::reflect::VMProxy::generateProxyClass
+ (ClassLoader *loader, Proxy$ProxyData *d)
+{
+ // If we're precompiling, generate bytecode and allow VMCompiler to
+ // precompile it.
+ if (VMCompiler::precompiles ())
+ return (new Proxy$ClassFactory(d))->generate(loader);
+
+ jclass klass = new Class ();
+
+ // Synchronize on the class, so that it is not attempted initialized
+ // until we're done.
+ JvSynchronize sync (klass);
+
+ klass->superclass = &Proxy::class$;
+ klass->engine = &_Jv_soleIndirectCompiledEngine;
+ klass->size_in_bytes = -1;
+ klass->vtable_method_count = -1;
+
+ // Declare private static transient java.lang.reflect.Method[] $Proxy0.m
+ klass->field_count = klass->static_field_count = 1;
+ klass->fields = (_Jv_Field*)_Jv_AllocRawObj (sizeof (_Jv_Field));
+ klass->fields[0].name = _Jv_makeUtf8Const ("m");
+ klass->fields[0].type = d->methods->getClass();
+ klass->fields[0].flags = (Modifier::PRIVATE | Modifier::STATIC
+ | Modifier::TRANSIENT);
+
+ // Record the defining loader. For the bootstrap class loader,
+ // we record NULL.
+ if (loader != VMClassLoader::bootLoader)
+ klass->loader = loader;
+
+ {
+ StringBuffer *sb = new StringBuffer();
+ sb->append(JvNewStringLatin1 ("$Proxy"));
+ sb->append(Integer::toString (d->id));
+ klass->name = _Jv_makeUtf8Const (sb->toString());
+ }
+
+ // Allocate space for the interfaces.
+ klass->interface_count = d->interfaces->length;
+ klass->interfaces = (jclass*) _Jv_AllocRawObj (klass->interface_count
+ *sizeof (jclass));
+ for (int i = 0; i < klass->interface_count; i++)
+ klass->interfaces[i] = elements(d->interfaces)[i];
+
+ size_t count = d->methods->length;
+
+ {
+ size_t total_count = count + Proxy::class$.method_count + 1;
+ if (total_count >= 65536)
+ throw new IllegalArgumentException ();
+ // Allocate space for the methods. This is a worst case
+ // estimate.
+ klass->methods
+ = (_Jv_Method *) _Jv_AllocRawObj (sizeof (_Jv_Method)
+ * total_count);
+ }
+
+ jshort &method_count = klass->method_count;
+
+ // Copy all reachable methods from Proxy.
+ for (int i = 0; i < Proxy::class$.method_count; i++)
+ {
+ if (_Jv_CheckAccess (klass, &Proxy::class$,
+ Proxy::class$.methods[i].accflags))
+ {
+ klass->methods[method_count] = Proxy::class$.methods[i];
+ method_count++;
+ }
+ }
+
+ _Jv_Method *init_method
+ = (_Jv_Linker::search_method_in_class
+ (klass, klass,
+ _Jv_makeUtf8Const ("<init>"),
+ _Jv_makeUtf8Const ("(Ljava.lang.reflect.InvocationHandler;)V"),
+ false));
+ init_method->accflags |= Modifier::PUBLIC;
+
+ // Create the methods for all of the interfaces.
+ for (size_t i = 0; i < count; i++)
+ {
+ _Jv_Method &method = klass->methods[method_count++];
+ const _Jv_Method &imethod
+ = *_Jv_FromReflectedMethod (elements(d->methods)[i]);
+ // We use a shallow copy of IMETHOD rather than a deep copy;
+ // this means that the pointer fields of METHOD point into the
+ // interface. As long as this subclass of Proxy is reachable,
+ // the interfaces of which it is a proxy will also be reachable,
+ // so this is safe.
+ method = imethod;
+ method.ncode = ncode (i, klass, &method, run_proxy);
+ method.accflags &= ~Modifier::ABSTRACT;
+ }
+
+ _Jv_Linker::layout_vtable_methods (klass);
+ _Jv_RegisterInitiatingLoader (klass, klass->loader);
+
+ // Set $Proxy0.m to point to the methods arrray
+ java::lang::reflect::Field *f
+ = klass->getDeclaredField (JvNewStringLatin1 ("m"));
+ f->flag = true;
+ f->set(NULL, d->methods);
+
+ return klass;
+}
+
+
+// Box things with primitive types.
+static inline jobject
+box (void *thing, jclass klass, FFI_TYPE type)
+{
+ jobject o;
+
+ switch (type)
+ {
+ case FFI_TYPE_VOID:
+ return NULL;
+
+ case FFI_TYPE_POINTER:
+ o = *(jobject*)thing;
+ return o;
+
+ default:
+ ;
+ }
+
+ if (klass == JvPrimClass (byte))
+ o = new Byte (*(jbyte*)thing);
+ else if (klass == JvPrimClass (short))
+ o = new Short (*(jshort*)thing);
+ else if (klass == JvPrimClass (int))
+ o = new Integer (*(jint*)thing);
+ else if (klass == JvPrimClass (long))
+ o = new Long (*(jlong*)thing);
+ else if (klass == JvPrimClass (float))
+ o = new Float (*(jfloat*)thing);
+ else if (klass == JvPrimClass (double))
+ o = new Double (*(jdouble*)thing);
+ else if (klass == JvPrimClass (boolean))
+ o = new Boolean (*(jboolean*)thing);
+ else if (klass == JvPrimClass (char))
+ o = new Character (*(jchar*)thing);
+ else
+ JvFail ("Bad ffi type in proxy");
+
+ return o;
+}
+
+
+// Unbox things with primitive types.
+static inline void
+unbox (jobject o, jclass klass, void *rvalue, FFI_TYPE type)
+{
+ switch (type)
+ {
+ case FFI_TYPE_VOID:
+ return;
+
+ case FFI_TYPE_POINTER:
+ _Jv_CheckCast (klass, o);
+ *(jobject*)rvalue = o;
+ return;
+
+ default:
+ ;
+ }
+
+ // If the value returned ... is null and the interface method's
+ // return type is primitive, then a NullPointerException will be
+ // thrown ...
+ if (klass == JvPrimClass (byte))
+ {
+ _Jv_CheckCast (&Byte::class$, o);
+ *(jbyte*)rvalue = ((Byte*)o)->byteValue();
+ }
+ else if (klass == JvPrimClass (short))
+ {
+ _Jv_CheckCast (&Short::class$, o);
+ *(jshort*)rvalue = ((Short*)o)->shortValue();
+ }
+ else if (klass == JvPrimClass (int))
+ {
+ _Jv_CheckCast (&Integer::class$, o);
+ *(jint*)rvalue = ((Integer*)o)->intValue();
+ }
+ else if (klass == JvPrimClass (long))
+ {
+ _Jv_CheckCast (&Long::class$, o);
+ *(jlong*)rvalue = ((Long*)o)->longValue();
+ }
+ else if (klass == JvPrimClass (float))
+ {
+ _Jv_CheckCast (&Float::class$, o);
+ *(jfloat*)rvalue = ((Float*)o)->floatValue();
+ }
+ else if (klass == JvPrimClass (double))
+ {
+ _Jv_CheckCast (&Double::class$, o);
+ *(jdouble*)rvalue = ((Double*)o)->doubleValue();
+ }
+ else if (klass == JvPrimClass (boolean))
+ {
+ _Jv_CheckCast (&Boolean::class$, o);
+ *(jboolean*)rvalue = ((Boolean*)o)->booleanValue();
+ }
+ else if (klass == JvPrimClass (char))
+ {
+ _Jv_CheckCast (&Character::class$, o);
+ *(jchar*)rvalue = ((Character*)o)->charValue();
+ }
+ else
+ JvFail ("Bad ffi type in proxy");
+}
+
+// _Jv_getFieldInternal is declared as a friend of reflect.Field in
+// libjava/headers.txt. This gives us a way to call the private
+// method Field.get (Class caller, Object obj).
+extern inline jobject
+_Jv_getFieldInternal (java::lang::reflect::Field *f, jclass c, jobject o)
+{
+ return f->get(c, o);
+}
+
+// run_proxy is the entry point for all proxy methods. It boxes up
+// all the arguments and then invokes the invocation handler's invoke()
+// method. Exceptions are caught and propagated.
+
+typedef struct {
+ ffi_closure closure;
+ _Jv_ClosureList list;
+ ffi_cif cif;
+ _Jv_Method *self;
+ int method_index;
+ ffi_type *arg_types[0];
+} ncode_closure;
+
+static void
+run_proxy (ffi_cif *cif,
+ void *rvalue,
+ void **args,
+ void*user_data)
+{
+ using namespace java::lang::reflect;
+
+ Proxy *proxy = *(Proxy**)args[0];
+ ncode_closure *self = (ncode_closure *) user_data;
+
+ jclass proxyClass = proxy->getClass();
+
+ // FRAME_DESC registers this particular invocation as the top-most
+ // interpreter frame. This lets the stack tracing code (for
+ // Throwable) print information about the Proxy being run rather
+ // than about Proxy.class itself. FRAME_DESC has a destructor so it
+ // cleans up automatically when this proxy invocation returns.
+ Thread *thread = Thread::currentThread();
+ _Jv_InterpFrame frame_desc (self->self, thread, proxyClass,
+ NULL, frame_proxy);
+
+ // The method to invoke is saved in $Proxy0.m[method_index].
+ // FIXME: We could somewhat improve efficiency by storing a pointer
+ // to the method (rather than its index) in ncode_closure. This
+ // would avoid the lookup, but it probably wouldn't make a huge
+ // difference. We'd still have to save the method array because
+ // ncode structs are not scanned by the gc.
+ Field *f = proxyClass->getDeclaredField (JvNewStringLatin1 ("m"));
+ JArray<Method*> *methods
+ = (JArray<Method*>*)_Jv_getFieldInternal (f, proxyClass, NULL);
+ Method *meth = elements(methods)[self->method_index];
+
+ JArray<jclass> *parameter_types = meth->internalGetParameterTypes ();
+ JArray<jclass> *exception_types = meth->internalGetExceptionTypes ();
+
+ InvocationHandler *handler = proxy->h;
+ JArray<jobject> *argsArray = NULL;
+ jobject *jargs = NULL;
+ if (parameter_types->length)
+ {
+ void *poo
+ = _Jv_NewObjectArray (parameter_types->length, &Object::class$, NULL);
+ argsArray = (JArray<jobject> *) poo;
+ jargs = elements(argsArray);
+ }
+
+ // FIXME: It must be possible to use fast interface dispatch here,
+ // but I've not quite figured out how to do it.
+ invoke_t *invoke
+ = (invoke_t *)(_Jv_LookupInterfaceMethod
+ (handler->getClass (),
+ _Jv_makeUtf8Const ("invoke"),
+ (_Jv_makeUtf8Const
+ ("(Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.Object;)"
+ "Ljava.lang.Object;"))));
+
+ // Copy and box all the args.
+ int index = 1;
+ for (int i = 0; i < parameter_types->length; i++, index++)
+ jargs[i] = box (args[index], elements(parameter_types)[i],
+ cif->arg_types[index]->type);
+
+ jobject ret;
+ try
+ {
+ ret = invoke (handler, proxy, meth, argsArray);
+ }
+ catch (Throwable *t)
+ {
+ if (_Jv_IsInstanceOf (t, &RuntimeException::class$)
+ || _Jv_IsInstanceOf (t, &Error::class$))
+ throw t;
+
+ Class **throwables = elements (exception_types);
+ for (int i = 0; i < exception_types->length; i++)
+ if (_Jv_IsInstanceOf (t, throwables[i]))
+ throw t;
+
+ throw new UndeclaredThrowableException (t);
+ }
+
+ unbox (ret, meth->return_type, rvalue, cif->rtype->type);
+}
+
+
+// Given a method and a closure function, create libffi CIF and return
+// the address of its closure.
+
+static void *
+ncode (int method_index, jclass klass, _Jv_Method *self, closure_fun fun)
+{
+ using namespace java::lang::reflect;
+
+ jboolean staticp = (self->accflags & Modifier::STATIC) != 0;
+ int arg_count = _Jv_count_arguments (self->signature, staticp);
+
+ void *code;
+ ncode_closure *closure =
+ (ncode_closure*)ffi_closure_alloc (sizeof (ncode_closure)
+ + arg_count * sizeof (ffi_type*),
+ &code);
+ closure->method_index = method_index;
+ closure->list.registerClosure (klass, closure);
+
+ _Jv_init_cif (self->signature,
+ arg_count,
+ staticp,
+ &closure->cif,
+ &closure->arg_types[0],
+ NULL);
+ closure->self = self;
+
+ JvAssert ((self->accflags & Modifier::NATIVE) == 0);
+
+ ffi_prep_closure_loc (&closure->closure,
+ &closure->cif,
+ fun,
+ code,
+ code);
+
+ self->ncode = code;
+ return self->ncode;
+}
+
+#endif // INTERPRETER
diff --git a/gcc-4.8/libjava/java/math/BigDecimal.h b/gcc-4.8/libjava/java/math/BigDecimal.h
new file mode 100644
index 000000000..aeeab2523
--- /dev/null
+++ b/gcc-4.8/libjava/java/math/BigDecimal.h
@@ -0,0 +1,126 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_math_BigDecimal__
+#define __java_math_BigDecimal__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ class BigInteger;
+ class MathContext;
+ class RoundingMode;
+ }
+ }
+}
+
+class java::math::BigDecimal : public ::java::lang::Number
+{
+
+public:
+ BigDecimal(jint);
+ BigDecimal(jint, ::java::math::MathContext *);
+ BigDecimal(jlong);
+ BigDecimal(jlong, ::java::math::MathContext *);
+ BigDecimal(::java::math::BigInteger *, ::java::math::MathContext *);
+ BigDecimal(::java::lang::String *, ::java::math::MathContext *);
+ BigDecimal(::java::math::BigInteger *);
+ BigDecimal(::java::math::BigInteger *, jint);
+ BigDecimal(::java::math::BigInteger *, jint, ::java::math::MathContext *);
+ BigDecimal(jdouble, ::java::math::MathContext *);
+ BigDecimal(jdouble);
+ BigDecimal(JArray< jchar > *, jint, jint, ::java::math::MathContext *);
+ BigDecimal(JArray< jchar > *, ::java::math::MathContext *);
+ BigDecimal(JArray< jchar > *);
+ BigDecimal(JArray< jchar > *, jint, jint);
+ BigDecimal(::java::lang::String *);
+ static ::java::math::BigDecimal * valueOf(jlong);
+ static ::java::math::BigDecimal * valueOf(jlong, jint);
+ virtual ::java::math::BigDecimal * add(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * add(::java::math::BigDecimal *, ::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * subtract(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * subtract(::java::math::BigDecimal *, ::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * multiply(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * multiply(::java::math::BigDecimal *, ::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * divide(::java::math::BigDecimal *, jint);
+ virtual ::java::math::BigDecimal * divide(::java::math::BigDecimal *, jint, ::java::math::RoundingMode *);
+ virtual ::java::math::BigDecimal * divide(::java::math::BigDecimal *, ::java::math::RoundingMode *);
+ virtual ::java::math::BigDecimal * divide(::java::math::BigDecimal *, jint, jint);
+ virtual ::java::math::BigDecimal * divide(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * remainder(::java::math::BigDecimal *);
+ virtual JArray< ::java::math::BigDecimal * > * divideAndRemainder(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * divideToIntegralValue(::java::math::BigDecimal *);
+private:
+ ::java::math::BigDecimal * floor();
+public:
+ virtual jint BigDecimal$compareTo(::java::math::BigDecimal *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::math::BigDecimal * max(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * min(::java::math::BigDecimal *);
+ virtual ::java::math::BigDecimal * movePointLeft(jint);
+ virtual ::java::math::BigDecimal * movePointRight(jint);
+ virtual jint signum();
+ virtual jint scale();
+ virtual ::java::math::BigInteger * unscaledValue();
+ virtual ::java::math::BigDecimal * abs();
+ virtual ::java::math::BigDecimal * negate();
+ virtual ::java::math::BigDecimal * negate(::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * plus();
+ virtual ::java::math::BigDecimal * plus(::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * round(::java::math::MathContext *);
+ virtual jint precision();
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * toEngineeringString();
+ virtual ::java::lang::String * toPlainString();
+ virtual ::java::math::BigInteger * toBigInteger();
+ virtual ::java::math::BigInteger * toBigIntegerExact();
+ virtual jint intValue();
+ virtual ::java::math::BigDecimal * stripTrailingZeros();
+ virtual jlong longValue();
+ virtual jfloat floatValue();
+ virtual jdouble doubleValue();
+ virtual ::java::math::BigDecimal * setScale(jint);
+ virtual ::java::math::BigDecimal * setScale(jint, jint);
+ virtual ::java::math::BigDecimal * setScale(jint, ::java::math::RoundingMode *);
+ static ::java::math::BigDecimal * valueOf(jdouble);
+ virtual ::java::math::BigDecimal * scaleByPowerOfTen(jint);
+ virtual ::java::math::BigDecimal * pow(jint);
+ virtual ::java::math::BigDecimal * pow(jint, ::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * abs(::java::math::MathContext *);
+ virtual ::java::math::BigDecimal * ulp();
+ virtual jlong longValueExact();
+ virtual jint intValueExact();
+ virtual jbyte byteValueExact();
+ virtual jshort shortValueExact();
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Number)))) intVal;
+ jint scale__;
+ jint precision__;
+ static const jlong serialVersionUID = 6108874887143696463LL;
+public:
+ static ::java::math::BigDecimal * ZERO;
+ static ::java::math::BigDecimal * ONE;
+ static ::java::math::BigDecimal * TEN;
+ static const jint ROUND_UP = 0;
+ static const jint ROUND_DOWN = 1;
+ static const jint ROUND_CEILING = 2;
+ static const jint ROUND_FLOOR = 3;
+ static const jint ROUND_HALF_UP = 4;
+ static const jint ROUND_HALF_DOWN = 5;
+ static const jint ROUND_HALF_EVEN = 6;
+ static const jint ROUND_UNNECESSARY = 7;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_math_BigDecimal__
diff --git a/gcc-4.8/libjava/java/math/BigInteger.h b/gcc-4.8/libjava/java/math/BigInteger.h
new file mode 100644
index 000000000..a3ace698a
--- /dev/null
+++ b/gcc-4.8/libjava/java/math/BigInteger.h
@@ -0,0 +1,211 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_math_BigInteger__
+#define __java_math_BigInteger__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ namespace math
+ {
+ class GMP;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ }
+}
+
+class java::math::BigInteger : public ::java::lang::Number
+{
+
+ BigInteger();
+ BigInteger(jint);
+public:
+ BigInteger(::java::lang::String *, jint);
+ BigInteger(::java::lang::String *);
+ BigInteger(JArray< jbyte > *);
+ BigInteger(jint, JArray< jbyte > *);
+ BigInteger(jint, ::java::util::Random *);
+private:
+ void init(jint, ::java::util::Random *);
+public:
+ BigInteger(jint, jint, ::java::util::Random *);
+ static ::java::math::BigInteger * probablePrime(jint, ::java::util::Random *);
+ static ::java::math::BigInteger * valueOf(jlong);
+private:
+ static jboolean initializeLibrary();
+ static ::java::math::BigInteger * make(JArray< jint > *, jint);
+ static JArray< jint > * byteArrayToIntArray(JArray< jbyte > *, jint);
+ static ::java::math::BigInteger * alloc(jint);
+ void realloc(jint);
+ jboolean isNegative();
+public:
+ virtual jint signum();
+private:
+ static jint compareTo(::java::math::BigInteger *, ::java::math::BigInteger *);
+public:
+ virtual jint BigInteger$compareTo(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * min(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * max(::java::math::BigInteger *);
+private:
+ jboolean isZero();
+ jboolean isOne();
+ static jint wordsNeeded(JArray< jint > *, jint);
+ ::java::math::BigInteger * canonicalize();
+ static ::java::math::BigInteger * add(jint, jint);
+ static ::java::math::BigInteger * add(::java::math::BigInteger *, jint);
+ void setAdd(::java::math::BigInteger *, jint);
+ void setAdd(jint);
+ void set(jlong);
+ void set(JArray< jint > *, jint);
+ void set(::java::math::BigInteger *);
+ static ::java::math::BigInteger * add(::java::math::BigInteger *, ::java::math::BigInteger *, jint);
+public:
+ virtual ::java::math::BigInteger * add(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * subtract(::java::math::BigInteger *);
+private:
+ static ::java::math::BigInteger * times(::java::math::BigInteger *, jint);
+ static ::java::math::BigInteger * times(::java::math::BigInteger *, ::java::math::BigInteger *);
+public:
+ virtual ::java::math::BigInteger * multiply(::java::math::BigInteger *);
+private:
+ static void divide(jlong, jlong, ::java::math::BigInteger *, ::java::math::BigInteger *, jint);
+ static void divide(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, jint);
+public:
+ virtual ::java::math::BigInteger * divide(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * remainder(::java::math::BigInteger *);
+ virtual JArray< ::java::math::BigInteger * > * divideAndRemainder(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * mod(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * pow(jint);
+private:
+ static JArray< jint > * euclidInv(jint, jint, jint);
+ static void euclidInv(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, JArray< ::java::math::BigInteger * > *);
+public:
+ virtual ::java::math::BigInteger * modInverse(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * modPow(::java::math::BigInteger *, ::java::math::BigInteger *);
+private:
+ static jint gcd(jint, jint);
+public:
+ virtual ::java::math::BigInteger * gcd(::java::math::BigInteger *);
+ virtual jboolean isProbablePrime(jint);
+private:
+ void setInvert();
+ void setShiftLeft(::java::math::BigInteger *, jint);
+ void setShiftRight(::java::math::BigInteger *, jint);
+ void setShift(::java::math::BigInteger *, jint);
+ static ::java::math::BigInteger * shift(::java::math::BigInteger *, jint);
+public:
+ virtual ::java::math::BigInteger * shiftLeft(jint);
+ virtual ::java::math::BigInteger * shiftRight(jint);
+private:
+ void format(jint, ::gnu::java::lang::CPStringBuilder *);
+public:
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * toString(jint);
+ virtual jint intValue();
+ virtual jlong longValue();
+ virtual jint hashCode();
+private:
+ static jboolean equals(::java::math::BigInteger *, ::java::math::BigInteger *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ static ::java::math::BigInteger * valueOf(JArray< jbyte > *, jint, jboolean, jint);
+public:
+ virtual jdouble doubleValue();
+ virtual jfloat floatValue();
+private:
+ jboolean checkBits(jint);
+ jdouble roundToDouble(jint, jboolean, jboolean);
+ void getAbsolute(JArray< jint > *);
+ static jboolean negate(JArray< jint > *, JArray< jint > *, jint);
+ void setNegative(::java::math::BigInteger *);
+ void setNegative();
+ static ::java::math::BigInteger * abs(::java::math::BigInteger *);
+public:
+ virtual ::java::math::BigInteger * abs();
+private:
+ static ::java::math::BigInteger * neg(::java::math::BigInteger *);
+public:
+ virtual ::java::math::BigInteger * negate();
+ virtual jint bitLength();
+ virtual JArray< jbyte > * toByteArray();
+private:
+ static jint swappedOp(jint);
+ static ::java::math::BigInteger * bitOp(jint, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ static void setBitOp(::java::math::BigInteger *, jint, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ static ::java::math::BigInteger * and$(::java::math::BigInteger *, jint);
+public:
+ virtual ::java::math::BigInteger * and$(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * or$(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * xor$(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * not$();
+ virtual ::java::math::BigInteger * andNot(::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * clearBit(jint);
+ virtual ::java::math::BigInteger * setBit(jint);
+ virtual jboolean testBit(jint);
+ virtual ::java::math::BigInteger * flipBit(jint);
+ virtual jint getLowestSetBit();
+private:
+ static jint bitCount(jint);
+ static jint bitCount(JArray< jint > *, jint);
+public:
+ virtual jint bitCount();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ static ::java::util::logging::Logger * log;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Number)))) ival;
+ JArray< jint > * words;
+ jint bitCount__;
+ jint bitLength__;
+ jint lowestSetBit;
+ JArray< jbyte > * magnitude;
+ jint signum__;
+ static const jlong serialVersionUID = -8287574255936472291LL;
+ static const jint minFixNum = -100;
+ static const jint maxFixNum = 1024;
+ static const jint numFixNum = 1125;
+ static JArray< ::java::math::BigInteger * > * smallFixNums;
+ ::gnu::java::math::GMP * mpz;
+ static jboolean USING_NATIVE;
+public:
+ static ::java::math::BigInteger * ZERO;
+ static ::java::math::BigInteger * ONE;
+ static ::java::math::BigInteger * TEN;
+private:
+ static const jint FLOOR = 1;
+ static const jint CEILING = 2;
+ static const jint TRUNCATE = 3;
+ static const jint ROUND = 4;
+ static JArray< jint > * primes;
+ static JArray< jint > * k;
+ static JArray< jint > * t;
+ static JArray< jbyte > * bit4_count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_math_BigInteger__
diff --git a/gcc-4.8/libjava/java/math/MathContext.h b/gcc-4.8/libjava/java/math/MathContext.h
new file mode 100644
index 000000000..bed83920b
--- /dev/null
+++ b/gcc-4.8/libjava/java/math/MathContext.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_math_MathContext__
+#define __java_math_MathContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class MathContext;
+ class RoundingMode;
+ }
+ }
+}
+
+class java::math::MathContext : public ::java::lang::Object
+{
+
+public:
+ MathContext(jint);
+ MathContext(jint, ::java::math::RoundingMode *);
+ MathContext(::java::lang::String *);
+ jboolean equals(::java::lang::Object *);
+ jint getPrecision();
+ ::java::math::RoundingMode * getRoundingMode();
+ ::java::lang::String * toString();
+ jint hashCode();
+ static ::java::math::MathContext * UNLIMITED;
+ static ::java::math::MathContext * DECIMAL32;
+ static ::java::math::MathContext * DECIMAL64;
+ static ::java::math::MathContext * DECIMAL128;
+private:
+ static const jlong serialVersionUID = 5579720004786848255LL;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) precision;
+ ::java::math::RoundingMode * roundMode;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_math_MathContext__
diff --git a/gcc-4.8/libjava/java/math/RoundingMode.h b/gcc-4.8/libjava/java/math/RoundingMode.h
new file mode 100644
index 000000000..b72f7cff7
--- /dev/null
+++ b/gcc-4.8/libjava/java/math/RoundingMode.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_math_RoundingMode__
+#define __java_math_RoundingMode__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class RoundingMode;
+ }
+ }
+}
+
+class java::math::RoundingMode : public ::java::lang::Enum
+{
+
+ RoundingMode(::java::lang::String *, jint);
+public:
+ static ::java::math::RoundingMode * valueOf(jint);
+ static JArray< ::java::math::RoundingMode * > * values();
+ static ::java::math::RoundingMode * valueOf(::java::lang::String *);
+ static ::java::math::RoundingMode * UP;
+ static ::java::math::RoundingMode * DOWN;
+ static ::java::math::RoundingMode * CEILING;
+ static ::java::math::RoundingMode * FLOOR;
+ static ::java::math::RoundingMode * HALF_UP;
+ static ::java::math::RoundingMode * HALF_DOWN;
+ static ::java::math::RoundingMode * HALF_EVEN;
+ static ::java::math::RoundingMode * UNNECESSARY;
+private:
+ static const jlong serialVersionUID = 432302042773881265LL;
+ static JArray< ::java::math::RoundingMode * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_math_RoundingMode__
diff --git a/gcc-4.8/libjava/java/net/Authenticator.h b/gcc-4.8/libjava/java/net/Authenticator.h
new file mode 100644
index 000000000..b8e26606b
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/Authenticator.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_Authenticator__
+#define __java_net_Authenticator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Authenticator;
+ class InetAddress;
+ class PasswordAuthentication;
+ }
+ }
+}
+
+class java::net::Authenticator : public ::java::lang::Object
+{
+
+public:
+ static void setDefault(::java::net::Authenticator *);
+ static ::java::net::PasswordAuthentication * requestPasswordAuthentication(::java::net::InetAddress *, jint, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ static ::java::net::PasswordAuthentication * requestPasswordAuthentication(::java::lang::String *, ::java::net::InetAddress *, jint, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ Authenticator();
+public: // actually protected
+ virtual ::java::net::InetAddress * getRequestingSite();
+ virtual ::java::lang::String * getRequestingHost();
+ virtual jint getRequestingPort();
+ virtual ::java::lang::String * getRequestingProtocol();
+ virtual ::java::lang::String * getRequestingPrompt();
+ virtual ::java::lang::String * getRequestingScheme();
+ virtual ::java::net::PasswordAuthentication * getPasswordAuthentication();
+private:
+ static ::java::net::Authenticator * defaultAuthenticator;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) host;
+ ::java::net::InetAddress * addr;
+ jint port;
+ ::java::lang::String * protocol;
+ ::java::lang::String * prompt;
+ ::java::lang::String * scheme;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_Authenticator__
diff --git a/gcc-4.8/libjava/java/net/BindException.h b/gcc-4.8/libjava/java/net/BindException.h
new file mode 100644
index 000000000..6056f55f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/BindException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_BindException__
+#define __java_net_BindException__
+
+#pragma interface
+
+#include <java/net/SocketException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class BindException;
+ }
+ }
+}
+
+class java::net::BindException : public ::java::net::SocketException
+{
+
+public:
+ BindException();
+ BindException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -5945005768251722951LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_BindException__
diff --git a/gcc-4.8/libjava/java/net/ConnectException.h b/gcc-4.8/libjava/java/net/ConnectException.h
new file mode 100644
index 000000000..324ff1fe7
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ConnectException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ConnectException__
+#define __java_net_ConnectException__
+
+#pragma interface
+
+#include <java/net/SocketException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ConnectException;
+ }
+ }
+}
+
+class java::net::ConnectException : public ::java::net::SocketException
+{
+
+public:
+ ConnectException();
+ ConnectException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 3831404271622369215LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ConnectException__
diff --git a/gcc-4.8/libjava/java/net/ContentHandler.h b/gcc-4.8/libjava/java/net/ContentHandler.h
new file mode 100644
index 000000000..62aecff06
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ContentHandler.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ContentHandler__
+#define __java_net_ContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ContentHandler;
+ class URLConnection;
+ }
+ }
+}
+
+class java::net::ContentHandler : public ::java::lang::Object
+{
+
+public:
+ ContentHandler();
+ virtual ::java::lang::Object * getContent(::java::net::URLConnection *) = 0;
+ virtual ::java::lang::Object * getContent(::java::net::URLConnection *, JArray< ::java::lang::Class * > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ContentHandler__
diff --git a/gcc-4.8/libjava/java/net/ContentHandlerFactory.h b/gcc-4.8/libjava/java/net/ContentHandlerFactory.h
new file mode 100644
index 000000000..ca1533104
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ContentHandlerFactory.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ContentHandlerFactory__
+#define __java_net_ContentHandlerFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ContentHandler;
+ class ContentHandlerFactory;
+ }
+ }
+}
+
+class java::net::ContentHandlerFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::net::ContentHandler * createContentHandler(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_net_ContentHandlerFactory__
diff --git a/gcc-4.8/libjava/java/net/DatagramPacket.h b/gcc-4.8/libjava/java/net/DatagramPacket.h
new file mode 100644
index 000000000..068329e05
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/DatagramPacket.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_DatagramPacket__
+#define __java_net_DatagramPacket__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class DatagramPacket;
+ class InetAddress;
+ class SocketAddress;
+ }
+ }
+}
+
+class java::net::DatagramPacket : public ::java::lang::Object
+{
+
+public:
+ DatagramPacket(JArray< jbyte > *, jint, jint);
+ DatagramPacket(JArray< jbyte > *, jint);
+ DatagramPacket(JArray< jbyte > *, jint, jint, ::java::net::InetAddress *, jint);
+ DatagramPacket(JArray< jbyte > *, jint, ::java::net::InetAddress *, jint);
+ DatagramPacket(JArray< jbyte > *, jint, jint, ::java::net::SocketAddress *);
+ DatagramPacket(JArray< jbyte > *, jint, ::java::net::SocketAddress *);
+ ::java::net::InetAddress * getAddress();
+ jint getPort();
+ JArray< jbyte > * getData();
+ jint getOffset();
+ jint getLength();
+ void setAddress(::java::net::InetAddress *);
+ void setPort(jint);
+ void setSocketAddress(::java::net::SocketAddress *);
+ ::java::net::SocketAddress * getSocketAddress();
+ void setData(JArray< jbyte > *);
+ void setData(JArray< jbyte > *, jint, jint);
+ void setLength(jint);
+private:
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer;
+ jint offset;
+public: // actually package-private
+ jint length;
+ jint maxlen;
+private:
+ ::java::net::InetAddress * address;
+ jint port;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_DatagramPacket__
diff --git a/gcc-4.8/libjava/java/net/DatagramSocket.h b/gcc-4.8/libjava/java/net/DatagramSocket.h
new file mode 100644
index 000000000..a1761e115
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/DatagramSocket.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_DatagramSocket__
+#define __java_net_DatagramSocket__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class DatagramPacket;
+ class DatagramSocket;
+ class DatagramSocketImpl;
+ class DatagramSocketImplFactory;
+ class InetAddress;
+ class SocketAddress;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class DatagramChannel;
+ }
+ }
+ }
+}
+
+class java::net::DatagramSocket : public ::java::lang::Object
+{
+
+public: // actually protected
+ DatagramSocket(::java::net::DatagramSocketImpl *);
+public:
+ DatagramSocket();
+ DatagramSocket(jint);
+ DatagramSocket(jint, ::java::net::InetAddress *);
+ DatagramSocket(::java::net::SocketAddress *);
+public: // actually package-private
+ virtual ::java::net::DatagramSocketImpl * getImpl();
+public:
+ virtual void close();
+ virtual ::java::net::InetAddress * getInetAddress();
+ virtual jint getPort();
+ virtual ::java::net::InetAddress * getLocalAddress();
+ virtual jint getLocalPort();
+ virtual jint getSoTimeout();
+ virtual void setSoTimeout(jint);
+ virtual jint getSendBufferSize();
+ virtual void setSendBufferSize(jint);
+ virtual jint getReceiveBufferSize();
+ virtual void setReceiveBufferSize(jint);
+ virtual void connect(::java::net::InetAddress *, jint);
+ virtual void disconnect();
+ virtual void receive(::java::net::DatagramPacket *);
+ virtual void send(::java::net::DatagramPacket *);
+ virtual void bind(::java::net::SocketAddress *);
+ virtual jboolean isClosed();
+ virtual ::java::nio::channels::DatagramChannel * getChannel();
+ virtual void connect(::java::net::SocketAddress *);
+ virtual jboolean isBound();
+ virtual jboolean isConnected();
+ virtual ::java::net::SocketAddress * getRemoteSocketAddress();
+ virtual ::java::net::SocketAddress * getLocalSocketAddress();
+ virtual void setReuseAddress(jboolean);
+ virtual jboolean getReuseAddress();
+ virtual void setBroadcast(jboolean);
+ virtual jboolean getBroadcast();
+ virtual void setTrafficClass(jint);
+ virtual jint getTrafficClass();
+ static void setDatagramSocketImplFactory(::java::net::DatagramSocketImplFactory *);
+private:
+ static ::java::net::DatagramSocketImplFactory * factory;
+ ::java::net::DatagramSocketImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) impl;
+ jboolean implCreated;
+ ::java::net::InetAddress * remoteAddress;
+ jint remotePort;
+ jboolean bound;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_DatagramSocket__
diff --git a/gcc-4.8/libjava/java/net/DatagramSocketImpl.h b/gcc-4.8/libjava/java/net/DatagramSocketImpl.h
new file mode 100644
index 000000000..e29991b42
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/DatagramSocketImpl.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_DatagramSocketImpl__
+#define __java_net_DatagramSocketImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class DatagramPacket;
+ class DatagramSocketImpl;
+ class InetAddress;
+ class NetworkInterface;
+ class SocketAddress;
+ }
+ }
+}
+
+class java::net::DatagramSocketImpl : public ::java::lang::Object
+{
+
+public:
+ DatagramSocketImpl();
+public: // actually protected
+ virtual void bind(jint, ::java::net::InetAddress *) = 0;
+ virtual void close() = 0;
+ virtual void create() = 0;
+ virtual jint peek(::java::net::InetAddress *) = 0;
+ virtual jint peekData(::java::net::DatagramPacket *) = 0;
+ virtual void send(::java::net::DatagramPacket *) = 0;
+ virtual void receive(::java::net::DatagramPacket *) = 0;
+ virtual void connect(::java::net::InetAddress *, jint);
+ virtual void disconnect();
+ virtual void setTTL(jbyte) = 0;
+ virtual jbyte getTTL() = 0;
+ virtual void setTimeToLive(jint) = 0;
+ virtual jint getTimeToLive() = 0;
+ virtual void join(::java::net::InetAddress *) = 0;
+ virtual void leave(::java::net::InetAddress *) = 0;
+ virtual void joinGroup(::java::net::SocketAddress *, ::java::net::NetworkInterface *) = 0;
+ virtual void leaveGroup(::java::net::SocketAddress *, ::java::net::NetworkInterface *) = 0;
+ virtual ::java::io::FileDescriptor * getFileDescriptor();
+ virtual jint getLocalPort();
+public:
+ virtual void setOption(jint, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getOption(jint) = 0;
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) localPort;
+ ::java::io::FileDescriptor * fd;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_DatagramSocketImpl__
diff --git a/gcc-4.8/libjava/java/net/DatagramSocketImplFactory.h b/gcc-4.8/libjava/java/net/DatagramSocketImplFactory.h
new file mode 100644
index 000000000..15e1780ec
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/DatagramSocketImplFactory.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_DatagramSocketImplFactory__
+#define __java_net_DatagramSocketImplFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class DatagramSocketImpl;
+ class DatagramSocketImplFactory;
+ }
+ }
+}
+
+class java::net::DatagramSocketImplFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::net::DatagramSocketImpl * createDatagramSocketImpl() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_net_DatagramSocketImplFactory__
diff --git a/gcc-4.8/libjava/java/net/FileNameMap.h b/gcc-4.8/libjava/java/net/FileNameMap.h
new file mode 100644
index 000000000..916f14023
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/FileNameMap.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_FileNameMap__
+#define __java_net_FileNameMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class FileNameMap;
+ }
+ }
+}
+
+class java::net::FileNameMap : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getContentTypeFor(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_net_FileNameMap__
diff --git a/gcc-4.8/libjava/java/net/HttpURLConnection.h b/gcc-4.8/libjava/java/net/HttpURLConnection.h
new file mode 100644
index 000000000..d192e33ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/HttpURLConnection.h
@@ -0,0 +1,101 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_HttpURLConnection__
+#define __java_net_HttpURLConnection__
+
+#pragma interface
+
+#include <java/net/URLConnection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class HttpURLConnection;
+ class URL;
+ }
+ namespace security
+ {
+ class Permission;
+ }
+ }
+}
+
+class java::net::HttpURLConnection : public ::java::net::URLConnection
+{
+
+public: // actually protected
+ HttpURLConnection(::java::net::URL *);
+public:
+ virtual void disconnect() = 0;
+ virtual jboolean usingProxy() = 0;
+ static void setFollowRedirects(jboolean);
+ static jboolean getFollowRedirects();
+ virtual jboolean getInstanceFollowRedirects();
+ virtual void setInstanceFollowRedirects(jboolean);
+ virtual void setRequestMethod(::java::lang::String *);
+ virtual ::java::lang::String * getRequestMethod();
+ virtual jint getResponseCode();
+ virtual ::java::lang::String * getResponseMessage();
+private:
+ void getResponseVals();
+public:
+ virtual ::java::security::Permission * getPermission();
+ virtual ::java::io::InputStream * getErrorStream();
+ virtual jlong getHeaderFieldDate(::java::lang::String *, jlong);
+public: // actually package-private
+ static const jint HTTP_CONTINUE = 100;
+public:
+ static const jint HTTP_OK = 200;
+ static const jint HTTP_CREATED = 201;
+ static const jint HTTP_ACCEPTED = 202;
+ static const jint HTTP_NOT_AUTHORITATIVE = 203;
+ static const jint HTTP_NO_CONTENT = 204;
+ static const jint HTTP_RESET = 205;
+ static const jint HTTP_PARTIAL = 206;
+ static const jint HTTP_MULT_CHOICE = 300;
+ static const jint HTTP_MOVED_PERM = 301;
+ static const jint HTTP_MOVED_TEMP = 302;
+ static const jint HTTP_SEE_OTHER = 303;
+ static const jint HTTP_NOT_MODIFIED = 304;
+ static const jint HTTP_USE_PROXY = 305;
+ static const jint HTTP_BAD_REQUEST = 400;
+ static const jint HTTP_UNAUTHORIZED = 401;
+ static const jint HTTP_PAYMENT_REQUIRED = 402;
+ static const jint HTTP_FORBIDDEN = 403;
+ static const jint HTTP_NOT_FOUND = 404;
+ static const jint HTTP_BAD_METHOD = 405;
+ static const jint HTTP_NOT_ACCEPTABLE = 406;
+ static const jint HTTP_PROXY_AUTH = 407;
+ static const jint HTTP_CLIENT_TIMEOUT = 408;
+ static const jint HTTP_CONFLICT = 409;
+ static const jint HTTP_GONE = 410;
+ static const jint HTTP_LENGTH_REQUIRED = 411;
+ static const jint HTTP_PRECON_FAILED = 412;
+ static const jint HTTP_ENTITY_TOO_LARGE = 413;
+ static const jint HTTP_REQ_TOO_LONG = 414;
+ static const jint HTTP_UNSUPPORTED_TYPE = 415;
+ static const jint HTTP_SERVER_ERROR = 500;
+ static const jint HTTP_INTERNAL_ERROR = 500;
+ static const jint HTTP_NOT_IMPLEMENTED = 501;
+ static const jint HTTP_BAD_GATEWAY = 502;
+ static const jint HTTP_UNAVAILABLE = 503;
+ static const jint HTTP_GATEWAY_TIMEOUT = 504;
+ static const jint HTTP_VERSION = 505;
+private:
+ static jboolean followRedirects;
+ static ::java::lang::String * valid_methods;
+public: // actually protected
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::URLConnection)))) method;
+ jint responseCode;
+ ::java::lang::String * responseMessage;
+ jboolean instanceFollowRedirects;
+private:
+ jboolean gotResponseVals;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_HttpURLConnection__
diff --git a/gcc-4.8/libjava/java/net/Inet4Address.h b/gcc-4.8/libjava/java/net/Inet4Address.h
new file mode 100644
index 000000000..5ff131546
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/Inet4Address.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_Inet4Address__
+#define __java_net_Inet4Address__
+
+#pragma interface
+
+#include <java/net/InetAddress.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Inet4Address;
+ }
+ }
+}
+
+class java::net::Inet4Address : public ::java::net::InetAddress
+{
+
+ ::java::lang::Object * writeReplace();
+public: // actually package-private
+ Inet4Address(JArray< jbyte > *, ::java::lang::String *);
+public:
+ jboolean isMulticastAddress();
+ jboolean isLoopbackAddress();
+ jboolean isAnyLocalAddress();
+ jboolean isLinkLocalAddress();
+ jboolean isSiteLocalAddress();
+ jboolean isMCGlobal();
+ jboolean isMCNodeLocal();
+ jboolean isMCLinkLocal();
+ jboolean isMCSiteLocal();
+ jboolean isMCOrgLocal();
+ JArray< jbyte > * getAddress();
+ ::java::lang::String * getHostAddress();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ static const jlong serialVersionUID = 3286316764910316507LL;
+private:
+ static const jint AF_INET = 2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_Inet4Address__
diff --git a/gcc-4.8/libjava/java/net/Inet6Address.h b/gcc-4.8/libjava/java/net/Inet6Address.h
new file mode 100644
index 000000000..933a4780a
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/Inet6Address.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_Inet6Address__
+#define __java_net_Inet6Address__
+
+#pragma interface
+
+#include <java/net/InetAddress.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Inet6Address;
+ class NetworkInterface;
+ }
+ }
+}
+
+class java::net::Inet6Address : public ::java::net::InetAddress
+{
+
+public: // actually package-private
+ Inet6Address(JArray< jbyte > *, ::java::lang::String *);
+public:
+ jboolean isMulticastAddress();
+ jboolean isAnyLocalAddress();
+ jboolean isLoopbackAddress();
+ jboolean isLinkLocalAddress();
+ jboolean isSiteLocalAddress();
+ jboolean isMCGlobal();
+ jboolean isMCNodeLocal();
+ jboolean isMCLinkLocal();
+ jboolean isMCSiteLocal();
+ jboolean isMCOrgLocal();
+ JArray< jbyte > * getAddress();
+ static ::java::net::Inet6Address * getByAddress(::java::lang::String *, JArray< jbyte > *, jint);
+ static ::java::net::Inet6Address * getByAddress(::java::lang::String *, JArray< jbyte > *, ::java::net::NetworkInterface *);
+ ::java::net::NetworkInterface * getScopedInterface();
+ jint getScopeId();
+ ::java::lang::String * getHostAddress();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ jboolean isIPv4CompatibleAddress();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public: // actually package-private
+ static const jlong serialVersionUID = 6880410070516793377LL;
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::net::InetAddress)))) ipaddress;
+private:
+ jint scope_id;
+ jboolean scope_id_set;
+ jboolean scope_ifname_set;
+ ::java::lang::String * ifname;
+ ::java::net::NetworkInterface * nif;
+ static const jint AF_INET6 = 10;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_Inet6Address__
diff --git a/gcc-4.8/libjava/java/net/InetAddress.h b/gcc-4.8/libjava/java/net/InetAddress.h
new file mode 100644
index 000000000..8cde4fb5d
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/InetAddress.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_InetAddress__
+#define __java_net_InetAddress__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ }
+ }
+}
+
+class java::net::InetAddress : public ::java::lang::Object
+{
+
+public: // actually package-private
+ InetAddress(JArray< jbyte > *, ::java::lang::String *, jint);
+public:
+ virtual jboolean isMulticastAddress();
+ virtual jboolean isAnyLocalAddress();
+ virtual jboolean isLoopbackAddress();
+ virtual jboolean isLinkLocalAddress();
+ virtual jboolean isSiteLocalAddress();
+ virtual jboolean isMCGlobal();
+ virtual jboolean isMCNodeLocal();
+ virtual jboolean isMCLinkLocal();
+ virtual jboolean isMCSiteLocal();
+ virtual jboolean isMCOrgLocal();
+ virtual ::java::lang::String * getHostName();
+public: // actually package-private
+ virtual ::java::lang::String * internalGetCanonicalHostName();
+public:
+ virtual ::java::lang::String * getCanonicalHostName();
+ virtual JArray< jbyte > * getAddress();
+ virtual ::java::lang::String * getHostAddress();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+ static ::java::net::InetAddress * getByAddress(JArray< jbyte > *);
+ static ::java::net::InetAddress * getByAddress(::java::lang::String *, JArray< jbyte > *);
+public: // actually package-private
+ static ::java::net::InetAddress * getByLiteral(::java::lang::String *);
+public:
+ static ::java::net::InetAddress * getByName(::java::lang::String *);
+ static JArray< ::java::net::InetAddress * > * getAllByName(::java::lang::String *);
+ static ::java::net::InetAddress * getLocalHost();
+private:
+ ::java::lang::Object * readResolve();
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = 3286316764910316507LL;
+public: // actually package-private
+ static ::java::net::InetAddress * ANY_IF;
+ static ::java::net::InetAddress * LOCALHOST;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) address;
+public: // actually package-private
+ JArray< jbyte > * addr;
+ ::java::lang::String * hostName;
+private:
+ jint family;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_InetAddress__
diff --git a/gcc-4.8/libjava/java/net/InetSocketAddress.h b/gcc-4.8/libjava/java/net/InetSocketAddress.h
new file mode 100644
index 000000000..b4f14d41c
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/InetSocketAddress.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_InetSocketAddress__
+#define __java_net_InetSocketAddress__
+
+#pragma interface
+
+#include <java/net/SocketAddress.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class InetSocketAddress;
+ }
+ }
+}
+
+class java::net::InetSocketAddress : public ::java::net::SocketAddress
+{
+
+public:
+ InetSocketAddress(::java::net::InetAddress *, jint);
+ InetSocketAddress(jint);
+ InetSocketAddress(::java::lang::String *, jint);
+private:
+ InetSocketAddress(::java::lang::String *, jint, jboolean);
+public:
+ static ::java::net::InetSocketAddress * createUnresolved(::java::lang::String *, jint);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::net::InetAddress * getAddress();
+ virtual ::java::lang::String * getHostName();
+ virtual jint getPort();
+ virtual jint hashCode();
+ virtual jboolean isUnresolved();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 5076001401234631237LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::SocketAddress)))) hostname;
+ ::java::net::InetAddress * addr;
+ jint port;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_InetSocketAddress__
diff --git a/gcc-4.8/libjava/java/net/JarURLConnection.h b/gcc-4.8/libjava/java/net/JarURLConnection.h
new file mode 100644
index 000000000..6c89e6e4d
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/JarURLConnection.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_JarURLConnection__
+#define __java_net_JarURLConnection__
+
+#pragma interface
+
+#include <java/net/URLConnection.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class JarURLConnection;
+ class URL;
+ class URLConnection;
+ }
+ namespace security
+ {
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::net::JarURLConnection : public ::java::net::URLConnection
+{
+
+public: // actually protected
+ JarURLConnection(::java::net::URL *);
+public:
+ virtual ::java::net::URL * getJarFileURL();
+ virtual ::java::lang::String * getEntryName();
+ virtual ::java::util::jar::JarEntry * getJarEntry();
+ virtual ::java::util::jar::JarFile * getJarFile() = 0;
+ virtual JArray< ::java::security::cert::Certificate * > * getCertificates();
+ virtual ::java::util::jar::Attributes * getMainAttributes();
+ virtual ::java::util::jar::Attributes * getAttributes();
+ virtual ::java::util::jar::Manifest * getManifest();
+private:
+ ::java::net::URL * __attribute__((aligned(__alignof__( ::java::net::URLConnection)))) jarFileURL;
+public: // actually protected
+ ::java::net::URLConnection * jarFileURLConnection;
+private:
+ ::java::lang::String * entryName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_JarURLConnection__
diff --git a/gcc-4.8/libjava/java/net/MalformedURLException.h b/gcc-4.8/libjava/java/net/MalformedURLException.h
new file mode 100644
index 000000000..713bf5e7d
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/MalformedURLException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_MalformedURLException__
+#define __java_net_MalformedURLException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class MalformedURLException;
+ }
+ }
+}
+
+class java::net::MalformedURLException : public ::java::io::IOException
+{
+
+public:
+ MalformedURLException();
+ MalformedURLException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -182787522200415866LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_MalformedURLException__
diff --git a/gcc-4.8/libjava/java/net/MimeTypeMapper.h b/gcc-4.8/libjava/java/net/MimeTypeMapper.h
new file mode 100644
index 000000000..06fb2679e
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/MimeTypeMapper.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_MimeTypeMapper__
+#define __java_net_MimeTypeMapper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class MimeTypeMapper;
+ }
+ }
+}
+
+class java::net::MimeTypeMapper : public ::java::lang::Object
+{
+
+public:
+ MimeTypeMapper();
+ static void fillFromFile(::java::util::Map *, ::java::lang::String *);
+ virtual ::java::lang::String * getContentTypeFor(::java::lang::String *);
+ static void main(JArray< ::java::lang::String * > *);
+public: // actually protected
+ static JArray< JArray< ::java::lang::String * > * > * mime_strings;
+private:
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mime_types;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_MimeTypeMapper__
diff --git a/gcc-4.8/libjava/java/net/MulticastSocket.h b/gcc-4.8/libjava/java/net/MulticastSocket.h
new file mode 100644
index 000000000..2faac45e3
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/MulticastSocket.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_MulticastSocket__
+#define __java_net_MulticastSocket__
+
+#pragma interface
+
+#include <java/net/DatagramSocket.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class DatagramPacket;
+ class InetAddress;
+ class MulticastSocket;
+ class NetworkInterface;
+ class SocketAddress;
+ }
+ }
+}
+
+class java::net::MulticastSocket : public ::java::net::DatagramSocket
+{
+
+public:
+ MulticastSocket();
+ MulticastSocket(jint);
+ MulticastSocket(::java::net::SocketAddress *);
+ virtual ::java::net::InetAddress * getInterface();
+ virtual jbyte getTTL();
+ virtual jint getTimeToLive();
+ virtual void setInterface(::java::net::InetAddress *);
+ virtual void setNetworkInterface(::java::net::NetworkInterface *);
+ virtual ::java::net::NetworkInterface * getNetworkInterface();
+ virtual void setLoopbackMode(jboolean);
+ virtual jboolean getLoopbackMode();
+ virtual void setTTL(jbyte);
+ virtual void setTimeToLive(jint);
+ virtual void joinGroup(::java::net::InetAddress *);
+ virtual void leaveGroup(::java::net::InetAddress *);
+ virtual void joinGroup(::java::net::SocketAddress *, ::java::net::NetworkInterface *);
+ virtual void leaveGroup(::java::net::SocketAddress *, ::java::net::NetworkInterface *);
+ virtual void send(::java::net::DatagramPacket *, jbyte);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_MulticastSocket__
diff --git a/gcc-4.8/libjava/java/net/MulticastSocket.java b/gcc-4.8/libjava/java/net/MulticastSocket.java
new file mode 100644
index 000000000..efd66b3d5
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/MulticastSocket.java
@@ -0,0 +1,519 @@
+/* MulticastSocket.java -- Class for using multicast sockets
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.net;
+
+import java.io.IOException;
+import java.util.Enumeration;
+
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification, as well
+ * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
+ * Status: Believed complete and correct.
+ */
+/**
+ * This class models a multicast UDP socket. A multicast address is a
+ * class D internet address (one whose most significant bits are 1110).
+ * A multicast group consists of a multicast address and a well known
+ * port number. All members of the group listening on that address and
+ * port will receive all the broadcasts to the group.
+ * <p>
+ * Please note that applets are not allowed to use multicast sockets
+ *
+ * Written using on-line Java Platform 1.2 API Specification, as well
+ * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
+ * Status: Believed complete and correct.
+ *
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com) (Documentation comments)
+ * @since 1.1
+ * @date May 18, 1999.
+ */
+public class MulticastSocket extends DatagramSocket
+{
+ /**
+ * Create a MulticastSocket that this not bound to any address
+ *
+ * @exception IOException If an error occurs
+ * @exception SecurityException If a security manager exists and its
+ * checkListen method doesn't allow the operation
+ */
+ public MulticastSocket() throws IOException
+ {
+ this(new InetSocketAddress(0));
+ }
+
+ /**
+ * Create a multicast socket bound to the specified port
+ *
+ * @param port The port to bind to
+ *
+ * @exception IOException If an error occurs
+ * @exception SecurityException If a security manager exists and its
+ * checkListen method doesn't allow the operation
+ */
+ public MulticastSocket(int port) throws IOException
+ {
+ this(new InetSocketAddress(port));
+ }
+
+ /**
+ * Create a multicast socket bound to the specified SocketAddress.
+ *
+ * @param address The SocketAddress the multicast socket will be bound to
+ *
+ * @exception IOException If an error occurs
+ * @exception SecurityException If a security manager exists and its
+ * checkListen method doesn't allow the operation
+ *
+ * @since 1.4
+ */
+ public MulticastSocket(SocketAddress address) throws IOException
+ {
+ super((SocketAddress) null);
+ setReuseAddress(true);
+ if (address != null)
+ bind(address);
+ }
+
+ /**
+ * Returns the interface being used for multicast packets
+ *
+ * @return The multicast interface
+ *
+ * @exception SocketException If an error occurs
+ */
+ public InetAddress getInterface() throws SocketException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ return (InetAddress) getImpl().getOption(SocketOptions.IP_MULTICAST_IF);
+ }
+
+ /**
+ * Returns the current value of the "Time to Live" option. This is the
+ * number of hops a packet can make before it "expires". This method id
+ * deprecated. Use <code>getTimeToLive</code> instead.
+ *
+ * @return The TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @deprecated 1.2 Replaced by getTimeToLive()
+ *
+ * @see MulticastSocket#getTimeToLive()
+ */
+ public byte getTTL() throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ // Use getTTL here rather than getTimeToLive in case we're using an impl
+ // other than the default PlainDatagramSocketImpl and it doesn't have
+ // getTimeToLive yet.
+ return getImpl().getTTL();
+ }
+
+ /**
+ * Returns the current value of the "Time to Live" option. This is the
+ * number of hops a packet can make before it "expires".
+ *
+ * @return The TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @since 1.2
+ */
+ public int getTimeToLive() throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ return getImpl().getTimeToLive();
+ }
+
+ /**
+ * Sets the interface to use for sending multicast packets.
+ *
+ * @param addr The new interface to use.
+ *
+ * @exception SocketException If an error occurs.
+ *
+ * @since 1.4
+ */
+ public void setInterface(InetAddress addr) throws SocketException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ getImpl().setOption(SocketOptions.IP_MULTICAST_IF, addr);
+ }
+
+ /**
+ * Sets the local network interface used to send multicast messages
+ *
+ * @param netIf The local network interface used to send multicast messages
+ *
+ * @exception SocketException If an error occurs
+ *
+ * @see MulticastSocket#getNetworkInterface()
+ *
+ * @since 1.4
+ */
+ public void setNetworkInterface(NetworkInterface netIf)
+ throws SocketException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ InetAddress address;
+ if (netIf != null)
+ out:
+ {
+ Enumeration e = netIf.getInetAddresses();
+ if (getLocalAddress() instanceof Inet4Address)
+ {
+ // Search for a IPv4 address.
+ while (e.hasMoreElements())
+ {
+ address = (InetAddress) e.nextElement();
+ if (address instanceof Inet4Address)
+ break out;
+ }
+ throw new SocketException("interface " + netIf.getName() + " has no IPv6 address");
+ }
+ else if (getLocalAddress() instanceof Inet6Address)
+ {
+ // Search for a IPv6 address.
+ while (e.hasMoreElements())
+ {
+ address = (InetAddress) e.nextElement();
+ if (address instanceof Inet6Address)
+ break out;
+ }
+ throw new SocketException("interface " + netIf.getName() + " has no IPv6 address");
+ }
+ else
+ throw new SocketException("interface " + netIf.getName() + " has no suitable IP address");
+ }
+ else
+ address = InetAddress.ANY_IF;
+
+
+ getImpl().setOption(SocketOptions.IP_MULTICAST_IF, address);
+ }
+
+ /**
+ * Gets the local network interface which is used to send multicast messages
+ *
+ * @return The local network interface to send multicast messages
+ *
+ * @exception SocketException If an error occurs
+ *
+ * @see MulticastSocket#setNetworkInterface(NetworkInterface netIf)
+ *
+ * @since 1.4
+ */
+ public NetworkInterface getNetworkInterface() throws SocketException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ InetAddress address =
+ (InetAddress) getImpl().getOption(SocketOptions.IP_MULTICAST_IF);
+
+ // FIXME: libgcj doesn't have createAnyInterface.
+// if (address.isAnyLocalAddress())
+// return NetworkInterface.createAnyInterface();
+
+ NetworkInterface netIf = NetworkInterface.getByInetAddress(address);
+
+ return netIf;
+ }
+
+ /**
+ * Disable/Enable local loopback of multicast packets. The option is used by
+ * the platform's networking code as a hint for setting whether multicast
+ * data will be looped back to the local socket.
+ *
+ * Because this option is a hint, applications that want to verify what
+ * loopback mode is set to should call #getLoopbackMode
+ *
+ * @param disable True to disable loopback mode
+ *
+ * @exception SocketException If an error occurs
+ *
+ * @since 1.4
+ */
+ public void setLoopbackMode(boolean disable) throws SocketException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ getImpl().setOption(SocketOptions.IP_MULTICAST_LOOP,
+ Boolean.valueOf(disable));
+ }
+
+ /**
+ * Checks if local loopback mode is enabled
+ *
+ * @return true if loopback mode is enabled, false otherwise
+ *
+ * @exception SocketException If an error occurs
+ *
+ * @since 1.4
+ */
+ public boolean getLoopbackMode() throws SocketException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ Object buf = getImpl().getOption(SocketOptions.IP_MULTICAST_LOOP);
+
+ if (buf instanceof Boolean)
+ return ((Boolean) buf).booleanValue();
+
+ throw new SocketException("unexpected type");
+ }
+
+ /**
+ * Sets the "Time to Live" value for a socket. The value must be between
+ * 1 and 255.
+ *
+ * @param ttl The new TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @deprecated 1.2 Replaced by <code>setTimeToLive</code>
+ *
+ * @see MulticastSocket#setTimeToLive(int ttl)
+ */
+ public void setTTL(byte ttl) throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ // Use setTTL here rather than setTimeToLive in case we're using an impl
+ // other than the default PlainDatagramSocketImpl and it doesn't have
+ // setTimeToLive yet.
+ getImpl().setTTL(ttl);
+ }
+
+ /**
+ * Sets the "Time to Live" value for a socket. The value must be between
+ * 0 and 255, inclusive.
+ *
+ * @param ttl The new TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @since 1.2
+ */
+ public void setTimeToLive(int ttl) throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ if (ttl < 0 || ttl > 255)
+ throw new IllegalArgumentException("Invalid ttl: " + ttl);
+
+ getImpl().setTimeToLive(ttl);
+ }
+
+ /**
+ * Joins the specified multicast group.
+ *
+ * @param mcastaddr The address of the group to join
+ *
+ * @exception IOException If an error occurs
+ * @exception SecurityException If a security manager exists and its
+ * checkMulticast method doesn't allow the operation
+ */
+ public void joinGroup(InetAddress mcastaddr) throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ if (! mcastaddr.isMulticastAddress())
+ throw new IOException("Not a Multicast address");
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkMulticast(mcastaddr);
+
+ getImpl().join(mcastaddr);
+ }
+
+ /**
+ * Leaves the specified multicast group
+ *
+ * @param mcastaddr The address of the group to leave
+ *
+ * @exception IOException If an error occurs
+ * @exception SecurityException If a security manager exists and its
+ * checkMulticast method doesn't allow the operation
+ */
+ public void leaveGroup(InetAddress mcastaddr) throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ if (! mcastaddr.isMulticastAddress())
+ throw new IOException("Not a Multicast address");
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkMulticast(mcastaddr);
+
+ getImpl().leave(mcastaddr);
+ }
+
+ /**
+ * Joins the specified mulitcast group on a specified interface.
+ *
+ * @param mcastaddr The multicast address to join
+ * @param netIf The local network interface to receive the multicast
+ * messages on or null to defer the interface set by #setInterface or
+ * #setNetworkInterface
+ *
+ * @exception IOException If an error occurs
+ * @exception IllegalArgumentException If address type is not supported
+ * @exception SecurityException If a security manager exists and its
+ * checkMulticast method doesn't allow the operation
+ *
+ * @see MulticastSocket#setInterface(InetAddress addr)
+ * @see MulticastSocket#setNetworkInterface(NetworkInterface netIf)
+ *
+ * @since 1.4
+ */
+ public void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)
+ throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ if (! (mcastaddr instanceof InetSocketAddress))
+ throw new IllegalArgumentException("SocketAddress type not supported");
+
+ InetSocketAddress tmp = (InetSocketAddress) mcastaddr;
+
+ if (! tmp.getAddress().isMulticastAddress())
+ throw new IOException("Not a Multicast address");
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkMulticast(tmp.getAddress());
+
+ getImpl().joinGroup(mcastaddr, netIf);
+ }
+
+ /**
+ * Leaves the specified mulitcast group on a specified interface.
+ *
+ * @param mcastaddr The multicast address to leave
+ * @param netIf The local networki interface or null to defer to the
+ * interface set by setInterface or setNetworkInterface
+ *
+ * @exception IOException If an error occurs
+ * @exception IllegalArgumentException If address type is not supported
+ * @exception SecurityException If a security manager exists and its
+ * checkMulticast method doesn't allow the operation
+ *
+ * @see MulticastSocket#setInterface(InetAddress addr)
+ * @see MulticastSocket#setNetworkInterface(NetworkInterface netIf)
+ *
+ * @since 1.4
+ */
+ public void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)
+ throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ InetSocketAddress tmp = (InetSocketAddress) mcastaddr;
+
+ if (! tmp.getAddress().isMulticastAddress())
+ throw new IOException("Not a Multicast address");
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ s.checkMulticast(tmp.getAddress());
+
+ getImpl().leaveGroup(mcastaddr, netIf);
+ }
+
+ /**
+ * Sends a packet of data to a multicast address with a TTL that is
+ * different from the default TTL on this socket. The default TTL for
+ * the socket is not changed.
+ *
+ * @param packet The packet of data to send
+ * @param ttl The TTL for this packet
+ *
+ * @exception IOException If an error occurs
+ * @exception SecurityException If a security manager exists and its
+ * checkConnect or checkMulticast method doesn't allow the operation
+ *
+ * @deprecated
+ */
+ public synchronized void send(DatagramPacket packet, byte ttl)
+ throws IOException
+ {
+ if (isClosed())
+ throw new SocketException("socket is closed");
+
+ SecurityManager s = System.getSecurityManager();
+ if (s != null)
+ {
+ InetAddress addr = packet.getAddress();
+ if (addr.isMulticastAddress())
+ s.checkPermission(new SocketPermission(addr.getHostName()
+ + packet.getPort(),
+ "accept,connect"));
+ else
+ s.checkConnect(addr.getHostAddress(), packet.getPort());
+ }
+
+ int oldttl = getImpl().getTimeToLive();
+ getImpl().setTimeToLive(((int) ttl) & 0xFF);
+ getImpl().send(packet);
+ getImpl().setTimeToLive(oldttl);
+ }
+}
diff --git a/gcc-4.8/libjava/java/net/NetPermission.h b/gcc-4.8/libjava/java/net/NetPermission.h
new file mode 100644
index 000000000..a6c88555b
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/NetPermission.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_NetPermission__
+#define __java_net_NetPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class NetPermission;
+ }
+ }
+}
+
+class java::net::NetPermission : public ::java::security::BasicPermission
+{
+
+public:
+ NetPermission(::java::lang::String *);
+ NetPermission(::java::lang::String *, ::java::lang::String *);
+public: // actually package-private
+ static const jlong serialVersionUID = -8343910153355041693LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_NetPermission__
diff --git a/gcc-4.8/libjava/java/net/NetworkInterface.h b/gcc-4.8/libjava/java/net/NetworkInterface.h
new file mode 100644
index 000000000..66898a212
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/NetworkInterface.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_NetworkInterface__
+#define __java_net_NetworkInterface__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class NetworkInterface;
+ }
+ }
+}
+
+class java::net::NetworkInterface : public ::java::lang::Object
+{
+
+public: // actually package-private
+ NetworkInterface(::java::lang::String *, ::java::net::InetAddress *);
+ NetworkInterface(::java::lang::String *, JArray< ::java::net::InetAddress * > *);
+public:
+ ::java::lang::String * getName();
+ ::java::util::Enumeration * getInetAddresses();
+ ::java::lang::String * getDisplayName();
+ static ::java::net::NetworkInterface * getByName(::java::lang::String *);
+ static ::java::net::NetworkInterface * getByInetAddress(::java::net::InetAddress *);
+private:
+ static ::java::util::Collection * condense(::java::util::Collection *);
+public:
+ static ::java::util::Enumeration * getNetworkInterfaces();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * toString();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::util::Vector * inetAddresses;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_NetworkInterface__
diff --git a/gcc-4.8/libjava/java/net/NetworkInterface.java b/gcc-4.8/libjava/java/net/NetworkInterface.java
new file mode 100644
index 000000000..7ad62a713
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/NetworkInterface.java
@@ -0,0 +1,299 @@
+/* NetworkInterface.java --
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.net;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Vector;
+
+/**
+ * This class models a network interface on the host computer. A network
+ * interface contains a name (typically associated with a specific
+ * hardware adapter) and a list of addresses that are bound to it.
+ * For example, an ethernet interface may be named "eth0" and have the
+ * address 192.168.1.101 assigned to it.
+ *
+ * @author Michael Koch (konqueror@gmx.de)
+ * @since 1.4
+ */
+public final class NetworkInterface
+{
+ private String name;
+ private Vector<InetAddress> inetAddresses;
+
+ NetworkInterface(String name, InetAddress address)
+ {
+ this.name = name;
+ this.inetAddresses = new Vector(1, 1);
+ this.inetAddresses.add(address);
+ }
+
+ NetworkInterface(String name, InetAddress[] addresses)
+ {
+ this.name = name;
+ this.inetAddresses = new Vector(addresses.length, 1);
+
+ for (int i = 0; i < addresses.length; i++)
+ this.inetAddresses.add(addresses[i]);
+ }
+
+ /**
+ * Returns the name of the network interface
+ *
+ * @return The name of the interface.
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Returns all available addresses of the network interface
+ *
+ * If a @see SecurityManager is available all addresses are checked
+ * with @see SecurityManager::checkConnect() if they are available.
+ * Only <code>InetAddresses</code> are returned where the security manager
+ * doesn't throw an exception.
+ *
+ * @return An enumeration of all addresses.
+ */
+ public Enumeration<InetAddress> getInetAddresses()
+ {
+ SecurityManager s = System.getSecurityManager();
+
+ if (s == null)
+ return inetAddresses.elements();
+
+ Vector<InetAddress> tmpInetAddresses = new Vector<InetAddress>(1, 1);
+
+ for (Enumeration<InetAddress> addresses = inetAddresses.elements();
+ addresses.hasMoreElements();)
+ {
+ InetAddress addr = addresses.nextElement();
+ try
+ {
+ s.checkConnect(addr.getHostAddress(), 58000);
+ tmpInetAddresses.add(addr);
+ }
+ catch (SecurityException e)
+ {
+ // Ignore.
+ }
+ }
+
+ return tmpInetAddresses.elements();
+ }
+
+ /**
+ * Returns the display name of the interface
+ *
+ * @return The display name of the interface
+ */
+ public String getDisplayName()
+ {
+ return name;
+ }
+
+ /**
+ * Returns an network interface by name
+ *
+ * @param name The name of the interface to return
+ *
+ * @return a <code>NetworkInterface</code> object representing the interface,
+ * or null if there is no interface with that name.
+ *
+ * @exception SocketException If an error occurs
+ * @exception NullPointerException If the specified name is null
+ */
+ public static NetworkInterface getByName(String name)
+ throws SocketException
+ {
+ for (Enumeration e = getNetworkInterfaces(); e.hasMoreElements();)
+ {
+ NetworkInterface tmp = (NetworkInterface) e.nextElement();
+
+ if (name.equals(tmp.getName()))
+ return tmp;
+ }
+
+ // No interface with the given name found.
+ return null;
+ }
+
+ /**
+ * Return a network interface by its address
+ *
+ * @param addr The address of the interface to return
+ *
+ * @return the interface, or <code>null</code> if none found
+ *
+ * @exception SocketException If an error occurs
+ * @exception NullPointerException If the specified addess is null
+ */
+ public static NetworkInterface getByInetAddress(InetAddress addr)
+ throws SocketException
+ {
+ for (Enumeration interfaces = getNetworkInterfaces();
+ interfaces.hasMoreElements();)
+ {
+ NetworkInterface tmp = (NetworkInterface) interfaces.nextElement();
+
+ for (Enumeration addresses = tmp.inetAddresses.elements();
+ addresses.hasMoreElements();)
+ {
+ if (addr.equals((InetAddress) addresses.nextElement()))
+ return tmp;
+ }
+ }
+
+ throw new SocketException("no network interface is bound to such an IP address");
+ }
+
+ static private Collection condense(Collection interfaces)
+ {
+ final Map condensed = new HashMap();
+
+ final Iterator interfs = interfaces.iterator();
+ while (interfs.hasNext()) {
+
+ final NetworkInterface face = (NetworkInterface) interfs.next();
+ final String name = face.getName();
+
+ if (condensed.containsKey(name))
+ {
+ final NetworkInterface conface = (NetworkInterface) condensed.get(name);
+ if (!conface.inetAddresses.containsAll(face.inetAddresses))
+ {
+ final Iterator faceAddresses = face.inetAddresses.iterator();
+ while (faceAddresses.hasNext())
+ {
+ final InetAddress faceAddress = (InetAddress) faceAddresses.next();
+ if (!conface.inetAddresses.contains(faceAddress))
+ {
+ conface.inetAddresses.add(faceAddress);
+ }
+ }
+ }
+ }
+ else
+ {
+ condensed.put(name, face);
+ }
+ }
+
+ return condensed.values();
+ }
+
+ /**
+ * Return an <code>Enumeration</code> of all available network interfaces
+ *
+ * @return all interfaces
+ *
+ * @exception SocketException If an error occurs
+ */
+ public static Enumeration<NetworkInterface> getNetworkInterfaces()
+ throws SocketException
+ {
+ Vector<NetworkInterface> networkInterfaces =
+ VMNetworkInterface.getInterfaces();
+
+ if (networkInterfaces.isEmpty())
+ return null;
+
+ Collection condensed = condense(networkInterfaces);
+
+ return Collections.enumeration(condensed);
+ }
+
+ /**
+ * Checks if the current instance is equal to obj
+ *
+ * @param obj The object to compare with
+ *
+ * @return <code>true</code> if equal, <code>false</code> otherwise
+ */
+ public boolean equals(Object obj)
+ {
+ if (! (obj instanceof NetworkInterface))
+ return false;
+
+ NetworkInterface tmp = (NetworkInterface) obj;
+
+ return (name.equals(tmp.name) && inetAddresses.equals(tmp.inetAddresses));
+ }
+
+ /**
+ * Returns the hashcode of the current instance
+ *
+ * @return the hashcode
+ */
+ public int hashCode()
+ {
+ // FIXME: hash correctly
+ return name.hashCode() + inetAddresses.hashCode();
+ }
+
+ /**
+ * Returns a string representation of the interface
+ *
+ * @return the string
+ */
+ public String toString()
+ {
+ // FIXME: check if this is correct
+ String result;
+ String separator = System.getProperty("line.separator");
+
+ result =
+ "name: " + getDisplayName() + " (" + getName() + ") addresses:"
+ + separator;
+
+ for (Enumeration e = inetAddresses.elements(); e.hasMoreElements();)
+ {
+ InetAddress address = (InetAddress) e.nextElement();
+ result += address.toString() + ";" + separator;
+ }
+
+ return result;
+ }
+}
diff --git a/gcc-4.8/libjava/java/net/NoRouteToHostException.h b/gcc-4.8/libjava/java/net/NoRouteToHostException.h
new file mode 100644
index 000000000..7a639eaa7
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/NoRouteToHostException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_NoRouteToHostException__
+#define __java_net_NoRouteToHostException__
+
+#pragma interface
+
+#include <java/net/SocketException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class NoRouteToHostException;
+ }
+ }
+}
+
+class java::net::NoRouteToHostException : public ::java::net::SocketException
+{
+
+public:
+ NoRouteToHostException();
+ NoRouteToHostException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -1897550894873493790LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_NoRouteToHostException__
diff --git a/gcc-4.8/libjava/java/net/PasswordAuthentication.h b/gcc-4.8/libjava/java/net/PasswordAuthentication.h
new file mode 100644
index 000000000..2567fd0e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/PasswordAuthentication.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_PasswordAuthentication__
+#define __java_net_PasswordAuthentication__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class PasswordAuthentication;
+ }
+ }
+}
+
+class java::net::PasswordAuthentication : public ::java::lang::Object
+{
+
+public:
+ PasswordAuthentication(::java::lang::String *, JArray< jchar > *);
+ ::java::lang::String * getUserName();
+ JArray< jchar > * getPassword();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) username;
+ JArray< jchar > * password;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_PasswordAuthentication__
diff --git a/gcc-4.8/libjava/java/net/PortUnreachableException.h b/gcc-4.8/libjava/java/net/PortUnreachableException.h
new file mode 100644
index 000000000..5e0fff249
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/PortUnreachableException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_PortUnreachableException__
+#define __java_net_PortUnreachableException__
+
+#pragma interface
+
+#include <java/net/SocketException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class PortUnreachableException;
+ }
+ }
+}
+
+class java::net::PortUnreachableException : public ::java::net::SocketException
+{
+
+public:
+ PortUnreachableException();
+ PortUnreachableException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8462541992376507323LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_PortUnreachableException__
diff --git a/gcc-4.8/libjava/java/net/ProtocolException.h b/gcc-4.8/libjava/java/net/ProtocolException.h
new file mode 100644
index 000000000..39e7b7b1e
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ProtocolException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ProtocolException__
+#define __java_net_ProtocolException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ProtocolException;
+ }
+ }
+}
+
+class java::net::ProtocolException : public ::java::io::IOException
+{
+
+public:
+ ProtocolException();
+ ProtocolException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -6098449442062388080LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ProtocolException__
diff --git a/gcc-4.8/libjava/java/net/Proxy$Type.h b/gcc-4.8/libjava/java/net/Proxy$Type.h
new file mode 100644
index 000000000..288bd8c51
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/Proxy$Type.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_Proxy$Type__
+#define __java_net_Proxy$Type__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Proxy$Type;
+ }
+ }
+}
+
+class java::net::Proxy$Type : public ::java::lang::Enum
+{
+
+ Proxy$Type(::java::lang::String *, jint);
+public:
+ static JArray< ::java::net::Proxy$Type * > * values();
+ static ::java::net::Proxy$Type * valueOf(::java::lang::String *);
+ static ::java::net::Proxy$Type * DIRECT;
+ static ::java::net::Proxy$Type * HTTP;
+ static ::java::net::Proxy$Type * SOCKS;
+private:
+ static const jlong serialVersionUID = -2231209257930100533LL;
+ static JArray< ::java::net::Proxy$Type * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_Proxy$Type__
diff --git a/gcc-4.8/libjava/java/net/Proxy.h b/gcc-4.8/libjava/java/net/Proxy.h
new file mode 100644
index 000000000..b6b44e3a6
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/Proxy.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_Proxy__
+#define __java_net_Proxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Proxy;
+ class Proxy$Type;
+ class SocketAddress;
+ }
+ }
+}
+
+class java::net::Proxy : public ::java::lang::Object
+{
+
+public:
+ Proxy(::java::net::Proxy$Type *, ::java::net::SocketAddress *);
+ virtual ::java::net::SocketAddress * address();
+ virtual ::java::net::Proxy$Type * type();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ static ::java::net::Proxy * NO_PROXY;
+private:
+ ::java::net::Proxy$Type * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type__;
+ ::java::net::SocketAddress * address__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_Proxy__
diff --git a/gcc-4.8/libjava/java/net/ProxySelector.h b/gcc-4.8/libjava/java/net/ProxySelector.h
new file mode 100644
index 000000000..62382ee58
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ProxySelector.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ProxySelector__
+#define __java_net_ProxySelector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ProxySelector;
+ class SocketAddress;
+ class URI;
+ }
+ }
+}
+
+class java::net::ProxySelector : public ::java::lang::Object
+{
+
+public:
+ ProxySelector();
+ static ::java::net::ProxySelector * getDefault();
+ static void setDefault(::java::net::ProxySelector *);
+ virtual void connectFailed(::java::net::URI *, ::java::net::SocketAddress *, ::java::io::IOException *) = 0;
+ virtual ::java::util::List * select(::java::net::URI *) = 0;
+private:
+ static ::java::net::ProxySelector * defaultSelector;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ProxySelector__
diff --git a/gcc-4.8/libjava/java/net/ResolverCache$Entry.h b/gcc-4.8/libjava/java/net/ResolverCache$Entry.h
new file mode 100644
index 000000000..22b5da83f
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ResolverCache$Entry.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ResolverCache$Entry__
+#define __java_net_ResolverCache$Entry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ResolverCache$Entry;
+ }
+ }
+}
+
+class java::net::ResolverCache$Entry : public ::java::lang::Object
+{
+
+public:
+ ResolverCache$Entry(::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ ::java::lang::Object * value;
+ jlong expires;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ResolverCache$Entry__
diff --git a/gcc-4.8/libjava/java/net/ResolverCache.h b/gcc-4.8/libjava/java/net/ResolverCache.h
new file mode 100644
index 000000000..d274d235c
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ResolverCache.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ResolverCache__
+#define __java_net_ResolverCache__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ResolverCache;
+ class ResolverCache$Entry;
+ }
+ }
+}
+
+class java::net::ResolverCache : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ResolverCache();
+private:
+ static jint getTTL(::java::lang::String *, jint);
+public:
+ static ::java::lang::String * getHostByAddr(JArray< jbyte > *);
+ static JArray< JArray< jbyte > * > * getHostByName(::java::lang::String *);
+private:
+ static ::java::lang::Object * makeHashableAddress(JArray< jbyte > *);
+ static ::java::net::ResolverCache$Entry * get(::java::lang::Object *);
+ static void put(::java::net::ResolverCache$Entry *);
+ static void reap();
+public: // actually package-private
+ static jint access$0();
+ static jint access$1();
+private:
+ static jint POSITIVE_TTL;
+ static jint NEGATIVE_TTL;
+ static ::java::util::HashMap * cache;
+ static ::java::util::LinkedList * killqueue;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ResolverCache__
diff --git a/gcc-4.8/libjava/java/net/ServerSocket.h b/gcc-4.8/libjava/java/net/ServerSocket.h
new file mode 100644
index 000000000..98c77c61b
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/ServerSocket.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_ServerSocket__
+#define __java_net_ServerSocket__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ class PlainSocketImpl;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class InetSocketAddress;
+ class ServerSocket;
+ class Socket;
+ class SocketAddress;
+ class SocketImpl;
+ class SocketImplFactory;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class ServerSocketChannel;
+ }
+ }
+ }
+}
+
+class java::net::ServerSocket : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ServerSocket(::gnu::java::net::PlainSocketImpl *);
+ virtual ::java::net::SocketImpl * getImpl();
+public:
+ ServerSocket();
+ ServerSocket(jint);
+ ServerSocket(jint, jint);
+ ServerSocket(jint, jint, ::java::net::InetAddress *);
+ virtual void bind(::java::net::SocketAddress *);
+ virtual void bind(::java::net::SocketAddress *, jint);
+ virtual ::java::net::InetAddress * getInetAddress();
+ virtual jint getLocalPort();
+ virtual ::java::net::SocketAddress * getLocalSocketAddress();
+ virtual ::java::net::Socket * accept();
+public: // actually protected
+ virtual void implAccept(::java::net::Socket *);
+public:
+ virtual void close();
+ virtual ::java::nio::channels::ServerSocketChannel * getChannel();
+ virtual jboolean isBound();
+ virtual jboolean isClosed();
+ virtual void setSoTimeout(jint);
+ virtual jint getSoTimeout();
+ virtual void setReuseAddress(jboolean);
+ virtual jboolean getReuseAddress();
+ virtual void setReceiveBufferSize(jint);
+ virtual jint getReceiveBufferSize();
+ virtual ::java::lang::String * toString();
+ static void setSocketFactory(::java::net::SocketImplFactory *);
+private:
+ static ::java::net::SocketImplFactory * factory;
+ ::java::net::SocketImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) impl;
+ ::java::net::InetSocketAddress * local;
+ jint port;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_ServerSocket__
diff --git a/gcc-4.8/libjava/java/net/Socket.h b/gcc-4.8/libjava/java/net/Socket.h
new file mode 100644
index 000000000..776d6fc47
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/Socket.h
@@ -0,0 +1,103 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_Socket__
+#define __java_net_Socket__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class Socket;
+ class SocketAddress;
+ class SocketImpl;
+ class SocketImplFactory;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class SocketChannel;
+ }
+ }
+ }
+}
+
+class java::net::Socket : public ::java::lang::Object
+{
+
+public:
+ Socket();
+public: // actually protected
+ Socket(::java::net::SocketImpl *);
+public:
+ Socket(::java::lang::String *, jint);
+ Socket(::java::net::InetAddress *, jint);
+ Socket(::java::lang::String *, jint, ::java::net::InetAddress *, jint);
+ Socket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint);
+ Socket(::java::lang::String *, jint, jboolean);
+ Socket(::java::net::InetAddress *, jint, jboolean);
+private:
+ Socket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint, jboolean);
+ ::java::net::SocketImpl * getImpl();
+public:
+ virtual void bind(::java::net::SocketAddress *);
+ virtual void connect(::java::net::SocketAddress *);
+ virtual void connect(::java::net::SocketAddress *, jint);
+ virtual ::java::net::InetAddress * getInetAddress();
+ virtual ::java::net::InetAddress * getLocalAddress();
+ virtual jint getPort();
+ virtual jint getLocalPort();
+ virtual ::java::net::SocketAddress * getLocalSocketAddress();
+ virtual ::java::net::SocketAddress * getRemoteSocketAddress();
+ virtual ::java::io::InputStream * getInputStream();
+ virtual ::java::io::OutputStream * getOutputStream();
+ virtual void setTcpNoDelay(jboolean);
+ virtual jboolean getTcpNoDelay();
+ virtual void setSoLinger(jboolean, jint);
+ virtual jint getSoLinger();
+ virtual void sendUrgentData(jint);
+ virtual void setOOBInline(jboolean);
+ virtual jboolean getOOBInline();
+ virtual void setSoTimeout(jint);
+ virtual jint getSoTimeout();
+ virtual void setSendBufferSize(jint);
+ virtual jint getSendBufferSize();
+ virtual void setReceiveBufferSize(jint);
+ virtual jint getReceiveBufferSize();
+ virtual void setKeepAlive(jboolean);
+ virtual jboolean getKeepAlive();
+ virtual void close();
+ virtual ::java::lang::String * toString();
+ static void setSocketImplFactory(::java::net::SocketImplFactory *);
+ virtual void shutdownInput();
+ virtual void shutdownOutput();
+ virtual ::java::nio::channels::SocketChannel * getChannel();
+ virtual jboolean getReuseAddress();
+ virtual void setReuseAddress(jboolean);
+ virtual jint getTrafficClass();
+ virtual void setTrafficClass(jint);
+ virtual jboolean isConnected();
+ virtual jboolean isBound();
+ virtual jboolean isClosed();
+ virtual jboolean isInputShutdown();
+ virtual jboolean isOutputShutdown();
+public: // actually package-private
+ static ::java::net::SocketImplFactory * factory;
+ ::java::net::SocketImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) impl;
+ jboolean implCreated;
+ jboolean bound;
+private:
+ jboolean inputShutdown;
+ jboolean outputShutdown;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_Socket__
diff --git a/gcc-4.8/libjava/java/net/SocketAddress.h b/gcc-4.8/libjava/java/net/SocketAddress.h
new file mode 100644
index 000000000..42f0f21b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketAddress.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketAddress__
+#define __java_net_SocketAddress__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class SocketAddress;
+ }
+ }
+}
+
+class java::net::SocketAddress : public ::java::lang::Object
+{
+
+public:
+ SocketAddress();
+public: // actually package-private
+ static const jlong serialVersionUID = 5215720748342549866LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_SocketAddress__
diff --git a/gcc-4.8/libjava/java/net/SocketException.h b/gcc-4.8/libjava/java/net/SocketException.h
new file mode 100644
index 000000000..563e7f13b
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketException__
+#define __java_net_SocketException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class SocketException;
+ }
+ }
+}
+
+class java::net::SocketException : public ::java::io::IOException
+{
+
+public:
+ SocketException();
+ SocketException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -5935874303556886934LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_SocketException__
diff --git a/gcc-4.8/libjava/java/net/SocketImpl.h b/gcc-4.8/libjava/java/net/SocketImpl.h
new file mode 100644
index 000000000..0daf5146d
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketImpl.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketImpl__
+#define __java_net_SocketImpl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class SocketAddress;
+ class SocketImpl;
+ }
+ }
+}
+
+class java::net::SocketImpl : public ::java::lang::Object
+{
+
+public:
+ SocketImpl();
+public: // actually protected
+ virtual void create(jboolean) = 0;
+ virtual void connect(::java::lang::String *, jint) = 0;
+ virtual void connect(::java::net::InetAddress *, jint) = 0;
+ virtual void connect(::java::net::SocketAddress *, jint) = 0;
+ virtual void bind(::java::net::InetAddress *, jint) = 0;
+ virtual void listen(jint) = 0;
+ virtual void accept(::java::net::SocketImpl *) = 0;
+ virtual ::java::io::InputStream * getInputStream() = 0;
+ virtual ::java::io::OutputStream * getOutputStream() = 0;
+ virtual jint available() = 0;
+ virtual void close() = 0;
+ virtual ::java::io::FileDescriptor * getFileDescriptor();
+ virtual ::java::net::InetAddress * getInetAddress();
+ virtual jint getPort();
+ virtual jboolean supportsUrgentData();
+ virtual void sendUrgentData(jint) = 0;
+ virtual jint getLocalPort();
+public:
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ virtual void shutdownInput();
+ virtual void shutdownOutput();
+public:
+ virtual void setOption(jint, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getOption(jint) = 0;
+public: // actually protected
+ ::java::net::InetAddress * __attribute__((aligned(__alignof__( ::java::lang::Object)))) address;
+ ::java::io::FileDescriptor * fd;
+ jint localport;
+ jint port;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_SocketImpl__
diff --git a/gcc-4.8/libjava/java/net/SocketImplFactory.h b/gcc-4.8/libjava/java/net/SocketImplFactory.h
new file mode 100644
index 000000000..2089846df
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketImplFactory.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketImplFactory__
+#define __java_net_SocketImplFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class SocketImpl;
+ class SocketImplFactory;
+ }
+ }
+}
+
+class java::net::SocketImplFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::net::SocketImpl * createSocketImpl() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_net_SocketImplFactory__
diff --git a/gcc-4.8/libjava/java/net/SocketOptions.h b/gcc-4.8/libjava/java/net/SocketOptions.h
new file mode 100644
index 000000000..6a56d1346
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketOptions.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketOptions__
+#define __java_net_SocketOptions__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class SocketOptions;
+ }
+ }
+}
+
+class java::net::SocketOptions : public ::java::lang::Object
+{
+
+public:
+ virtual void setOption(jint, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getOption(jint) = 0;
+ static const jint SO_KEEPALIVE = 8;
+ static const jint SO_LINGER = 128;
+ static const jint SO_TIMEOUT = 4102;
+ static const jint SO_BINDADDR = 15;
+ static const jint SO_SNDBUF = 4097;
+ static const jint SO_RCVBUF = 4098;
+ static const jint SO_REUSEADDR = 4;
+ static const jint SO_BROADCAST = 32;
+ static const jint SO_OOBINLINE = 4099;
+ static const jint TCP_NODELAY = 1;
+ static const jint IP_MULTICAST_IF = 16;
+ static const jint IP_MULTICAST_IF2 = 31;
+ static const jint IP_MULTICAST_LOOP = 18;
+ static const jint IP_TOS = 3;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_net_SocketOptions__
diff --git a/gcc-4.8/libjava/java/net/SocketPermission.h b/gcc-4.8/libjava/java/net/SocketPermission.h
new file mode 100644
index 000000000..dae8e83af
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketPermission.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketPermission__
+#define __java_net_SocketPermission__
+
+#pragma interface
+
+#include <java/security/Permission.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class SocketPermission;
+ }
+ namespace security
+ {
+ class Permission;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::net::SocketPermission : public ::java::security::Permission
+{
+
+public:
+ SocketPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static ::java::lang::String * processHostport(::java::lang::String *);
+ void setHostPort(::java::lang::String *);
+ void setActions(::java::lang::String *);
+ void setAction(::java::lang::String *);
+public:
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * getActions();
+ ::java::security::PermissionCollection * newPermissionCollection();
+private:
+ JArray< ::java::net::InetAddress * > * getAddresses();
+ ::java::lang::String * getCanonicalHostName();
+public:
+ jboolean implies(::java::security::Permission *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public: // actually package-private
+ static const jlong serialVersionUID = -7204263841984476862LL;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::security::Permission)))) hostname;
+ ::java::net::InetAddress * address;
+ jint minport;
+ jint maxport;
+ static const jint MIN_PORT = 0;
+ static const jint MAX_PORT = 2147483647;
+ ::java::lang::String * actions;
+ jint actionmask;
+ static JArray< ::java::lang::String * > * ACTIONS;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_SocketPermission__
diff --git a/gcc-4.8/libjava/java/net/SocketTimeoutException.h b/gcc-4.8/libjava/java/net/SocketTimeoutException.h
new file mode 100644
index 000000000..a32424b91
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/SocketTimeoutException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_SocketTimeoutException__
+#define __java_net_SocketTimeoutException__
+
+#pragma interface
+
+#include <java/io/InterruptedIOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class SocketTimeoutException;
+ }
+ }
+}
+
+class java::net::SocketTimeoutException : public ::java::io::InterruptedIOException
+{
+
+public:
+ SocketTimeoutException();
+ SocketTimeoutException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8846654841826352300LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_SocketTimeoutException__
diff --git a/gcc-4.8/libjava/java/net/URI.h b/gcc-4.8/libjava/java/net/URI.h
new file mode 100644
index 000000000..143b35a74
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URI.h
@@ -0,0 +1,144 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URI__
+#define __java_net_URI__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class URI;
+ class URL;
+ }
+ }
+}
+
+class java::net::URI : public ::java::lang::Object
+{
+
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static ::java::lang::String * getURIGroup(::java::util::regex::Matcher *, jint);
+ void parseURI(::java::lang::String *);
+ static ::java::lang::String * unquote(::java::lang::String *);
+ static ::java::lang::String * quote(::java::lang::String *);
+ static ::java::lang::String * quoteAuthority(::java::lang::String *);
+ static ::java::lang::String * quote(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::String * quoteHost(::java::lang::String *);
+ static ::java::lang::String * quotePath(::java::lang::String *);
+ static ::java::lang::String * quoteUserInfo(::java::lang::String *);
+public:
+ URI(::java::lang::String *);
+ URI(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ URI(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ URI(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ URI(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ static ::java::net::URI * create(::java::lang::String *);
+ ::java::net::URI * parseServerAuthority();
+ ::java::net::URI * normalize();
+private:
+ ::java::lang::String * normalizePath(::java::lang::String *);
+ void removeLastSegment(::gnu::java::lang::CPStringBuilder *);
+public:
+ ::java::net::URI * resolve(::java::net::URI *);
+ ::java::net::URI * resolve(::java::lang::String *);
+ ::java::net::URI * relativize(::java::net::URI *);
+ ::java::net::URL * toURL();
+ ::java::lang::String * getScheme();
+ jboolean isAbsolute();
+ jboolean isOpaque();
+ ::java::lang::String * getRawSchemeSpecificPart();
+ ::java::lang::String * getSchemeSpecificPart();
+ ::java::lang::String * getRawAuthority();
+ ::java::lang::String * getAuthority();
+ ::java::lang::String * getRawUserInfo();
+ ::java::lang::String * getUserInfo();
+ ::java::lang::String * getHost();
+ jint getPort();
+ ::java::lang::String * getRawPath();
+ ::java::lang::String * getPath();
+ ::java::lang::String * getRawQuery();
+ ::java::lang::String * getQuery();
+ ::java::lang::String * getRawFragment();
+ ::java::lang::String * getFragment();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ jint URI$compareTo(::java::net::URI *);
+private:
+ jint compareFragments(::java::net::URI *);
+public:
+ ::java::lang::String * toString();
+ ::java::lang::String * toASCIIString();
+private:
+ static ::java::lang::String * escapeCharacters(::java::lang::String *);
+public:
+ jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ static const jlong serialVersionUID = -6052424284110960213LL;
+private:
+ static ::java::lang::String * URI_REGEXP;
+ static ::java::lang::String * AUTHORITY_REGEXP;
+ static ::java::lang::String * RFC2396_DIGIT;
+ static ::java::lang::String * RFC2396_LOWALPHA;
+ static ::java::lang::String * RFC2396_UPALPHA;
+ static ::java::lang::String * RFC2396_ALPHA;
+ static ::java::lang::String * RFC2396_ALPHANUM;
+ static ::java::lang::String * RFC3986_UNRESERVED;
+ static ::java::lang::String * RFC3986_SUBDELIMS;
+ static ::java::lang::String * RFC3986_REG_NAME;
+ static ::java::lang::String * RFC3986_PCHAR;
+ static ::java::lang::String * RFC3986_SEGMENT;
+ static ::java::lang::String * RFC3986_PATH_SEGMENTS;
+ static ::java::lang::String * RFC3986_SSP;
+ static ::java::lang::String * RFC3986_HOST;
+ static ::java::lang::String * RFC3986_USERINFO;
+ static const jint SCHEME_GROUP = 2;
+ static const jint SCHEME_SPEC_PART_GROUP = 3;
+ static const jint AUTHORITY_GROUP = 5;
+ static const jint PATH_GROUP = 6;
+ static const jint QUERY_GROUP = 8;
+ static const jint FRAGMENT_GROUP = 10;
+ static const jint AUTHORITY_USERINFO_GROUP = 2;
+ static const jint AUTHORITY_HOST_GROUP = 3;
+ static const jint AUTHORITY_PORT_GROUP = 5;
+ static ::java::util::regex::Pattern * URI_PATTERN;
+ static ::java::util::regex::Pattern * AUTHORITY_PATTERN;
+ static ::java::lang::String * HEX;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) scheme;
+ ::java::lang::String * rawSchemeSpecificPart;
+ ::java::lang::String * schemeSpecificPart;
+ ::java::lang::String * rawAuthority;
+ ::java::lang::String * authority;
+ ::java::lang::String * rawUserInfo;
+ ::java::lang::String * userInfo;
+ ::java::lang::String * rawHost;
+ ::java::lang::String * host;
+ jint port;
+ ::java::lang::String * rawPath;
+ ::java::lang::String * path;
+ ::java::lang::String * rawQuery;
+ ::java::lang::String * query;
+ ::java::lang::String * rawFragment;
+ ::java::lang::String * fragment;
+ ::java::lang::String * string;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URI__
diff --git a/gcc-4.8/libjava/java/net/URISyntaxException.h b/gcc-4.8/libjava/java/net/URISyntaxException.h
new file mode 100644
index 000000000..93f1a4e66
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URISyntaxException.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URISyntaxException__
+#define __java_net_URISyntaxException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URISyntaxException;
+ }
+ }
+}
+
+class java::net::URISyntaxException : public ::java::lang::Exception
+{
+
+public:
+ URISyntaxException(::java::lang::String *, ::java::lang::String *);
+ URISyntaxException(::java::lang::String *, ::java::lang::String *, jint);
+ virtual ::java::lang::String * getInput();
+ virtual ::java::lang::String * getReason();
+ virtual jint getIndex();
+ virtual ::java::lang::String * getMessage();
+private:
+ static const jlong serialVersionUID = 2137979680897488891LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) input;
+ jint index;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URISyntaxException__
diff --git a/gcc-4.8/libjava/java/net/URL$1.h b/gcc-4.8/libjava/java/net/URL$1.h
new file mode 100644
index 000000000..c2867dc07
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URL$1.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URL$1__
+#define __java_net_URL$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL$1;
+ }
+ }
+}
+
+class java::net::URL$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ URL$1();
+public:
+ virtual ::java::lang::ClassLoader * URL$1$run();
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URL$1__
diff --git a/gcc-4.8/libjava/java/net/URL.h b/gcc-4.8/libjava/java/net/URL.h
new file mode 100644
index 000000000..f0553c968
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URL.h
@@ -0,0 +1,92 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URL__
+#define __java_net_URL__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URI;
+ class URL;
+ class URLConnection;
+ class URLStreamHandler;
+ class URLStreamHandlerFactory;
+ }
+ }
+}
+
+class java::net::URL : public ::java::lang::Object
+{
+
+public:
+ URL(::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *);
+ URL(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ URL(::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::net::URLStreamHandler *);
+ URL(::java::lang::String *);
+ URL(::java::net::URL *, ::java::lang::String *);
+ URL(::java::net::URL *, ::java::lang::String *, ::java::net::URLStreamHandler *);
+private:
+ URL(::java::net::URL *, ::java::lang::String *, ::java::net::URLStreamHandler *, jboolean);
+public:
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::Object * getContent();
+ ::java::lang::Object * getContent(JArray< ::java::lang::Class * > *);
+ ::java::lang::String * getFile();
+ ::java::lang::String * getPath();
+ ::java::lang::String * getAuthority();
+ ::java::lang::String * getHost();
+ jint getPort();
+ jint getDefaultPort();
+ ::java::lang::String * getProtocol();
+ ::java::lang::String * getRef();
+ ::java::lang::String * getUserInfo();
+ ::java::lang::String * getQuery();
+ jint hashCode();
+ ::java::net::URLConnection * openConnection();
+ ::java::io::InputStream * openStream();
+ jboolean sameFile(::java::net::URL *);
+public: // actually protected
+ void set(::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *);
+ void set(::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+public:
+ static void setURLStreamHandlerFactory(::java::net::URLStreamHandlerFactory *);
+ ::java::lang::String * toExternalForm();
+ ::java::lang::String * toString();
+private:
+ static ::java::net::URLStreamHandler * getURLStreamHandler(::java::lang::String *);
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ ::java::net::URI * toURI();
+private:
+ static ::java::lang::String * DEFAULT_SEARCH_PATH;
+ static ::java::lang::ClassLoader * systemClassLoader;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) protocol;
+ ::java::lang::String * authority;
+ ::java::lang::String * host;
+ ::java::lang::String * userInfo;
+ jint port;
+ ::java::lang::String * file;
+ ::java::lang::String * ref;
+ jint hashCode__;
+public: // actually package-private
+ ::java::net::URLStreamHandler * ph;
+private:
+ static ::java::net::URLStreamHandlerFactory * factory;
+ static const jlong serialVersionUID = -7627629688361524110LL;
+ static ::java::util::HashMap * ph_cache;
+ static jboolean cache_handlers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URL__
diff --git a/gcc-4.8/libjava/java/net/URLClassLoader$1.h b/gcc-4.8/libjava/java/net/URLClassLoader$1.h
new file mode 100644
index 000000000..5eb7da2dc
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLClassLoader$1.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLClassLoader$1__
+#define __java_net_URLClassLoader$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URLClassLoader;
+ class URLClassLoader$1;
+ }
+ namespace security
+ {
+ class CodeSource;
+ }
+ }
+}
+
+class java::net::URLClassLoader$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ URLClassLoader$1(::java::net::URLClassLoader *, ::java::lang::String *, JArray< jbyte > *, ::java::security::CodeSource *);
+public:
+ virtual ::java::lang::Class * URLClassLoader$1$run();
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::net::URLClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ ::java::lang::String * val$className;
+ JArray< jbyte > * val$classData;
+ ::java::security::CodeSource * val$source;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLClassLoader$1__
diff --git a/gcc-4.8/libjava/java/net/URLClassLoader$2.h b/gcc-4.8/libjava/java/net/URLClassLoader$2.h
new file mode 100644
index 000000000..165bfd77d
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLClassLoader$2.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLClassLoader$2__
+#define __java_net_URLClassLoader$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URLClassLoader;
+ class URLClassLoader$2;
+ }
+ }
+}
+
+class java::net::URLClassLoader$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ URLClassLoader$2(::java::lang::ClassLoader *, ::java::lang::Object *);
+public:
+ virtual ::java::net::URLClassLoader * URLClassLoader$2$run();
+ virtual ::java::lang::Object * run();
+private:
+ ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$parent;
+ ::java::lang::Object * val$securityContext;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLClassLoader$2__
diff --git a/gcc-4.8/libjava/java/net/URLClassLoader.h b/gcc-4.8/libjava/java/net/URLClassLoader.h
new file mode 100644
index 000000000..2e5f15c9b
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLClassLoader.h
@@ -0,0 +1,91 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLClassLoader__
+#define __java_net_URLClassLoader__
+
+#pragma interface
+
+#include <java/security/SecureClassLoader.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace net
+ {
+ namespace loader
+ {
+ class Resource;
+ class URLStreamHandlerCache;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ class URLClassLoader;
+ class URLStreamHandlerFactory;
+ }
+ namespace security
+ {
+ class AccessControlContext;
+ class CodeSource;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::net::URLClassLoader : public ::java::security::SecureClassLoader
+{
+
+public:
+ URLClassLoader(JArray< ::java::net::URL * > *);
+ URLClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *);
+public: // actually package-private
+ URLClassLoader(::java::lang::ClassLoader *, ::java::security::AccessControlContext *);
+public:
+ URLClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *, ::java::net::URLStreamHandlerFactory *);
+public: // actually protected
+ virtual void addURL(::java::net::URL *);
+private:
+ void addURLImpl(::java::net::URL *);
+ void addURLs(JArray< ::java::net::URL * > *);
+ ::java::lang::String * getAttributeValue(::java::util::jar::Attributes$Name *, ::java::util::jar::Attributes *, ::java::util::jar::Attributes *);
+public: // actually protected
+ virtual ::java::lang::Package * definePackage(::java::lang::String *, ::java::util::jar::Manifest *, ::java::net::URL *);
+ virtual ::java::lang::Class * findClass(::java::lang::String *);
+public:
+ virtual ::java::lang::String * toString();
+private:
+ ::gnu::java::net::loader::Resource * findURLResource(::java::lang::String *);
+public:
+ virtual ::java::net::URL * findResource(::java::lang::String *);
+ virtual ::java::util::Enumeration * findResources(::java::lang::String *);
+public: // actually protected
+ virtual ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *);
+public:
+ virtual JArray< ::java::net::URL * > * getURLs();
+ static ::java::net::URLClassLoader * newInstance(JArray< ::java::net::URL * > *);
+ static ::java::net::URLClassLoader * newInstance(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *);
+public: // actually package-private
+ static ::java::lang::Class * access$0(::java::net::URLClassLoader *, ::java::lang::String *, JArray< jbyte > *, jint, jint, ::java::security::CodeSource *);
+private:
+ static ::gnu::java::net::loader::URLStreamHandlerCache * factoryCache;
+ static ::java::lang::String * URL_LOADER_PREFIX;
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::security::SecureClassLoader)))) urls;
+ ::java::util::Vector * urlinfos;
+ ::java::net::URLStreamHandlerFactory * factory;
+ ::java::security::AccessControlContext * securityContext;
+ ::java::lang::String * thisString;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLClassLoader__
diff --git a/gcc-4.8/libjava/java/net/URLConnection.h b/gcc-4.8/libjava/java/net/URLConnection.h
new file mode 100644
index 000000000..c40d9598b
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLConnection.h
@@ -0,0 +1,117 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLConnection__
+#define __java_net_URLConnection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ContentHandler;
+ class ContentHandlerFactory;
+ class FileNameMap;
+ class URL;
+ class URLConnection;
+ }
+ namespace security
+ {
+ class Permission;
+ }
+ namespace text
+ {
+ class ParsePosition;
+ class SimpleDateFormat;
+ }
+ }
+}
+
+class java::net::URLConnection : public ::java::lang::Object
+{
+
+public: // actually protected
+ URLConnection(::java::net::URL *);
+public:
+ virtual void connect() = 0;
+ virtual ::java::net::URL * getURL();
+ virtual jint getConnectTimeout();
+ virtual void setConnectTimeout(jint);
+ virtual jint getReadTimeout();
+ virtual void setReadTimeout(jint);
+ virtual jint getContentLength();
+ virtual ::java::lang::String * getContentType();
+ virtual ::java::lang::String * getContentEncoding();
+ virtual jlong getExpiration();
+ virtual jlong getDate();
+ virtual jlong getLastModified();
+ virtual ::java::lang::String * getHeaderField(jint);
+ virtual ::java::lang::String * getHeaderField(::java::lang::String *);
+ virtual ::java::util::Map * getHeaderFields();
+ virtual jint getHeaderFieldInt(::java::lang::String *, jint);
+ virtual jlong getHeaderFieldDate(::java::lang::String *, jlong);
+ virtual ::java::lang::String * getHeaderFieldKey(jint);
+ virtual ::java::lang::Object * getContent();
+ virtual ::java::lang::Object * getContent(JArray< ::java::lang::Class * > *);
+ virtual ::java::security::Permission * getPermission();
+ virtual ::java::io::InputStream * getInputStream();
+ virtual ::java::io::OutputStream * getOutputStream();
+ virtual ::java::lang::String * toString();
+ virtual void setDoInput(jboolean);
+ virtual jboolean getDoInput();
+ virtual void setDoOutput(jboolean);
+ virtual jboolean getDoOutput();
+ virtual void setAllowUserInteraction(jboolean);
+ virtual jboolean getAllowUserInteraction();
+ static void setDefaultAllowUserInteraction(jboolean);
+ static jboolean getDefaultAllowUserInteraction();
+ virtual void setUseCaches(jboolean);
+ virtual jboolean getUseCaches();
+ virtual void setIfModifiedSince(jlong);
+ virtual jlong getIfModifiedSince();
+ virtual jboolean getDefaultUseCaches();
+ virtual void setDefaultUseCaches(jboolean);
+ virtual void setRequestProperty(::java::lang::String *, ::java::lang::String *);
+ virtual void addRequestProperty(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getRequestProperty(::java::lang::String *);
+ virtual ::java::util::Map * getRequestProperties();
+ static void setDefaultRequestProperty(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::String * getDefaultRequestProperty(::java::lang::String *);
+ static void setContentHandlerFactory(::java::net::ContentHandlerFactory *);
+ static ::java::lang::String * guessContentTypeFromName(::java::lang::String *);
+ static ::java::lang::String * guessContentTypeFromStream(::java::io::InputStream *);
+ static ::java::net::FileNameMap * getFileNameMap();
+ static void setFileNameMap(::java::net::FileNameMap *);
+private:
+ ::java::net::ContentHandler * getContentHandler(::java::lang::String *);
+ static void initializeDateFormats();
+ static ::java::net::FileNameMap * fileNameMap;
+ static ::java::net::ContentHandlerFactory * factory;
+ static jboolean defaultAllowUserInteraction;
+ static jboolean defaultUseCaches;
+ static ::java::net::ContentHandlerFactory * defaultFactory;
+public: // actually protected
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) allowUserInteraction;
+ jboolean connected;
+ jboolean doInput;
+ jboolean doOutput;
+ jboolean useCaches;
+ jlong ifModifiedSince;
+ ::java::net::URL * url;
+private:
+ static JArray< ::java::text::SimpleDateFormat * > * dateFormats;
+ static jboolean dateformats_initialized;
+ jint connectTimeout;
+ jint readTimeout;
+ ::java::text::ParsePosition * position;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLConnection__
diff --git a/gcc-4.8/libjava/java/net/URLDecoder.h b/gcc-4.8/libjava/java/net/URLDecoder.h
new file mode 100644
index 000000000..a6586cf74
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLDecoder.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLDecoder__
+#define __java_net_URLDecoder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URLDecoder;
+ }
+ }
+}
+
+class java::net::URLDecoder : public ::java::lang::Object
+{
+
+public:
+ URLDecoder();
+ static ::java::lang::String * decode(::java::lang::String *);
+ static ::java::lang::String * decode(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLDecoder__
diff --git a/gcc-4.8/libjava/java/net/URLEncoder.h b/gcc-4.8/libjava/java/net/URLEncoder.h
new file mode 100644
index 000000000..87b3c574f
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLEncoder.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLEncoder__
+#define __java_net_URLEncoder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URLEncoder;
+ }
+ }
+}
+
+class java::net::URLEncoder : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::String * encode(::java::lang::String *);
+ static ::java::lang::String * encode(::java::lang::String *, ::java::lang::String *);
+private:
+ static jboolean isSafe(jchar);
+ URLEncoder();
+ static ::java::lang::String * hex;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLEncoder__
diff --git a/gcc-4.8/libjava/java/net/URLStreamHandler.h b/gcc-4.8/libjava/java/net/URLStreamHandler.h
new file mode 100644
index 000000000..ebcd44159
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLStreamHandler.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLStreamHandler__
+#define __java_net_URLStreamHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class InetAddress;
+ class URL;
+ class URLConnection;
+ class URLStreamHandler;
+ }
+ }
+}
+
+class java::net::URLStreamHandler : public ::java::lang::Object
+{
+
+public:
+ URLStreamHandler();
+public: // actually protected
+ virtual ::java::net::URLConnection * openConnection(::java::net::URL *) = 0;
+ virtual void parseURL(::java::net::URL *, ::java::lang::String *, jint, jint);
+private:
+ static ::java::lang::String * canonicalizeFilename(::java::lang::String *);
+public: // actually protected
+ virtual jboolean sameFile(::java::net::URL *, ::java::net::URL *);
+ virtual void setURL(::java::net::URL *, ::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *);
+ virtual void setURL(::java::net::URL *, ::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ virtual jboolean equals(::java::net::URL *, ::java::net::URL *);
+ virtual jboolean hostsEqual(::java::net::URL *, ::java::net::URL *);
+ virtual ::java::net::InetAddress * getHostAddress(::java::net::URL *);
+ virtual jint getDefaultPort();
+ virtual jint hashCode(::java::net::URL *);
+ virtual ::java::lang::String * toExternalForm(::java::net::URL *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_URLStreamHandler__
diff --git a/gcc-4.8/libjava/java/net/URLStreamHandlerFactory.h b/gcc-4.8/libjava/java/net/URLStreamHandlerFactory.h
new file mode 100644
index 000000000..dde45e239
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/URLStreamHandlerFactory.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_URLStreamHandlerFactory__
+#define __java_net_URLStreamHandlerFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URLStreamHandler;
+ class URLStreamHandlerFactory;
+ }
+ }
+}
+
+class java::net::URLStreamHandlerFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::net::URLStreamHandler * createURLStreamHandler(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_net_URLStreamHandlerFactory__
diff --git a/gcc-4.8/libjava/java/net/UnknownHostException.h b/gcc-4.8/libjava/java/net/UnknownHostException.h
new file mode 100644
index 000000000..965d439f3
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/UnknownHostException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_UnknownHostException__
+#define __java_net_UnknownHostException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class UnknownHostException;
+ }
+ }
+}
+
+class java::net::UnknownHostException : public ::java::io::IOException
+{
+
+public:
+ UnknownHostException();
+ UnknownHostException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4639126076052875403LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_UnknownHostException__
diff --git a/gcc-4.8/libjava/java/net/UnknownServiceException.h b/gcc-4.8/libjava/java/net/UnknownServiceException.h
new file mode 100644
index 000000000..1bdc8021c
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/UnknownServiceException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_UnknownServiceException__
+#define __java_net_UnknownServiceException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class UnknownServiceException;
+ }
+ }
+}
+
+class java::net::UnknownServiceException : public ::java::io::IOException
+{
+
+public:
+ UnknownServiceException();
+ UnknownServiceException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -4169033248853639508LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_UnknownServiceException__
diff --git a/gcc-4.8/libjava/java/net/VMInetAddress.h b/gcc-4.8/libjava/java/net/VMInetAddress.h
new file mode 100644
index 000000000..e093e2c2e
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/VMInetAddress.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_VMInetAddress__
+#define __java_net_VMInetAddress__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class VMInetAddress;
+ }
+ }
+}
+
+class java::net::VMInetAddress : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMInetAddress();
+public:
+ static ::java::lang::String * getLocalHostname();
+ static JArray< jbyte > * lookupInaddrAny();
+ static ::java::lang::String * getHostByAddr(JArray< jbyte > *);
+ static JArray< JArray< jbyte > * > * getHostByName(::java::lang::String *);
+ static JArray< jbyte > * aton(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_VMInetAddress__
diff --git a/gcc-4.8/libjava/java/net/VMInetAddress.java b/gcc-4.8/libjava/java/net/VMInetAddress.java
new file mode 100644
index 000000000..a99c216b9
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/VMInetAddress.java
@@ -0,0 +1,97 @@
+/* VMInetAddress.java -- Class to model an Internet address
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.net;
+
+import gnu.classpath.Configuration;
+
+import java.io.Serializable;
+
+class VMInetAddress implements Serializable
+{
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ System.loadLibrary("javanet");
+ }
+
+ /**
+ * This method looks up the hostname of the local machine
+ * we are on. If the actual hostname cannot be determined, then the
+ * value "localhost" will be used. This native method wrappers the
+ * "gethostname" function.
+ *
+ * @return The local hostname.
+ */
+ public static native String getLocalHostname();
+
+ /**
+ * Returns the value of the special address INADDR_ANY
+ */
+ public static native byte[] lookupInaddrAny() throws UnknownHostException;
+
+ /**
+ * This method returns the hostname for a given IP address. It will
+ * throw an UnknownHostException if the hostname cannot be determined.
+ *
+ * @param ip The IP address as a byte array
+ *
+ * @return The hostname
+ *
+ * @exception UnknownHostException If the reverse lookup fails
+ */
+ public static native String getHostByAddr(byte[] ip)
+ throws UnknownHostException;
+
+ /**
+ * Returns a list of all IP addresses for a given hostname. Will throw
+ * an UnknownHostException if the hostname cannot be resolved.
+ */
+ public static native byte[][] getHostByName(String hostname)
+ throws UnknownHostException;
+
+ /**
+ * Return the IP address represented by a literal address.
+ * Will return null if the literal address is not valid.
+ *
+ * @param address the name of the host
+ *
+ * @return The IP address as a byte array
+ */
+ public static native byte[] aton(String address);
+}
diff --git a/gcc-4.8/libjava/java/net/VMNetworkInterface.h b/gcc-4.8/libjava/java/net/VMNetworkInterface.h
new file mode 100644
index 000000000..792c5337a
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/VMNetworkInterface.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_VMNetworkInterface__
+#define __java_net_VMNetworkInterface__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class VMNetworkInterface;
+ }
+ }
+}
+
+class java::net::VMNetworkInterface : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMNetworkInterface();
+public:
+ static ::java::util::Vector * getInterfaces();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_VMNetworkInterface__
diff --git a/gcc-4.8/libjava/java/net/VMNetworkInterface.java b/gcc-4.8/libjava/java/net/VMNetworkInterface.java
new file mode 100644
index 000000000..af71ce294
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/VMNetworkInterface.java
@@ -0,0 +1,66 @@
+/* VMNetworkInterface.java --
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.net;
+
+import gnu.classpath.Configuration;
+
+import java.util.Enumeration;
+import java.util.Vector;
+
+/**
+ * This class models a network interface on the host computer. A network
+ * interface contains a name (typically associated with a specific
+ * hardware adapter) and a list of addresses that are bound to it.
+ * For example, an ethernet interface may be named "eth0" and have the
+ * address 192.168.1.101 assigned to it.
+ *
+ * @author Michael Koch (konqueror@gmx.de)
+ * @since 1.4
+ */
+final class VMNetworkInterface
+{
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ System.loadLibrary("javanet");
+ }
+
+ public static native Vector getInterfaces()
+ throws SocketException;
+}
diff --git a/gcc-4.8/libjava/java/net/VMURLConnection.h b/gcc-4.8/libjava/java/net/VMURLConnection.h
new file mode 100644
index 000000000..0c0828ae4
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/VMURLConnection.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_net_VMURLConnection__
+#define __java_net_VMURLConnection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class VMURLConnection;
+ }
+ }
+}
+
+class java::net::VMURLConnection : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMURLConnection();
+private:
+ static void init();
+ static ::java::lang::String * guessContentTypeFromBuffer(JArray< jbyte > *, jint);
+public: // actually package-private
+ static ::java::lang::String * guessContentTypeFromStream(::java::io::InputStream *);
+public:
+ static const jint LENGTH = 1024;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_net_VMURLConnection__
diff --git a/gcc-4.8/libjava/java/net/VMURLConnection.java b/gcc-4.8/libjava/java/net/VMURLConnection.java
new file mode 100644
index 000000000..19bf5814e
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/VMURLConnection.java
@@ -0,0 +1,79 @@
+/* VMURLConnection - VM code for URLConnection
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.net;
+
+import gnu.classpath.Configuration;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+final class VMURLConnection
+{
+ public static final int LENGTH = 1024;
+
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ System.loadLibrary("javanet");
+ init();
+ }
+
+ private static native void init();
+
+ private static native String guessContentTypeFromBuffer(byte[] b, int valid);
+
+ /**
+ * This is called from URLConnection to guess the mime type of a
+ * stream. This method may return null to indicate that it could
+ * not guess a type.
+ */
+ static String guessContentTypeFromStream(InputStream is)
+ throws IOException
+ {
+ if (! is.markSupported())
+ return null;
+ is.mark(LENGTH);
+ byte[] bytes = new byte[LENGTH];
+ int r = is.read(bytes);
+ if (r < 0)
+ return null;
+ is.reset();
+ return guessContentTypeFromBuffer(bytes, r);
+ }
+}
diff --git a/gcc-4.8/libjava/java/net/natVMInetAddressNoNet.cc b/gcc-4.8/libjava/java/net/natVMInetAddressNoNet.cc
new file mode 100644
index 000000000..fd8303bbe
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMInetAddressNoNet.cc
@@ -0,0 +1,40 @@
+/* Copyright (C) 2003, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <stddef.h>
+
+jstring
+java::net::VMInetAddress::getLocalHostname ()
+{
+ return NULL;
+}
+
+jbyteArray
+java::net::VMInetAddress::lookupInaddrAny ()
+{
+ return NULL;
+}
+
+jstring
+java::net::VMInetAddress::getHostByAddr (jbyteArray addr)
+{
+ return NULL;
+}
+
+JArray<jbyteArray> *
+java::net::VMInetAddress::getHostByName (jstring host)
+{
+ return NULL;
+}
+
+jbyteArray
+java::net::VMInetAddress::aton (jstring host)
+{
+ return NULL;
+}
diff --git a/gcc-4.8/libjava/java/net/natVMInetAddressPosix.cc b/gcc-4.8/libjava/java/net/natVMInetAddressPosix.cc
new file mode 100644
index 000000000..bc25f3654
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMInetAddressPosix.cc
@@ -0,0 +1,304 @@
+/* Copyright (C) 2003, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <string.h>
+#include <errno.h>
+
+#include <sys/param.h>
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/net/VMInetAddress.h>
+#include <java/net/UnknownHostException.h>
+
+#if defined(HAVE_UNAME) && ! defined(HAVE_GETHOSTNAME)
+#include <sys/utsname.h>
+#endif
+
+#ifndef HAVE_GETHOSTNAME_DECL
+extern "C" int gethostname (char *name, int namelen);
+#endif
+
+jstring
+java::net::VMInetAddress::getLocalHostname ()
+{
+ char *chars;
+#ifdef HAVE_GETHOSTNAME
+#ifdef MAXHOSTNAMELEN
+ char buffer[MAXHOSTNAMELEN];
+ if (gethostname (buffer, MAXHOSTNAMELEN))
+ return NULL;
+ chars = buffer;
+#else
+ size_t size = 256;
+ while (1) {
+ char buffer[size];
+ if (!gethostname (buffer, size-1))
+ {
+ buffer[size-1] = 0;
+ return JvNewStringUTF (buffer);
+ }
+ else if (errno != ENAMETOOLONG)
+ return NULL;
+ size *= 2;
+ }
+#endif
+#elif HAVE_UNAME
+ struct utsname stuff;
+ if (uname (&stuff) != 0)
+ return NULL;
+ chars = stuff.nodename;
+#else
+ return NULL;
+#endif
+ // It is admittedly non-optimal to convert the hostname to Unicode
+ // only to convert it back in getByName, but simplicity wins.
+ return JvNewStringUTF (chars);
+}
+
+jbyteArray
+java::net::VMInetAddress::lookupInaddrAny ()
+{
+#if ! HAVE_IN_ADDR_T
+ typedef jint in_addr_t;
+#endif
+ in_addr_t laddr = INADDR_ANY;
+ char *bytes = (char *) &laddr;
+ int blen = sizeof (laddr);
+ jbyteArray result = JvNewByteArray (blen);
+ memcpy (elements (result), bytes, blen);
+ return result;
+}
+
+jstring
+java::net::VMInetAddress::getHostByAddr (jbyteArray addr)
+{
+ struct hostent *hptr = NULL;
+#ifdef HAVE_GETHOSTBYADDR_R
+ struct hostent hent_r;
+#if HAVE_STRUCT_HOSTENT_DATA
+ struct hostent_data fixed_buffer, *buffer_r = &fixed_buffer;
+#else
+#ifdef __GLIBC__
+ // FIXME: in glibc, gethostbyname_r returns NETDB_INTERNAL to herr and
+ // ERANGE to errno if the buffer size is too small, rather than what is
+ // expected here. We work around this by setting a bigger buffer size and
+ // hoping that it is big enough.
+ char fixed_buffer[1024];
+#else
+ char fixed_buffer[200];
+#endif /* __GLIBC__ */
+ char *buffer_r = fixed_buffer;
+ int size_r = sizeof (fixed_buffer);
+#endif /* HAVE_STRUCT_HOSTENT_DATA */
+#endif /* HAVE_GETHOSTBYADDR_R */
+
+ char *bytes = (char*) elements (addr);
+ int len = addr->length;
+ int type;
+ char *val;
+ if (len == 4)
+ {
+ val = bytes;
+ type = AF_INET;
+ }
+#ifdef HAVE_INET6
+ else if (len == 16)
+ {
+ val = (char *) &bytes;
+ type = AF_INET6;
+ }
+#endif /* HAVE_INET6 */
+ else
+ JvFail ("unrecognized size");
+
+#ifdef HAVE_GETHOSTBYADDR_R
+ while (true)
+ {
+ int ok;
+#if HAVE_STRUCT_HOSTENT_DATA
+ ok = ! gethostbyaddr_r (val, len, type, &hent_r, buffer_r);
+#else
+ int herr = 0;
+#ifdef GETHOSTBYADDR_R_RETURNS_INT
+ ok = ! gethostbyaddr_r (val, len, type, &hent_r,
+ buffer_r, size_r, &hptr, &herr);
+#else
+ hptr = gethostbyaddr_r (val, len, type, &hent_r,
+ buffer_r, size_r, &herr);
+ ok = hptr != NULL;
+#endif /* GETHOSTBYADDR_R_RETURNS_INT */
+ if (! ok && herr == ERANGE)
+ {
+ size_r *= 2;
+ buffer_r = (char *) _Jv_AllocBytes (size_r);
+ }
+ else
+#endif /* HAVE_STRUCT_HOSTENT_DATA */
+ break;
+ }
+#else /* HAVE_GETHOSTBYADDR_R */
+ // FIXME: this is insufficient if some other piece of code calls
+ // this gethostbyaddr.
+ JvSynchronize sync (&java::net::VMInetAddress::class$);
+ hptr = gethostbyaddr (val, len, type);
+#endif /* HAVE_GETHOSTBYADDR_R */
+
+ if (hptr == NULL)
+ throw new java::net::UnknownHostException ();
+
+ return JvNewStringUTF (hptr->h_name);
+}
+
+JArray<jbyteArray> *
+java::net::VMInetAddress::getHostByName (jstring host)
+{
+ struct hostent *hptr = NULL;
+#ifdef HAVE_GETHOSTBYNAME_R
+ struct hostent hent_r;
+#if HAVE_STRUCT_HOSTENT_DATA
+ struct hostent_data fixed_buffer, *buffer_r = &fixed_buffer;
+#else
+#ifdef __GLIBC__
+ // FIXME: in glibc, gethostbyname_r returns NETDB_INTERNAL to herr and
+ // ERANGE to errno if the buffer size is too small, rather than what is
+ // expected here. We work around this by setting a bigger buffer size and
+ // hoping that it is big enough.
+ char fixed_buffer[1024];
+#else
+ char fixed_buffer[200];
+#endif /* __GLIBC__ */
+ char *buffer_r = fixed_buffer;
+ int size_r = sizeof (fixed_buffer);
+#endif /* HAVE_STRUCT_HOSTENT_DATA */
+#endif /* HAVE_GETHOSTBYNAME_R */
+
+ char *hostname;
+ char buf[100];
+ int len = JvGetStringUTFLength(host);
+ if (len < 100)
+ hostname = buf;
+ else
+ hostname = (char *) _Jv_AllocBytes (len + 1);
+ JvGetStringUTFRegion (host, 0, host->length(), hostname);
+ buf[len] = '\0';
+#ifdef HAVE_GETHOSTBYNAME_R
+ while (true)
+ {
+ int ok;
+#if HAVE_STRUCT_HOSTENT_DATA
+ ok = ! gethostbyname_r (hostname, &hent_r, buffer_r);
+#else
+ int herr = 0;
+#ifdef GETHOSTBYNAME_R_RETURNS_INT
+ ok = ! gethostbyname_r (hostname, &hent_r, buffer_r, size_r,
+ &hptr, &herr);
+#else
+ hptr = gethostbyname_r (hostname, &hent_r, buffer_r, size_r, &herr);
+ ok = hptr != NULL;
+#endif /* GETHOSTNAME_R_RETURNS_INT */
+ if (! ok && herr == ERANGE)
+ {
+ size_r *= 2;
+ buffer_r = (char *) _Jv_AllocBytes (size_r);
+ }
+ else
+#endif /* HAVE_STRUCT_HOSTENT_DATA */
+ break;
+ }
+#else /* HAVE_GETHOSTBYNAME_R */
+ // FIXME: this is insufficient if some other piece of code calls
+ // this gethostbyname.
+ JvSynchronize sync (&java::net::VMInetAddress::class$);
+ hptr = gethostbyname (hostname);
+#endif /* HAVE_GETHOSTBYNAME_R */
+
+ if (hptr == NULL)
+ throw new java::net::UnknownHostException (host);
+
+ int count = 0;
+ char ** ptr = hptr->h_addr_list;
+ while (*ptr++) count++;
+
+ JArray<jbyteArray> *result =
+ (JArray<jbyteArray> *) _Jv_NewObjectArray (
+ count, _Jv_GetArrayClass(JvPrimClass(byte), NULL), NULL);
+ jbyteArray* addrs = elements (result);
+
+ for (int i = 0; i < count; i++)
+ {
+ addrs[i] = JvNewByteArray (hptr->h_length);
+ memcpy (elements (addrs[i]), hptr->h_addr_list[i], hptr->h_length);
+ }
+ return result;
+}
+
+jbyteArray
+java::net::VMInetAddress::aton (jstring host)
+{
+ char *hostname;
+ char buf[100];
+ int len = JvGetStringUTFLength(host);
+ if (len < 100)
+ hostname = buf;
+ else
+ hostname = (char *) _Jv_AllocBytes (len+1);
+ JvGetStringUTFRegion (host, 0, host->length(), hostname);
+ buf[len] = '\0';
+ char *bytes = NULL;
+ int blen = 0;
+#ifdef HAVE_INET_ATON
+ struct in_addr laddr;
+ if (inet_aton (hostname, &laddr))
+ {
+ bytes = (char *) &laddr;
+ blen = 4;
+ }
+#elif defined(HAVE_INET_ADDR)
+#if ! HAVE_IN_ADDR_T
+ typedef jint in_addr_t;
+#endif
+ in_addr_t laddr = inet_addr (hostname);
+ if (laddr != (in_addr_t)(-1))
+ {
+ bytes = (char *) &laddr;
+ blen = 4;
+ }
+#endif
+#if defined (HAVE_INET_PTON) && defined (HAVE_INET6)
+ char inet6_addr[16];
+ if (len != 0 && inet_pton (AF_INET6, hostname, inet6_addr) > 0)
+ {
+ bytes = inet6_addr;
+ blen = 16;
+ }
+#endif
+ if (blen == 0)
+ return NULL;
+ jbyteArray result = JvNewByteArray (blen);
+ memcpy (elements (result), bytes, blen);
+ return result;
+}
diff --git a/gcc-4.8/libjava/java/net/natVMInetAddressWin32.cc b/gcc-4.8/libjava/java/net/natVMInetAddressWin32.cc
new file mode 100644
index 000000000..259480faa
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMInetAddressWin32.cc
@@ -0,0 +1,121 @@
+/* Copyright (C) 2003, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#undef STRICT
+
+#include <java/net/VMInetAddress.h>
+#include <java/net/UnknownHostException.h>
+
+jstring
+java::net::VMInetAddress::getLocalHostname ()
+{
+ char buffer[400];
+ if (gethostname (buffer, sizeof(buffer)))
+ return NULL;
+ // It is admittedly non-optimal to convert the hostname to Unicode
+ // only to convert it back in getByName, but simplicity wins.
+ return JvNewStringUTF (buffer);
+}
+
+jbyteArray
+java::net::VMInetAddress::lookupInaddrAny ()
+{
+ unsigned long laddr = INADDR_ANY;
+ char *bytes = (char *) &laddr;
+ int blen = sizeof (laddr);
+ jbyteArray result = JvNewByteArray (blen);
+ memcpy (elements (result), bytes, blen);
+ return result;
+}
+
+jstring
+java::net::VMInetAddress::getHostByAddr (jbyteArray addr)
+{
+ struct hostent *hptr = NULL;
+ char *bytes = (char*) elements (addr);
+ int len = addr->length;
+ int type;
+ char *val;
+ if (len == 4)
+ {
+ val = bytes;
+ type = AF_INET;
+ }
+#ifdef HAVE_INET6
+ else if (len == 16)
+ {
+ val = (char *) &bytes;
+ type = AF_INET6;
+ }
+#endif /* HAVE_INET6 */
+ else
+ JvFail ("unrecognized size");
+
+ // FIXME: this is insufficient if some other piece of code calls
+ // this gethostbyaddr.
+ JvSynchronize sync (&java::net::VMInetAddress::class$);
+ hptr = gethostbyaddr (val, len, type);
+
+ if (hptr == NULL)
+ throw new java::net::UnknownHostException ();
+
+ return JvNewStringUTF (hptr->h_name);
+}
+
+JArray<jbyteArray> *
+java::net::VMInetAddress::getHostByName (jstring host)
+{
+ struct hostent *hptr = NULL;
+ JV_TEMP_UTF_STRING (hostname, host);
+
+ // FIXME: this is insufficient if some other piece of code calls
+ // this gethostbyname.
+ JvSynchronize sync (&java::net::VMInetAddress::class$);
+ hptr = gethostbyname (hostname);
+
+ if (hptr == NULL)
+ throw new java::net::UnknownHostException (host);
+
+ int count = 0;
+ char ** ptr = hptr->h_addr_list;
+ while (*ptr++) count++;
+
+ JArray<jbyteArray> *result =
+ (JArray<jbyteArray> *) _Jv_NewObjectArray (
+ count, _Jv_GetArrayClass(JvPrimClass(byte), NULL), NULL);
+ jbyteArray* addrs = elements (result);
+
+ for (int i = 0; i < count; i++)
+ {
+ addrs[i] = JvNewByteArray (hptr->h_length);
+ memcpy (elements (addrs[i]), hptr->h_addr_list[i], hptr->h_length);
+ }
+ return result;
+}
+
+jbyteArray
+java::net::VMInetAddress::aton (jstring host)
+{
+ JV_TEMP_UTF_STRING (hostname, host);
+ char* bytes = NULL;
+ int blen = 0;
+ unsigned long laddr = inet_addr (hostname);
+ if (laddr != INADDR_NONE)
+ {
+ bytes = (char *) &laddr;
+ blen = 4;
+ }
+ if (blen == 0)
+ return NULL;
+ jbyteArray result = JvNewByteArray (blen);
+ memcpy (elements (result), bytes, blen);
+ return result;
+}
diff --git a/gcc-4.8/libjava/java/net/natVMNetworkInterfaceNoNet.cc b/gcc-4.8/libjava/java/net/natVMNetworkInterfaceNoNet.cc
new file mode 100644
index 000000000..eda7f99f0
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMNetworkInterfaceNoNet.cc
@@ -0,0 +1,21 @@
+/* Copyright (C) 2003, 2005 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <java/net/SocketException.h>
+#include <java/net/VMNetworkInterface.h>
+#include <java/util/Vector.h>
+
+::java::util::Vector*
+java::net::VMNetworkInterface::getInterfaces ()
+{
+ throw new SocketException (
+ JvNewStringLatin1 ("VMNetworkInterface.getInterfaces: unimplemented"));
+}
diff --git a/gcc-4.8/libjava/java/net/natVMNetworkInterfacePosix.cc b/gcc-4.8/libjava/java/net/natVMNetworkInterfacePosix.cc
new file mode 100644
index 000000000..bfb11d21c
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMNetworkInterfacePosix.cc
@@ -0,0 +1,163 @@
+/* Copyright (C) 2003, 2005, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <sys/param.h>
+#include <sys/types.h>
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_SYS_IOCTL_H
+#define BSD_COMP /* Get FIONREAD on Solaris2. */
+#include <sys/ioctl.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+#ifdef HAVE_IFADDRS_H
+#include <ifaddrs.h>
+#endif
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java/net/InetAddress.h>
+#include <java/net/NetworkInterface.h>
+#include <java/net/SocketException.h>
+#include <java/net/VMNetworkInterface.h>
+#include <java/util/Vector.h>
+
+::java::util::Vector*
+java::net::VMNetworkInterface::getInterfaces ()
+{
+ ::java::util::Vector* ht = new ::java::util::Vector ();
+
+#ifdef HAVE_GETIFADDRS
+
+ struct ifaddrs *addrs;
+ if (::getifaddrs (&addrs) == -1)
+ throw new ::java::net::SocketException(JvNewStringUTF (strerror (errno)));
+
+ for (struct ifaddrs *work = addrs; work != NULL; work = work->ifa_next)
+ {
+ // Sometimes the address can be NULL; I don't know why but
+ // there's nothing we can do with this.
+ if (! work->ifa_addr)
+ continue;
+ // We only return Inet4 or Inet6 addresses.
+ jbyteArray laddr;
+ if (work->ifa_addr->sa_family == AF_INET)
+ {
+ sockaddr_in *real = reinterpret_cast<sockaddr_in *> (work->ifa_addr);
+ laddr = JvNewByteArray(4);
+ memcpy (elements (laddr), &real->sin_addr, 4);
+ }
+#ifdef HAVE_INET6
+ else if (work->ifa_addr->sa_family == AF_INET6)
+ {
+ sockaddr_in6 *real
+ = reinterpret_cast<sockaddr_in6 *> (work->ifa_addr);
+ laddr = JvNewByteArray(16);
+ memcpy (elements (laddr), &real->sin6_addr, 16);
+ }
+#endif
+ else
+ continue;
+
+ ::java::net::InetAddress *inaddr
+ = ::java::net::InetAddress::getByAddress(laddr);
+
+ // It is ok to make a new NetworkInterface for each struct; the
+ // java code will unify these as necessary; see
+ // NetworkInterface.condense().
+ jstring name = JvNewStringUTF (work->ifa_name);
+
+ ht->add (new NetworkInterface (name, inaddr));
+ }
+
+ freeifaddrs (addrs);
+
+#else /* ! HAVE_GETIFADDRS */
+
+ int fd;
+ int num_interfaces = 0;
+ struct ifconf if_data;
+ struct ifreq* if_record;
+
+ if_data.ifc_len = 0;
+ if_data.ifc_buf = NULL;
+
+ // Open a (random) socket to have a file descriptor for the ioctl calls.
+ fd = _Jv_socket (PF_INET, SOCK_DGRAM, htons (IPPROTO_IP));
+
+ if (fd < 0)
+ throw new ::java::net::SocketException;
+
+ // Get all interfaces. If not enough buffers are available try it
+ // with a bigger buffer size.
+ do
+ {
+ num_interfaces += 16;
+
+ if_data.ifc_len = sizeof (struct ifreq) * num_interfaces;
+ if_data.ifc_buf =
+ (char*) _Jv_Realloc (if_data.ifc_buf, if_data.ifc_len);
+
+ // Try to get all local interfaces.
+ if (::ioctl (fd, SIOCGIFCONF, &if_data) < 0)
+ throw new java::net::SocketException;
+ }
+ while (if_data.ifc_len >= (int) (sizeof (struct ifreq) * num_interfaces));
+
+ // Get addresses of all interfaces.
+ if_record = if_data.ifc_req;
+
+ for (int n = 0; n < if_data.ifc_len; n += sizeof (struct ifreq))
+ {
+ struct ifreq ifr;
+
+ memset (&ifr, 0, sizeof (ifr));
+ strcpy (ifr.ifr_name, if_record->ifr_name);
+
+ // Try to get the IPv4-address of the local interface
+ if (::ioctl (fd, SIOCGIFADDR, &ifr) < 0)
+ throw new java::net::SocketException;
+
+ int len = 4;
+ struct sockaddr_in sa = *((sockaddr_in*) &(ifr.ifr_addr));
+
+ jbyteArray baddr = JvNewByteArray (len);
+ memcpy (elements (baddr), &(sa.sin_addr), len);
+ jstring if_name = JvNewStringLatin1 (if_record->ifr_name);
+ InetAddress* address = java::net::InetAddress::getByAddress (baddr);
+ ht->add (new NetworkInterface (if_name, address));
+ if_record++;
+ }
+
+ _Jv_Free (if_data.ifc_buf);
+
+ if (fd >= 0)
+ _Jv_close (fd);
+#endif /* HAVE_GETIFADDRS */
+
+ return ht;
+}
diff --git a/gcc-4.8/libjava/java/net/natVMNetworkInterfaceWin32.cc b/gcc-4.8/libjava/java/net/natVMNetworkInterfaceWin32.cc
new file mode 100644
index 000000000..c9b14d57d
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMNetworkInterfaceWin32.cc
@@ -0,0 +1,144 @@
+/* Copyright (C) 2003, 2005 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#undef STRICT
+
+#include <java/net/NetworkInterface.h>
+#include <java/net/InetAddress.h>
+#include <java/net/SocketException.h>
+#include <java/net/VMNetworkInterface.h>
+#include <java/util/Vector.h>
+
+/* As of this writing, NetworkInterface.java has
+ getName() == getDisplayName() and only one IP address
+ per interface. If this changes, we'll need to use
+ iphlpapi (not supported on Win95) to retrieve richer
+ adapter information via GetAdaptersInfo(). In this
+ module, we provide the necessary hooks to detect the
+ presence of iphlpapi and use it if necessary, but
+ comment things out for now to avoid compiler warnings. */
+
+enum {MAX_INTERFACES = 50};
+
+typedef int
+(*PfnGetRealNetworkInterfaces) (jstring* pjstrName,
+ java::net::InetAddress** ppAddress);
+
+static int
+winsock2GetRealNetworkInterfaces (jstring* pjstrName,
+ java::net::InetAddress** ppAddress)
+{
+ // FIXME: Add IPv6 support.
+
+ INTERFACE_INFO arInterfaceInfo[MAX_INTERFACES];
+
+ // Open a (random) socket to have a file descriptor for the WSAIoctl call.
+ SOCKET skt = ::socket (AF_INET, SOCK_DGRAM, 0);
+ if (skt == INVALID_SOCKET)
+ _Jv_ThrowSocketException ();
+
+ DWORD dwOutBufSize;
+ int nRetCode = ::WSAIoctl (skt, SIO_GET_INTERFACE_LIST,
+ NULL, 0, &arInterfaceInfo, sizeof(arInterfaceInfo),
+ &dwOutBufSize, NULL, NULL);
+
+ if (nRetCode == SOCKET_ERROR)
+ {
+ DWORD dwLastErrorCode = WSAGetLastError ();
+ ::closesocket (skt);
+ _Jv_ThrowSocketException (dwLastErrorCode);
+ }
+
+ // Get addresses of all interfaces.
+ int nNbInterfaces = dwOutBufSize / sizeof(INTERFACE_INFO);
+ int nCurETHInterface = 0;
+ for (int i=0; i < nNbInterfaces; ++i)
+ {
+ int len = 4;
+ jbyteArray baddr = JvNewByteArray (len);
+ SOCKADDR_IN* pAddr = (SOCKADDR_IN*) &arInterfaceInfo[i].iiAddress;
+ memcpy (elements (baddr), &(pAddr->sin_addr), len);
+
+ // Concoct a name for this interface. Since we don't
+ // have access to the real name under Winsock 2, we use
+ // "lo" for the loopback interface and ethX for the
+ // real ones.
+ TCHAR szName[30];
+ u_long lFlags = arInterfaceInfo[i].iiFlags;
+
+ if (lFlags & IFF_LOOPBACK)
+ _tcscpy (szName, _T("lo"));
+ else
+ {
+ _tcscpy (szName, _T("eth"));
+ wsprintf(szName+3, _T("%d"), nCurETHInterface++);
+ }
+
+ jstring if_name = _Jv_Win32NewString (szName);
+ java::net::InetAddress* address =
+ java::net::InetAddress::getByAddress (baddr);
+ pjstrName[i] = if_name;
+ ppAddress[i] = address;
+ }
+
+ ::closesocket (skt);
+
+ return nNbInterfaces;
+}
+
+/*
+static int
+iphlpapiGetRealNetworkInterfaces (jstring* pjstrName,
+ java::net::InetAddress** ppAddress)
+{
+ return 0;
+}
+*/
+
+static PfnGetRealNetworkInterfaces
+determineGetRealNetworkInterfacesFN ()
+{
+ /* FIXME: Try to dynamically load iphlpapi.dll and
+ detect the presence of GetAdaptersInfo() using
+ GetProcAddress(). If successful, return
+ iphlpapiGetRealNetworkInterfaces; if not,
+ return winsock2GetRealNetworkInterfaces */
+ return &winsock2GetRealNetworkInterfaces;
+}
+
+::java::util::Vector*
+java::net::VMNetworkInterface::getInterfaces ()
+{
+ // This next declaration used to be a static local,
+ // but this introduced a dependency on libsupc++ due
+ // to _cxa_guard_acquire and _cxa_guard_release.
+ // When Win95 is gone and we eventually get rid of
+ // winsock2GetRealNetworkInterfaces, we can rework
+ // all of this. Alternatively, we could move this all
+ // to win32.cc and initialize this at startup time,
+ // but that seems more trouble than it's worth at
+ // the moment.
+ PfnGetRealNetworkInterfaces pfn =
+ determineGetRealNetworkInterfacesFN ();
+
+ jstring arIFName[MAX_INTERFACES];
+ InetAddress* arpInetAddress[MAX_INTERFACES];
+ ::java::util::Vector* ht = new ::java::util::Vector ();
+
+ int nNbInterfaces = (*pfn) (arIFName, arpInetAddress);
+ for (int i=0; i < nNbInterfaces; ++i)
+ {
+ ht->add (new java::net::NetworkInterface (arIFName[i],
+ arpInetAddress[i]));
+ }
+
+ return ht;
+}
diff --git a/gcc-4.8/libjava/java/net/natVMURLConnection.cc b/gcc-4.8/libjava/java/net/natVMURLConnection.cc
new file mode 100644
index 000000000..0a30a2197
--- /dev/null
+++ b/gcc-4.8/libjava/java/net/natVMURLConnection.cc
@@ -0,0 +1,81 @@
+/* Copyright (C) 2006, 2007 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <java/net/VMURLConnection.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+#include <stdio.h>
+
+#if defined (HAVE_MAGIC_T) && defined (HAVE_MAGIC_H) && defined (USE_LTDL)
+
+#include <magic.h>
+#include <ltdl.h>
+
+static magic_t cookie;
+
+static magic_t (*p_magic_open)(int flags);
+static int (*p_magic_load)(magic_t cookie, const char *filename);
+static void (*p_magic_close)(magic_t cookie);
+static const char * (*p_magic_buffer) (magic_t cookie, const void *buffer,
+ size_t length);
+
+#endif /* HAVE_MAGIC_T && HAVE_MAGIC_H && defined (USE_LTDL) */
+
+void
+java::net::VMURLConnection::init ()
+{
+#if defined (HAVE_MAGIC_T) && defined (HAVE_MAGIC_H) && defined (USE_LTDL)
+ lt_dlhandle handle = lt_dlopenext ("libmagic.so");
+ if (!handle)
+ return;
+
+ p_magic_open = (typeof (p_magic_open))lt_dlsym(handle, "magic_open");
+ if (p_magic_open == NULL)
+ return;
+ p_magic_buffer = (typeof (p_magic_buffer))lt_dlsym(handle, "magic_buffer");
+ if (p_magic_buffer == NULL)
+ return;
+ p_magic_close = (typeof (p_magic_close))lt_dlsym(handle, "magic_close");
+ if (p_magic_close == NULL)
+ return;
+ p_magic_load = (typeof (p_magic_load))lt_dlsym(handle, "magic_load");
+ if (p_magic_load == NULL)
+ return;
+
+ cookie = p_magic_open (MAGIC_MIME);
+ if (cookie == (magic_t) NULL)
+ return;
+ if (p_magic_load (cookie, NULL) == -1)
+ {
+ p_magic_close (cookie);
+ cookie = (magic_t) NULL;
+ }
+#endif /* HAVE_MAGIC_T && HAVE_MAGIC_H && defined (USE_LTDL) */
+}
+
+::java::lang::String *
+java::net::VMURLConnection::guessContentTypeFromBuffer (jbyteArray bytes __attribute__ ((unused)),
+ jint valid __attribute__ ((unused)))
+{
+#if defined (HAVE_MAGIC_T) && defined (HAVE_MAGIC_H) && defined (USE_LTDL)
+ const char *result;
+
+ if (cookie == (magic_t) NULL)
+ return NULL;
+
+ result = p_magic_buffer (cookie, elements(bytes), valid);
+
+ if (result == NULL)
+ return NULL;
+ return _Jv_NewStringUTF (result);
+#else
+ return NULL;
+#endif /* HAVE_MAGIC_T && HAVE_MAGIC_H && defined (USE_LTDL) */
+}
diff --git a/gcc-4.8/libjava/java/nio/Buffer.h b/gcc-4.8/libjava/java/nio/Buffer.h
new file mode 100644
index 000000000..3b958b496
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/Buffer.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_Buffer__
+#define __java_nio_Buffer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class Buffer;
+ }
+ }
+}
+
+class java::nio::Buffer : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Buffer(jint, jint, jint, jint, ::gnu::gcj::RawData *);
+public:
+ virtual jint capacity();
+ virtual ::java::nio::Buffer * clear();
+ virtual ::java::nio::Buffer * flip();
+ virtual jboolean hasRemaining();
+ virtual jboolean isReadOnly() = 0;
+ virtual jint limit();
+ virtual ::java::nio::Buffer * limit(jint);
+ virtual ::java::nio::Buffer * mark();
+ virtual jint position();
+ virtual ::java::nio::Buffer * position(jint);
+ virtual jint remaining();
+ virtual ::java::nio::Buffer * reset();
+ virtual ::java::nio::Buffer * rewind();
+public: // actually package-private
+ virtual void checkForUnderflow();
+ virtual void checkForUnderflow(jint);
+ virtual void checkForOverflow();
+ virtual void checkForOverflow(jint);
+ virtual void checkIndex(jint);
+ virtual void checkIfReadOnly();
+ static void checkArraySize(jint, jint, jint);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cap;
+public: // actually package-private
+ jint limit__;
+ jint pos;
+ jint mark__;
+ ::gnu::gcj::RawData * address;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_Buffer__
diff --git a/gcc-4.8/libjava/java/nio/Buffer.java b/gcc-4.8/libjava/java/nio/Buffer.java
new file mode 100644
index 000000000..222b84fd5
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/Buffer.java
@@ -0,0 +1,367 @@
+/* Buffer.java --
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio;
+
+import gnu.gcj.RawData;
+
+/**
+ * @since 1.4
+ */
+public abstract class Buffer
+{
+ private final int cap;
+ int limit;
+ int pos;
+ int mark;
+ final RawData address;
+
+ /**
+ * Creates a new Buffer.
+ *
+ * Should be package private.
+ */
+ Buffer (int capacity, int limit, int position, int mark,
+ RawData address)
+ {
+ if (capacity < 0)
+ throw new IllegalArgumentException ();
+
+ this.address = address;
+ cap = capacity;
+ limit (limit);
+ position (position);
+
+ if (mark >= 0)
+ {
+ if (mark > pos)
+ throw new IllegalArgumentException ();
+
+ this.mark = mark;
+ }
+ else
+ {
+ this.mark = -1;
+ }
+ }
+
+ /**
+ * Retrieves the capacity of the buffer.
+ *
+ * @return the capacity of the buffer
+ */
+ public final int capacity ()
+ {
+ return cap;
+ }
+
+ /**
+ * Clears the buffer.
+ *
+ * @return this buffer
+ */
+ public final Buffer clear ()
+ {
+ limit = cap;
+ pos = 0;
+ mark = -1;
+ return this;
+ }
+
+ /**
+ * Flips the buffer.
+ *
+ * @return this buffer
+ */
+ public final Buffer flip ()
+ {
+ limit = pos;
+ pos = 0;
+ mark = -1;
+ return this;
+ }
+
+ /**
+ * Tells whether the buffer has remaining data to read or not.
+ *
+ * @return true if the buffer contains remaining data to read,
+ * false otherwise
+ */
+ public final boolean hasRemaining ()
+ {
+ return remaining() > 0;
+ }
+
+ /**
+ * Tells whether this buffer is read only or not.
+ *
+ * @return true if the buffer is read only, false otherwise
+ */
+ public abstract boolean isReadOnly ();
+
+ /**
+ * Retrieves the current limit of the buffer.
+ *
+ * @return the limit of the buffer
+ */
+ public final int limit ()
+ {
+ return limit;
+ }
+
+ /**
+ * Sets this buffer's limit.
+ *
+ * @param newLimit The new limit value; must be non-negative and no larger
+ * than this buffer's capacity.
+ *
+ * @return this buffer
+ *
+ * @exception IllegalArgumentException If the preconditions on newLimit
+ * do not hold.
+ */
+ public final Buffer limit (int newLimit)
+ {
+ if ((newLimit < 0) || (newLimit > cap))
+ throw new IllegalArgumentException ();
+
+ if (newLimit < mark)
+ mark = -1;
+
+ if (pos > newLimit)
+ pos = newLimit;
+
+ limit = newLimit;
+ return this;
+ }
+
+ /**
+ * Sets this buffer's mark at its position.
+ *
+ * @return this buffer
+ */
+ public final Buffer mark ()
+ {
+ mark = pos;
+ return this;
+ }
+
+ /**
+ * Retrieves the current position of this buffer.
+ *
+ * @return the current position of this buffer
+ */
+ public final int position ()
+ {
+ return pos;
+ }
+
+ /**
+ * Sets this buffer's position. If the mark is defined and larger than the
+ * new position then it is discarded.
+ *
+ * @param newPosition The new position value; must be non-negative and no
+ * larger than the current limit.
+ *
+ * @return this buffer
+ *
+ * @exception IllegalArgumentException If the preconditions on newPosition
+ * do not hold
+ */
+ public final Buffer position (int newPosition)
+ {
+ if ((newPosition < 0) || (newPosition > limit))
+ throw new IllegalArgumentException ();
+
+ if (newPosition <= mark)
+ mark = -1;
+
+ pos = newPosition;
+ return this;
+ }
+
+ /**
+ * Returns the number of elements between the current position and the limit.
+ *
+ * @return the number of remaining elements
+ */
+ public final int remaining()
+ {
+ return limit - pos;
+ }
+
+ /**
+ * Resets this buffer's position to the previously-marked position.
+ *
+ * @return this buffer
+ *
+ * @exception InvalidMarkException If the mark has not been set.
+ */
+ public final Buffer reset()
+ {
+ if (mark == -1)
+ throw new InvalidMarkException ();
+
+ pos = mark;
+ return this;
+ }
+
+ /**
+ * Rewinds this buffer. The position is set to zero and the mark
+ * is discarded.
+ *
+ * @return this buffer
+ */
+ public final Buffer rewind()
+ {
+ pos = 0;
+ mark = -1;
+ return this;
+ }
+
+ /**
+ * Checks for underflow. This method is used internally to check
+ * whether a buffer has enough elements left to satisfy a read
+ * request.
+ *
+ * @exception BufferUnderflowException If there are no remaining
+ * elements in this buffer.
+ */
+ final void checkForUnderflow()
+ {
+ if (!hasRemaining())
+ throw new BufferUnderflowException();
+ }
+
+ /**
+ * Checks for underflow. This method is used internally to check
+ * whether a buffer has enough elements left to satisfy a read
+ * request for a given number of elements.
+ *
+ * @param length The length of a sequence of elements.
+ *
+ * @exception BufferUnderflowException If there are not enough
+ * remaining elements in this buffer.
+ */
+ final void checkForUnderflow(int length)
+ {
+ if (remaining() < length)
+ throw new BufferUnderflowException();
+ }
+
+ /**
+ * Checks for overflow. This method is used internally to check
+ * whether a buffer has enough space left to satisfy a write
+ * request.
+ *
+ * @exception BufferOverflowException If there is no remaining
+ * space in this buffer.
+ */
+ final void checkForOverflow()
+ {
+ if (!hasRemaining())
+ throw new BufferOverflowException();
+ }
+
+ /**
+ * Checks for overflow. This method is used internally to check
+ * whether a buffer has enough space left to satisfy a write
+ * request for a given number of elements.
+ *
+ * @param length The length of a sequence of elements.
+ *
+ * @exception BufferUnderflowException If there is not enough
+ * remaining space in this buffer.
+ */
+ final void checkForOverflow(int length)
+ {
+ if (remaining() < length)
+ throw new BufferOverflowException();
+ }
+
+ /**
+ * Checks if index is negative or not smaller than the buffer's
+ * limit. This method is used internally to check whether
+ * an indexed request can be fulfilled.
+ *
+ * @param index The requested position in the buffer.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
+ */
+ final void checkIndex(int index)
+ {
+ if (index < 0
+ || index >= limit ())
+ throw new IndexOutOfBoundsException ();
+ }
+
+ /**
+ * Checks if buffer is read-only. This method is used internally to
+ * check if elements can be put into a buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ */
+ final void checkIfReadOnly()
+ {
+ if (isReadOnly())
+ throw new ReadOnlyBufferException ();
+ }
+
+ /**
+ * Checks whether an array is large enough to hold the given number of
+ * elements at the given offset. This method is used internally to
+ * check if an array is big enough.
+ *
+ * @param arraylength The length of the array.
+ * @param offset The offset within the array of the first byte to be read;
+ * must be non-negative and no larger than arraylength.
+ * @param length The number of bytes to be read from the given array;
+ * must be non-negative and no larger than arraylength - offset.
+ *
+ * @exception IndexOutOfBoundsException If the preconditions on the offset
+ * and length parameters do not hold
+ */
+ static final void checkArraySize(int arraylength, int offset, int length)
+ {
+ if ((offset < 0) ||
+ (length < 0) ||
+ (arraylength < length + offset))
+ throw new IndexOutOfBoundsException ();
+ }
+}
diff --git a/gcc-4.8/libjava/java/nio/BufferOverflowException.h b/gcc-4.8/libjava/java/nio/BufferOverflowException.h
new file mode 100644
index 000000000..2c2a8c2c4
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/BufferOverflowException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_BufferOverflowException__
+#define __java_nio_BufferOverflowException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class BufferOverflowException;
+ }
+ }
+}
+
+class java::nio::BufferOverflowException : public ::java::lang::RuntimeException
+{
+
+public:
+ BufferOverflowException();
+private:
+ static const jlong serialVersionUID = -5484897634319144535LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_BufferOverflowException__
diff --git a/gcc-4.8/libjava/java/nio/BufferUnderflowException.h b/gcc-4.8/libjava/java/nio/BufferUnderflowException.h
new file mode 100644
index 000000000..6b52f20c7
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/BufferUnderflowException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_BufferUnderflowException__
+#define __java_nio_BufferUnderflowException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class BufferUnderflowException;
+ }
+ }
+}
+
+class java::nio::BufferUnderflowException : public ::java::lang::RuntimeException
+{
+
+public:
+ BufferUnderflowException();
+private:
+ static const jlong serialVersionUID = -1713313658691622206LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_BufferUnderflowException__
diff --git a/gcc-4.8/libjava/java/nio/ByteBuffer.h b/gcc-4.8/libjava/java/nio/ByteBuffer.h
new file mode 100644
index 000000000..cf1f5be66
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ByteBuffer.h
@@ -0,0 +1,112 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ByteBuffer__
+#define __java_nio_ByteBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class CharBuffer;
+ class DoubleBuffer;
+ class FloatBuffer;
+ class IntBuffer;
+ class LongBuffer;
+ class ShortBuffer;
+ }
+ }
+}
+
+class java::nio::ByteBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ ByteBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jbyte > *, jint);
+public:
+ static ::java::nio::ByteBuffer * allocateDirect(jint);
+ static ::java::nio::ByteBuffer * allocate(jint);
+ static ::java::nio::ByteBuffer * wrap(JArray< jbyte > *, jint, jint);
+ static ::java::nio::ByteBuffer * wrap(JArray< jbyte > *);
+ virtual ::java::nio::ByteBuffer * get(JArray< jbyte > *, jint, jint);
+ virtual ::java::nio::ByteBuffer * get(JArray< jbyte > *);
+ virtual ::java::nio::ByteBuffer * put(::java::nio::ByteBuffer *);
+ virtual ::java::nio::ByteBuffer * put(JArray< jbyte > *, jint, jint);
+ virtual ::java::nio::ByteBuffer * put(JArray< jbyte > *);
+ virtual jboolean hasArray();
+ virtual JArray< jbyte > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint ByteBuffer$compareTo(::java::nio::ByteBuffer *);
+ virtual ::java::nio::ByteOrder * order();
+ virtual ::java::nio::ByteBuffer * order(::java::nio::ByteOrder *);
+ virtual jbyte get() = 0;
+ virtual ::java::nio::ByteBuffer * put(jbyte) = 0;
+ virtual jbyte get(jint) = 0;
+ virtual ::java::nio::ByteBuffer * put(jint, jbyte) = 0;
+ virtual ::java::nio::ByteBuffer * compact() = 0;
+public: // actually package-private
+ virtual void shiftDown(jint, jint, jint);
+public:
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::ByteBuffer * slice() = 0;
+ virtual ::java::nio::ByteBuffer * duplicate() = 0;
+ virtual ::java::nio::ByteBuffer * asReadOnlyBuffer() = 0;
+ virtual ::java::nio::ShortBuffer * asShortBuffer() = 0;
+ virtual ::java::nio::CharBuffer * asCharBuffer() = 0;
+ virtual ::java::nio::IntBuffer * asIntBuffer() = 0;
+ virtual ::java::nio::LongBuffer * asLongBuffer() = 0;
+ virtual ::java::nio::FloatBuffer * asFloatBuffer() = 0;
+ virtual ::java::nio::DoubleBuffer * asDoubleBuffer() = 0;
+ virtual jchar getChar() = 0;
+ virtual ::java::nio::ByteBuffer * putChar(jchar) = 0;
+ virtual jchar getChar(jint) = 0;
+ virtual ::java::nio::ByteBuffer * putChar(jint, jchar) = 0;
+ virtual jshort getShort() = 0;
+ virtual ::java::nio::ByteBuffer * putShort(jshort) = 0;
+ virtual jshort getShort(jint) = 0;
+ virtual ::java::nio::ByteBuffer * putShort(jint, jshort) = 0;
+ virtual jint getInt() = 0;
+ virtual ::java::nio::ByteBuffer * putInt(jint) = 0;
+ virtual jint getInt(jint) = 0;
+ virtual ::java::nio::ByteBuffer * putInt(jint, jint) = 0;
+ virtual jlong getLong() = 0;
+ virtual ::java::nio::ByteBuffer * putLong(jlong) = 0;
+ virtual jlong getLong(jint) = 0;
+ virtual ::java::nio::ByteBuffer * putLong(jint, jlong) = 0;
+ virtual jfloat getFloat() = 0;
+ virtual ::java::nio::ByteBuffer * putFloat(jfloat) = 0;
+ virtual jfloat getFloat(jint) = 0;
+ virtual ::java::nio::ByteBuffer * putFloat(jint, jfloat) = 0;
+ virtual jdouble getDouble() = 0;
+ virtual ::java::nio::ByteBuffer * putDouble(jdouble) = 0;
+ virtual jdouble getDouble(jint) = 0;
+ virtual ::java::nio::ByteBuffer * putDouble(jint, jdouble) = 0;
+ virtual ::java::lang::String * toString();
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ ::java::nio::ByteOrder * __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) endian;
+ JArray< jbyte > * backing_buffer;
+ jint array_offset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ByteBuffer__
diff --git a/gcc-4.8/libjava/java/nio/ByteBufferHelper.h b/gcc-4.8/libjava/java/nio/ByteBufferHelper.h
new file mode 100644
index 000000000..851b57aad
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ByteBufferHelper.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ByteBufferHelper__
+#define __java_nio_ByteBufferHelper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteBufferHelper;
+ class ByteOrder;
+ }
+ }
+}
+
+class java::nio::ByteBufferHelper : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ByteBufferHelper();
+public:
+ static jchar getChar(::java::nio::ByteBuffer *, ::java::nio::ByteOrder *);
+ static void putChar(::java::nio::ByteBuffer *, jchar, ::java::nio::ByteOrder *);
+ static jchar getChar(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static void putChar(::java::nio::ByteBuffer *, jint, jchar, ::java::nio::ByteOrder *);
+ static jshort getShort(::java::nio::ByteBuffer *, ::java::nio::ByteOrder *);
+ static void putShort(::java::nio::ByteBuffer *, jshort, ::java::nio::ByteOrder *);
+ static jshort getShort(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static void putShort(::java::nio::ByteBuffer *, jint, jshort, ::java::nio::ByteOrder *);
+ static jint getInt(::java::nio::ByteBuffer *, ::java::nio::ByteOrder *);
+ static void putInt(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static jint getInt(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static void putInt(::java::nio::ByteBuffer *, jint, jint, ::java::nio::ByteOrder *);
+ static jlong getLong(::java::nio::ByteBuffer *, ::java::nio::ByteOrder *);
+ static void putLong(::java::nio::ByteBuffer *, jlong, ::java::nio::ByteOrder *);
+ static jlong getLong(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static void putLong(::java::nio::ByteBuffer *, jint, jlong, ::java::nio::ByteOrder *);
+ static jfloat getFloat(::java::nio::ByteBuffer *, ::java::nio::ByteOrder *);
+ static void putFloat(::java::nio::ByteBuffer *, jfloat, ::java::nio::ByteOrder *);
+ static jfloat getFloat(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static void putFloat(::java::nio::ByteBuffer *, jint, jfloat, ::java::nio::ByteOrder *);
+ static jdouble getDouble(::java::nio::ByteBuffer *, ::java::nio::ByteOrder *);
+ static void putDouble(::java::nio::ByteBuffer *, jdouble, ::java::nio::ByteOrder *);
+ static jdouble getDouble(::java::nio::ByteBuffer *, jint, ::java::nio::ByteOrder *);
+ static void putDouble(::java::nio::ByteBuffer *, jint, jdouble, ::java::nio::ByteOrder *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ByteBufferHelper__
diff --git a/gcc-4.8/libjava/java/nio/ByteBufferImpl.h b/gcc-4.8/libjava/java/nio/ByteBufferImpl.h
new file mode 100644
index 000000000..12621a0c7
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ByteBufferImpl.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ByteBufferImpl__
+#define __java_nio_ByteBufferImpl__
+
+#pragma interface
+
+#include <java/nio/ByteBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteBufferImpl;
+ class CharBuffer;
+ class DoubleBuffer;
+ class FloatBuffer;
+ class IntBuffer;
+ class LongBuffer;
+ class ShortBuffer;
+ }
+ }
+}
+
+class java::nio::ByteBufferImpl : public ::java::nio::ByteBuffer
+{
+
+public: // actually package-private
+ ByteBufferImpl(JArray< jbyte > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ ::java::nio::CharBuffer * asCharBuffer();
+ ::java::nio::ShortBuffer * asShortBuffer();
+ ::java::nio::IntBuffer * asIntBuffer();
+ ::java::nio::LongBuffer * asLongBuffer();
+ ::java::nio::FloatBuffer * asFloatBuffer();
+ ::java::nio::DoubleBuffer * asDoubleBuffer();
+ jboolean isReadOnly();
+ ::java::nio::ByteBuffer * slice();
+ ::java::nio::ByteBuffer * duplicate();
+ ::java::nio::ByteBuffer * asReadOnlyBuffer();
+public: // actually package-private
+ void shiftDown(jint, jint, jint);
+public:
+ ::java::nio::ByteBuffer * compact();
+ jboolean isDirect();
+ jbyte get();
+ ::java::nio::ByteBuffer * get(JArray< jbyte > *, jint, jint);
+ ::java::nio::ByteBuffer * put(JArray< jbyte > *, jint, jint);
+ ::java::nio::ByteBuffer * put(jbyte);
+ jbyte get(jint);
+ ::java::nio::ByteBuffer * put(jint, jbyte);
+ jchar getChar();
+ ::java::nio::ByteBuffer * putChar(jchar);
+ jchar getChar(jint);
+ ::java::nio::ByteBuffer * putChar(jint, jchar);
+ jshort getShort();
+ ::java::nio::ByteBuffer * putShort(jshort);
+ jshort getShort(jint);
+ ::java::nio::ByteBuffer * putShort(jint, jshort);
+ jint getInt();
+ ::java::nio::ByteBuffer * putInt(jint);
+ jint getInt(jint);
+ ::java::nio::ByteBuffer * putInt(jint, jint);
+ jlong getLong();
+ ::java::nio::ByteBuffer * putLong(jlong);
+ jlong getLong(jint);
+ ::java::nio::ByteBuffer * putLong(jint, jlong);
+ jfloat getFloat();
+ ::java::nio::ByteBuffer * putFloat(jfloat);
+ jfloat getFloat(jint);
+ ::java::nio::ByteBuffer * putFloat(jint, jfloat);
+ jdouble getDouble();
+ ::java::nio::ByteBuffer * putDouble(jdouble);
+ jdouble getDouble(jint);
+ ::java::nio::ByteBuffer * putDouble(jint, jdouble);
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::ByteBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ByteBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/ByteOrder.h b/gcc-4.8/libjava/java/nio/ByteOrder.h
new file mode 100644
index 000000000..730cb7fd9
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ByteOrder.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ByteOrder__
+#define __java_nio_ByteOrder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ }
+ }
+}
+
+class java::nio::ByteOrder : public ::java::lang::Object
+{
+
+public:
+ static ::java::nio::ByteOrder * nativeOrder();
+ ::java::lang::String * toString();
+private:
+ ByteOrder();
+public:
+ static ::java::nio::ByteOrder * BIG_ENDIAN;
+ static ::java::nio::ByteOrder * LITTLE_ENDIAN;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ByteOrder__
diff --git a/gcc-4.8/libjava/java/nio/CharBuffer.h b/gcc-4.8/libjava/java/nio/CharBuffer.h
new file mode 100644
index 000000000..73b4ba917
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/CharBuffer.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_CharBuffer__
+#define __java_nio_CharBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class CharBuffer;
+ }
+ }
+}
+
+class java::nio::CharBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ CharBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jchar > *, jint);
+public:
+ static ::java::nio::CharBuffer * allocate(jint);
+ static ::java::nio::CharBuffer * wrap(JArray< jchar > *, jint, jint);
+ static ::java::nio::CharBuffer * wrap(::java::lang::CharSequence *);
+ static ::java::nio::CharBuffer * wrap(::java::lang::CharSequence *, jint, jint);
+ static ::java::nio::CharBuffer * wrap(JArray< jchar > *);
+ virtual ::java::nio::CharBuffer * get(JArray< jchar > *, jint, jint);
+ virtual jint read(::java::nio::CharBuffer *);
+ virtual ::java::nio::CharBuffer * get(JArray< jchar > *);
+ virtual ::java::nio::CharBuffer * put(::java::nio::CharBuffer *);
+ virtual ::java::nio::CharBuffer * put(JArray< jchar > *, jint, jint);
+ virtual ::java::nio::CharBuffer * put(JArray< jchar > *);
+ virtual jboolean hasArray();
+ virtual JArray< jchar > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint CharBuffer$compareTo(::java::nio::CharBuffer *);
+ virtual ::java::nio::ByteOrder * order() = 0;
+ virtual jchar get() = 0;
+ virtual ::java::nio::CharBuffer * put(jchar) = 0;
+ virtual jchar get(jint) = 0;
+ virtual ::java::nio::CharBuffer * put(jint, jchar) = 0;
+ virtual ::java::nio::CharBuffer * compact() = 0;
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::CharBuffer * slice() = 0;
+ virtual ::java::nio::CharBuffer * duplicate() = 0;
+ virtual ::java::nio::CharBuffer * asReadOnlyBuffer() = 0;
+ virtual ::java::lang::String * toString();
+ virtual jint length();
+ virtual ::java::lang::CharSequence * subSequence(jint, jint) = 0;
+ virtual ::java::nio::CharBuffer * put(::java::lang::String *, jint, jint);
+ virtual ::java::nio::CharBuffer * put(::java::lang::String *);
+ virtual jchar charAt(jint);
+ virtual ::java::nio::CharBuffer * CharBuffer$append(jchar);
+ virtual ::java::nio::CharBuffer * CharBuffer$append(::java::lang::CharSequence *);
+ virtual ::java::nio::CharBuffer * CharBuffer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) array_offset;
+ JArray< jchar > * backing_buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_CharBuffer__
diff --git a/gcc-4.8/libjava/java/nio/CharBufferImpl.h b/gcc-4.8/libjava/java/nio/CharBufferImpl.h
new file mode 100644
index 000000000..4cbf50ec3
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/CharBufferImpl.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_CharBufferImpl__
+#define __java_nio_CharBufferImpl__
+
+#pragma interface
+
+#include <java/nio/CharBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class CharBuffer;
+ class CharBufferImpl;
+ }
+ }
+}
+
+class java::nio::CharBufferImpl : public ::java::nio::CharBuffer
+{
+
+public: // actually package-private
+ CharBufferImpl(jint);
+ CharBufferImpl(JArray< jchar > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ CharBufferImpl(::java::nio::CharBufferImpl *);
+ jboolean isReadOnly();
+ ::java::nio::CharBuffer * slice();
+ ::java::nio::CharBuffer * duplicate();
+ ::java::nio::CharBuffer * asReadOnlyBuffer();
+ ::java::nio::CharBuffer * compact();
+ jboolean isDirect();
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ jchar get();
+ ::java::nio::CharBuffer * put(jchar);
+ jchar get(jint);
+ ::java::nio::CharBuffer * get(JArray< jchar > *, jint, jint);
+ ::java::nio::CharBuffer * put(JArray< jchar > *, jint, jint);
+ ::java::nio::CharBuffer * put(jint, jchar);
+ ::java::nio::ByteOrder * order();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::CharBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_CharBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/CharSequenceBuffer.h b/gcc-4.8/libjava/java/nio/CharSequenceBuffer.h
new file mode 100644
index 000000000..b46b2b60d
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/CharSequenceBuffer.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_CharSequenceBuffer__
+#define __java_nio_CharSequenceBuffer__
+
+#pragma interface
+
+#include <java/nio/CharBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class CharBuffer;
+ class CharSequenceBuffer;
+ }
+ }
+}
+
+class java::nio::CharSequenceBuffer : public ::java::nio::CharBuffer
+{
+
+public: // actually package-private
+ CharSequenceBuffer(::java::lang::CharSequence *, jint, jint, jint, jint, jint);
+ CharSequenceBuffer(::java::lang::CharSequence *, jint, jint);
+public:
+ ::java::nio::CharBuffer * asReadOnlyBuffer();
+ ::java::nio::CharBuffer * compact();
+ ::java::nio::CharBuffer * duplicate();
+ jchar get();
+ jchar get(jint);
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+ ::java::nio::CharBuffer * put(jchar);
+ ::java::nio::CharBuffer * put(jint, jchar);
+ ::java::nio::CharBuffer * slice();
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ jboolean isReadOnly();
+private:
+ ::java::lang::CharSequence * __attribute__((aligned(__alignof__( ::java::nio::CharBuffer)))) charSequence;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_CharSequenceBuffer__
diff --git a/gcc-4.8/libjava/java/nio/CharViewBufferImpl.h b/gcc-4.8/libjava/java/nio/CharViewBufferImpl.h
new file mode 100644
index 000000000..fbde2de15
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/CharViewBufferImpl.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_CharViewBufferImpl__
+#define __java_nio_CharViewBufferImpl__
+
+#pragma interface
+
+#include <java/nio/CharBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class CharBuffer;
+ class CharViewBufferImpl;
+ }
+ }
+}
+
+class java::nio::CharViewBufferImpl : public ::java::nio::CharBuffer
+{
+
+public: // actually package-private
+ CharViewBufferImpl(::java::nio::ByteBuffer *, jint);
+public:
+ CharViewBufferImpl(::java::nio::ByteBuffer *, jint, jint, jint, jint, jint, jboolean, ::java::nio::ByteOrder *);
+ virtual jchar get();
+ virtual jchar get(jint);
+ virtual ::java::nio::CharBuffer * put(jchar);
+ virtual ::java::nio::CharBuffer * put(jint, jchar);
+ virtual ::java::nio::CharBuffer * compact();
+ virtual ::java::nio::CharBuffer * slice();
+public: // actually package-private
+ virtual ::java::nio::CharBuffer * duplicate(jboolean);
+public:
+ virtual ::java::nio::CharBuffer * duplicate();
+ virtual ::java::nio::CharBuffer * asReadOnlyBuffer();
+ virtual ::java::lang::CharSequence * subSequence(jint, jint);
+ virtual jboolean isReadOnly();
+ virtual jboolean isDirect();
+ virtual ::java::nio::ByteOrder * order();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::nio::CharBuffer)))) offset;
+ ::java::nio::ByteBuffer * bb;
+ jboolean readOnly;
+ ::java::nio::ByteOrder * endian;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_CharViewBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadOnly.h b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadOnly.h
new file mode 100644
index 000000000..f94c05ace
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadOnly.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_DirectByteBufferImpl$ReadOnly__
+#define __java_nio_DirectByteBufferImpl$ReadOnly__
+
+#pragma interface
+
+#include <java/nio/DirectByteBufferImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class DirectByteBufferImpl$ReadOnly;
+ }
+ }
+}
+
+class java::nio::DirectByteBufferImpl$ReadOnly : public ::java::nio::DirectByteBufferImpl
+{
+
+public: // actually package-private
+ DirectByteBufferImpl$ReadOnly(::java::lang::Object *, ::gnu::gcj::RawData *, jint, jint, jint);
+public:
+ ::java::nio::ByteBuffer * put(jbyte);
+ ::java::nio::ByteBuffer * put(jint, jbyte);
+ jboolean isReadOnly();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_DirectByteBufferImpl$ReadOnly__
diff --git a/gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadWrite.h b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadWrite.h
new file mode 100644
index 000000000..aa8c5ad0a
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl$ReadWrite.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_DirectByteBufferImpl$ReadWrite__
+#define __java_nio_DirectByteBufferImpl$ReadWrite__
+
+#pragma interface
+
+#include <java/nio/DirectByteBufferImpl.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class DirectByteBufferImpl$ReadWrite;
+ }
+ }
+}
+
+class java::nio::DirectByteBufferImpl$ReadWrite : public ::java::nio::DirectByteBufferImpl
+{
+
+public: // actually package-private
+ DirectByteBufferImpl$ReadWrite(jint);
+ DirectByteBufferImpl$ReadWrite(::gnu::gcj::RawData *, jint);
+ DirectByteBufferImpl$ReadWrite(::java::lang::Object *, ::gnu::gcj::RawData *, jint, jint, jint);
+public:
+ jboolean isReadOnly();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_DirectByteBufferImpl$ReadWrite__
diff --git a/gcc-4.8/libjava/java/nio/DirectByteBufferImpl.h b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl.h
new file mode 100644
index 000000000..b5a566907
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl.h
@@ -0,0 +1,101 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_DirectByteBufferImpl__
+#define __java_nio_DirectByteBufferImpl__
+
+#pragma interface
+
+#include <java/nio/ByteBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class CharBuffer;
+ class DirectByteBufferImpl;
+ class DoubleBuffer;
+ class FloatBuffer;
+ class IntBuffer;
+ class LongBuffer;
+ class ShortBuffer;
+ }
+ }
+}
+
+class java::nio::DirectByteBufferImpl : public ::java::nio::ByteBuffer
+{
+
+public: // actually package-private
+ DirectByteBufferImpl(jint);
+ DirectByteBufferImpl(::gnu::gcj::RawData *, jint);
+ DirectByteBufferImpl(::java::lang::Object *, ::gnu::gcj::RawData *, jint, jint, jint);
+public:
+ static ::java::nio::ByteBuffer * allocate(jint);
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual jbyte get();
+ virtual jbyte get(jint);
+ virtual ::java::nio::ByteBuffer * get(JArray< jbyte > *, jint, jint);
+ virtual ::java::nio::ByteBuffer * put(jbyte);
+ virtual ::java::nio::ByteBuffer * put(jint, jbyte);
+public: // actually package-private
+ virtual void shiftDown(jint, jint, jint);
+public:
+ virtual ::java::nio::ByteBuffer * compact();
+ virtual ::java::nio::ByteBuffer * slice();
+private:
+ ::java::nio::ByteBuffer * duplicate(jboolean);
+public:
+ virtual ::java::nio::ByteBuffer * duplicate();
+ virtual ::java::nio::ByteBuffer * asReadOnlyBuffer();
+ virtual jboolean isDirect();
+ virtual ::java::nio::CharBuffer * asCharBuffer();
+ virtual ::java::nio::ShortBuffer * asShortBuffer();
+ virtual ::java::nio::IntBuffer * asIntBuffer();
+ virtual ::java::nio::LongBuffer * asLongBuffer();
+ virtual ::java::nio::FloatBuffer * asFloatBuffer();
+ virtual ::java::nio::DoubleBuffer * asDoubleBuffer();
+ virtual jchar getChar();
+ virtual ::java::nio::ByteBuffer * putChar(jchar);
+ virtual jchar getChar(jint);
+ virtual ::java::nio::ByteBuffer * putChar(jint, jchar);
+ virtual jshort getShort();
+ virtual ::java::nio::ByteBuffer * putShort(jshort);
+ virtual jshort getShort(jint);
+ virtual ::java::nio::ByteBuffer * putShort(jint, jshort);
+ virtual jint getInt();
+ virtual ::java::nio::ByteBuffer * putInt(jint);
+ virtual jint getInt(jint);
+ virtual ::java::nio::ByteBuffer * putInt(jint, jint);
+ virtual jlong getLong();
+ virtual ::java::nio::ByteBuffer * putLong(jlong);
+ virtual jlong getLong(jint);
+ virtual ::java::nio::ByteBuffer * putLong(jint, jlong);
+ virtual jfloat getFloat();
+ virtual ::java::nio::ByteBuffer * putFloat(jfloat);
+ virtual jfloat getFloat(jint);
+ virtual ::java::nio::ByteBuffer * putFloat(jint, jfloat);
+ virtual jdouble getDouble();
+ virtual ::java::nio::ByteBuffer * putDouble(jdouble);
+ virtual jdouble getDouble(jint);
+ virtual ::java::nio::ByteBuffer * putDouble(jint, jdouble);
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::nio::ByteBuffer)))) owner;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_DirectByteBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/DirectByteBufferImpl.java b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl.java
new file mode 100644
index 000000000..dd40d5a41
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DirectByteBufferImpl.java
@@ -0,0 +1,429 @@
+/* DirectByteBufferImpl.java --
+ Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio;
+
+import gnu.gcj.RawData;
+
+abstract class DirectByteBufferImpl extends ByteBuffer
+{
+ /**
+ * The owner is used to keep alive the object that actually owns the
+ * memory. There are three possibilities:
+ * 1) owner == this: We allocated the memory and we should free it,
+ * but *only* in finalize (if we've been sliced
+ * other objects will also have access to the
+ * memory).
+ * 2) owner == null: The byte buffer was created thru
+ * JNI.NewDirectByteBuffer. The JNI code is
+ * responsible for freeing the memory.
+ * 3) owner == some other object: The other object allocated the
+ * memory and should free it.
+ */
+ private final Object owner;
+
+ static final class ReadOnly extends DirectByteBufferImpl
+ {
+ ReadOnly(Object owner, RawData address,
+ int capacity, int limit,
+ int position)
+ {
+ super(owner, address, capacity, limit, position);
+ }
+
+ public ByteBuffer put(byte value)
+ {
+ throw new ReadOnlyBufferException ();
+ }
+
+ public ByteBuffer put(int index, byte value)
+ {
+ throw new ReadOnlyBufferException ();
+ }
+
+ public boolean isReadOnly()
+ {
+ return true;
+ }
+ }
+
+ static final class ReadWrite extends DirectByteBufferImpl
+ {
+ ReadWrite(int capacity)
+ {
+ super(capacity);
+ }
+
+ ReadWrite(RawData address, int capacity)
+ {
+ super(address, capacity);
+ }
+
+ ReadWrite(Object owner, RawData address,
+ int capacity, int limit,
+ int position)
+ {
+ super(owner, address, capacity, limit, position);
+ }
+
+ public boolean isReadOnly()
+ {
+ return false;
+ }
+ }
+
+ DirectByteBufferImpl(int capacity)
+ {
+ super(capacity, capacity, 0, -1,
+ VMDirectByteBuffer.allocate(capacity), null, 0);
+ this.owner = this;
+ }
+
+ DirectByteBufferImpl(RawData address, int capacity)
+ {
+ super(capacity, capacity, 0, -1, address, null, 0);
+ this.owner = null;
+ }
+
+ DirectByteBufferImpl(Object owner, RawData address,
+ int capacity, int limit,
+ int position)
+ {
+ super(capacity, limit, position, -1, address, null, 0);
+ this.owner = owner;
+ }
+
+ /**
+ * Allocates a new direct byte buffer.
+ */
+ public static ByteBuffer allocate(int capacity)
+ {
+ return new DirectByteBufferImpl.ReadWrite(capacity);
+ }
+
+ protected void finalize() throws Throwable
+ {
+ if (owner == this)
+ VMDirectByteBuffer.free(address);
+ }
+
+ public byte get()
+ {
+ checkForUnderflow();
+
+ int pos = position();
+ byte result = VMDirectByteBuffer.get(address, pos);
+ position(pos + 1);
+ return result;
+ }
+
+ public byte get(int index)
+ {
+ checkIndex(index);
+
+ return VMDirectByteBuffer.get(address, index);
+ }
+
+ public ByteBuffer get(byte[] dst, int offset, int length)
+ {
+ checkArraySize(dst.length, offset, length);
+ checkForUnderflow(length);
+
+ int index = position();
+ VMDirectByteBuffer.get(address, index, dst, offset, length);
+ position(index+length);
+
+ return this;
+ }
+
+ public ByteBuffer put(byte value)
+ {
+ checkForOverflow();
+
+ int pos = position();
+ VMDirectByteBuffer.put(address, pos, value);
+ position(pos + 1);
+ return this;
+ }
+
+ public ByteBuffer put(int index, byte value)
+ {
+ checkIndex(index);
+
+ VMDirectByteBuffer.put(address, index, value);
+ return this;
+ }
+
+ void shiftDown(int dst_offset, int src_offset, int count)
+ {
+ VMDirectByteBuffer.shiftDown(address, dst_offset, src_offset, count);
+ }
+
+ public ByteBuffer compact()
+ {
+ checkIfReadOnly();
+ mark = -1;
+ int pos = position();
+ if (pos > 0)
+ {
+ int count = remaining();
+ VMDirectByteBuffer.shiftDown(address, 0, pos, count);
+ position(count);
+ limit(capacity());
+ }
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
+ return this;
+ }
+
+ public ByteBuffer slice()
+ {
+ int rem = remaining();
+ if (isReadOnly())
+ return new DirectByteBufferImpl.ReadOnly
+ (owner, VMDirectByteBuffer.adjustAddress(address, position()),
+ rem, rem, 0);
+ else
+ return new DirectByteBufferImpl.ReadWrite
+ (owner, VMDirectByteBuffer.adjustAddress(address, position()),
+ rem, rem, 0);
+ }
+
+ private ByteBuffer duplicate(boolean readOnly)
+ {
+ int pos = position();
+ reset();
+ int mark = position();
+ position(pos);
+ DirectByteBufferImpl result;
+ if (readOnly)
+ result = new DirectByteBufferImpl.ReadOnly(owner, address, capacity(),
+ limit(), pos);
+ else
+ result = new DirectByteBufferImpl.ReadWrite(owner, address, capacity(),
+ limit(), pos);
+
+ if (mark != pos)
+ {
+ result.position(mark);
+ result.mark();
+ result.position(pos);
+ }
+ return result;
+ }
+
+ public ByteBuffer duplicate()
+ {
+ return duplicate(isReadOnly());
+ }
+
+ public ByteBuffer asReadOnlyBuffer()
+ {
+ return duplicate(true);
+ }
+
+ public boolean isDirect()
+ {
+ return true;
+ }
+
+ public CharBuffer asCharBuffer()
+ {
+ return new CharViewBufferImpl(this, remaining() >> 1);
+ }
+
+ public ShortBuffer asShortBuffer()
+ {
+ return new ShortViewBufferImpl(this, remaining() >> 1);
+ }
+
+ public IntBuffer asIntBuffer()
+ {
+ return new IntViewBufferImpl(this, remaining() >> 2);
+ }
+
+ public LongBuffer asLongBuffer()
+ {
+ return new LongViewBufferImpl(this, remaining() >> 3);
+ }
+
+ public FloatBuffer asFloatBuffer()
+ {
+ return new FloatViewBufferImpl(this, remaining() >> 2);
+ }
+
+ public DoubleBuffer asDoubleBuffer()
+ {
+ return new DoubleViewBufferImpl(this, remaining() >> 3);
+ }
+
+ public char getChar()
+ {
+ return ByteBufferHelper.getChar(this, order());
+ }
+
+ public ByteBuffer putChar(char value)
+ {
+ ByteBufferHelper.putChar(this, value, order());
+ return this;
+ }
+
+ public char getChar(int index)
+ {
+ return ByteBufferHelper.getChar(this, index, order());
+ }
+
+ public ByteBuffer putChar(int index, char value)
+ {
+ ByteBufferHelper.putChar(this, index, value, order());
+ return this;
+ }
+
+ public short getShort()
+ {
+ return ByteBufferHelper.getShort(this, order());
+ }
+
+ public ByteBuffer putShort(short value)
+ {
+ ByteBufferHelper.putShort(this, value, order());
+ return this;
+ }
+
+ public short getShort(int index)
+ {
+ return ByteBufferHelper.getShort(this, index, order());
+ }
+
+ public ByteBuffer putShort(int index, short value)
+ {
+ ByteBufferHelper.putShort(this, index, value, order());
+ return this;
+ }
+
+ public int getInt()
+ {
+ return ByteBufferHelper.getInt(this, order());
+ }
+
+ public ByteBuffer putInt(int value)
+ {
+ ByteBufferHelper.putInt(this, value, order());
+ return this;
+ }
+
+ public int getInt(int index)
+ {
+ return ByteBufferHelper.getInt(this, index, order());
+ }
+
+ public ByteBuffer putInt(int index, int value)
+ {
+ ByteBufferHelper.putInt(this, index, value, order());
+ return this;
+ }
+
+ public long getLong()
+ {
+ return ByteBufferHelper.getLong(this, order());
+ }
+
+ public ByteBuffer putLong(long value)
+ {
+ ByteBufferHelper.putLong(this, value, order());
+ return this;
+ }
+
+ public long getLong(int index)
+ {
+ return ByteBufferHelper.getLong(this, index, order());
+ }
+
+ public ByteBuffer putLong(int index, long value)
+ {
+ ByteBufferHelper.putLong(this, index, value, order());
+ return this;
+ }
+
+ public float getFloat()
+ {
+ return ByteBufferHelper.getFloat(this, order());
+ }
+
+ public ByteBuffer putFloat(float value)
+ {
+ ByteBufferHelper.putFloat(this, value, order());
+ return this;
+ }
+
+ public float getFloat(int index)
+ {
+ return ByteBufferHelper.getFloat(this, index, order());
+ }
+
+ public ByteBuffer putFloat(int index, float value)
+ {
+ ByteBufferHelper.putFloat(this, index, value, order());
+ return this;
+ }
+
+ public double getDouble()
+ {
+ return ByteBufferHelper.getDouble(this, order());
+ }
+
+ public ByteBuffer putDouble(double value)
+ {
+ ByteBufferHelper.putDouble(this, value, order());
+ return this;
+ }
+
+ public double getDouble(int index)
+ {
+ return ByteBufferHelper.getDouble(this, index, order());
+ }
+
+ public ByteBuffer putDouble(int index, double value)
+ {
+ ByteBufferHelper.putDouble(this, index, value, order());
+ return this;
+ }
+}
diff --git a/gcc-4.8/libjava/java/nio/DoubleBuffer.h b/gcc-4.8/libjava/java/nio/DoubleBuffer.h
new file mode 100644
index 000000000..cb7da18f2
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DoubleBuffer.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_DoubleBuffer__
+#define __java_nio_DoubleBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class DoubleBuffer;
+ }
+ }
+}
+
+class java::nio::DoubleBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ DoubleBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jdouble > *, jint);
+public:
+ static ::java::nio::DoubleBuffer * allocate(jint);
+ static ::java::nio::DoubleBuffer * wrap(JArray< jdouble > *, jint, jint);
+ static ::java::nio::DoubleBuffer * wrap(JArray< jdouble > *);
+ virtual ::java::nio::DoubleBuffer * get(JArray< jdouble > *, jint, jint);
+ virtual ::java::nio::DoubleBuffer * get(JArray< jdouble > *);
+ virtual ::java::nio::DoubleBuffer * put(::java::nio::DoubleBuffer *);
+ virtual ::java::nio::DoubleBuffer * put(JArray< jdouble > *, jint, jint);
+ virtual ::java::nio::DoubleBuffer * put(JArray< jdouble > *);
+ virtual jboolean hasArray();
+ virtual JArray< jdouble > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint DoubleBuffer$compareTo(::java::nio::DoubleBuffer *);
+ virtual ::java::nio::ByteOrder * order() = 0;
+ virtual jdouble get() = 0;
+ virtual ::java::nio::DoubleBuffer * put(jdouble) = 0;
+ virtual jdouble get(jint) = 0;
+ virtual ::java::nio::DoubleBuffer * put(jint, jdouble) = 0;
+ virtual ::java::nio::DoubleBuffer * compact() = 0;
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::DoubleBuffer * slice() = 0;
+ virtual ::java::nio::DoubleBuffer * duplicate() = 0;
+ virtual ::java::nio::DoubleBuffer * asReadOnlyBuffer() = 0;
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) array_offset;
+ JArray< jdouble > * backing_buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_DoubleBuffer__
diff --git a/gcc-4.8/libjava/java/nio/DoubleBufferImpl.h b/gcc-4.8/libjava/java/nio/DoubleBufferImpl.h
new file mode 100644
index 000000000..f87e69c05
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DoubleBufferImpl.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_DoubleBufferImpl__
+#define __java_nio_DoubleBufferImpl__
+
+#pragma interface
+
+#include <java/nio/DoubleBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class DoubleBuffer;
+ class DoubleBufferImpl;
+ }
+ }
+}
+
+class java::nio::DoubleBufferImpl : public ::java::nio::DoubleBuffer
+{
+
+public: // actually package-private
+ DoubleBufferImpl(jint);
+ DoubleBufferImpl(JArray< jdouble > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ jboolean isReadOnly();
+ ::java::nio::DoubleBuffer * slice();
+ ::java::nio::DoubleBuffer * duplicate();
+ ::java::nio::DoubleBuffer * asReadOnlyBuffer();
+ ::java::nio::DoubleBuffer * compact();
+ jboolean isDirect();
+ jdouble get();
+ ::java::nio::DoubleBuffer * put(jdouble);
+ jdouble get(jint);
+ ::java::nio::DoubleBuffer * put(jint, jdouble);
+ ::java::nio::ByteOrder * order();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::DoubleBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_DoubleBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/DoubleViewBufferImpl.h b/gcc-4.8/libjava/java/nio/DoubleViewBufferImpl.h
new file mode 100644
index 000000000..778a0aca2
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/DoubleViewBufferImpl.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_DoubleViewBufferImpl__
+#define __java_nio_DoubleViewBufferImpl__
+
+#pragma interface
+
+#include <java/nio/DoubleBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class DoubleBuffer;
+ class DoubleViewBufferImpl;
+ }
+ }
+}
+
+class java::nio::DoubleViewBufferImpl : public ::java::nio::DoubleBuffer
+{
+
+public: // actually package-private
+ DoubleViewBufferImpl(::java::nio::ByteBuffer *, jint);
+public:
+ DoubleViewBufferImpl(::java::nio::ByteBuffer *, jint, jint, jint, jint, jint, jboolean, ::java::nio::ByteOrder *);
+ jdouble get();
+ jdouble get(jint);
+ ::java::nio::DoubleBuffer * put(jdouble);
+ ::java::nio::DoubleBuffer * put(jint, jdouble);
+ ::java::nio::DoubleBuffer * compact();
+ ::java::nio::DoubleBuffer * slice();
+public: // actually package-private
+ ::java::nio::DoubleBuffer * duplicate(jboolean);
+public:
+ ::java::nio::DoubleBuffer * duplicate();
+ ::java::nio::DoubleBuffer * asReadOnlyBuffer();
+ jboolean isReadOnly();
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::nio::DoubleBuffer)))) offset;
+ ::java::nio::ByteBuffer * bb;
+ jboolean readOnly;
+ ::java::nio::ByteOrder * endian;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_DoubleViewBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/FloatBuffer.h b/gcc-4.8/libjava/java/nio/FloatBuffer.h
new file mode 100644
index 000000000..334bdc482
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/FloatBuffer.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_FloatBuffer__
+#define __java_nio_FloatBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class FloatBuffer;
+ }
+ }
+}
+
+class java::nio::FloatBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ FloatBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jfloat > *, jint);
+public:
+ static ::java::nio::FloatBuffer * allocate(jint);
+ static ::java::nio::FloatBuffer * wrap(JArray< jfloat > *, jint, jint);
+ static ::java::nio::FloatBuffer * wrap(JArray< jfloat > *);
+ virtual ::java::nio::FloatBuffer * get(JArray< jfloat > *, jint, jint);
+ virtual ::java::nio::FloatBuffer * get(JArray< jfloat > *);
+ virtual ::java::nio::FloatBuffer * put(::java::nio::FloatBuffer *);
+ virtual ::java::nio::FloatBuffer * put(JArray< jfloat > *, jint, jint);
+ virtual ::java::nio::FloatBuffer * put(JArray< jfloat > *);
+ virtual jboolean hasArray();
+ virtual JArray< jfloat > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint FloatBuffer$compareTo(::java::nio::FloatBuffer *);
+ virtual ::java::nio::ByteOrder * order() = 0;
+ virtual jfloat get() = 0;
+ virtual ::java::nio::FloatBuffer * put(jfloat) = 0;
+ virtual jfloat get(jint) = 0;
+ virtual ::java::nio::FloatBuffer * put(jint, jfloat) = 0;
+ virtual ::java::nio::FloatBuffer * compact() = 0;
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::FloatBuffer * slice() = 0;
+ virtual ::java::nio::FloatBuffer * duplicate() = 0;
+ virtual ::java::nio::FloatBuffer * asReadOnlyBuffer() = 0;
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) array_offset;
+ JArray< jfloat > * backing_buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_FloatBuffer__
diff --git a/gcc-4.8/libjava/java/nio/FloatBufferImpl.h b/gcc-4.8/libjava/java/nio/FloatBufferImpl.h
new file mode 100644
index 000000000..6dad3a9b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/FloatBufferImpl.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_FloatBufferImpl__
+#define __java_nio_FloatBufferImpl__
+
+#pragma interface
+
+#include <java/nio/FloatBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class FloatBuffer;
+ class FloatBufferImpl;
+ }
+ }
+}
+
+class java::nio::FloatBufferImpl : public ::java::nio::FloatBuffer
+{
+
+public: // actually package-private
+ FloatBufferImpl(jint);
+ FloatBufferImpl(JArray< jfloat > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ jboolean isReadOnly();
+ ::java::nio::FloatBuffer * slice();
+ ::java::nio::FloatBuffer * duplicate();
+ ::java::nio::FloatBuffer * asReadOnlyBuffer();
+ ::java::nio::FloatBuffer * compact();
+ jboolean isDirect();
+ jfloat get();
+ ::java::nio::FloatBuffer * put(jfloat);
+ jfloat get(jint);
+ ::java::nio::FloatBuffer * put(jint, jfloat);
+ ::java::nio::ByteOrder * order();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::FloatBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_FloatBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/FloatViewBufferImpl.h b/gcc-4.8/libjava/java/nio/FloatViewBufferImpl.h
new file mode 100644
index 000000000..5ba181b5a
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/FloatViewBufferImpl.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_FloatViewBufferImpl__
+#define __java_nio_FloatViewBufferImpl__
+
+#pragma interface
+
+#include <java/nio/FloatBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class FloatBuffer;
+ class FloatViewBufferImpl;
+ }
+ }
+}
+
+class java::nio::FloatViewBufferImpl : public ::java::nio::FloatBuffer
+{
+
+public: // actually package-private
+ FloatViewBufferImpl(::java::nio::ByteBuffer *, jint);
+public:
+ FloatViewBufferImpl(::java::nio::ByteBuffer *, jint, jint, jint, jint, jint, jboolean, ::java::nio::ByteOrder *);
+ jfloat get();
+ jfloat get(jint);
+ ::java::nio::FloatBuffer * put(jfloat);
+ ::java::nio::FloatBuffer * put(jint, jfloat);
+ ::java::nio::FloatBuffer * compact();
+ ::java::nio::FloatBuffer * slice();
+public: // actually package-private
+ ::java::nio::FloatBuffer * duplicate(jboolean);
+public:
+ ::java::nio::FloatBuffer * duplicate();
+ ::java::nio::FloatBuffer * asReadOnlyBuffer();
+ jboolean isReadOnly();
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::nio::FloatBuffer)))) offset;
+ ::java::nio::ByteBuffer * bb;
+ jboolean readOnly;
+ ::java::nio::ByteOrder * endian;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_FloatViewBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/IntBuffer.h b/gcc-4.8/libjava/java/nio/IntBuffer.h
new file mode 100644
index 000000000..fa2250712
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/IntBuffer.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_IntBuffer__
+#define __java_nio_IntBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class IntBuffer;
+ }
+ }
+}
+
+class java::nio::IntBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ IntBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jint > *, jint);
+public:
+ static ::java::nio::IntBuffer * allocate(jint);
+ static ::java::nio::IntBuffer * wrap(JArray< jint > *, jint, jint);
+ static ::java::nio::IntBuffer * wrap(JArray< jint > *);
+ virtual ::java::nio::IntBuffer * get(JArray< jint > *, jint, jint);
+ virtual ::java::nio::IntBuffer * get(JArray< jint > *);
+ virtual ::java::nio::IntBuffer * put(::java::nio::IntBuffer *);
+ virtual ::java::nio::IntBuffer * put(JArray< jint > *, jint, jint);
+ virtual ::java::nio::IntBuffer * put(JArray< jint > *);
+ virtual jboolean hasArray();
+ virtual JArray< jint > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint IntBuffer$compareTo(::java::nio::IntBuffer *);
+ virtual ::java::nio::ByteOrder * order() = 0;
+ virtual jint get() = 0;
+ virtual ::java::nio::IntBuffer * put(jint) = 0;
+ virtual jint get(jint) = 0;
+ virtual ::java::nio::IntBuffer * put(jint, jint) = 0;
+ virtual ::java::nio::IntBuffer * compact() = 0;
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::IntBuffer * slice() = 0;
+ virtual ::java::nio::IntBuffer * duplicate() = 0;
+ virtual ::java::nio::IntBuffer * asReadOnlyBuffer() = 0;
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) array_offset;
+ JArray< jint > * backing_buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_IntBuffer__
diff --git a/gcc-4.8/libjava/java/nio/IntBufferImpl.h b/gcc-4.8/libjava/java/nio/IntBufferImpl.h
new file mode 100644
index 000000000..2492f028f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/IntBufferImpl.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_IntBufferImpl__
+#define __java_nio_IntBufferImpl__
+
+#pragma interface
+
+#include <java/nio/IntBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class IntBuffer;
+ class IntBufferImpl;
+ }
+ }
+}
+
+class java::nio::IntBufferImpl : public ::java::nio::IntBuffer
+{
+
+public: // actually package-private
+ IntBufferImpl(jint);
+ IntBufferImpl(JArray< jint > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ jboolean isReadOnly();
+ ::java::nio::IntBuffer * slice();
+ ::java::nio::IntBuffer * duplicate();
+ ::java::nio::IntBuffer * asReadOnlyBuffer();
+ ::java::nio::IntBuffer * compact();
+ jboolean isDirect();
+ jint get();
+ ::java::nio::IntBuffer * put(jint);
+ jint get(jint);
+ ::java::nio::IntBuffer * put(jint, jint);
+ ::java::nio::ByteOrder * order();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::IntBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_IntBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/IntViewBufferImpl.h b/gcc-4.8/libjava/java/nio/IntViewBufferImpl.h
new file mode 100644
index 000000000..8dfe695e2
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/IntViewBufferImpl.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_IntViewBufferImpl__
+#define __java_nio_IntViewBufferImpl__
+
+#pragma interface
+
+#include <java/nio/IntBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class IntBuffer;
+ class IntViewBufferImpl;
+ }
+ }
+}
+
+class java::nio::IntViewBufferImpl : public ::java::nio::IntBuffer
+{
+
+public: // actually package-private
+ IntViewBufferImpl(::java::nio::ByteBuffer *, jint);
+public:
+ IntViewBufferImpl(::java::nio::ByteBuffer *, jint, jint, jint, jint, jint, jboolean, ::java::nio::ByteOrder *);
+ jint get();
+ jint get(jint);
+ ::java::nio::IntBuffer * put(jint);
+ ::java::nio::IntBuffer * put(jint, jint);
+ ::java::nio::IntBuffer * compact();
+ ::java::nio::IntBuffer * slice();
+public: // actually package-private
+ ::java::nio::IntBuffer * duplicate(jboolean);
+public:
+ ::java::nio::IntBuffer * duplicate();
+ ::java::nio::IntBuffer * asReadOnlyBuffer();
+ jboolean isReadOnly();
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::nio::IntBuffer)))) offset;
+ ::java::nio::ByteBuffer * bb;
+ jboolean readOnly;
+ ::java::nio::ByteOrder * endian;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_IntViewBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/InvalidMarkException.h b/gcc-4.8/libjava/java/nio/InvalidMarkException.h
new file mode 100644
index 000000000..7b095c2cd
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/InvalidMarkException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_InvalidMarkException__
+#define __java_nio_InvalidMarkException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class InvalidMarkException;
+ }
+ }
+}
+
+class java::nio::InvalidMarkException : public ::java::lang::IllegalStateException
+{
+
+public:
+ InvalidMarkException();
+private:
+ static const jlong serialVersionUID = 1698329710438510774LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_InvalidMarkException__
diff --git a/gcc-4.8/libjava/java/nio/LongBuffer.h b/gcc-4.8/libjava/java/nio/LongBuffer.h
new file mode 100644
index 000000000..622f2419c
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/LongBuffer.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_LongBuffer__
+#define __java_nio_LongBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class LongBuffer;
+ }
+ }
+}
+
+class java::nio::LongBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ LongBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jlong > *, jint);
+public:
+ static ::java::nio::LongBuffer * allocate(jint);
+ static ::java::nio::LongBuffer * wrap(JArray< jlong > *, jint, jint);
+ static ::java::nio::LongBuffer * wrap(JArray< jlong > *);
+ virtual ::java::nio::LongBuffer * get(JArray< jlong > *, jint, jint);
+ virtual ::java::nio::LongBuffer * get(JArray< jlong > *);
+ virtual ::java::nio::LongBuffer * put(::java::nio::LongBuffer *);
+ virtual ::java::nio::LongBuffer * put(JArray< jlong > *, jint, jint);
+ virtual ::java::nio::LongBuffer * put(JArray< jlong > *);
+ virtual jboolean hasArray();
+ virtual JArray< jlong > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint LongBuffer$compareTo(::java::nio::LongBuffer *);
+ virtual ::java::nio::ByteOrder * order() = 0;
+ virtual jlong get() = 0;
+ virtual ::java::nio::LongBuffer * put(jlong) = 0;
+ virtual jlong get(jint) = 0;
+ virtual ::java::nio::LongBuffer * put(jint, jlong) = 0;
+ virtual ::java::nio::LongBuffer * compact() = 0;
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::LongBuffer * slice() = 0;
+ virtual ::java::nio::LongBuffer * duplicate() = 0;
+ virtual ::java::nio::LongBuffer * asReadOnlyBuffer() = 0;
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) array_offset;
+ JArray< jlong > * backing_buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_LongBuffer__
diff --git a/gcc-4.8/libjava/java/nio/LongBufferImpl.h b/gcc-4.8/libjava/java/nio/LongBufferImpl.h
new file mode 100644
index 000000000..ad28128bd
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/LongBufferImpl.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_LongBufferImpl__
+#define __java_nio_LongBufferImpl__
+
+#pragma interface
+
+#include <java/nio/LongBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class LongBuffer;
+ class LongBufferImpl;
+ }
+ }
+}
+
+class java::nio::LongBufferImpl : public ::java::nio::LongBuffer
+{
+
+public: // actually package-private
+ LongBufferImpl(jint);
+ LongBufferImpl(JArray< jlong > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ jboolean isReadOnly();
+ ::java::nio::LongBuffer * slice();
+ ::java::nio::LongBuffer * duplicate();
+ ::java::nio::LongBuffer * asReadOnlyBuffer();
+ ::java::nio::LongBuffer * compact();
+ jboolean isDirect();
+ jlong get();
+ ::java::nio::LongBuffer * put(jlong);
+ jlong get(jint);
+ ::java::nio::LongBuffer * put(jint, jlong);
+ ::java::nio::ByteOrder * order();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::LongBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_LongBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/LongViewBufferImpl.h b/gcc-4.8/libjava/java/nio/LongViewBufferImpl.h
new file mode 100644
index 000000000..59e678c0f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/LongViewBufferImpl.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_LongViewBufferImpl__
+#define __java_nio_LongViewBufferImpl__
+
+#pragma interface
+
+#include <java/nio/LongBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class LongBuffer;
+ class LongViewBufferImpl;
+ }
+ }
+}
+
+class java::nio::LongViewBufferImpl : public ::java::nio::LongBuffer
+{
+
+public: // actually package-private
+ LongViewBufferImpl(::java::nio::ByteBuffer *, jint);
+public:
+ LongViewBufferImpl(::java::nio::ByteBuffer *, jint, jint, jint, jint, jint, jboolean, ::java::nio::ByteOrder *);
+ jlong get();
+ jlong get(jint);
+ ::java::nio::LongBuffer * put(jlong);
+ ::java::nio::LongBuffer * put(jint, jlong);
+ ::java::nio::LongBuffer * compact();
+ ::java::nio::LongBuffer * slice();
+public: // actually package-private
+ ::java::nio::LongBuffer * duplicate(jboolean);
+public:
+ ::java::nio::LongBuffer * duplicate();
+ ::java::nio::LongBuffer * asReadOnlyBuffer();
+ jboolean isReadOnly();
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::nio::LongBuffer)))) offset;
+ ::java::nio::ByteBuffer * bb;
+ jboolean readOnly;
+ ::java::nio::ByteOrder * endian;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_LongViewBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/MappedByteBuffer.h b/gcc-4.8/libjava/java/nio/MappedByteBuffer.h
new file mode 100644
index 000000000..05fe81b3c
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/MappedByteBuffer.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_MappedByteBuffer__
+#define __java_nio_MappedByteBuffer__
+
+#pragma interface
+
+#include <java/nio/ByteBuffer.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class MappedByteBuffer;
+ }
+ }
+}
+
+class java::nio::MappedByteBuffer : public ::java::nio::ByteBuffer
+{
+
+public: // actually package-private
+ MappedByteBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *);
+ virtual void forceImpl();
+public:
+ virtual ::java::nio::MappedByteBuffer * force();
+public: // actually package-private
+ virtual jboolean isLoadedImpl();
+public:
+ virtual jboolean isLoaded();
+public: // actually package-private
+ virtual void loadImpl();
+public:
+ virtual ::java::nio::MappedByteBuffer * load();
+public: // actually package-private
+ virtual void unmapImpl();
+public: // actually protected
+ virtual void finalize();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_MappedByteBuffer__
diff --git a/gcc-4.8/libjava/java/nio/MappedByteBufferImpl.h b/gcc-4.8/libjava/java/nio/MappedByteBufferImpl.h
new file mode 100644
index 000000000..71725bf1b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/MappedByteBufferImpl.h
@@ -0,0 +1,99 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_MappedByteBufferImpl__
+#define __java_nio_MappedByteBufferImpl__
+
+#pragma interface
+
+#include <java/nio/MappedByteBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class CharBuffer;
+ class DoubleBuffer;
+ class FloatBuffer;
+ class IntBuffer;
+ class LongBuffer;
+ class MappedByteBufferImpl;
+ class ShortBuffer;
+ }
+ }
+}
+
+class java::nio::MappedByteBufferImpl : public ::java::nio::MappedByteBuffer
+{
+
+public:
+ MappedByteBufferImpl(::gnu::gcj::RawData *, jint, jboolean);
+ jboolean isReadOnly();
+ jbyte get();
+ ::java::nio::ByteBuffer * put(jbyte);
+ jbyte get(jint);
+ ::java::nio::ByteBuffer * get(JArray< jbyte > *, jint, jint);
+ ::java::nio::ByteBuffer * put(jint, jbyte);
+ ::java::nio::ByteBuffer * compact();
+ jboolean isDirect();
+ ::java::nio::ByteBuffer * slice();
+private:
+ ::java::nio::ByteBuffer * duplicate(jboolean);
+public:
+ ::java::nio::ByteBuffer * duplicate();
+ ::java::nio::ByteBuffer * asReadOnlyBuffer();
+ ::java::nio::CharBuffer * asCharBuffer();
+ ::java::nio::ShortBuffer * asShortBuffer();
+ ::java::nio::IntBuffer * asIntBuffer();
+ ::java::nio::LongBuffer * asLongBuffer();
+ ::java::nio::FloatBuffer * asFloatBuffer();
+ ::java::nio::DoubleBuffer * asDoubleBuffer();
+ jchar getChar();
+ ::java::nio::ByteBuffer * putChar(jchar);
+ jchar getChar(jint);
+ ::java::nio::ByteBuffer * putChar(jint, jchar);
+ jshort getShort();
+ ::java::nio::ByteBuffer * putShort(jshort);
+ jshort getShort(jint);
+ ::java::nio::ByteBuffer * putShort(jint, jshort);
+ jint getInt();
+ ::java::nio::ByteBuffer * putInt(jint);
+ jint getInt(jint);
+ ::java::nio::ByteBuffer * putInt(jint, jint);
+ jlong getLong();
+ ::java::nio::ByteBuffer * putLong(jlong);
+ jlong getLong(jint);
+ ::java::nio::ByteBuffer * putLong(jint, jlong);
+ jfloat getFloat();
+ ::java::nio::ByteBuffer * putFloat(jfloat);
+ jfloat getFloat(jint);
+ ::java::nio::ByteBuffer * putFloat(jint, jfloat);
+ jdouble getDouble();
+ ::java::nio::ByteBuffer * putDouble(jdouble);
+ jdouble getDouble(jint);
+ ::java::nio::ByteBuffer * putDouble(jint, jdouble);
+public: // actually package-private
+ void unmapImpl();
+ jboolean isLoadedImpl();
+ void loadImpl();
+ void forceImpl();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::MappedByteBuffer)))) readOnly;
+public:
+ ::gnu::gcj::RawData * implPtr;
+ jlong implLen;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_MappedByteBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/MappedByteBufferImpl.java b/gcc-4.8/libjava/java/nio/MappedByteBufferImpl.java
new file mode 100644
index 000000000..c8d458a38
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/MappedByteBufferImpl.java
@@ -0,0 +1,359 @@
+/* MappedByteBufferImpl.java --
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio;
+
+import gnu.gcj.RawData;
+
+import java.io.IOException;
+
+final class MappedByteBufferImpl extends MappedByteBuffer
+{
+ private final boolean readOnly;
+
+ /** Posix uses this for the pointer returned by mmap;
+ * Win32 uses it for the pointer returned by MapViewOfFile. */
+ public RawData implPtr;
+ /** Posix uses this for the actual length passed to mmap;
+ * Win32 uses it for the pointer returned by CreateFileMapping. */
+ public long implLen;
+
+ public MappedByteBufferImpl(RawData address, int size, boolean readOnly)
+ throws IOException
+ {
+ super(size, size, 0, -1, address);
+ this.readOnly = readOnly;
+ }
+
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ public byte get()
+ {
+ checkForUnderflow();
+
+ int pos = position();
+ byte result = VMDirectByteBuffer.get(address, pos);
+ position(pos + 1);
+ return result;
+ }
+
+ public ByteBuffer put(byte value)
+ {
+ checkIfReadOnly();
+ checkForOverflow();
+
+ int pos = position();
+ VMDirectByteBuffer.put(address, pos, value);
+ position(pos + 1);
+ return this;
+ }
+
+ public byte get(int index)
+ {
+ checkIndex(index);
+
+ return VMDirectByteBuffer.get(address, index);
+ }
+
+ public ByteBuffer get(byte[] dst, int offset, int length)
+ {
+ checkArraySize(dst.length, offset, length);
+ checkForUnderflow(length);
+
+ int index = position();
+ VMDirectByteBuffer.get(address, index, dst, offset, length);
+ position(index+length);
+
+ return this;
+ }
+
+ public ByteBuffer put(int index, byte value)
+ {
+ checkIfReadOnly();
+ checkIndex(index);
+
+ VMDirectByteBuffer.put(address, index, value);
+ return this;
+ }
+
+ public ByteBuffer compact()
+ {
+ checkIfReadOnly();
+ mark = -1;
+ int pos = position();
+ if (pos > 0)
+ {
+ int count = remaining();
+ // Call shiftDown method optimized for direct buffers.
+ VMDirectByteBuffer.shiftDown(address, 0, pos, count);
+ position(count);
+ limit(capacity());
+ }
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
+ return this;
+ }
+
+ public boolean isDirect()
+ {
+ return true;
+ }
+
+ public ByteBuffer slice()
+ {
+ int rem = remaining();
+ if (isReadOnly())
+ return new DirectByteBufferImpl.ReadOnly
+ (this, VMDirectByteBuffer.adjustAddress(address, position()),
+ rem, rem, 0);
+ else
+ return new DirectByteBufferImpl.ReadWrite
+ (this, VMDirectByteBuffer.adjustAddress(address, position()),
+ rem, rem, 0);
+ }
+
+ private ByteBuffer duplicate(boolean readOnly)
+ {
+ int pos = position();
+ reset();
+ int mark = position();
+ position(pos);
+ DirectByteBufferImpl result;
+ if (readOnly)
+ result = new DirectByteBufferImpl.ReadOnly(this, address, capacity(),
+ limit(), pos);
+ else
+ result = new DirectByteBufferImpl.ReadWrite(this, address, capacity(),
+ limit(), pos);
+
+ if (mark != pos)
+ {
+ result.position(mark);
+ result.mark();
+ result.position(pos);
+ }
+ return result;
+ }
+
+ public ByteBuffer duplicate()
+ {
+ return duplicate(isReadOnly());
+ }
+
+ public ByteBuffer asReadOnlyBuffer()
+ {
+ return duplicate(true);
+ }
+
+ public CharBuffer asCharBuffer()
+ {
+ return new CharViewBufferImpl(this, remaining() >> 1);
+ }
+
+ public ShortBuffer asShortBuffer()
+ {
+ return new ShortViewBufferImpl(this, remaining() >> 1);
+ }
+
+ public IntBuffer asIntBuffer()
+ {
+ return new IntViewBufferImpl(this, remaining() >> 2);
+ }
+
+ public LongBuffer asLongBuffer()
+ {
+ return new LongViewBufferImpl(this, remaining() >> 3);
+ }
+
+ public FloatBuffer asFloatBuffer()
+ {
+ return new FloatViewBufferImpl(this, remaining() >> 2);
+ }
+
+ public DoubleBuffer asDoubleBuffer()
+ {
+ return new DoubleViewBufferImpl(this, remaining() >> 3);
+ }
+
+ public char getChar()
+ {
+ return ByteBufferHelper.getChar(this, order());
+ }
+
+ public ByteBuffer putChar(char value)
+ {
+ ByteBufferHelper.putChar(this, value, order());
+ return this;
+ }
+
+ public char getChar(int index)
+ {
+ return ByteBufferHelper.getChar(this, index, order());
+ }
+
+ public ByteBuffer putChar(int index, char value)
+ {
+ ByteBufferHelper.putChar(this, index, value, order());
+ return this;
+ }
+
+ public short getShort()
+ {
+ return ByteBufferHelper.getShort(this, order());
+ }
+
+ public ByteBuffer putShort(short value)
+ {
+ ByteBufferHelper.putShort(this, value, order());
+ return this;
+ }
+
+ public short getShort(int index)
+ {
+ return ByteBufferHelper.getShort(this, index, order());
+ }
+
+ public ByteBuffer putShort(int index, short value)
+ {
+ ByteBufferHelper.putShort(this, index, value, order());
+ return this;
+ }
+
+ public int getInt()
+ {
+ return ByteBufferHelper.getInt(this, order());
+ }
+
+ public ByteBuffer putInt(int value)
+ {
+ ByteBufferHelper.putInt(this, value, order());
+ return this;
+ }
+
+ public int getInt(int index)
+ {
+ return ByteBufferHelper.getInt(this, index, order());
+ }
+
+ public ByteBuffer putInt(int index, int value)
+ {
+ ByteBufferHelper.putInt(this, index, value, order());
+ return this;
+ }
+
+ public long getLong()
+ {
+ return ByteBufferHelper.getLong(this, order());
+ }
+
+ public ByteBuffer putLong(long value)
+ {
+ ByteBufferHelper.putLong(this, value, order());
+ return this;
+ }
+
+ public long getLong(int index)
+ {
+ return ByteBufferHelper.getLong(this, index, order());
+ }
+
+ public ByteBuffer putLong(int index, long value)
+ {
+ ByteBufferHelper.putLong(this, index, value, order());
+ return this;
+ }
+
+ public float getFloat()
+ {
+ return ByteBufferHelper.getFloat(this, order());
+ }
+
+ public ByteBuffer putFloat(float value)
+ {
+ ByteBufferHelper.putFloat(this, value, order());
+ return this;
+ }
+
+ public float getFloat(int index)
+ {
+ return ByteBufferHelper.getFloat(this, index, order());
+ }
+
+ public ByteBuffer putFloat(int index, float value)
+ {
+ ByteBufferHelper.putFloat(this, index, value, order());
+ return this;
+ }
+
+ public double getDouble()
+ {
+ return ByteBufferHelper.getDouble(this, order());
+ }
+
+ public ByteBuffer putDouble(double value)
+ {
+ ByteBufferHelper.putDouble(this, value, order());
+ return this;
+ }
+
+ public double getDouble(int index)
+ {
+ return ByteBufferHelper.getDouble(this, index, order());
+ }
+
+ public ByteBuffer putDouble(int index, double value)
+ {
+ ByteBufferHelper.putDouble(this, index, value, order());
+ return this;
+ }
+
+ // NOTE: In libgcj these methods are implemented in natFileChannelXxx.cc,
+ // because they're small, and to put them next to FileChannelImpl::mapImpl.
+ native void unmapImpl();
+ native boolean isLoadedImpl();
+ // FIXME: Try to load all pages into memory.
+ native void loadImpl();
+
+ native void forceImpl();
+}
diff --git a/gcc-4.8/libjava/java/nio/ReadOnlyBufferException.h b/gcc-4.8/libjava/java/nio/ReadOnlyBufferException.h
new file mode 100644
index 000000000..58fe414ff
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ReadOnlyBufferException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ReadOnlyBufferException__
+#define __java_nio_ReadOnlyBufferException__
+
+#pragma interface
+
+#include <java/lang/UnsupportedOperationException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ReadOnlyBufferException;
+ }
+ }
+}
+
+class java::nio::ReadOnlyBufferException : public ::java::lang::UnsupportedOperationException
+{
+
+public:
+ ReadOnlyBufferException();
+private:
+ static const jlong serialVersionUID = -1210063976496234090LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ReadOnlyBufferException__
diff --git a/gcc-4.8/libjava/java/nio/ShortBuffer.h b/gcc-4.8/libjava/java/nio/ShortBuffer.h
new file mode 100644
index 000000000..1cb82a085
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ShortBuffer.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ShortBuffer__
+#define __java_nio_ShortBuffer__
+
+#pragma interface
+
+#include <java/nio/Buffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class ShortBuffer;
+ }
+ }
+}
+
+class java::nio::ShortBuffer : public ::java::nio::Buffer
+{
+
+public: // actually package-private
+ ShortBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jshort > *, jint);
+public:
+ static ::java::nio::ShortBuffer * allocate(jint);
+ static ::java::nio::ShortBuffer * wrap(JArray< jshort > *, jint, jint);
+ static ::java::nio::ShortBuffer * wrap(JArray< jshort > *);
+ virtual ::java::nio::ShortBuffer * get(JArray< jshort > *, jint, jint);
+ virtual ::java::nio::ShortBuffer * get(JArray< jshort > *);
+ virtual ::java::nio::ShortBuffer * put(::java::nio::ShortBuffer *);
+ virtual ::java::nio::ShortBuffer * put(JArray< jshort > *, jint, jint);
+ virtual ::java::nio::ShortBuffer * put(JArray< jshort > *);
+ virtual jboolean hasArray();
+ virtual JArray< jshort > * array();
+ virtual jint arrayOffset();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint ShortBuffer$compareTo(::java::nio::ShortBuffer *);
+ virtual ::java::nio::ByteOrder * order() = 0;
+ virtual jshort get() = 0;
+ virtual ::java::nio::ShortBuffer * put(jshort) = 0;
+ virtual jshort get(jint) = 0;
+ virtual ::java::nio::ShortBuffer * put(jint, jshort) = 0;
+ virtual ::java::nio::ShortBuffer * compact() = 0;
+ virtual jboolean isDirect() = 0;
+ virtual ::java::nio::ShortBuffer * slice() = 0;
+ virtual ::java::nio::ShortBuffer * duplicate() = 0;
+ virtual ::java::nio::ShortBuffer * asReadOnlyBuffer() = 0;
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) array_offset;
+ JArray< jshort > * backing_buffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ShortBuffer__
diff --git a/gcc-4.8/libjava/java/nio/ShortBufferImpl.h b/gcc-4.8/libjava/java/nio/ShortBufferImpl.h
new file mode 100644
index 000000000..a4150a8e9
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ShortBufferImpl.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ShortBufferImpl__
+#define __java_nio_ShortBufferImpl__
+
+#pragma interface
+
+#include <java/nio/ShortBuffer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class ShortBuffer;
+ class ShortBufferImpl;
+ }
+ }
+}
+
+class java::nio::ShortBufferImpl : public ::java::nio::ShortBuffer
+{
+
+public: // actually package-private
+ ShortBufferImpl(jint);
+ ShortBufferImpl(JArray< jshort > *, jint, jint, jint, jint, jint, jboolean);
+public:
+ jboolean isReadOnly();
+ ::java::nio::ShortBuffer * slice();
+ ::java::nio::ShortBuffer * duplicate();
+ ::java::nio::ShortBuffer * asReadOnlyBuffer();
+ ::java::nio::ShortBuffer * compact();
+ jboolean isDirect();
+ jshort get();
+ ::java::nio::ShortBuffer * put(jshort);
+ jshort get(jint);
+ ::java::nio::ShortBuffer * put(jint, jshort);
+ ::java::nio::ByteOrder * order();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::ShortBuffer)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ShortBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/ShortViewBufferImpl.h b/gcc-4.8/libjava/java/nio/ShortViewBufferImpl.h
new file mode 100644
index 000000000..179cc32c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/ShortViewBufferImpl.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_ShortViewBufferImpl__
+#define __java_nio_ShortViewBufferImpl__
+
+#pragma interface
+
+#include <java/nio/ShortBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class ByteOrder;
+ class ShortBuffer;
+ class ShortViewBufferImpl;
+ }
+ }
+}
+
+class java::nio::ShortViewBufferImpl : public ::java::nio::ShortBuffer
+{
+
+public: // actually package-private
+ ShortViewBufferImpl(::java::nio::ByteBuffer *, jint);
+public:
+ ShortViewBufferImpl(::java::nio::ByteBuffer *, jint, jint, jint, jint, jint, jboolean, ::java::nio::ByteOrder *);
+ jshort get();
+ jshort get(jint);
+ ::java::nio::ShortBuffer * put(jshort);
+ ::java::nio::ShortBuffer * put(jint, jshort);
+ ::java::nio::ShortBuffer * compact();
+ ::java::nio::ShortBuffer * slice();
+public: // actually package-private
+ ::java::nio::ShortBuffer * duplicate(jboolean);
+public:
+ ::java::nio::ShortBuffer * duplicate();
+ ::java::nio::ShortBuffer * asReadOnlyBuffer();
+ jboolean isReadOnly();
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::nio::ShortBuffer)))) offset;
+ ::java::nio::ByteBuffer * bb;
+ jboolean readOnly;
+ ::java::nio::ByteOrder * endian;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_ShortViewBufferImpl__
diff --git a/gcc-4.8/libjava/java/nio/VMDirectByteBuffer.h b/gcc-4.8/libjava/java/nio/VMDirectByteBuffer.h
new file mode 100644
index 000000000..2434caf19
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/VMDirectByteBuffer.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_VMDirectByteBuffer__
+#define __java_nio_VMDirectByteBuffer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class VMDirectByteBuffer;
+ }
+ }
+}
+
+class java::nio::VMDirectByteBuffer : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMDirectByteBuffer();
+ static ::gnu::gcj::RawData * allocate(jint);
+ static void free(::gnu::gcj::RawData *);
+ static jbyte get(::gnu::gcj::RawData *, jint);
+ static void get(::gnu::gcj::RawData *, jint, JArray< jbyte > *, jint, jint);
+ static void put(::gnu::gcj::RawData *, jint, jbyte);
+ static ::gnu::gcj::RawData * adjustAddress(::gnu::gcj::RawData *, jint);
+ static void shiftDown(::gnu::gcj::RawData *, jint, jint, jint);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_VMDirectByteBuffer__
diff --git a/gcc-4.8/libjava/java/nio/VMDirectByteBuffer.java b/gcc-4.8/libjava/java/nio/VMDirectByteBuffer.java
new file mode 100644
index 000000000..2aefaeb4b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/VMDirectByteBuffer.java
@@ -0,0 +1,53 @@
+/* VMDirectByteBuffer.java --
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio;
+
+import gnu.classpath.Configuration;
+import gnu.gcj.RawData;
+
+final class VMDirectByteBuffer
+{
+ static native RawData allocate (int capacity);
+ static native void free(RawData address);
+ static native byte get(RawData address, int index);
+ static native void get(RawData address, int index, byte[] dst, int offset, int length);
+ static native void put(RawData address, int index, byte value);
+ static native RawData adjustAddress(RawData address, int offset);
+ static native void shiftDown(RawData address, int dst_offset, int src_offset, int count);
+}
diff --git a/gcc-4.8/libjava/java/nio/channels/AlreadyConnectedException.h b/gcc-4.8/libjava/java/nio/channels/AlreadyConnectedException.h
new file mode 100644
index 000000000..08d6d479e
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/AlreadyConnectedException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_AlreadyConnectedException__
+#define __java_nio_channels_AlreadyConnectedException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class AlreadyConnectedException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::AlreadyConnectedException : public ::java::lang::IllegalStateException
+{
+
+public:
+ AlreadyConnectedException();
+private:
+ static const jlong serialVersionUID = -7331895245053773357LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_AlreadyConnectedException__
diff --git a/gcc-4.8/libjava/java/nio/channels/AsynchronousCloseException.h b/gcc-4.8/libjava/java/nio/channels/AsynchronousCloseException.h
new file mode 100644
index 000000000..bfcbf2eb4
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/AsynchronousCloseException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_AsynchronousCloseException__
+#define __java_nio_channels_AsynchronousCloseException__
+
+#pragma interface
+
+#include <java/nio/channels/ClosedChannelException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class AsynchronousCloseException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::AsynchronousCloseException : public ::java::nio::channels::ClosedChannelException
+{
+
+public:
+ AsynchronousCloseException();
+private:
+ static const jlong serialVersionUID = 6891178312432313966LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_AsynchronousCloseException__
diff --git a/gcc-4.8/libjava/java/nio/channels/ByteChannel.h b/gcc-4.8/libjava/java/nio/channels/ByteChannel.h
new file mode 100644
index 000000000..a81364813
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ByteChannel.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ByteChannel__
+#define __java_nio_channels_ByteChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class ByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ByteChannel : public ::java::lang::Object
+{
+
+public:
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jboolean isOpen() = 0;
+ virtual void close() = 0;
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_ByteChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/CancelledKeyException.h b/gcc-4.8/libjava/java/nio/channels/CancelledKeyException.h
new file mode 100644
index 000000000..742185f1f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/CancelledKeyException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_CancelledKeyException__
+#define __java_nio_channels_CancelledKeyException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class CancelledKeyException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::CancelledKeyException : public ::java::lang::IllegalStateException
+{
+
+public:
+ CancelledKeyException();
+private:
+ static const jlong serialVersionUID = -8438032138028814268LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_CancelledKeyException__
diff --git a/gcc-4.8/libjava/java/nio/channels/Channel.h b/gcc-4.8/libjava/java/nio/channels/Channel.h
new file mode 100644
index 000000000..fc0177d6f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/Channel.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_Channel__
+#define __java_nio_channels_Channel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class Channel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::Channel : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean isOpen() = 0;
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_Channel__
diff --git a/gcc-4.8/libjava/java/nio/channels/Channels.h b/gcc-4.8/libjava/java/nio/channels/Channels.h
new file mode 100644
index 000000000..384156483
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/Channels.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_Channels__
+#define __java_nio_channels_Channels__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class Channels;
+ class ReadableByteChannel;
+ class WritableByteChannel;
+ }
+ namespace charset
+ {
+ class CharsetDecoder;
+ class CharsetEncoder;
+ }
+ }
+ }
+}
+
+class java::nio::channels::Channels : public ::java::lang::Object
+{
+
+ Channels();
+public:
+ static ::java::io::InputStream * newInputStream(::java::nio::channels::ReadableByteChannel *);
+ static ::java::io::OutputStream * newOutputStream(::java::nio::channels::WritableByteChannel *);
+ static ::java::nio::channels::ReadableByteChannel * newChannel(::java::io::InputStream *);
+ static ::java::nio::channels::WritableByteChannel * newChannel(::java::io::OutputStream *);
+ static ::java::io::Reader * newReader(::java::nio::channels::ReadableByteChannel *, ::java::nio::charset::CharsetDecoder *, jint);
+ static ::java::io::Reader * newReader(::java::nio::channels::ReadableByteChannel *, ::java::lang::String *);
+ static ::java::io::Writer * newWriter(::java::nio::channels::WritableByteChannel *, ::java::nio::charset::CharsetEncoder *, jint);
+ static ::java::io::Writer * newWriter(::java::nio::channels::WritableByteChannel *, ::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_Channels__
diff --git a/gcc-4.8/libjava/java/nio/channels/ClosedByInterruptException.h b/gcc-4.8/libjava/java/nio/channels/ClosedByInterruptException.h
new file mode 100644
index 000000000..742dddc60
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ClosedByInterruptException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ClosedByInterruptException__
+#define __java_nio_channels_ClosedByInterruptException__
+
+#pragma interface
+
+#include <java/nio/channels/AsynchronousCloseException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class ClosedByInterruptException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ClosedByInterruptException : public ::java::nio::channels::AsynchronousCloseException
+{
+
+public:
+ ClosedByInterruptException();
+private:
+ static const jlong serialVersionUID = -4488191543534286750LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_ClosedByInterruptException__
diff --git a/gcc-4.8/libjava/java/nio/channels/ClosedChannelException.h b/gcc-4.8/libjava/java/nio/channels/ClosedChannelException.h
new file mode 100644
index 000000000..3bca678e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ClosedChannelException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ClosedChannelException__
+#define __java_nio_channels_ClosedChannelException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class ClosedChannelException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ClosedChannelException : public ::java::io::IOException
+{
+
+public:
+ ClosedChannelException();
+private:
+ static const jlong serialVersionUID = 882777185433553857LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_ClosedChannelException__
diff --git a/gcc-4.8/libjava/java/nio/channels/ClosedSelectorException.h b/gcc-4.8/libjava/java/nio/channels/ClosedSelectorException.h
new file mode 100644
index 000000000..80b821ed4
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ClosedSelectorException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ClosedSelectorException__
+#define __java_nio_channels_ClosedSelectorException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class ClosedSelectorException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ClosedSelectorException : public ::java::lang::IllegalStateException
+{
+
+public:
+ ClosedSelectorException();
+private:
+ static const jlong serialVersionUID = 6466297122317847835LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_ClosedSelectorException__
diff --git a/gcc-4.8/libjava/java/nio/channels/ConnectionPendingException.h b/gcc-4.8/libjava/java/nio/channels/ConnectionPendingException.h
new file mode 100644
index 000000000..29f483071
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ConnectionPendingException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ConnectionPendingException__
+#define __java_nio_channels_ConnectionPendingException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class ConnectionPendingException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ConnectionPendingException : public ::java::lang::IllegalStateException
+{
+
+public:
+ ConnectionPendingException();
+private:
+ static const jlong serialVersionUID = 2008393366501760879LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_ConnectionPendingException__
diff --git a/gcc-4.8/libjava/java/nio/channels/DatagramChannel.h b/gcc-4.8/libjava/java/nio/channels/DatagramChannel.h
new file mode 100644
index 000000000..cb2dabcc0
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/DatagramChannel.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_DatagramChannel__
+#define __java_nio_channels_DatagramChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractSelectableChannel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class DatagramSocket;
+ class SocketAddress;
+ }
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class DatagramChannel;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::DatagramChannel : public ::java::nio::channels::spi::AbstractSelectableChannel
+{
+
+public: // actually protected
+ DatagramChannel(::java::nio::channels::spi::SelectorProvider *);
+public:
+ static ::java::nio::channels::DatagramChannel * open();
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *);
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *);
+ virtual ::java::nio::channels::DatagramChannel * connect(::java::net::SocketAddress *) = 0;
+ virtual ::java::nio::channels::DatagramChannel * disconnect() = 0;
+ virtual jboolean isConnected() = 0;
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual ::java::net::SocketAddress * receive(::java::nio::ByteBuffer *) = 0;
+ virtual jint send(::java::nio::ByteBuffer *, ::java::net::SocketAddress *) = 0;
+ virtual ::java::net::DatagramSocket * socket() = 0;
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jint validOps();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_DatagramChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/FileChannel$MapMode.h b/gcc-4.8/libjava/java/nio/channels/FileChannel$MapMode.h
new file mode 100644
index 000000000..954e6979e
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/FileChannel$MapMode.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_FileChannel$MapMode__
+#define __java_nio_channels_FileChannel$MapMode__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannel$MapMode;
+ }
+ }
+ }
+}
+
+class java::nio::channels::FileChannel$MapMode : public ::java::lang::Object
+{
+
+public: // actually package-private
+ FileChannel$MapMode(jint);
+public:
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) m;
+public:
+ static ::java::nio::channels::FileChannel$MapMode * READ_ONLY;
+ static ::java::nio::channels::FileChannel$MapMode * READ_WRITE;
+ static ::java::nio::channels::FileChannel$MapMode * PRIVATE;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_FileChannel$MapMode__
diff --git a/gcc-4.8/libjava/java/nio/channels/FileChannel.h b/gcc-4.8/libjava/java/nio/channels/FileChannel.h
new file mode 100644
index 000000000..10cc314cc
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/FileChannel.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_FileChannel__
+#define __java_nio_channels_FileChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractInterruptibleChannel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class MappedByteBuffer;
+ namespace channels
+ {
+ class FileChannel;
+ class FileChannel$MapMode;
+ class FileLock;
+ class ReadableByteChannel;
+ class WritableByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::FileChannel : public ::java::nio::channels::spi::AbstractInterruptibleChannel
+{
+
+public: // actually protected
+ FileChannel();
+public:
+ virtual ::java::nio::MappedByteBuffer * map(::java::nio::channels::FileChannel$MapMode *, jlong, jlong) = 0;
+ virtual jlong size() = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *);
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ virtual jint write(::java::nio::ByteBuffer *, jlong) = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *);
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jint read(::java::nio::ByteBuffer *, jlong) = 0;
+public: // actually protected
+ virtual void implCloseChannel() = 0;
+public:
+ virtual void force(jboolean) = 0;
+ virtual ::java::nio::channels::FileLock * lock();
+ virtual ::java::nio::channels::FileLock * lock(jlong, jlong, jboolean) = 0;
+ virtual ::java::nio::channels::FileLock * tryLock();
+ virtual ::java::nio::channels::FileLock * tryLock(jlong, jlong, jboolean) = 0;
+ virtual jlong position() = 0;
+ virtual ::java::nio::channels::FileChannel * position(jlong) = 0;
+ virtual jlong transferTo(jlong, jlong, ::java::nio::channels::WritableByteChannel *) = 0;
+ virtual jlong transferFrom(::java::nio::channels::ReadableByteChannel *, jlong, jlong) = 0;
+ virtual ::java::nio::channels::FileChannel * truncate(jlong) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_FileChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/FileLock.h b/gcc-4.8/libjava/java/nio/channels/FileLock.h
new file mode 100644
index 000000000..1d16a7c40
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/FileLock.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_FileLock__
+#define __java_nio_channels_FileLock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannel;
+ class FileLock;
+ }
+ }
+ }
+}
+
+class java::nio::channels::FileLock : public ::java::lang::Object
+{
+
+public: // actually protected
+ FileLock(::java::nio::channels::FileChannel *, jlong, jlong, jboolean);
+public:
+ virtual jboolean isValid() = 0;
+ virtual void release() = 0;
+ virtual ::java::nio::channels::FileChannel * channel();
+ virtual jboolean isShared();
+ virtual jboolean overlaps(jlong, jlong);
+ virtual jlong position();
+ virtual jlong size();
+ virtual ::java::lang::String * toString();
+ virtual void close() = 0;
+private:
+ ::java::nio::channels::FileChannel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) channel__;
+ jlong position__;
+ jlong size__;
+ jboolean shared;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_FileLock__
diff --git a/gcc-4.8/libjava/java/nio/channels/FileLockInterruptionException.h b/gcc-4.8/libjava/java/nio/channels/FileLockInterruptionException.h
new file mode 100644
index 000000000..ad5e25076
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/FileLockInterruptionException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_FileLockInterruptionException__
+#define __java_nio_channels_FileLockInterruptionException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileLockInterruptionException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::FileLockInterruptionException : public ::java::io::IOException
+{
+
+public:
+ FileLockInterruptionException();
+private:
+ static const jlong serialVersionUID = 7104080643653532383LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_FileLockInterruptionException__
diff --git a/gcc-4.8/libjava/java/nio/channels/GatheringByteChannel.h b/gcc-4.8/libjava/java/nio/channels/GatheringByteChannel.h
new file mode 100644
index 000000000..c69c1954a
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/GatheringByteChannel.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_GatheringByteChannel__
+#define __java_nio_channels_GatheringByteChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class GatheringByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::GatheringByteChannel : public ::java::lang::Object
+{
+
+public:
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *) = 0;
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ virtual jboolean isOpen() = 0;
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_GatheringByteChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/IllegalBlockingModeException.h b/gcc-4.8/libjava/java/nio/channels/IllegalBlockingModeException.h
new file mode 100644
index 000000000..38eda0379
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/IllegalBlockingModeException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_IllegalBlockingModeException__
+#define __java_nio_channels_IllegalBlockingModeException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class IllegalBlockingModeException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::IllegalBlockingModeException : public ::java::lang::IllegalStateException
+{
+
+public:
+ IllegalBlockingModeException();
+private:
+ static const jlong serialVersionUID = -3335774961855590474LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_IllegalBlockingModeException__
diff --git a/gcc-4.8/libjava/java/nio/channels/IllegalSelectorException.h b/gcc-4.8/libjava/java/nio/channels/IllegalSelectorException.h
new file mode 100644
index 000000000..9f137e423
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/IllegalSelectorException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_IllegalSelectorException__
+#define __java_nio_channels_IllegalSelectorException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class IllegalSelectorException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::IllegalSelectorException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ IllegalSelectorException();
+private:
+ static const jlong serialVersionUID = -8406323347253320987LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_IllegalSelectorException__
diff --git a/gcc-4.8/libjava/java/nio/channels/InterruptibleChannel.h b/gcc-4.8/libjava/java/nio/channels/InterruptibleChannel.h
new file mode 100644
index 000000000..fa8a68385
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/InterruptibleChannel.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_InterruptibleChannel__
+#define __java_nio_channels_InterruptibleChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class InterruptibleChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::InterruptibleChannel : public ::java::lang::Object
+{
+
+public:
+ virtual void close() = 0;
+ virtual jboolean isOpen() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_InterruptibleChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/NoConnectionPendingException.h b/gcc-4.8/libjava/java/nio/channels/NoConnectionPendingException.h
new file mode 100644
index 000000000..5be57aefd
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/NoConnectionPendingException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_NoConnectionPendingException__
+#define __java_nio_channels_NoConnectionPendingException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class NoConnectionPendingException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::NoConnectionPendingException : public ::java::lang::IllegalStateException
+{
+
+public:
+ NoConnectionPendingException();
+private:
+ static const jlong serialVersionUID = -8296561183633134743LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_NoConnectionPendingException__
diff --git a/gcc-4.8/libjava/java/nio/channels/NonReadableChannelException.h b/gcc-4.8/libjava/java/nio/channels/NonReadableChannelException.h
new file mode 100644
index 000000000..210d8369b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/NonReadableChannelException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_NonReadableChannelException__
+#define __java_nio_channels_NonReadableChannelException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class NonReadableChannelException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::NonReadableChannelException : public ::java::lang::IllegalStateException
+{
+
+public:
+ NonReadableChannelException();
+private:
+ static const jlong serialVersionUID = -3200915679294993514LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_NonReadableChannelException__
diff --git a/gcc-4.8/libjava/java/nio/channels/NonWritableChannelException.h b/gcc-4.8/libjava/java/nio/channels/NonWritableChannelException.h
new file mode 100644
index 000000000..4a56ef988
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/NonWritableChannelException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_NonWritableChannelException__
+#define __java_nio_channels_NonWritableChannelException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class NonWritableChannelException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::NonWritableChannelException : public ::java::lang::IllegalStateException
+{
+
+public:
+ NonWritableChannelException();
+private:
+ static const jlong serialVersionUID = -7071230488279011621LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_NonWritableChannelException__
diff --git a/gcc-4.8/libjava/java/nio/channels/NotYetBoundException.h b/gcc-4.8/libjava/java/nio/channels/NotYetBoundException.h
new file mode 100644
index 000000000..d4f1ad2d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/NotYetBoundException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_NotYetBoundException__
+#define __java_nio_channels_NotYetBoundException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class NotYetBoundException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::NotYetBoundException : public ::java::lang::IllegalStateException
+{
+
+public:
+ NotYetBoundException();
+private:
+ static const jlong serialVersionUID = 4640999303950202242LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_NotYetBoundException__
diff --git a/gcc-4.8/libjava/java/nio/channels/NotYetConnectedException.h b/gcc-4.8/libjava/java/nio/channels/NotYetConnectedException.h
new file mode 100644
index 000000000..a38417a82
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/NotYetConnectedException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_NotYetConnectedException__
+#define __java_nio_channels_NotYetConnectedException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class NotYetConnectedException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::NotYetConnectedException : public ::java::lang::IllegalStateException
+{
+
+public:
+ NotYetConnectedException();
+private:
+ static const jlong serialVersionUID = 4697316551909513464LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_NotYetConnectedException__
diff --git a/gcc-4.8/libjava/java/nio/channels/OverlappingFileLockException.h b/gcc-4.8/libjava/java/nio/channels/OverlappingFileLockException.h
new file mode 100644
index 000000000..b2551f907
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/OverlappingFileLockException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_OverlappingFileLockException__
+#define __java_nio_channels_OverlappingFileLockException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class OverlappingFileLockException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::OverlappingFileLockException : public ::java::lang::IllegalStateException
+{
+
+public:
+ OverlappingFileLockException();
+private:
+ static const jlong serialVersionUID = 2047812138163068433LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_OverlappingFileLockException__
diff --git a/gcc-4.8/libjava/java/nio/channels/Pipe$SinkChannel.h b/gcc-4.8/libjava/java/nio/channels/Pipe$SinkChannel.h
new file mode 100644
index 000000000..d6842b79b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/Pipe$SinkChannel.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_Pipe$SinkChannel__
+#define __java_nio_channels_Pipe$SinkChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractSelectableChannel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class Pipe$SinkChannel;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::Pipe$SinkChannel : public ::java::nio::channels::spi::AbstractSelectableChannel
+{
+
+public: // actually protected
+ Pipe$SinkChannel(::java::nio::channels::spi::SelectorProvider *);
+public:
+ virtual jint validOps();
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_Pipe$SinkChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/Pipe$SourceChannel.h b/gcc-4.8/libjava/java/nio/channels/Pipe$SourceChannel.h
new file mode 100644
index 000000000..9bc78ea3b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/Pipe$SourceChannel.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_Pipe$SourceChannel__
+#define __java_nio_channels_Pipe$SourceChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractSelectableChannel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class Pipe$SourceChannel;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::Pipe$SourceChannel : public ::java::nio::channels::spi::AbstractSelectableChannel
+{
+
+public: // actually protected
+ Pipe$SourceChannel(::java::nio::channels::spi::SelectorProvider *);
+public:
+ virtual jint validOps();
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_Pipe$SourceChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/Pipe.h b/gcc-4.8/libjava/java/nio/channels/Pipe.h
new file mode 100644
index 000000000..771dca23e
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/Pipe.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_Pipe__
+#define __java_nio_channels_Pipe__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class Pipe;
+ class Pipe$SinkChannel;
+ class Pipe$SourceChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::Pipe : public ::java::lang::Object
+{
+
+public: // actually protected
+ Pipe();
+public:
+ static ::java::nio::channels::Pipe * open();
+ virtual ::java::nio::channels::Pipe$SinkChannel * sink() = 0;
+ virtual ::java::nio::channels::Pipe$SourceChannel * source() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_Pipe__
diff --git a/gcc-4.8/libjava/java/nio/channels/ReadableByteChannel.h b/gcc-4.8/libjava/java/nio/channels/ReadableByteChannel.h
new file mode 100644
index 000000000..9f3e4cf01
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ReadableByteChannel.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ReadableByteChannel__
+#define __java_nio_channels_ReadableByteChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class ReadableByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ReadableByteChannel : public ::java::lang::Object
+{
+
+public:
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jboolean isOpen() = 0;
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_ReadableByteChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/ScatteringByteChannel.h b/gcc-4.8/libjava/java/nio/channels/ScatteringByteChannel.h
new file mode 100644
index 000000000..eeba864d4
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ScatteringByteChannel.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ScatteringByteChannel__
+#define __java_nio_channels_ScatteringByteChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class ScatteringByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::ScatteringByteChannel : public ::java::lang::Object
+{
+
+public:
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *) = 0;
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jboolean isOpen() = 0;
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_ScatteringByteChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/SelectableChannel.h b/gcc-4.8/libjava/java/nio/channels/SelectableChannel.h
new file mode 100644
index 000000000..82cf82880
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/SelectableChannel.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_SelectableChannel__
+#define __java_nio_channels_SelectableChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractInterruptibleChannel.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class SelectableChannel;
+ class SelectionKey;
+ class Selector;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::SelectableChannel : public ::java::nio::channels::spi::AbstractInterruptibleChannel
+{
+
+public: // actually protected
+ SelectableChannel();
+public:
+ virtual ::java::lang::Object * blockingLock() = 0;
+ virtual ::java::nio::channels::SelectableChannel * configureBlocking(jboolean) = 0;
+ virtual jboolean isBlocking() = 0;
+ virtual jboolean isRegistered() = 0;
+ virtual ::java::nio::channels::SelectionKey * keyFor(::java::nio::channels::Selector *) = 0;
+ virtual ::java::nio::channels::spi::SelectorProvider * provider() = 0;
+ virtual ::java::nio::channels::SelectionKey * register$(::java::nio::channels::Selector *, jint);
+ virtual ::java::nio::channels::SelectionKey * register$(::java::nio::channels::Selector *, jint, ::java::lang::Object *) = 0;
+ virtual jint validOps() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_SelectableChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/SelectionKey.h b/gcc-4.8/libjava/java/nio/channels/SelectionKey.h
new file mode 100644
index 000000000..1b6b03974
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/SelectionKey.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_SelectionKey__
+#define __java_nio_channels_SelectionKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class SelectableChannel;
+ class SelectionKey;
+ class Selector;
+ }
+ }
+ }
+}
+
+class java::nio::channels::SelectionKey : public ::java::lang::Object
+{
+
+public: // actually protected
+ SelectionKey();
+public:
+ virtual ::java::lang::Object * attach(::java::lang::Object *);
+ virtual ::java::lang::Object * attachment();
+ virtual jboolean isAcceptable();
+ virtual jboolean isConnectable();
+ virtual jboolean isReadable();
+ virtual jboolean isWritable();
+ virtual void cancel() = 0;
+ virtual ::java::nio::channels::SelectableChannel * channel() = 0;
+ virtual jint interestOps() = 0;
+ virtual ::java::nio::channels::SelectionKey * interestOps(jint) = 0;
+ virtual jboolean isValid() = 0;
+ virtual jint readyOps() = 0;
+ virtual ::java::nio::channels::Selector * selector() = 0;
+ static const jint OP_ACCEPT = 16;
+ static const jint OP_CONNECT = 8;
+ static const jint OP_READ = 1;
+ static const jint OP_WRITE = 4;
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attached;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_SelectionKey__
diff --git a/gcc-4.8/libjava/java/nio/channels/Selector.h b/gcc-4.8/libjava/java/nio/channels/Selector.h
new file mode 100644
index 000000000..7d561adff
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/Selector.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_Selector__
+#define __java_nio_channels_Selector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class Selector;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::Selector : public ::java::lang::Object
+{
+
+public: // actually protected
+ Selector();
+public:
+ static ::java::nio::channels::Selector * open();
+ virtual void close() = 0;
+ virtual jboolean isOpen() = 0;
+ virtual ::java::util::Set * keys() = 0;
+ virtual ::java::nio::channels::spi::SelectorProvider * provider() = 0;
+ virtual jint select() = 0;
+ virtual jint select(jlong) = 0;
+ virtual ::java::util::Set * selectedKeys() = 0;
+ virtual jint selectNow() = 0;
+ virtual ::java::nio::channels::Selector * wakeup() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_Selector__
diff --git a/gcc-4.8/libjava/java/nio/channels/ServerSocketChannel.h b/gcc-4.8/libjava/java/nio/channels/ServerSocketChannel.h
new file mode 100644
index 000000000..b68d0b9a5
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/ServerSocketChannel.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_ServerSocketChannel__
+#define __java_nio_channels_ServerSocketChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractSelectableChannel.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ServerSocket;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class ServerSocketChannel;
+ class SocketChannel;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::ServerSocketChannel : public ::java::nio::channels::spi::AbstractSelectableChannel
+{
+
+public: // actually protected
+ ServerSocketChannel(::java::nio::channels::spi::SelectorProvider *);
+public:
+ virtual ::java::nio::channels::SocketChannel * accept() = 0;
+ virtual ::java::net::ServerSocket * socket() = 0;
+ static ::java::nio::channels::ServerSocketChannel * open();
+ virtual jint validOps();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_ServerSocketChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/SocketChannel.h b/gcc-4.8/libjava/java/nio/channels/SocketChannel.h
new file mode 100644
index 000000000..b742cdbdc
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/SocketChannel.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_SocketChannel__
+#define __java_nio_channels_SocketChannel__
+
+#pragma interface
+
+#include <java/nio/channels/spi/AbstractSelectableChannel.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Socket;
+ class SocketAddress;
+ }
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class SocketChannel;
+ namespace spi
+ {
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::SocketChannel : public ::java::nio::channels::spi::AbstractSelectableChannel
+{
+
+public: // actually protected
+ SocketChannel(::java::nio::channels::spi::SelectorProvider *);
+public:
+ static ::java::nio::channels::SocketChannel * open();
+ static ::java::nio::channels::SocketChannel * open(::java::net::SocketAddress *);
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *);
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *);
+ virtual jint validOps();
+ virtual jint read(::java::nio::ByteBuffer *) = 0;
+ virtual jboolean connect(::java::net::SocketAddress *) = 0;
+ virtual jboolean finishConnect() = 0;
+ virtual jboolean isConnected() = 0;
+ virtual jboolean isConnectionPending() = 0;
+ virtual jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ virtual ::java::net::Socket * socket() = 0;
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ virtual jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_SocketChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/UnresolvedAddressException.h b/gcc-4.8/libjava/java/nio/channels/UnresolvedAddressException.h
new file mode 100644
index 000000000..2a3eefdce
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/UnresolvedAddressException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_UnresolvedAddressException__
+#define __java_nio_channels_UnresolvedAddressException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class UnresolvedAddressException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::UnresolvedAddressException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ UnresolvedAddressException();
+private:
+ static const jlong serialVersionUID = 6136959093620794148LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_UnresolvedAddressException__
diff --git a/gcc-4.8/libjava/java/nio/channels/UnsupportedAddressTypeException.h b/gcc-4.8/libjava/java/nio/channels/UnsupportedAddressTypeException.h
new file mode 100644
index 000000000..7f63dd76e
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/UnsupportedAddressTypeException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_UnsupportedAddressTypeException__
+#define __java_nio_channels_UnsupportedAddressTypeException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class UnsupportedAddressTypeException;
+ }
+ }
+ }
+}
+
+class java::nio::channels::UnsupportedAddressTypeException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ UnsupportedAddressTypeException();
+private:
+ static const jlong serialVersionUID = -2964323842829700493LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_UnsupportedAddressTypeException__
diff --git a/gcc-4.8/libjava/java/nio/channels/VMChannels.h b/gcc-4.8/libjava/java/nio/channels/VMChannels.h
new file mode 100644
index 000000000..3706d9d85
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/VMChannels.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_VMChannels__
+#define __java_nio_channels_VMChannels__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class FileChannelImpl;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class ReadableByteChannel;
+ class VMChannels;
+ class WritableByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::VMChannels : public ::java::lang::Object
+{
+
+ VMChannels();
+public: // actually package-private
+ static ::java::io::FileInputStream * newInputStream(::gnu::java::nio::channels::FileChannelImpl *);
+ static ::java::io::FileOutputStream * newOutputStream(::gnu::java::nio::channels::FileChannelImpl *);
+ static ::java::io::InputStream * newInputStream(::java::nio::channels::ReadableByteChannel *);
+ static ::java::io::OutputStream * newOutputStream(::java::nio::channels::WritableByteChannel *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_VMChannels__
diff --git a/gcc-4.8/libjava/java/nio/channels/VMChannels.java b/gcc-4.8/libjava/java/nio/channels/VMChannels.java
new file mode 100644
index 000000000..4f43a42ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/VMChannels.java
@@ -0,0 +1,85 @@
+/* VMChannels.java --
+ Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio.channels;
+
+import gnu.java.nio.ChannelInputStream;
+import gnu.java.nio.ChannelOutputStream;
+import gnu.java.nio.channels.FileChannelImpl;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+final class VMChannels
+{
+ /**
+ * This class isn't intended to be instantiated.
+ */
+ private VMChannels()
+ {
+ // Do nothing here.
+ }
+
+ static native FileInputStream newInputStream(FileChannelImpl ch);
+
+ static native FileOutputStream newOutputStream(FileChannelImpl ch);
+
+ /**
+ * Constructs a stream that reads bytes from the given channel.
+ */
+ static InputStream newInputStream(ReadableByteChannel ch)
+ {
+ if (ch instanceof FileChannelImpl)
+ return newInputStream((FileChannelImpl) ch);
+ return new ChannelInputStream(ch);
+ }
+
+ /**
+ * Constructs a stream that writes bytes to the given channel.
+ */
+ static OutputStream newOutputStream(WritableByteChannel ch)
+ {
+ if (ch instanceof FileChannelImpl)
+ return newOutputStream((FileChannelImpl) ch);
+ return new ChannelOutputStream(ch);
+ }
+}
diff --git a/gcc-4.8/libjava/java/nio/channels/WritableByteChannel.h b/gcc-4.8/libjava/java/nio/channels/WritableByteChannel.h
new file mode 100644
index 000000000..ff413d27a
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/WritableByteChannel.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_WritableByteChannel__
+#define __java_nio_channels_WritableByteChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ namespace channels
+ {
+ class WritableByteChannel;
+ }
+ }
+ }
+}
+
+class java::nio::channels::WritableByteChannel : public ::java::lang::Object
+{
+
+public:
+ virtual jint write(::java::nio::ByteBuffer *) = 0;
+ virtual jboolean isOpen() = 0;
+ virtual void close() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_nio_channels_WritableByteChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/natVMChannels.cc b/gcc-4.8/libjava/java/nio/channels/natVMChannels.cc
new file mode 100644
index 000000000..d40a51653
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/natVMChannels.cc
@@ -0,0 +1,37 @@
+// natVMChannels.cc - Native part of VMChannels class.
+
+/* Copyright (C) 2004, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <gcj/cni.h>
+
+#include <java/nio/channels/VMChannels.h>
+#include <java/nio/channels/Channels.h>
+#include <java/io/FileInputStream.h>
+#include <java/io/FileOutputStream.h>
+#include <gnu/java/nio/channels/FileChannelImpl.h>
+
+using java::nio::channels::VMChannels;
+using java::io::FileInputStream;
+using java::io::FileOutputStream;
+using gnu::java::nio::channels::FileChannelImpl;
+
+FileInputStream*
+VMChannels::newInputStream(FileChannelImpl* ch)
+{
+ // Needs to be native to bypass Java access protection.
+ return new FileInputStream (ch);
+}
+
+FileOutputStream*
+VMChannels::newOutputStream(FileChannelImpl* ch)
+{
+ // Needs to be native to bypass Java access protection.
+ return new FileOutputStream (ch);
+}
diff --git a/gcc-4.8/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h b/gcc-4.8/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h
new file mode 100644
index 000000000..f830a752b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_spi_AbstractInterruptibleChannel__
+#define __java_nio_channels_spi_AbstractInterruptibleChannel__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ namespace spi
+ {
+ class AbstractInterruptibleChannel;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::spi::AbstractInterruptibleChannel : public ::java::lang::Object
+{
+
+public: // actually protected
+ AbstractInterruptibleChannel();
+ virtual void begin();
+public:
+ virtual void close();
+public: // actually protected
+ virtual void end(jboolean);
+ virtual void implCloseChannel() = 0;
+public:
+ virtual jboolean isOpen();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) closed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_spi_AbstractInterruptibleChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectableChannel.h b/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectableChannel.h
new file mode 100644
index 000000000..f126f441e
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectableChannel.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_spi_AbstractSelectableChannel__
+#define __java_nio_channels_spi_AbstractSelectableChannel__
+
+#pragma interface
+
+#include <java/nio/channels/SelectableChannel.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class SelectableChannel;
+ class SelectionKey;
+ class Selector;
+ namespace spi
+ {
+ class AbstractSelectableChannel;
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::spi::AbstractSelectableChannel : public ::java::nio::channels::SelectableChannel
+{
+
+public: // actually protected
+ AbstractSelectableChannel(::java::nio::channels::spi::SelectorProvider *);
+public:
+ virtual ::java::lang::Object * blockingLock();
+ virtual ::java::nio::channels::SelectableChannel * configureBlocking(jboolean);
+public: // actually protected
+ virtual void implCloseChannel();
+ virtual void implCloseSelectableChannel() = 0;
+ virtual void implConfigureBlocking(jboolean) = 0;
+public:
+ virtual jboolean isBlocking();
+ virtual jboolean isRegistered();
+ virtual ::java::nio::channels::SelectionKey * keyFor(::java::nio::channels::Selector *);
+ virtual ::java::nio::channels::spi::SelectorProvider * provider();
+private:
+ ::java::nio::channels::SelectionKey * locate(::java::nio::channels::Selector *);
+public:
+ virtual ::java::nio::channels::SelectionKey * register$(::java::nio::channels::Selector *, jint, ::java::lang::Object *);
+public: // actually package-private
+ virtual void addSelectionKey(::java::nio::channels::SelectionKey *);
+ virtual void removeSelectionKey(::java::nio::channels::SelectionKey *);
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::channels::SelectableChannel)))) blocking;
+ ::java::lang::Object * LOCK;
+ ::java::nio::channels::spi::SelectorProvider * provider__;
+ ::java::util::LinkedList * keys;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_spi_AbstractSelectableChannel__
diff --git a/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectionKey.h b/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectionKey.h
new file mode 100644
index 000000000..d64a73bfd
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelectionKey.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_spi_AbstractSelectionKey__
+#define __java_nio_channels_spi_AbstractSelectionKey__
+
+#pragma interface
+
+#include <java/nio/channels/SelectionKey.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ namespace spi
+ {
+ class AbstractSelectionKey;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::spi::AbstractSelectionKey : public ::java::nio::channels::SelectionKey
+{
+
+public: // actually protected
+ AbstractSelectionKey();
+public:
+ virtual void cancel();
+ virtual jboolean isValid();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::channels::SelectionKey)))) cancelled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_spi_AbstractSelectionKey__
diff --git a/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelector.h b/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelector.h
new file mode 100644
index 000000000..cf3d2b7c4
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/spi/AbstractSelector.h
@@ -0,0 +1,60 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_spi_AbstractSelector__
+#define __java_nio_channels_spi_AbstractSelector__
+
+#pragma interface
+
+#include <java/nio/channels/Selector.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class SelectionKey;
+ namespace spi
+ {
+ class AbstractSelectableChannel;
+ class AbstractSelectionKey;
+ class AbstractSelector;
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::spi::AbstractSelector : public ::java::nio::channels::Selector
+{
+
+public: // actually protected
+ AbstractSelector(::java::nio::channels::spi::SelectorProvider *);
+public:
+ virtual void close();
+ virtual jboolean isOpen();
+public: // actually protected
+ virtual void begin();
+ virtual void end();
+public:
+ virtual ::java::nio::channels::spi::SelectorProvider * provider();
+public: // actually protected
+ virtual ::java::util::Set * cancelledKeys();
+public: // actually package-private
+ virtual void cancelKey(::java::nio::channels::spi::AbstractSelectionKey *);
+public: // actually protected
+ virtual void implCloseSelector() = 0;
+ virtual ::java::nio::channels::SelectionKey * register$(::java::nio::channels::spi::AbstractSelectableChannel *, jint, ::java::lang::Object *) = 0;
+ virtual void deregister(::java::nio::channels::spi::AbstractSelectionKey *);
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::nio::channels::Selector)))) closed;
+ ::java::nio::channels::spi::SelectorProvider * provider__;
+ ::java::util::HashSet * cancelledKeys__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_spi_AbstractSelector__
diff --git a/gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider$1.h b/gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider$1.h
new file mode 100644
index 000000000..9d8dec2a2
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider$1.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_spi_SelectorProvider$1__
+#define __java_nio_channels_spi_SelectorProvider$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ namespace spi
+ {
+ class SelectorProvider$1;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::spi::SelectorProvider$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SelectorProvider$1();
+public:
+ virtual ::java::lang::String * SelectorProvider$1$run();
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_spi_SelectorProvider$1__
diff --git a/gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider.h b/gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider.h
new file mode 100644
index 000000000..a6b7052be
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/channels/spi/SelectorProvider.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_channels_spi_SelectorProvider__
+#define __java_nio_channels_spi_SelectorProvider__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace channels
+ {
+ class Channel;
+ class DatagramChannel;
+ class Pipe;
+ class ServerSocketChannel;
+ class SocketChannel;
+ namespace spi
+ {
+ class AbstractSelector;
+ class SelectorProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::channels::spi::SelectorProvider : public ::java::lang::Object
+{
+
+public: // actually protected
+ SelectorProvider();
+public:
+ virtual ::java::nio::channels::DatagramChannel * openDatagramChannel() = 0;
+ virtual ::java::nio::channels::Pipe * openPipe() = 0;
+ virtual ::java::nio::channels::spi::AbstractSelector * openSelector() = 0;
+ virtual ::java::nio::channels::ServerSocketChannel * openServerSocketChannel() = 0;
+ virtual ::java::nio::channels::SocketChannel * openSocketChannel() = 0;
+ virtual ::java::nio::channels::Channel * inheritedChannel();
+ static ::java::nio::channels::spi::SelectorProvider * provider();
+private:
+ static ::java::nio::channels::spi::SelectorProvider * systemDefaultProvider;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_channels_spi_SelectorProvider__
diff --git a/gcc-4.8/libjava/java/nio/charset/CharacterCodingException.h b/gcc-4.8/libjava/java/nio/charset/CharacterCodingException.h
new file mode 100644
index 000000000..35935cd1f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CharacterCodingException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CharacterCodingException__
+#define __java_nio_charset_CharacterCodingException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CharacterCodingException;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CharacterCodingException : public ::java::io::IOException
+{
+
+public:
+ CharacterCodingException();
+private:
+ static const jlong serialVersionUID = 8421532232154627783LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CharacterCodingException__
diff --git a/gcc-4.8/libjava/java/nio/charset/Charset.h b/gcc-4.8/libjava/java/nio/charset/Charset.h
new file mode 100644
index 000000000..dabf4671d
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/Charset.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_Charset__
+#define __java_nio_charset_Charset__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class CharBuffer;
+ namespace charset
+ {
+ class Charset;
+ class CharsetDecoder;
+ class CharsetEncoder;
+ namespace spi
+ {
+ class CharsetProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::charset::Charset : public ::java::lang::Object
+{
+
+public: // actually protected
+ Charset(::java::lang::String *, JArray< ::java::lang::String * > *);
+private:
+ static void checkName(::java::lang::String *);
+public:
+ static ::java::nio::charset::Charset * defaultCharset();
+ static jboolean isSupported(::java::lang::String *);
+ static ::java::nio::charset::Charset * forName(::java::lang::String *);
+private:
+ static ::java::nio::charset::Charset * charsetForName(::java::lang::String *);
+public:
+ static ::java::util::SortedMap * availableCharsets();
+private:
+ static ::java::nio::charset::spi::CharsetProvider * provider();
+ static JArray< ::java::nio::charset::spi::CharsetProvider * > * providers2();
+public:
+ virtual ::java::lang::String * name();
+ virtual ::java::util::Set * aliases();
+ virtual ::java::lang::String * displayName();
+ virtual ::java::lang::String * displayName(::java::util::Locale *);
+ virtual jboolean isRegistered();
+ virtual jboolean contains(::java::nio::charset::Charset *) = 0;
+ virtual ::java::nio::charset::CharsetDecoder * newDecoder() = 0;
+ virtual ::java::nio::charset::CharsetEncoder * newEncoder() = 0;
+ virtual jboolean canEncode();
+ virtual ::java::nio::ByteBuffer * encode(::java::nio::CharBuffer *);
+ virtual ::java::nio::ByteBuffer * encode(::java::lang::String *);
+ virtual ::java::nio::CharBuffer * decode(::java::nio::ByteBuffer *);
+ virtual jint Charset$compareTo(::java::nio::charset::Charset *);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ ::java::nio::charset::CharsetEncoder * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cachedEncoder;
+ ::java::nio::charset::CharsetDecoder * cachedDecoder;
+ static JArray< ::java::nio::charset::spi::CharsetProvider * > * providers;
+ ::java::lang::String * canonicalName;
+ JArray< ::java::lang::String * > * aliases__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_Charset__
diff --git a/gcc-4.8/libjava/java/nio/charset/Charset.java b/gcc-4.8/libjava/java/nio/charset/Charset.java
new file mode 100644
index 000000000..04b381948
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/Charset.java
@@ -0,0 +1,414 @@
+/* Charset.java --
+ Copyright (C) 2002, 2004, 2005, 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio.charset;
+
+import gnu.classpath.ServiceFactory;
+import gnu.classpath.SystemProperties;
+import gnu.java.nio.charset.Provider;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.spi.CharsetProvider;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Locale;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+/**
+ * @author Jesse Rosenstock
+ * @since 1.4
+ * @status updated to 1.5
+ */
+public abstract class Charset implements Comparable<Charset>
+{
+ private CharsetEncoder cachedEncoder;
+ private CharsetDecoder cachedDecoder;
+
+ /**
+ * Extra Charset providers.
+ */
+ private static CharsetProvider[] providers;
+
+ private final String canonicalName;
+ private final String[] aliases;
+
+ protected Charset (String canonicalName, String[] aliases)
+ {
+ checkName (canonicalName);
+ if (aliases != null)
+ {
+ int n = aliases.length;
+ for (int i = 0; i < n; ++i)
+ checkName (aliases[i]);
+ }
+
+ cachedEncoder = null;
+ cachedDecoder = null;
+ this.canonicalName = canonicalName;
+ this.aliases = aliases;
+ }
+
+ /**
+ * @throws IllegalCharsetNameException if the name is illegal
+ */
+ private static void checkName (String name)
+ {
+ int n = name.length ();
+
+ if (n == 0)
+ throw new IllegalCharsetNameException (name);
+
+ char ch = name.charAt (0);
+ if (!(('A' <= ch && ch <= 'Z')
+ || ('a' <= ch && ch <= 'z')
+ || ('0' <= ch && ch <= '9')))
+ throw new IllegalCharsetNameException (name);
+
+ for (int i = 1; i < n; ++i)
+ {
+ ch = name.charAt (i);
+ if (!(('A' <= ch && ch <= 'Z')
+ || ('a' <= ch && ch <= 'z')
+ || ('0' <= ch && ch <= '9')
+ || ch == '-' || ch == '.' || ch == ':' || ch == '_'))
+ throw new IllegalCharsetNameException (name);
+ }
+ }
+
+ /**
+ * Returns the system default charset.
+ *
+ * This may be set by the user or VM with the file.encoding
+ * property.
+ *
+ * @since 1.5
+ */
+ public static Charset defaultCharset()
+ {
+ String encoding;
+
+ try
+ {
+ encoding = SystemProperties.getProperty("file.encoding");
+ }
+ catch(SecurityException e)
+ {
+ // Use fallback.
+ encoding = "ISO-8859-1";
+ }
+ catch(IllegalArgumentException e)
+ {
+ // Use fallback.
+ encoding = "ISO-8859-1";
+ }
+
+ try
+ {
+ return forName(encoding);
+ }
+ catch(UnsupportedCharsetException e)
+ {
+ // Ignore.
+ }
+ catch(IllegalCharsetNameException e)
+ {
+ // Ignore.
+ }
+ catch(IllegalArgumentException e)
+ {
+ // Ignore.
+ }
+
+ throw new IllegalStateException("Can't get default charset!");
+ }
+
+ public static boolean isSupported (String charsetName)
+ {
+ return charsetForName (charsetName) != null;
+ }
+
+ /**
+ * Returns the Charset instance for the charset of the given name.
+ *
+ * @param charsetName
+ * @return the Charset instance for the indicated charset
+ * @throws UnsupportedCharsetException if this VM does not support
+ * the charset of the given name.
+ * @throws IllegalCharsetNameException if the given charset name is
+ * legal.
+ * @throws IllegalArgumentException if <code>charsetName</code> is null.
+ */
+ public static Charset forName (String charsetName)
+ {
+ // Throws IllegalArgumentException as the JDK does.
+ if(charsetName == null)
+ throw new IllegalArgumentException("Charset name must not be null.");
+
+ Charset cs = charsetForName (charsetName);
+ if (cs == null)
+ throw new UnsupportedCharsetException (charsetName);
+ return cs;
+ }
+
+ /**
+ * Retrieves a charset for the given charset name.
+ *
+ * @return A charset object for the charset with the specified name, or
+ * <code>null</code> if no such charset exists.
+ *
+ * @throws IllegalCharsetNameException if the name is illegal
+ */
+ private static Charset charsetForName(String charsetName)
+ {
+ checkName (charsetName);
+ // Try the default provider first
+ // (so we don't need to load external providers unless really necessary)
+ // if it is an exotic charset try loading the external providers.
+ Charset cs = provider().charsetForName(charsetName);
+ if (cs == null)
+ {
+ CharsetProvider[] providers = providers2();
+ for (int i = 0; i < providers.length; i++)
+ {
+ cs = providers[i].charsetForName(charsetName);
+ if (cs != null)
+ break;
+ }
+ }
+ return cs;
+ }
+
+ public static SortedMap<String, Charset> availableCharsets()
+ {
+ TreeMap<String, Charset> charsets
+ = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ for (Iterator<Charset> i = provider().charsets(); i.hasNext(); )
+ {
+ Charset cs = i.next();
+ charsets.put(cs.name(), cs);
+ }
+
+ CharsetProvider[] providers = providers2();
+ for (int j = 0; j < providers.length; j++)
+ {
+ for (Iterator<Charset> i = providers[j].charsets(); i.hasNext(); )
+ {
+ Charset cs = (Charset) i.next();
+ charsets.put(cs.name(), cs);
+ }
+ }
+
+ return Collections.unmodifiableSortedMap(charsets);
+ }
+
+ private static CharsetProvider provider()
+ {
+ try
+ {
+ String s = System.getProperty("charset.provider");
+ if (s != null)
+ {
+ CharsetProvider p =
+ (CharsetProvider) ((Class.forName(s)).newInstance());
+ return p;
+ }
+ }
+ catch (Exception e)
+ {
+ // Ignore.
+ }
+
+ return Provider.provider();
+ }
+
+ /**
+ * We need to support multiple providers, reading them from
+ * java.nio.charset.spi.CharsetProvider in the resource directory
+ * META-INF/services. This returns the "extra" charset providers.
+ */
+ private static CharsetProvider[] providers2()
+ {
+ if (providers == null)
+ {
+ try
+ {
+ Iterator i = ServiceFactory.lookupProviders(CharsetProvider.class);
+ LinkedHashSet set = new LinkedHashSet();
+ while (i.hasNext())
+ set.add(i.next());
+
+ providers = new CharsetProvider[set.size()];
+ set.toArray(providers);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ return providers;
+ }
+
+ public final String name ()
+ {
+ return canonicalName;
+ }
+
+ public final Set<String> aliases ()
+ {
+ if (aliases == null)
+ return Collections.<String>emptySet();
+
+ // should we cache the aliasSet instead?
+ int n = aliases.length;
+ HashSet<String> aliasSet = new HashSet<String> (n);
+ for (int i = 0; i < n; ++i)
+ aliasSet.add (aliases[i]);
+ return Collections.unmodifiableSet (aliasSet);
+ }
+
+ public String displayName ()
+ {
+ return canonicalName;
+ }
+
+ public String displayName (Locale locale)
+ {
+ return canonicalName;
+ }
+
+ public final boolean isRegistered ()
+ {
+ return (!canonicalName.startsWith ("x-")
+ && !canonicalName.startsWith ("X-"));
+ }
+
+ public abstract boolean contains (Charset cs);
+
+ public abstract CharsetDecoder newDecoder ();
+
+ public abstract CharsetEncoder newEncoder ();
+
+ public boolean canEncode ()
+ {
+ return true;
+ }
+
+ // NB: This implementation serializes different threads calling
+ // Charset.encode(), a potential performance problem. It might
+ // be better to remove the cache, or use ThreadLocal to cache on
+ // a per-thread basis.
+ public final synchronized ByteBuffer encode (CharBuffer cb)
+ {
+ try
+ {
+ if (cachedEncoder == null)
+ {
+ cachedEncoder = newEncoder ()
+ .onMalformedInput (CodingErrorAction.REPLACE)
+ .onUnmappableCharacter (CodingErrorAction.REPLACE);
+ } else
+ cachedEncoder.reset();
+ return cachedEncoder.encode (cb);
+ }
+ catch (CharacterCodingException e)
+ {
+ throw new AssertionError (e);
+ }
+ }
+
+ public final ByteBuffer encode (String str)
+ {
+ return encode (CharBuffer.wrap (str));
+ }
+
+ // NB: This implementation serializes different threads calling
+ // Charset.decode(), a potential performance problem. It might
+ // be better to remove the cache, or use ThreadLocal to cache on
+ // a per-thread basis.
+ public final synchronized CharBuffer decode (ByteBuffer bb)
+ {
+ try
+ {
+ if (cachedDecoder == null)
+ {
+ cachedDecoder = newDecoder ()
+ .onMalformedInput (CodingErrorAction.REPLACE)
+ .onUnmappableCharacter (CodingErrorAction.REPLACE);
+ } else
+ cachedDecoder.reset();
+
+ return cachedDecoder.decode (bb);
+ }
+ catch (CharacterCodingException e)
+ {
+ throw new AssertionError (e);
+ }
+ }
+
+ public final int compareTo (Charset other)
+ {
+ return canonicalName.compareToIgnoreCase (other.canonicalName);
+ }
+
+ public final int hashCode ()
+ {
+ return canonicalName.hashCode ();
+ }
+
+ public final boolean equals (Object ob)
+ {
+ if (ob instanceof Charset)
+ return canonicalName.equalsIgnoreCase (((Charset) ob).canonicalName);
+ else
+ return false;
+ }
+
+ public final String toString ()
+ {
+ return canonicalName;
+ }
+}
diff --git a/gcc-4.8/libjava/java/nio/charset/CharsetDecoder.h b/gcc-4.8/libjava/java/nio/charset/CharsetDecoder.h
new file mode 100644
index 000000000..fe75d48a5
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CharsetDecoder.h
@@ -0,0 +1,81 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CharsetDecoder__
+#define __java_nio_charset_CharsetDecoder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class CharBuffer;
+ namespace charset
+ {
+ class Charset;
+ class CharsetDecoder;
+ class CoderResult;
+ class CodingErrorAction;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CharsetDecoder : public ::java::lang::Object
+{
+
+ CharsetDecoder(::java::nio::charset::Charset *, jfloat, jfloat, ::java::lang::String *);
+public: // actually protected
+ CharsetDecoder(::java::nio::charset::Charset *, jfloat, jfloat);
+public:
+ virtual jfloat averageCharsPerByte();
+ virtual ::java::nio::charset::Charset * charset();
+ virtual ::java::nio::CharBuffer * decode(::java::nio::ByteBuffer *);
+ virtual ::java::nio::charset::CoderResult * decode(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *, jboolean);
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *) = 0;
+public:
+ virtual ::java::nio::charset::Charset * detectedCharset();
+ virtual ::java::nio::charset::CoderResult * flush(::java::nio::CharBuffer *);
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * implFlush(::java::nio::CharBuffer *);
+public:
+ virtual ::java::nio::charset::CharsetDecoder * onMalformedInput(::java::nio::charset::CodingErrorAction *);
+public: // actually protected
+ virtual void implOnMalformedInput(::java::nio::charset::CodingErrorAction *);
+ virtual void implOnUnmappableCharacter(::java::nio::charset::CodingErrorAction *);
+ virtual void implReplaceWith(::java::lang::String *);
+ virtual void implReset();
+public:
+ virtual jboolean isAutoDetecting();
+ virtual jboolean isCharsetDetected();
+ virtual ::java::nio::charset::CodingErrorAction * malformedInputAction();
+ virtual jfloat maxCharsPerByte();
+ virtual ::java::nio::charset::CharsetDecoder * onUnmappableCharacter(::java::nio::charset::CodingErrorAction *);
+ virtual ::java::lang::String * replacement();
+ virtual ::java::nio::charset::CharsetDecoder * replaceWith(::java::lang::String *);
+ virtual ::java::nio::charset::CharsetDecoder * reset();
+ virtual ::java::nio::charset::CodingErrorAction * unmappableCharacterAction();
+private:
+ static const jint STATE_RESET = 0;
+ static const jint STATE_CODING = 1;
+ static const jint STATE_END = 2;
+ static const jint STATE_FLUSHED = 3;
+ static ::java::lang::String * DEFAULT_REPLACEMENT;
+ ::java::nio::charset::Charset * __attribute__((aligned(__alignof__( ::java::lang::Object)))) charset__;
+ jfloat averageCharsPerByte__;
+ jfloat maxCharsPerByte__;
+ ::java::lang::String * replacement__;
+ jint state;
+ ::java::nio::charset::CodingErrorAction * malformedInputAction__;
+ ::java::nio::charset::CodingErrorAction * unmappableCharacterAction__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CharsetDecoder__
diff --git a/gcc-4.8/libjava/java/nio/charset/CharsetEncoder.h b/gcc-4.8/libjava/java/nio/charset/CharsetEncoder.h
new file mode 100644
index 000000000..5a64e44f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CharsetEncoder.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CharsetEncoder__
+#define __java_nio_charset_CharsetEncoder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ class CharBuffer;
+ namespace charset
+ {
+ class Charset;
+ class CharsetEncoder;
+ class CoderResult;
+ class CodingErrorAction;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CharsetEncoder : public ::java::lang::Object
+{
+
+public: // actually protected
+ CharsetEncoder(::java::nio::charset::Charset *, jfloat, jfloat);
+ CharsetEncoder(::java::nio::charset::Charset *, jfloat, jfloat, JArray< jbyte > *);
+public:
+ virtual jfloat averageBytesPerChar();
+ virtual jboolean canEncode(jchar);
+ virtual jboolean canEncode(::java::lang::CharSequence *);
+private:
+ jboolean canEncode(::java::nio::CharBuffer *);
+public:
+ virtual ::java::nio::charset::Charset * charset();
+ virtual ::java::nio::ByteBuffer * encode(::java::nio::CharBuffer *);
+ virtual ::java::nio::charset::CoderResult * encode(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *, jboolean);
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *) = 0;
+public:
+ virtual ::java::nio::charset::CoderResult * flush(::java::nio::ByteBuffer *);
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * implFlush(::java::nio::ByteBuffer *);
+ virtual void implOnMalformedInput(::java::nio::charset::CodingErrorAction *);
+ virtual void implOnUnmappableCharacter(::java::nio::charset::CodingErrorAction *);
+ virtual void implReplaceWith(JArray< jbyte > *);
+ virtual void implReset();
+public:
+ virtual jboolean isLegalReplacement(JArray< jbyte > *);
+ virtual ::java::nio::charset::CodingErrorAction * malformedInputAction();
+ virtual jfloat maxBytesPerChar();
+ virtual ::java::nio::charset::CharsetEncoder * onMalformedInput(::java::nio::charset::CodingErrorAction *);
+ virtual ::java::nio::charset::CodingErrorAction * unmappableCharacterAction();
+ virtual ::java::nio::charset::CharsetEncoder * onUnmappableCharacter(::java::nio::charset::CodingErrorAction *);
+ virtual JArray< jbyte > * replacement();
+ virtual ::java::nio::charset::CharsetEncoder * replaceWith(JArray< jbyte > *);
+ virtual ::java::nio::charset::CharsetEncoder * reset();
+private:
+ static const jint STATE_RESET = 0;
+ static const jint STATE_CODING = 1;
+ static const jint STATE_END = 2;
+ static const jint STATE_FLUSHED = 3;
+ static JArray< jbyte > * DEFAULT_REPLACEMENT;
+ ::java::nio::charset::Charset * __attribute__((aligned(__alignof__( ::java::lang::Object)))) charset__;
+ jfloat averageBytesPerChar__;
+ jfloat maxBytesPerChar__;
+ JArray< jbyte > * replacement__;
+ jint state;
+ ::java::nio::charset::CodingErrorAction * malformedInputAction__;
+ ::java::nio::charset::CodingErrorAction * unmappableCharacterAction__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CharsetEncoder__
diff --git a/gcc-4.8/libjava/java/nio/charset/CoderMalfunctionError.h b/gcc-4.8/libjava/java/nio/charset/CoderMalfunctionError.h
new file mode 100644
index 000000000..b3ae83adf
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CoderMalfunctionError.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CoderMalfunctionError__
+#define __java_nio_charset_CoderMalfunctionError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CoderMalfunctionError;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CoderMalfunctionError : public ::java::lang::Error
+{
+
+public:
+ CoderMalfunctionError(::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -1151412348057794301LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CoderMalfunctionError__
diff --git a/gcc-4.8/libjava/java/nio/charset/CoderResult$1.h b/gcc-4.8/libjava/java/nio/charset/CoderResult$1.h
new file mode 100644
index 000000000..421777005
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CoderResult$1.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CoderResult$1__
+#define __java_nio_charset_CoderResult$1__
+
+#pragma interface
+
+#include <java/nio/charset/CoderResult$Cache.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CoderResult;
+ class CoderResult$1;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CoderResult$1 : public ::java::nio::charset::CoderResult$Cache
+{
+
+public: // actually package-private
+ CoderResult$1();
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * make(jint);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CoderResult$1__
diff --git a/gcc-4.8/libjava/java/nio/charset/CoderResult$2.h b/gcc-4.8/libjava/java/nio/charset/CoderResult$2.h
new file mode 100644
index 000000000..60dcbdcb2
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CoderResult$2.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CoderResult$2__
+#define __java_nio_charset_CoderResult$2__
+
+#pragma interface
+
+#include <java/nio/charset/CoderResult$Cache.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CoderResult;
+ class CoderResult$2;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CoderResult$2 : public ::java::nio::charset::CoderResult$Cache
+{
+
+public: // actually package-private
+ CoderResult$2();
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * make(jint);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CoderResult$2__
diff --git a/gcc-4.8/libjava/java/nio/charset/CoderResult$Cache.h b/gcc-4.8/libjava/java/nio/charset/CoderResult$Cache.h
new file mode 100644
index 000000000..38416bd9e
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CoderResult$Cache.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CoderResult$Cache__
+#define __java_nio_charset_CoderResult$Cache__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CoderResult;
+ class CoderResult$Cache;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CoderResult$Cache : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CoderResult$Cache();
+ virtual ::java::nio::charset::CoderResult * get(jint);
+public: // actually protected
+ virtual ::java::nio::charset::CoderResult * make(jint) = 0;
+private:
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cache;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CoderResult$Cache__
diff --git a/gcc-4.8/libjava/java/nio/charset/CoderResult.h b/gcc-4.8/libjava/java/nio/charset/CoderResult.h
new file mode 100644
index 000000000..e2c84a61c
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CoderResult.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CoderResult__
+#define __java_nio_charset_CoderResult__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CoderResult;
+ class CoderResult$Cache;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CoderResult : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CoderResult(jint, jint);
+public:
+ virtual jboolean isError();
+ virtual jboolean isMalformed();
+ virtual jboolean isOverflow();
+ virtual jboolean isUnderflow();
+ virtual jboolean isUnmappable();
+ virtual jint length();
+ static ::java::nio::charset::CoderResult * malformedForLength(jint);
+ virtual void throwException();
+ virtual ::java::lang::String * toString();
+ static ::java::nio::charset::CoderResult * unmappableForLength(jint);
+private:
+ static const jint TYPE_MALFORMED = 0;
+ static const jint TYPE_OVERFLOW = 1;
+ static const jint TYPE_UNDERFLOW = 2;
+ static const jint TYPE_UNMAPPABLE = 3;
+public:
+ static ::java::nio::charset::CoderResult * OVERFLOW;
+ static ::java::nio::charset::CoderResult * UNDERFLOW;
+private:
+ static JArray< ::java::lang::String * > * names;
+ static ::java::nio::charset::CoderResult$Cache * malformedCache;
+ static ::java::nio::charset::CoderResult$Cache * unmappableCache;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ jint length__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CoderResult__
diff --git a/gcc-4.8/libjava/java/nio/charset/CodingErrorAction.h b/gcc-4.8/libjava/java/nio/charset/CodingErrorAction.h
new file mode 100644
index 000000000..c0bf2aa66
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/CodingErrorAction.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_CodingErrorAction__
+#define __java_nio_charset_CodingErrorAction__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class CodingErrorAction;
+ }
+ }
+ }
+}
+
+class java::nio::charset::CodingErrorAction : public ::java::lang::Object
+{
+
+ CodingErrorAction(::java::lang::String *);
+public:
+ virtual ::java::lang::String * toString();
+ static ::java::nio::charset::CodingErrorAction * IGNORE;
+ static ::java::nio::charset::CodingErrorAction * REPLACE;
+ static ::java::nio::charset::CodingErrorAction * REPORT;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_CodingErrorAction__
diff --git a/gcc-4.8/libjava/java/nio/charset/IllegalCharsetNameException.h b/gcc-4.8/libjava/java/nio/charset/IllegalCharsetNameException.h
new file mode 100644
index 000000000..c4b42474f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/IllegalCharsetNameException.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_IllegalCharsetNameException__
+#define __java_nio_charset_IllegalCharsetNameException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class IllegalCharsetNameException;
+ }
+ }
+ }
+}
+
+class java::nio::charset::IllegalCharsetNameException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ IllegalCharsetNameException(::java::lang::String *);
+ virtual ::java::lang::String * getCharsetName();
+private:
+ static const jlong serialVersionUID = 1457525358470002989LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::IllegalArgumentException)))) charsetName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_IllegalCharsetNameException__
diff --git a/gcc-4.8/libjava/java/nio/charset/MalformedInputException.h b/gcc-4.8/libjava/java/nio/charset/MalformedInputException.h
new file mode 100644
index 000000000..03a6d8d98
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/MalformedInputException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_MalformedInputException__
+#define __java_nio_charset_MalformedInputException__
+
+#pragma interface
+
+#include <java/nio/charset/CharacterCodingException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class MalformedInputException;
+ }
+ }
+ }
+}
+
+class java::nio::charset::MalformedInputException : public ::java::nio::charset::CharacterCodingException
+{
+
+public:
+ MalformedInputException(jint);
+ virtual jint getInputLength();
+ virtual ::java::lang::String * getMessage();
+private:
+ static const jlong serialVersionUID = -3438823399834806194LL;
+ jint __attribute__((aligned(__alignof__( ::java::nio::charset::CharacterCodingException)))) inputLength;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_MalformedInputException__
diff --git a/gcc-4.8/libjava/java/nio/charset/UnmappableCharacterException.h b/gcc-4.8/libjava/java/nio/charset/UnmappableCharacterException.h
new file mode 100644
index 000000000..f0ced263f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/UnmappableCharacterException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_UnmappableCharacterException__
+#define __java_nio_charset_UnmappableCharacterException__
+
+#pragma interface
+
+#include <java/nio/charset/CharacterCodingException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class UnmappableCharacterException;
+ }
+ }
+ }
+}
+
+class java::nio::charset::UnmappableCharacterException : public ::java::nio::charset::CharacterCodingException
+{
+
+public:
+ UnmappableCharacterException(jint);
+ virtual jint getInputLength();
+ virtual ::java::lang::String * getMessage();
+private:
+ static const jlong serialVersionUID = -7026962371537706123LL;
+ jint __attribute__((aligned(__alignof__( ::java::nio::charset::CharacterCodingException)))) inputLength;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_UnmappableCharacterException__
diff --git a/gcc-4.8/libjava/java/nio/charset/UnsupportedCharsetException.h b/gcc-4.8/libjava/java/nio/charset/UnsupportedCharsetException.h
new file mode 100644
index 000000000..7f09678fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/UnsupportedCharsetException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_UnsupportedCharsetException__
+#define __java_nio_charset_UnsupportedCharsetException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class UnsupportedCharsetException;
+ }
+ }
+ }
+}
+
+class java::nio::charset::UnsupportedCharsetException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ UnsupportedCharsetException(::java::lang::String *);
+ virtual ::java::lang::String * getCharsetName();
+private:
+ static const jlong serialVersionUID = 1490765524727386367LL;
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::IllegalArgumentException)))) charsetName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_UnsupportedCharsetException__
diff --git a/gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.h b/gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.h
new file mode 100644
index 000000000..b194e106b
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_charset_spi_CharsetProvider__
+#define __java_nio_charset_spi_CharsetProvider__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class Charset;
+ namespace spi
+ {
+ class CharsetProvider;
+ }
+ }
+ }
+ }
+}
+
+class java::nio::charset::spi::CharsetProvider : public ::java::lang::Object
+{
+
+public: // actually protected
+ CharsetProvider();
+public:
+ virtual ::java::util::Iterator * charsets() = 0;
+ virtual ::java::nio::charset::Charset * charsetForName(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_charset_spi_CharsetProvider__
diff --git a/gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.java b/gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.java
new file mode 100644
index 000000000..d56723c3f
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/charset/spi/CharsetProvider.java
@@ -0,0 +1,96 @@
+/* CharsetProvider.java -- charset service provider interface
+ Copyright (C) 2002, 2006, 2007 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.nio.charset.spi;
+
+import java.nio.charset.Charset;
+import java.util.Iterator;
+
+
+/**
+ * This class allows an implementor to provide additional character sets. The
+ * subclass must have a nullary constructor, and be attached to charset
+ * implementation classes. These extensions are loaded via the context class
+ * loader. To provide the charset extension, all files named
+ * <code>META-INF/services/java.nio.charset.spi.CharsetProvider</code> are
+ * read from the classpath. Each one should be a UTF-8 encoded list of
+ * fully-qualified names of concrete subclasses of this class; whitespace is
+ * ignored, and '#' starts comments. Duplicates are ignored. The
+ * implementations must be accessible to the classloader that requests them.
+ *
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @see Charset
+ * @since 1.4
+ * @status updated to 1.4
+ */
+public abstract class CharsetProvider
+{
+ /**
+ * Initialize a new charset provider. This performs a security check on
+ * RuntimePermission("charsetProvider").
+ *
+ * @throws SecurityException if building a new set is not allowed
+ */
+ protected CharsetProvider()
+ {
+ // We only do the security check for custom providers, not for the
+ // built in ones.
+ SecurityManager s = System.getSecurityManager();
+ if (s != null &&
+ ! (this instanceof gnu.java.nio.charset.Provider))
+ // GCJ LOCAL - We have the iconv provider in standard.omit
+ // || this instanceof gnu.java.nio.charset.iconv.IconvProvider))
+ s.checkPermission(new RuntimePermission("charsetProvider"));
+ }
+
+ /**
+ * Returns an iterator over the charsets defined by this provider.
+ *
+ * @return the iterator
+ * @see Charset#availableCharsets()
+ */
+ public abstract Iterator<Charset> charsets();
+
+ /**
+ * Returns the named charset, by canonical name or alias.
+ *
+ * @param name the name of the character
+ *
+ * @return the charset, or null if not supported
+ */
+ public abstract Charset charsetForName(String name);
+} // class CharsetProvider
diff --git a/gcc-4.8/libjava/java/nio/natVMDirectByteBufferImpl.cc b/gcc-4.8/libjava/java/nio/natVMDirectByteBufferImpl.cc
new file mode 100644
index 000000000..3119fdea3
--- /dev/null
+++ b/gcc-4.8/libjava/java/nio/natVMDirectByteBufferImpl.cc
@@ -0,0 +1,72 @@
+// natDirectByteBufferImpl.cc
+
+/* Copyright (C) 2003, 2004 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <stdlib.h>
+
+#include <gnu/gcj/RawData.h>
+#include <java/nio/VMDirectByteBuffer.h>
+
+using gnu::gcj::RawData;
+
+RawData*
+java::nio::VMDirectByteBuffer::allocate (jint capacity)
+{
+ return reinterpret_cast<gnu::gcj::RawData*> (::malloc (capacity));
+}
+
+void
+java::nio::VMDirectByteBuffer::free (gnu::gcj::RawData* address)
+{
+ ::free (reinterpret_cast<void*> (address));
+}
+
+jbyte
+java::nio::VMDirectByteBuffer::get (RawData* address, jint index)
+{
+ jbyte* pointer = reinterpret_cast<jbyte*> (address) + index;
+ return *pointer;
+}
+
+void
+java::nio::VMDirectByteBuffer::get (RawData* address, jint index,
+ jbyteArray dst, jint offset, jint length)
+{
+ jbyte* src = reinterpret_cast<jbyte*> (address) + index;
+ memcpy (elements (dst) + offset, src, length);
+}
+
+void
+java::nio::VMDirectByteBuffer::put (gnu::gcj::RawData* address,
+ jint index, jbyte value)
+{
+ jbyte* pointer = reinterpret_cast<jbyte*> (address) + index;
+ *pointer = value;
+}
+
+RawData*
+java::nio::VMDirectByteBuffer::adjustAddress (RawData* address, jint offset)
+{
+ jbyte* start = reinterpret_cast<jbyte*> (address) + offset;
+ return reinterpret_cast<RawData*>(start);
+}
+
+void
+java::nio::VMDirectByteBuffer::shiftDown (RawData* address, jint dst_offset,
+ jint src_offset, jint count)
+{
+ jbyte* dst = reinterpret_cast<jbyte*> (address) + dst_offset;
+ jbyte* src = reinterpret_cast<jbyte*> (address) + src_offset;
+ ::memmove(dst, src, count);
+}
diff --git a/gcc-4.8/libjava/java/rmi/AccessException.h b/gcc-4.8/libjava/java/rmi/AccessException.h
new file mode 100644
index 000000000..1b49620a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/AccessException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_AccessException__
+#define __java_rmi_AccessException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class AccessException;
+ }
+ }
+}
+
+class java::rmi::AccessException : public ::java::rmi::RemoteException
+{
+
+public:
+ AccessException(::java::lang::String *);
+ AccessException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 6314925228044966088LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_AccessException__
diff --git a/gcc-4.8/libjava/java/rmi/AlreadyBoundException.h b/gcc-4.8/libjava/java/rmi/AlreadyBoundException.h
new file mode 100644
index 000000000..f24f4f906
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/AlreadyBoundException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_AlreadyBoundException__
+#define __java_rmi_AlreadyBoundException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class AlreadyBoundException;
+ }
+ }
+}
+
+class java::rmi::AlreadyBoundException : public ::java::lang::Exception
+{
+
+public:
+ AlreadyBoundException();
+ AlreadyBoundException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 9218657361741657110LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_AlreadyBoundException__
diff --git a/gcc-4.8/libjava/java/rmi/ConnectException.h b/gcc-4.8/libjava/java/rmi/ConnectException.h
new file mode 100644
index 000000000..a992a0471
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/ConnectException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_ConnectException__
+#define __java_rmi_ConnectException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class ConnectException;
+ }
+ }
+}
+
+class java::rmi::ConnectException : public ::java::rmi::RemoteException
+{
+
+public:
+ ConnectException(::java::lang::String *);
+ ConnectException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 4863550261346652506LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_ConnectException__
diff --git a/gcc-4.8/libjava/java/rmi/ConnectIOException.h b/gcc-4.8/libjava/java/rmi/ConnectIOException.h
new file mode 100644
index 000000000..c841a61fd
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/ConnectIOException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_ConnectIOException__
+#define __java_rmi_ConnectIOException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class ConnectIOException;
+ }
+ }
+}
+
+class java::rmi::ConnectIOException : public ::java::rmi::RemoteException
+{
+
+public:
+ ConnectIOException(::java::lang::String *);
+ ConnectIOException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -8087809532704668744LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_ConnectIOException__
diff --git a/gcc-4.8/libjava/java/rmi/MarshalException.h b/gcc-4.8/libjava/java/rmi/MarshalException.h
new file mode 100644
index 000000000..db8ed5e1a
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/MarshalException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_MarshalException__
+#define __java_rmi_MarshalException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalException;
+ }
+ }
+}
+
+class java::rmi::MarshalException : public ::java::rmi::RemoteException
+{
+
+public:
+ MarshalException(::java::lang::String *);
+ MarshalException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 6223554758134037936LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_MarshalException__
diff --git a/gcc-4.8/libjava/java/rmi/MarshalledObject.h b/gcc-4.8/libjava/java/rmi/MarshalledObject.h
new file mode 100644
index 000000000..e287ab26c
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/MarshalledObject.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_MarshalledObject__
+#define __java_rmi_MarshalledObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ }
+ }
+}
+
+class java::rmi::MarshalledObject : public ::java::lang::Object
+{
+
+public:
+ MarshalledObject(::java::lang::Object *);
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::Object * get();
+ jint hashCode();
+private:
+ static const jlong serialVersionUID = 8988374069173025854LL;
+public: // actually package-private
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) objBytes;
+ JArray< jbyte > * locBytes;
+ jint hash;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_MarshalledObject__
diff --git a/gcc-4.8/libjava/java/rmi/Naming.h b/gcc-4.8/libjava/java/rmi/Naming.h
new file mode 100644
index 000000000..ac47cea0d
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/Naming.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_Naming__
+#define __java_rmi_Naming__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ namespace rmi
+ {
+ class Naming;
+ class Remote;
+ namespace registry
+ {
+ class Registry;
+ }
+ }
+ }
+}
+
+class java::rmi::Naming : public ::java::lang::Object
+{
+
+ Naming();
+public:
+ static ::java::rmi::Remote * lookup(::java::lang::String *);
+ static void bind(::java::lang::String *, ::java::rmi::Remote *);
+ static void unbind(::java::lang::String *);
+ static void rebind(::java::lang::String *, ::java::rmi::Remote *);
+ static JArray< ::java::lang::String * > * list(::java::lang::String *);
+private:
+ static ::java::rmi::registry::Registry * getRegistry(::java::net::URL *);
+ static ::java::net::URL * parseURL(::java::lang::String *);
+ static ::java::lang::String * getName(::java::net::URL *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_Naming__
diff --git a/gcc-4.8/libjava/java/rmi/NoSuchObjectException.h b/gcc-4.8/libjava/java/rmi/NoSuchObjectException.h
new file mode 100644
index 000000000..0f02109e8
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/NoSuchObjectException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_NoSuchObjectException__
+#define __java_rmi_NoSuchObjectException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class NoSuchObjectException;
+ }
+ }
+}
+
+class java::rmi::NoSuchObjectException : public ::java::rmi::RemoteException
+{
+
+public:
+ NoSuchObjectException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 6619395951570472985LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_NoSuchObjectException__
diff --git a/gcc-4.8/libjava/java/rmi/NotBoundException.h b/gcc-4.8/libjava/java/rmi/NotBoundException.h
new file mode 100644
index 000000000..1bdb01737
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/NotBoundException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_NotBoundException__
+#define __java_rmi_NotBoundException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class NotBoundException;
+ }
+ }
+}
+
+class java::rmi::NotBoundException : public ::java::lang::Exception
+{
+
+public:
+ NotBoundException();
+ NotBoundException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -1857741824849069317LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_NotBoundException__
diff --git a/gcc-4.8/libjava/java/rmi/RMISecurityException.h b/gcc-4.8/libjava/java/rmi/RMISecurityException.h
new file mode 100644
index 000000000..f3207f5e2
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/RMISecurityException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_RMISecurityException__
+#define __java_rmi_RMISecurityException__
+
+#pragma interface
+
+#include <java/lang/SecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class RMISecurityException;
+ }
+ }
+}
+
+class java::rmi::RMISecurityException : public ::java::lang::SecurityException
+{
+
+public:
+ RMISecurityException(::java::lang::String *);
+ RMISecurityException(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -8433406075740433514LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_RMISecurityException__
diff --git a/gcc-4.8/libjava/java/rmi/RMISecurityManager.h b/gcc-4.8/libjava/java/rmi/RMISecurityManager.h
new file mode 100644
index 000000000..267543e68
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/RMISecurityManager.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_RMISecurityManager__
+#define __java_rmi_RMISecurityManager__
+
+#pragma interface
+
+#include <java/lang/SecurityManager.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class RMISecurityManager;
+ }
+ }
+}
+
+class java::rmi::RMISecurityManager : public ::java::lang::SecurityManager
+{
+
+public:
+ RMISecurityManager();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_RMISecurityManager__
diff --git a/gcc-4.8/libjava/java/rmi/Remote.h b/gcc-4.8/libjava/java/rmi/Remote.h
new file mode 100644
index 000000000..f74cf3cba
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/Remote.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_Remote__
+#define __java_rmi_Remote__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ }
+ }
+}
+
+class java::rmi::Remote : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_Remote__
diff --git a/gcc-4.8/libjava/java/rmi/RemoteException.h b/gcc-4.8/libjava/java/rmi/RemoteException.h
new file mode 100644
index 000000000..1e5213214
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/RemoteException.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_RemoteException__
+#define __java_rmi_RemoteException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class RemoteException;
+ }
+ }
+}
+
+class java::rmi::RemoteException : public ::java::io::IOException
+{
+
+public:
+ RemoteException();
+ RemoteException(::java::lang::String *);
+ RemoteException(::java::lang::String *, ::java::lang::Throwable *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = -5148567311918794206LL;
+public:
+ ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::io::IOException)))) detail;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_RemoteException__
diff --git a/gcc-4.8/libjava/java/rmi/ServerError.h b/gcc-4.8/libjava/java/rmi/ServerError.h
new file mode 100644
index 000000000..3c31a4949
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/ServerError.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_ServerError__
+#define __java_rmi_ServerError__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class ServerError;
+ }
+ }
+}
+
+class java::rmi::ServerError : public ::java::rmi::RemoteException
+{
+
+public:
+ ServerError(::java::lang::String *, ::java::lang::Error *);
+private:
+ static const jlong serialVersionUID = 8455284893909696482LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_ServerError__
diff --git a/gcc-4.8/libjava/java/rmi/ServerException.h b/gcc-4.8/libjava/java/rmi/ServerException.h
new file mode 100644
index 000000000..958445a88
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/ServerException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_ServerException__
+#define __java_rmi_ServerException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class ServerException;
+ }
+ }
+}
+
+class java::rmi::ServerException : public ::java::rmi::RemoteException
+{
+
+public:
+ ServerException(::java::lang::String *);
+ ServerException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -4775845313121906682LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_ServerException__
diff --git a/gcc-4.8/libjava/java/rmi/ServerRuntimeException.h b/gcc-4.8/libjava/java/rmi/ServerRuntimeException.h
new file mode 100644
index 000000000..42dff2da6
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/ServerRuntimeException.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_ServerRuntimeException__
+#define __java_rmi_ServerRuntimeException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class ServerRuntimeException;
+ }
+ }
+}
+
+class java::rmi::ServerRuntimeException : public ::java::rmi::RemoteException
+{
+
+public:
+ ServerRuntimeException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 7054464920481467219LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_ServerRuntimeException__
diff --git a/gcc-4.8/libjava/java/rmi/StubNotFoundException.h b/gcc-4.8/libjava/java/rmi/StubNotFoundException.h
new file mode 100644
index 000000000..79fcaf43d
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/StubNotFoundException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_StubNotFoundException__
+#define __java_rmi_StubNotFoundException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class StubNotFoundException;
+ }
+ }
+}
+
+class java::rmi::StubNotFoundException : public ::java::rmi::RemoteException
+{
+
+public:
+ StubNotFoundException(::java::lang::String *);
+ StubNotFoundException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -7088199405468872373LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_StubNotFoundException__
diff --git a/gcc-4.8/libjava/java/rmi/UnexpectedException.h b/gcc-4.8/libjava/java/rmi/UnexpectedException.h
new file mode 100644
index 000000000..e6154b47f
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/UnexpectedException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_UnexpectedException__
+#define __java_rmi_UnexpectedException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class UnexpectedException;
+ }
+ }
+}
+
+class java::rmi::UnexpectedException : public ::java::rmi::RemoteException
+{
+
+public:
+ UnexpectedException(::java::lang::String *);
+ UnexpectedException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 1800467484195073863LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_UnexpectedException__
diff --git a/gcc-4.8/libjava/java/rmi/UnknownHostException.h b/gcc-4.8/libjava/java/rmi/UnknownHostException.h
new file mode 100644
index 000000000..a516ebc26
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/UnknownHostException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_UnknownHostException__
+#define __java_rmi_UnknownHostException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class UnknownHostException;
+ }
+ }
+}
+
+class java::rmi::UnknownHostException : public ::java::rmi::RemoteException
+{
+
+public:
+ UnknownHostException(::java::lang::String *);
+ UnknownHostException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -8152710247442114228LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_UnknownHostException__
diff --git a/gcc-4.8/libjava/java/rmi/UnmarshalException.h b/gcc-4.8/libjava/java/rmi/UnmarshalException.h
new file mode 100644
index 000000000..0e6c471c8
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/UnmarshalException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_UnmarshalException__
+#define __java_rmi_UnmarshalException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class UnmarshalException;
+ }
+ }
+}
+
+class java::rmi::UnmarshalException : public ::java::rmi::RemoteException
+{
+
+public:
+ UnmarshalException(::java::lang::String *);
+ UnmarshalException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 594380845140740218LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_UnmarshalException__
diff --git a/gcc-4.8/libjava/java/rmi/activation/Activatable.h b/gcc-4.8/libjava/java/rmi/activation/Activatable.h
new file mode 100644
index 000000000..a5398f48c
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/Activatable.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_Activatable__
+#define __java_rmi_activation_Activatable__
+
+#pragma interface
+
+#include <java/rmi/server/RemoteServer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ class Remote;
+ namespace activation
+ {
+ class Activatable;
+ class ActivationDesc;
+ class ActivationID;
+ }
+ namespace server
+ {
+ class ObjID;
+ class RMIClientSocketFactory;
+ class RMIServerSocketFactory;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::Activatable : public ::java::rmi::server::RemoteServer
+{
+
+public: // actually protected
+ Activatable(::java::lang::String *, ::java::rmi::MarshalledObject *, jboolean, jint);
+ Activatable(::java::lang::String *, ::java::rmi::MarshalledObject *, jboolean, jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ Activatable(::java::rmi::activation::ActivationID *, jint);
+ Activatable(::java::rmi::activation::ActivationID *, jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ virtual ::java::rmi::activation::ActivationID * getID();
+public: // actually package-private
+ static ::java::rmi::activation::ActivationID * obtainId(::java::rmi::activation::ActivationDesc *);
+public:
+ static ::java::rmi::Remote * register$(::java::rmi::activation::ActivationDesc *);
+ static jboolean inactive(::java::rmi::activation::ActivationID *);
+ static void unregister(::java::rmi::activation::ActivationID *);
+ static ::java::rmi::activation::ActivationID * exportObject(::java::rmi::Remote *, ::java::lang::String *, ::java::rmi::MarshalledObject *, jboolean, jint);
+ static ::java::rmi::activation::ActivationID * exportObject(::java::rmi::Remote *, ::java::lang::String *, ::java::rmi::MarshalledObject *, jboolean, jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, ::java::rmi::activation::ActivationID *, jint);
+ static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, ::java::rmi::activation::ActivationID *, jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ static jboolean unexportObject(::java::rmi::Remote *, jboolean);
+public: // actually package-private
+ static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
+private:
+ static ::java::rmi::Remote * export$(::java::rmi::activation::ActivationID *, ::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
+ static ::java::rmi::server::ObjID * makeId(::java::rmi::activation::ActivationID *);
+public: // actually package-private
+ static ::java::rmi::Remote * toStub(::java::rmi::activation::ActivationID *, ::java::lang::Class *);
+ static const jlong serialVersionUID = -3120617863591563455LL;
+ ::java::rmi::activation::ActivationID * __attribute__((aligned(__alignof__( ::java::rmi::server::RemoteServer)))) id;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_Activatable__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivateFailedException.h b/gcc-4.8/libjava/java/rmi/activation/ActivateFailedException.h
new file mode 100644
index 000000000..7d231a245
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivateFailedException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivateFailedException__
+#define __java_rmi_activation_ActivateFailedException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class ActivateFailedException;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivateFailedException : public ::java::rmi::RemoteException
+{
+
+public:
+ ActivateFailedException(::java::lang::String *);
+ ActivateFailedException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = 4863550261346652506LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivateFailedException__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationDesc.h b/gcc-4.8/libjava/java/rmi/activation/ActivationDesc.h
new file mode 100644
index 000000000..618997bc3
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationDesc.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationDesc__
+#define __java_rmi_activation_ActivationDesc__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ namespace activation
+ {
+ class ActivationDesc;
+ class ActivationGroupID;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationDesc : public ::java::lang::Object
+{
+
+public:
+ ActivationDesc(::java::lang::String *, ::java::lang::String *, ::java::rmi::MarshalledObject *);
+ ActivationDesc(::java::lang::String *, ::java::lang::String *, ::java::rmi::MarshalledObject *, jboolean);
+ ActivationDesc(::java::rmi::activation::ActivationGroupID *, ::java::lang::String *, ::java::lang::String *, ::java::rmi::MarshalledObject *);
+ ActivationDesc(::java::rmi::activation::ActivationGroupID *, ::java::lang::String *, ::java::lang::String *, ::java::rmi::MarshalledObject *, jboolean);
+ ::java::rmi::activation::ActivationGroupID * getGroupID();
+ ::java::lang::String * getClassName();
+ ::java::lang::String * getLocation();
+ ::java::rmi::MarshalledObject * getData();
+ jboolean getRestartMode();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+public: // actually package-private
+ static jint hash(::java::lang::Object *);
+ static jboolean eq(::java::lang::Object *, ::java::lang::Object *);
+ static const jlong serialVersionUID = 7455834104417690957LL;
+private:
+ ::java::rmi::activation::ActivationGroupID * __attribute__((aligned(__alignof__( ::java::lang::Object)))) groupid;
+ ::java::lang::String * classname;
+ ::java::lang::String * location;
+ ::java::rmi::MarshalledObject * data;
+ jboolean restart;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationDesc__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationException.h b/gcc-4.8/libjava/java/rmi/activation/ActivationException.h
new file mode 100644
index 000000000..81f55e23e
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationException.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationException__
+#define __java_rmi_activation_ActivationException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class ActivationException;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationException : public ::java::lang::Exception
+{
+
+public:
+ ActivationException();
+ ActivationException(::java::lang::String *);
+ ActivationException(::java::lang::String *, ::java::lang::Throwable *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = -4320118837291406071LL;
+public:
+ ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) detail;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationException__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationGroup.h b/gcc-4.8/libjava/java/rmi/activation/ActivationGroup.h
new file mode 100644
index 000000000..b9bf86d28
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationGroup.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationGroup__
+#define __java_rmi_activation_ActivationGroup__
+
+#pragma interface
+
+#include <java/rmi/server/UnicastRemoteObject.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ class Remote;
+ namespace activation
+ {
+ class ActivationDesc;
+ class ActivationGroup;
+ class ActivationGroupDesc;
+ class ActivationGroupID;
+ class ActivationID;
+ class ActivationMonitor;
+ class ActivationSystem;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationGroup : public ::java::rmi::server::UnicastRemoteObject
+{
+
+public: // actually protected
+ ActivationGroup(::java::rmi::activation::ActivationGroupID *);
+public:
+ virtual void activeObject(::java::rmi::activation::ActivationID *, ::java::rmi::Remote *) = 0;
+ virtual jboolean inactiveObject(::java::rmi::activation::ActivationID *);
+ static ::java::rmi::activation::ActivationGroup * createGroup(::java::rmi::activation::ActivationGroupID *, ::java::rmi::activation::ActivationGroupDesc *, jlong);
+ static ::java::rmi::activation::ActivationGroupID * currentGroupID();
+ static void setSystem(::java::rmi::activation::ActivationSystem *);
+ static ::java::rmi::activation::ActivationSystem * getSystem();
+public: // actually protected
+ virtual void activeObject(::java::rmi::activation::ActivationID *, ::java::rmi::MarshalledObject *);
+ virtual void inactiveGroup();
+public:
+ virtual ::java::rmi::MarshalledObject * newInstance(::java::rmi::activation::ActivationID *, ::java::rmi::activation::ActivationDesc *) = 0;
+public: // actually package-private
+ static const jlong serialVersionUID = -7696947875314805420LL;
+ static ::java::rmi::activation::ActivationGroupID * currentGroupId;
+ ::java::rmi::activation::ActivationGroupID * __attribute__((aligned(__alignof__( ::java::rmi::server::UnicastRemoteObject)))) groupId;
+ ::java::rmi::activation::ActivationMonitor * monitor;
+ jlong incarnation;
+ static ::java::rmi::activation::ActivationSystem * system;
+ static JArray< ::java::lang::Class * > * cConstructorTypes;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationGroup__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h b/gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h
new file mode 100644
index 000000000..f1cc49558
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationGroupDesc$CommandEnvironment__
+#define __java_rmi_activation_ActivationGroupDesc$CommandEnvironment__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class ActivationGroupDesc$CommandEnvironment;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationGroupDesc$CommandEnvironment : public ::java::lang::Object
+{
+
+public:
+ ActivationGroupDesc$CommandEnvironment(::java::lang::String *, JArray< ::java::lang::String * > *);
+ virtual ::java::lang::String * getCommandPath();
+ virtual JArray< ::java::lang::String * > * getCommandOptions();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+public: // actually package-private
+ static const jlong serialVersionUID = 6165754737887770191LL;
+private:
+ static JArray< ::java::lang::String * > * NO_ARGS;
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) command;
+ JArray< ::java::lang::String * > * options;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationGroupDesc$CommandEnvironment__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc.h b/gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc.h
new file mode 100644
index 000000000..8229e57fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationGroupDesc.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationGroupDesc__
+#define __java_rmi_activation_ActivationGroupDesc__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ namespace activation
+ {
+ class ActivationGroupDesc;
+ class ActivationGroupDesc$CommandEnvironment;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationGroupDesc : public ::java::lang::Object
+{
+
+public:
+ ActivationGroupDesc(::java::util::Properties *, ::java::rmi::activation::ActivationGroupDesc$CommandEnvironment *);
+ ActivationGroupDesc(::java::lang::String *, ::java::lang::String *, ::java::rmi::MarshalledObject *, ::java::util::Properties *, ::java::rmi::activation::ActivationGroupDesc$CommandEnvironment *);
+ ::java::lang::String * getClassName();
+ ::java::lang::String * getLocation();
+ ::java::rmi::MarshalledObject * getData();
+ ::java::util::Properties * getPropertyOverrides();
+ ::java::rmi::activation::ActivationGroupDesc$CommandEnvironment * getCommandEnvironment();
+ jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ static jboolean eq(::java::lang::Object *, ::java::lang::Object *);
+public:
+ jint hashCode();
+public: // actually package-private
+ static const jlong serialVersionUID = -4936225423168276595LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) className;
+ ::java::lang::String * location;
+ ::java::rmi::MarshalledObject * data;
+ ::java::rmi::activation::ActivationGroupDesc$CommandEnvironment * env;
+ ::java::util::Properties * props;
+ jlong hash;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationGroupDesc__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationGroupID.h b/gcc-4.8/libjava/java/rmi/activation/ActivationGroupID.h
new file mode 100644
index 000000000..be942fef7
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationGroupID.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationGroupID__
+#define __java_rmi_activation_ActivationGroupID__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class ActivationGroupID;
+ class ActivationSystem;
+ }
+ namespace server
+ {
+ class UID;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationGroupID : public ::java::lang::Object
+{
+
+public:
+ ActivationGroupID(::java::rmi::activation::ActivationSystem *);
+ virtual ::java::rmi::activation::ActivationSystem * getSystem();
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = -1648432278909740833LL;
+ ::java::rmi::activation::ActivationSystem * __attribute__((aligned(__alignof__( ::java::lang::Object)))) system;
+ ::java::rmi::server::UID * uid;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationGroupID__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationGroup_Stub.h b/gcc-4.8/libjava/java/rmi/activation/ActivationGroup_Stub.h
new file mode 100644
index 000000000..4dc223cb3
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationGroup_Stub.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationGroup_Stub__
+#define __java_rmi_activation_ActivationGroup_Stub__
+
+#pragma interface
+
+#include <java/rmi/server/RemoteStub.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ namespace activation
+ {
+ class ActivationDesc;
+ class ActivationGroup_Stub;
+ class ActivationID;
+ }
+ namespace server
+ {
+ class RemoteRef;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationGroup_Stub : public ::java::rmi::server::RemoteStub
+{
+
+public:
+ ActivationGroup_Stub(::java::rmi::server::RemoteRef *);
+ ::java::rmi::MarshalledObject * newInstance(::java::rmi::activation::ActivationID *, ::java::rmi::activation::ActivationDesc *);
+private:
+ static const jlong serialVersionUID = 2LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationGroup_Stub__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationID.h b/gcc-4.8/libjava/java/rmi/activation/ActivationID.h
new file mode 100644
index 000000000..831962e7c
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationID.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationID__
+#define __java_rmi_activation_ActivationID__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace activation
+ {
+ class ActivationGroup;
+ class ActivationID;
+ class Activator;
+ }
+ namespace server
+ {
+ class UID;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationID : public ::java::lang::Object
+{
+
+public:
+ ActivationID(::java::rmi::activation::Activator *);
+ virtual ::java::rmi::Remote * activate(jboolean);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public: // actually package-private
+ static jboolean eq(::java::lang::Object *, ::java::lang::Object *);
+public:
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = -4608673054848209235LL;
+ ::java::rmi::activation::Activator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) activator;
+ ::java::rmi::server::UID * uid;
+ ::java::rmi::activation::ActivationGroup * group;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_ActivationID__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationInstantiator.h b/gcc-4.8/libjava/java/rmi/activation/ActivationInstantiator.h
new file mode 100644
index 000000000..5249407e8
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationInstantiator.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationInstantiator__
+#define __java_rmi_activation_ActivationInstantiator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ namespace activation
+ {
+ class ActivationDesc;
+ class ActivationID;
+ class ActivationInstantiator;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationInstantiator : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::MarshalledObject * newInstance(::java::rmi::activation::ActivationID *, ::java::rmi::activation::ActivationDesc *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_activation_ActivationInstantiator__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationMonitor.h b/gcc-4.8/libjava/java/rmi/activation/ActivationMonitor.h
new file mode 100644
index 000000000..a41dc6340
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationMonitor.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationMonitor__
+#define __java_rmi_activation_ActivationMonitor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ namespace activation
+ {
+ class ActivationGroupID;
+ class ActivationID;
+ class ActivationMonitor;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationMonitor : public ::java::lang::Object
+{
+
+public:
+ virtual void activeObject(::java::rmi::activation::ActivationID *, ::java::rmi::MarshalledObject *) = 0;
+ virtual void inactiveObject(::java::rmi::activation::ActivationID *) = 0;
+ virtual void inactiveGroup(::java::rmi::activation::ActivationGroupID *, jlong) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_activation_ActivationMonitor__
diff --git a/gcc-4.8/libjava/java/rmi/activation/ActivationSystem.h b/gcc-4.8/libjava/java/rmi/activation/ActivationSystem.h
new file mode 100644
index 000000000..cb4f1458e
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/ActivationSystem.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_ActivationSystem__
+#define __java_rmi_activation_ActivationSystem__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class ActivationDesc;
+ class ActivationGroupDesc;
+ class ActivationGroupID;
+ class ActivationID;
+ class ActivationInstantiator;
+ class ActivationMonitor;
+ class ActivationSystem;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::ActivationSystem : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::activation::ActivationID * registerObject(::java::rmi::activation::ActivationDesc *) = 0;
+ virtual void unregisterObject(::java::rmi::activation::ActivationID *) = 0;
+ virtual ::java::rmi::activation::ActivationGroupID * registerGroup(::java::rmi::activation::ActivationGroupDesc *) = 0;
+ virtual ::java::rmi::activation::ActivationMonitor * activeGroup(::java::rmi::activation::ActivationGroupID *, ::java::rmi::activation::ActivationInstantiator *, jlong) = 0;
+ virtual void unregisterGroup(::java::rmi::activation::ActivationGroupID *) = 0;
+ virtual void shutdown() = 0;
+ virtual ::java::rmi::activation::ActivationDesc * setActivationDesc(::java::rmi::activation::ActivationID *, ::java::rmi::activation::ActivationDesc *) = 0;
+ virtual ::java::rmi::activation::ActivationGroupDesc * setActivationGroupDesc(::java::rmi::activation::ActivationGroupID *, ::java::rmi::activation::ActivationGroupDesc *) = 0;
+ virtual ::java::rmi::activation::ActivationDesc * getActivationDesc(::java::rmi::activation::ActivationID *) = 0;
+ virtual ::java::rmi::activation::ActivationGroupDesc * getActivationGroupDesc(::java::rmi::activation::ActivationGroupID *) = 0;
+ static const jint SYSTEM_PORT = 1098;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_activation_ActivationSystem__
diff --git a/gcc-4.8/libjava/java/rmi/activation/Activator.h b/gcc-4.8/libjava/java/rmi/activation/Activator.h
new file mode 100644
index 000000000..7976abc83
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/Activator.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_Activator__
+#define __java_rmi_activation_Activator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class MarshalledObject;
+ namespace activation
+ {
+ class ActivationID;
+ class Activator;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::Activator : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::MarshalledObject * activate(::java::rmi::activation::ActivationID *, jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_activation_Activator__
diff --git a/gcc-4.8/libjava/java/rmi/activation/UnknownGroupException.h b/gcc-4.8/libjava/java/rmi/activation/UnknownGroupException.h
new file mode 100644
index 000000000..27afe4cfb
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/UnknownGroupException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_UnknownGroupException__
+#define __java_rmi_activation_UnknownGroupException__
+
+#pragma interface
+
+#include <java/rmi/activation/ActivationException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class UnknownGroupException;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::UnknownGroupException : public ::java::rmi::activation::ActivationException
+{
+
+public:
+ UnknownGroupException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7056094974750002460LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_UnknownGroupException__
diff --git a/gcc-4.8/libjava/java/rmi/activation/UnknownObjectException.h b/gcc-4.8/libjava/java/rmi/activation/UnknownObjectException.h
new file mode 100644
index 000000000..9bda5977c
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/activation/UnknownObjectException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_activation_UnknownObjectException__
+#define __java_rmi_activation_UnknownObjectException__
+
+#pragma interface
+
+#include <java/rmi/activation/ActivationException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace activation
+ {
+ class UnknownObjectException;
+ }
+ }
+ }
+}
+
+class java::rmi::activation::UnknownObjectException : public ::java::rmi::activation::ActivationException
+{
+
+public:
+ UnknownObjectException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 3425547551622251430LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_activation_UnknownObjectException__
diff --git a/gcc-4.8/libjava/java/rmi/dgc/DGC.h b/gcc-4.8/libjava/java/rmi/dgc/DGC.h
new file mode 100644
index 000000000..b240c1acb
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/dgc/DGC.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_dgc_DGC__
+#define __java_rmi_dgc_DGC__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace dgc
+ {
+ class DGC;
+ class Lease;
+ class VMID;
+ }
+ namespace server
+ {
+ class ObjID;
+ }
+ }
+ }
+}
+
+class java::rmi::dgc::DGC : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::dgc::Lease * dirty(JArray< ::java::rmi::server::ObjID * > *, jlong, ::java::rmi::dgc::Lease *) = 0;
+ virtual void clean(JArray< ::java::rmi::server::ObjID * > *, jlong, ::java::rmi::dgc::VMID *, jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_dgc_DGC__
diff --git a/gcc-4.8/libjava/java/rmi/dgc/Lease.h b/gcc-4.8/libjava/java/rmi/dgc/Lease.h
new file mode 100644
index 000000000..e3ad0bf45
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/dgc/Lease.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_dgc_Lease__
+#define __java_rmi_dgc_Lease__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace dgc
+ {
+ class Lease;
+ class VMID;
+ }
+ }
+ }
+}
+
+class java::rmi::dgc::Lease : public ::java::lang::Object
+{
+
+public:
+ Lease(::java::rmi::dgc::VMID *, jlong);
+ ::java::rmi::dgc::VMID * getVMID();
+ jlong getValue();
+ ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = -5713411624328831948LL;
+private:
+ ::java::rmi::dgc::VMID * __attribute__((aligned(__alignof__( ::java::lang::Object)))) vmid;
+ jlong value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_dgc_Lease__
diff --git a/gcc-4.8/libjava/java/rmi/dgc/VMID.h b/gcc-4.8/libjava/java/rmi/dgc/VMID.h
new file mode 100644
index 000000000..082553bc1
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/dgc/VMID.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_dgc_VMID__
+#define __java_rmi_dgc_VMID__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace dgc
+ {
+ class VMID;
+ }
+ namespace server
+ {
+ class UID;
+ }
+ }
+ }
+}
+
+class java::rmi::dgc::VMID : public ::java::lang::Object
+{
+
+public:
+ VMID();
+ static jboolean isUnique();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = -538642295484486218LL;
+ static jboolean areWeUnique;
+ static JArray< jbyte > * localAddr;
+private:
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) addr;
+public: // actually package-private
+ jint hash;
+private:
+ ::java::rmi::server::UID * uid;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_dgc_VMID__
diff --git a/gcc-4.8/libjava/java/rmi/registry/LocateRegistry.h b/gcc-4.8/libjava/java/rmi/registry/LocateRegistry.h
new file mode 100644
index 000000000..75b0b4a65
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/registry/LocateRegistry.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_registry_LocateRegistry__
+#define __java_rmi_registry_LocateRegistry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace registry
+ {
+ class LocateRegistry;
+ class Registry;
+ }
+ namespace server
+ {
+ class RMIClientSocketFactory;
+ class RMIServerSocketFactory;
+ }
+ }
+ }
+}
+
+class java::rmi::registry::LocateRegistry : public ::java::lang::Object
+{
+
+ LocateRegistry();
+public:
+ static ::java::rmi::registry::Registry * getRegistry();
+ static ::java::rmi::registry::Registry * getRegistry(jint);
+ static ::java::rmi::registry::Registry * getRegistry(::java::lang::String *);
+ static ::java::rmi::registry::Registry * getRegistry(::java::lang::String *, jint);
+ static ::java::rmi::registry::Registry * getRegistry(::java::lang::String *, jint, ::java::rmi::server::RMIClientSocketFactory *);
+ static ::java::rmi::registry::Registry * createRegistry(jint);
+ static ::java::rmi::registry::Registry * createRegistry(jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_registry_LocateRegistry__
diff --git a/gcc-4.8/libjava/java/rmi/registry/Registry.h b/gcc-4.8/libjava/java/rmi/registry/Registry.h
new file mode 100644
index 000000000..470ef2bf4
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/registry/Registry.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_registry_Registry__
+#define __java_rmi_registry_Registry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace registry
+ {
+ class Registry;
+ }
+ }
+ }
+}
+
+class java::rmi::registry::Registry : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::Remote * lookup(::java::lang::String *) = 0;
+ virtual void bind(::java::lang::String *, ::java::rmi::Remote *) = 0;
+ virtual void unbind(::java::lang::String *) = 0;
+ virtual void rebind(::java::lang::String *, ::java::rmi::Remote *) = 0;
+ virtual JArray< ::java::lang::String * > * list() = 0;
+ static const jint REGISTRY_PORT = 1099;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_registry_Registry__
diff --git a/gcc-4.8/libjava/java/rmi/registry/RegistryHandler.h b/gcc-4.8/libjava/java/rmi/registry/RegistryHandler.h
new file mode 100644
index 000000000..cd2909402
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/registry/RegistryHandler.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_registry_RegistryHandler__
+#define __java_rmi_registry_RegistryHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace registry
+ {
+ class Registry;
+ class RegistryHandler;
+ }
+ }
+ }
+}
+
+class java::rmi::registry::RegistryHandler : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::registry::Registry * registryStub(::java::lang::String *, jint) = 0;
+ virtual ::java::rmi::registry::Registry * registryImpl(jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_registry_RegistryHandler__
diff --git a/gcc-4.8/libjava/java/rmi/server/ExportException.h b/gcc-4.8/libjava/java/rmi/server/ExportException.h
new file mode 100644
index 000000000..471a944d2
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/ExportException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_ExportException__
+#define __java_rmi_server_ExportException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class ExportException;
+ }
+ }
+ }
+}
+
+class java::rmi::server::ExportException : public ::java::rmi::RemoteException
+{
+
+public:
+ ExportException(::java::lang::String *);
+ ExportException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -9155485338494060170LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_ExportException__
diff --git a/gcc-4.8/libjava/java/rmi/server/LoaderHandler.h b/gcc-4.8/libjava/java/rmi/server/LoaderHandler.h
new file mode 100644
index 000000000..6b515f795
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/LoaderHandler.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_LoaderHandler__
+#define __java_rmi_server_LoaderHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ namespace rmi
+ {
+ namespace server
+ {
+ class LoaderHandler;
+ }
+ }
+ }
+}
+
+class java::rmi::server::LoaderHandler : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Class * loadClass(::java::lang::String *) = 0;
+ virtual ::java::lang::Class * loadClass(::java::net::URL *, ::java::lang::String *) = 0;
+ virtual ::java::lang::Object * getSecurityContext(::java::lang::ClassLoader *) = 0;
+ static ::java::lang::String * packagePrefix;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_LoaderHandler__
diff --git a/gcc-4.8/libjava/java/rmi/server/LogStream.h b/gcc-4.8/libjava/java/rmi/server/LogStream.h
new file mode 100644
index 000000000..6dfcfbf73
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/LogStream.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_LogStream__
+#define __java_rmi_server_LogStream__
+
+#pragma interface
+
+#include <java/io/PrintStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class LogStream;
+ }
+ }
+ }
+}
+
+class java::rmi::server::LogStream : public ::java::io::PrintStream
+{
+
+ LogStream(::java::io::OutputStream *);
+public:
+ static ::java::rmi::server::LogStream * log(::java::lang::String *);
+ static ::java::io::PrintStream * getDefaultStream();
+ static void setDefaultStream(::java::io::PrintStream *);
+ virtual ::java::io::OutputStream * getOutputStream();
+ virtual void setOutputStream(::java::io::OutputStream *);
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual ::java::lang::String * toString();
+ static jint parseLevel(::java::lang::String *);
+ static const jint SILENT = 0;
+ static const jint BRIEF = 10;
+ static const jint VERBOSE = 20;
+private:
+ static ::java::io::PrintStream * defStream;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_LogStream__
diff --git a/gcc-4.8/libjava/java/rmi/server/ObjID.h b/gcc-4.8/libjava/java/rmi/server/ObjID.h
new file mode 100644
index 000000000..f830f0f4d
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/ObjID.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_ObjID__
+#define __java_rmi_server_ObjID__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class ObjID;
+ class UID;
+ }
+ }
+ }
+}
+
+class java::rmi::server::ObjID : public ::java::lang::Object
+{
+
+public:
+ ObjID();
+ ObjID(jint);
+ void write(::java::io::ObjectOutput *);
+ static ::java::rmi::server::ObjID * read(::java::io::ObjectInput *);
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ static jboolean eq(::java::lang::Object *, ::java::lang::Object *);
+public:
+ ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = -6386392263968365220LL;
+private:
+ static jlong next;
+ static ::java::lang::Object * lock;
+public:
+ static const jint REGISTRY_ID = 0;
+ static const jint ACTIVATOR_ID = 1;
+ static const jint DGC_ID = 2;
+public: // actually package-private
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) objNum;
+ ::java::rmi::server::UID * space;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_ObjID__
diff --git a/gcc-4.8/libjava/java/rmi/server/Operation.h b/gcc-4.8/libjava/java/rmi/server/Operation.h
new file mode 100644
index 000000000..e7b70ecd1
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/Operation.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_Operation__
+#define __java_rmi_server_Operation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class Operation;
+ }
+ }
+ }
+}
+
+class java::rmi::server::Operation : public ::java::lang::Object
+{
+
+public:
+ Operation(::java::lang::String *);
+ virtual ::java::lang::String * getOperation();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) operation;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_Operation__
diff --git a/gcc-4.8/libjava/java/rmi/server/RMIClassLoader.h b/gcc-4.8/libjava/java/rmi/server/RMIClassLoader.h
new file mode 100644
index 000000000..1d29dfd61
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RMIClassLoader.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RMIClassLoader__
+#define __java_rmi_server_RMIClassLoader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ namespace rmi
+ {
+ namespace server
+ {
+ class RMIClassLoader;
+ class RMIClassLoaderSpi;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RMIClassLoader : public ::java::lang::Object
+{
+
+ RMIClassLoader();
+public:
+ static ::java::lang::Class * loadClass(::java::lang::String *);
+ static ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *);
+ static ::java::lang::Class * loadProxyClass(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::ClassLoader *);
+ static ::java::lang::Class * loadClass(::java::net::URL *, ::java::lang::String *);
+ static ::java::lang::ClassLoader * getClassLoader(::java::lang::String *);
+ static ::java::lang::String * getClassAnnotation(::java::lang::Class *);
+ static ::java::lang::Object * getSecurityContext(::java::lang::ClassLoader *);
+ static ::java::rmi::server::RMIClassLoaderSpi * getDefaultProviderInstance();
+private:
+ static ::java::rmi::server::RMIClassLoaderSpi * getProviderInstance();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RMIClassLoader__
diff --git a/gcc-4.8/libjava/java/rmi/server/RMIClassLoaderSpi.h b/gcc-4.8/libjava/java/rmi/server/RMIClassLoaderSpi.h
new file mode 100644
index 000000000..978a11a08
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RMIClassLoaderSpi.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RMIClassLoaderSpi__
+#define __java_rmi_server_RMIClassLoaderSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class RMIClassLoaderSpi;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RMIClassLoaderSpi : public ::java::lang::Object
+{
+
+public:
+ RMIClassLoaderSpi();
+ virtual ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *) = 0;
+ virtual ::java::lang::Class * loadProxyClass(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::ClassLoader *) = 0;
+ virtual ::java::lang::ClassLoader * getClassLoader(::java::lang::String *) = 0;
+ virtual ::java::lang::String * getClassAnnotation(::java::lang::Class *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RMIClassLoaderSpi__
diff --git a/gcc-4.8/libjava/java/rmi/server/RMIClientSocketFactory.h b/gcc-4.8/libjava/java/rmi/server/RMIClientSocketFactory.h
new file mode 100644
index 000000000..4a0731962
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RMIClientSocketFactory.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RMIClientSocketFactory__
+#define __java_rmi_server_RMIClientSocketFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class Socket;
+ }
+ namespace rmi
+ {
+ namespace server
+ {
+ class RMIClientSocketFactory;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RMIClientSocketFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::net::Socket * createSocket(::java::lang::String *, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_RMIClientSocketFactory__
diff --git a/gcc-4.8/libjava/java/rmi/server/RMIFailureHandler.h b/gcc-4.8/libjava/java/rmi/server/RMIFailureHandler.h
new file mode 100644
index 000000000..da177a063
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RMIFailureHandler.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RMIFailureHandler__
+#define __java_rmi_server_RMIFailureHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class RMIFailureHandler;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RMIFailureHandler : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean failure(::java::lang::Exception *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_RMIFailureHandler__
diff --git a/gcc-4.8/libjava/java/rmi/server/RMIServerSocketFactory.h b/gcc-4.8/libjava/java/rmi/server/RMIServerSocketFactory.h
new file mode 100644
index 000000000..daf42af56
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RMIServerSocketFactory.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RMIServerSocketFactory__
+#define __java_rmi_server_RMIServerSocketFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ServerSocket;
+ }
+ namespace rmi
+ {
+ namespace server
+ {
+ class RMIServerSocketFactory;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RMIServerSocketFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::net::ServerSocket * createServerSocket(jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_RMIServerSocketFactory__
diff --git a/gcc-4.8/libjava/java/rmi/server/RMISocketFactory.h b/gcc-4.8/libjava/java/rmi/server/RMISocketFactory.h
new file mode 100644
index 000000000..f79b04cc4
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RMISocketFactory.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RMISocketFactory__
+#define __java_rmi_server_RMISocketFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class ServerSocket;
+ class Socket;
+ }
+ namespace rmi
+ {
+ namespace server
+ {
+ class RMIFailureHandler;
+ class RMISocketFactory;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RMISocketFactory : public ::java::lang::Object
+{
+
+public:
+ RMISocketFactory();
+ virtual ::java::net::Socket * createSocket(::java::lang::String *, jint) = 0;
+ virtual ::java::net::ServerSocket * createServerSocket(jint) = 0;
+ static void setSocketFactory(::java::rmi::server::RMISocketFactory *);
+ static ::java::rmi::server::RMISocketFactory * getSocketFactory();
+ static ::java::rmi::server::RMISocketFactory * getDefaultSocketFactory();
+ static void setFailureHandler(::java::rmi::server::RMIFailureHandler *);
+ static ::java::rmi::server::RMIFailureHandler * getFailureHandler();
+private:
+ static ::java::rmi::server::RMISocketFactory * defaultFactory;
+ static ::java::rmi::server::RMISocketFactory * currentFactory;
+ static ::java::rmi::server::RMIFailureHandler * currentHandler;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RMISocketFactory__
diff --git a/gcc-4.8/libjava/java/rmi/server/RemoteCall.h b/gcc-4.8/libjava/java/rmi/server/RemoteCall.h
new file mode 100644
index 000000000..e416f0b81
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RemoteCall.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RemoteCall__
+#define __java_rmi_server_RemoteCall__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class RemoteCall;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RemoteCall : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::io::ObjectOutput * getOutputStream() = 0;
+ virtual void releaseOutputStream() = 0;
+ virtual ::java::io::ObjectInput * getInputStream() = 0;
+ virtual void releaseInputStream() = 0;
+ virtual ::java::io::ObjectOutput * getResultStream(jboolean) = 0;
+ virtual void executeCall() = 0;
+ virtual void done() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_RemoteCall__
diff --git a/gcc-4.8/libjava/java/rmi/server/RemoteObject.h b/gcc-4.8/libjava/java/rmi/server/RemoteObject.h
new file mode 100644
index 000000000..5a35b02c8
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RemoteObject.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RemoteObject__
+#define __java_rmi_server_RemoteObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace server
+ {
+ class RemoteObject;
+ class RemoteRef;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RemoteObject : public ::java::lang::Object
+{
+
+public: // actually protected
+ RemoteObject();
+ RemoteObject(::java::rmi::server::RemoteRef *);
+public:
+ virtual ::java::rmi::server::RemoteRef * getRef();
+public: // actually package-private
+ static void addStub(::java::rmi::Remote *, ::java::rmi::Remote *);
+ static void deleteStub(::java::rmi::Remote *);
+public:
+ static ::java::rmi::Remote * toStub(::java::rmi::Remote *);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = -3215090123894869218LL;
+public: // actually protected
+ ::java::rmi::server::RemoteRef * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ref;
+private:
+ static ::java::util::WeakHashMap * stubs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RemoteObject__
diff --git a/gcc-4.8/libjava/java/rmi/server/RemoteObjectInvocationHandler.h b/gcc-4.8/libjava/java/rmi/server/RemoteObjectInvocationHandler.h
new file mode 100644
index 000000000..babacb8b3
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RemoteObjectInvocationHandler.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RemoteObjectInvocationHandler__
+#define __java_rmi_server_RemoteObjectInvocationHandler__
+
+#pragma interface
+
+#include <java/rmi/server/RemoteObject.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class RemoteObjectInvocationHandler;
+ class RemoteRef;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RemoteObjectInvocationHandler : public ::java::rmi::server::RemoteObject
+{
+
+public:
+ RemoteObjectInvocationHandler(::java::rmi::server::RemoteRef *);
+ virtual ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *);
+public: // actually package-private
+ static const jlong serialVersionUID = 2LL;
+ static ::java::util::Hashtable * methodHashCodes;
+ static JArray< ::java::lang::Class * > * noArgsC;
+ static JArray< ::java::lang::Class * > * anObjectC;
+ static JArray< ::java::lang::Object * > * noArgs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RemoteObjectInvocationHandler__
diff --git a/gcc-4.8/libjava/java/rmi/server/RemoteRef.h b/gcc-4.8/libjava/java/rmi/server/RemoteRef.h
new file mode 100644
index 000000000..e73eb3ca6
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RemoteRef.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RemoteRef__
+#define __java_rmi_server_RemoteRef__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace server
+ {
+ class Operation;
+ class RemoteCall;
+ class RemoteObject;
+ class RemoteRef;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RemoteRef : public ::java::lang::Object
+{
+
+public:
+ virtual void invoke(::java::rmi::server::RemoteCall *) = 0;
+ virtual ::java::lang::Object * invoke(::java::rmi::Remote *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jlong) = 0;
+ virtual ::java::rmi::server::RemoteCall * newCall(::java::rmi::server::RemoteObject *, JArray< ::java::rmi::server::Operation * > *, jint, jlong) = 0;
+ virtual void done(::java::rmi::server::RemoteCall *) = 0;
+ virtual jboolean remoteEquals(::java::rmi::server::RemoteRef *) = 0;
+ virtual jint remoteHashCode() = 0;
+ virtual ::java::lang::String * getRefClass(::java::io::ObjectOutput *) = 0;
+ virtual ::java::lang::String * remoteToString() = 0;
+ virtual void readExternal(::java::io::ObjectInput *) = 0;
+ virtual void writeExternal(::java::io::ObjectOutput *) = 0;
+ static const jlong serialVersionUID = 3632638527362204081LL;
+ static ::java::lang::String * packagePrefix;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_RemoteRef__
diff --git a/gcc-4.8/libjava/java/rmi/server/RemoteServer.h b/gcc-4.8/libjava/java/rmi/server/RemoteServer.h
new file mode 100644
index 000000000..9822a79a8
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RemoteServer.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RemoteServer__
+#define __java_rmi_server_RemoteServer__
+
+#pragma interface
+
+#include <java/rmi/server/RemoteObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class RemoteRef;
+ class RemoteServer;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RemoteServer : public ::java::rmi::server::RemoteObject
+{
+
+public: // actually protected
+ RemoteServer();
+ RemoteServer(::java::rmi::server::RemoteRef *);
+public:
+ static ::java::lang::String * getClientHost();
+ static void setLog(::java::io::OutputStream *);
+ static ::java::io::PrintStream * getLog();
+private:
+ static const jlong serialVersionUID = -4100238210092549637LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RemoteServer__
diff --git a/gcc-4.8/libjava/java/rmi/server/RemoteStub.h b/gcc-4.8/libjava/java/rmi/server/RemoteStub.h
new file mode 100644
index 000000000..75e1a7fd7
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/RemoteStub.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_RemoteStub__
+#define __java_rmi_server_RemoteStub__
+
+#pragma interface
+
+#include <java/rmi/server/RemoteObject.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class RemoteRef;
+ class RemoteStub;
+ }
+ }
+ }
+}
+
+class java::rmi::server::RemoteStub : public ::java::rmi::server::RemoteObject
+{
+
+public: // actually protected
+ RemoteStub();
+ RemoteStub(::java::rmi::server::RemoteRef *);
+ static void setRef(::java::rmi::server::RemoteStub *, ::java::rmi::server::RemoteRef *);
+public: // actually package-private
+ static const jlong serialVersionUID = -1585587260594494182LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_RemoteStub__
diff --git a/gcc-4.8/libjava/java/rmi/server/ServerCloneException.h b/gcc-4.8/libjava/java/rmi/server/ServerCloneException.h
new file mode 100644
index 000000000..37d027cd8
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/ServerCloneException.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_ServerCloneException__
+#define __java_rmi_server_ServerCloneException__
+
+#pragma interface
+
+#include <java/lang/CloneNotSupportedException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class ServerCloneException;
+ }
+ }
+ }
+}
+
+class java::rmi::server::ServerCloneException : public ::java::lang::CloneNotSupportedException
+{
+
+public:
+ ServerCloneException(::java::lang::String *);
+ ServerCloneException(::java::lang::String *, ::java::lang::Exception *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::Throwable * getCause();
+private:
+ static const jlong serialVersionUID = 6617456357664815945LL;
+public:
+ ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::CloneNotSupportedException)))) detail;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_ServerCloneException__
diff --git a/gcc-4.8/libjava/java/rmi/server/ServerNotActiveException.h b/gcc-4.8/libjava/java/rmi/server/ServerNotActiveException.h
new file mode 100644
index 000000000..6064177a6
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/ServerNotActiveException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_ServerNotActiveException__
+#define __java_rmi_server_ServerNotActiveException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class ServerNotActiveException;
+ }
+ }
+ }
+}
+
+class java::rmi::server::ServerNotActiveException : public ::java::lang::Exception
+{
+
+public:
+ ServerNotActiveException();
+ ServerNotActiveException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 4687940720827538231LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_ServerNotActiveException__
diff --git a/gcc-4.8/libjava/java/rmi/server/ServerRef.h b/gcc-4.8/libjava/java/rmi/server/ServerRef.h
new file mode 100644
index 000000000..d0c37822e
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/ServerRef.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_ServerRef__
+#define __java_rmi_server_ServerRef__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace server
+ {
+ class Operation;
+ class RemoteCall;
+ class RemoteObject;
+ class RemoteRef;
+ class RemoteStub;
+ class ServerRef;
+ }
+ }
+ }
+}
+
+class java::rmi::server::ServerRef : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::rmi::server::RemoteStub * exportObject(::java::rmi::Remote *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::String * getClientHost() = 0;
+ virtual void invoke(::java::rmi::server::RemoteCall *) = 0;
+ virtual ::java::lang::Object * invoke(::java::rmi::Remote *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jlong) = 0;
+ virtual ::java::rmi::server::RemoteCall * newCall(::java::rmi::server::RemoteObject *, JArray< ::java::rmi::server::Operation * > *, jint, jlong) = 0;
+ virtual void done(::java::rmi::server::RemoteCall *) = 0;
+ virtual jboolean remoteEquals(::java::rmi::server::RemoteRef *) = 0;
+ virtual jint remoteHashCode() = 0;
+ virtual ::java::lang::String * getRefClass(::java::io::ObjectOutput *) = 0;
+ virtual ::java::lang::String * remoteToString() = 0;
+ virtual void readExternal(::java::io::ObjectInput *) = 0;
+ virtual void writeExternal(::java::io::ObjectOutput *) = 0;
+ static const jlong serialVersionUID = -4557750989390278438LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_ServerRef__
diff --git a/gcc-4.8/libjava/java/rmi/server/Skeleton.h b/gcc-4.8/libjava/java/rmi/server/Skeleton.h
new file mode 100644
index 000000000..492385b77
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/Skeleton.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_Skeleton__
+#define __java_rmi_server_Skeleton__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace server
+ {
+ class Operation;
+ class RemoteCall;
+ class Skeleton;
+ }
+ }
+ }
+}
+
+class java::rmi::server::Skeleton : public ::java::lang::Object
+{
+
+public:
+ virtual void dispatch(::java::rmi::Remote *, ::java::rmi::server::RemoteCall *, jint, jlong) = 0;
+ virtual JArray< ::java::rmi::server::Operation * > * getOperations() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_Skeleton__
diff --git a/gcc-4.8/libjava/java/rmi/server/SkeletonMismatchException.h b/gcc-4.8/libjava/java/rmi/server/SkeletonMismatchException.h
new file mode 100644
index 000000000..6d5d49218
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/SkeletonMismatchException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_SkeletonMismatchException__
+#define __java_rmi_server_SkeletonMismatchException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class SkeletonMismatchException;
+ }
+ }
+ }
+}
+
+class java::rmi::server::SkeletonMismatchException : public ::java::rmi::RemoteException
+{
+
+public:
+ SkeletonMismatchException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -7780460454818859281LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_SkeletonMismatchException__
diff --git a/gcc-4.8/libjava/java/rmi/server/SkeletonNotFoundException.h b/gcc-4.8/libjava/java/rmi/server/SkeletonNotFoundException.h
new file mode 100644
index 000000000..f4030294c
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/SkeletonNotFoundException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_SkeletonNotFoundException__
+#define __java_rmi_server_SkeletonNotFoundException__
+
+#pragma interface
+
+#include <java/rmi/RemoteException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class SkeletonNotFoundException;
+ }
+ }
+ }
+}
+
+class java::rmi::server::SkeletonNotFoundException : public ::java::rmi::RemoteException
+{
+
+public:
+ SkeletonNotFoundException(::java::lang::String *);
+ SkeletonNotFoundException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -7860299673822761231LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_SkeletonNotFoundException__
diff --git a/gcc-4.8/libjava/java/rmi/server/SocketSecurityException.h b/gcc-4.8/libjava/java/rmi/server/SocketSecurityException.h
new file mode 100644
index 000000000..39c34411c
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/SocketSecurityException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_SocketSecurityException__
+#define __java_rmi_server_SocketSecurityException__
+
+#pragma interface
+
+#include <java/rmi/server/ExportException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class SocketSecurityException;
+ }
+ }
+ }
+}
+
+class java::rmi::server::SocketSecurityException : public ::java::rmi::server::ExportException
+{
+
+public:
+ SocketSecurityException(::java::lang::String *);
+ SocketSecurityException(::java::lang::String *, ::java::lang::Exception *);
+private:
+ static const jlong serialVersionUID = -7622072999407781979LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_SocketSecurityException__
diff --git a/gcc-4.8/libjava/java/rmi/server/UID.h b/gcc-4.8/libjava/java/rmi/server/UID.h
new file mode 100644
index 000000000..85887ea3f
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/UID.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_UID__
+#define __java_rmi_server_UID__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class UID;
+ }
+ }
+ }
+}
+
+class java::rmi::server::UID : public ::java::lang::Object
+{
+
+public:
+ UID();
+ UID(jshort);
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+ static ::java::rmi::server::UID * read(::java::io::DataInput *);
+ void write(::java::io::DataOutput *);
+public: // actually package-private
+ static jint getMachineId();
+public:
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 1086053664494604050LL;
+ static jshort uidCounter;
+ static jlong last;
+ static jint machineId;
+ jshort __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ jint unique;
+ jlong time;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_UID__
diff --git a/gcc-4.8/libjava/java/rmi/server/UnicastRemoteObject.h b/gcc-4.8/libjava/java/rmi/server/UnicastRemoteObject.h
new file mode 100644
index 000000000..274507ff9
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/UnicastRemoteObject.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_UnicastRemoteObject__
+#define __java_rmi_server_UnicastRemoteObject__
+
+#pragma interface
+
+#include <java/rmi/server/RemoteServer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ class Remote;
+ namespace server
+ {
+ class RMIClientSocketFactory;
+ class RMIServerSocketFactory;
+ class RemoteRef;
+ class RemoteStub;
+ class UnicastRemoteObject;
+ }
+ }
+ }
+}
+
+class java::rmi::server::UnicastRemoteObject : public ::java::rmi::server::RemoteServer
+{
+
+public: // actually protected
+ UnicastRemoteObject();
+ UnicastRemoteObject(jint);
+ UnicastRemoteObject(jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ UnicastRemoteObject(::java::rmi::server::RemoteRef *);
+public:
+ virtual ::java::lang::Object * clone();
+ static ::java::rmi::server::RemoteStub * exportObject(::java::rmi::Remote *);
+ static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, jint);
+public: // actually package-private
+ static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
+public:
+ static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *);
+ static jboolean unexportObject(::java::rmi::Remote *, jboolean);
+private:
+ static const jlong serialVersionUID = 4974527148936298033LL;
+ jint __attribute__((aligned(__alignof__( ::java::rmi::server::RemoteServer)))) port;
+ ::java::rmi::server::RMIClientSocketFactory * csf;
+ ::java::rmi::server::RMIServerSocketFactory * ssf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_rmi_server_UnicastRemoteObject__
diff --git a/gcc-4.8/libjava/java/rmi/server/Unreferenced.h b/gcc-4.8/libjava/java/rmi/server/Unreferenced.h
new file mode 100644
index 000000000..70f802a7a
--- /dev/null
+++ b/gcc-4.8/libjava/java/rmi/server/Unreferenced.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_rmi_server_Unreferenced__
+#define __java_rmi_server_Unreferenced__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace rmi
+ {
+ namespace server
+ {
+ class Unreferenced;
+ }
+ }
+ }
+}
+
+class java::rmi::server::Unreferenced : public ::java::lang::Object
+{
+
+public:
+ virtual void unreferenced() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_rmi_server_Unreferenced__
diff --git a/gcc-4.8/libjava/java/security/AccessControlContext.h b/gcc-4.8/libjava/java/security/AccessControlContext.h
new file mode 100644
index 000000000..e83852a77
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AccessControlContext.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AccessControlContext__
+#define __java_security_AccessControlContext__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlContext;
+ class DomainCombiner;
+ class Permission;
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::security::AccessControlContext : public ::java::lang::Object
+{
+
+public:
+ AccessControlContext(JArray< ::java::security::ProtectionDomain * > *);
+ AccessControlContext(::java::security::AccessControlContext *, ::java::security::DomainCombiner *);
+public: // actually package-private
+ AccessControlContext(JArray< ::java::security::ProtectionDomain * > *, ::java::security::AccessControlContext *, ::java::security::DomainCombiner *);
+public:
+ ::java::security::DomainCombiner * getDomainCombiner();
+ void checkPermission(::java::security::Permission *);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+public: // actually package-private
+ JArray< ::java::security::ProtectionDomain * > * getProtectionDomains();
+private:
+ JArray< ::java::security::ProtectionDomain * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) protectionDomains;
+ ::java::security::DomainCombiner * combiner;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AccessControlContext__
diff --git a/gcc-4.8/libjava/java/security/AccessControlException.h b/gcc-4.8/libjava/java/security/AccessControlException.h
new file mode 100644
index 000000000..1dcd122ca
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AccessControlException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AccessControlException__
+#define __java_security_AccessControlException__
+
+#pragma interface
+
+#include <java/lang/SecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlException;
+ class Permission;
+ }
+ }
+}
+
+class java::security::AccessControlException : public ::java::lang::SecurityException
+{
+
+public:
+ AccessControlException(::java::lang::String *);
+ AccessControlException(::java::lang::String *, ::java::security::Permission *);
+ virtual ::java::security::Permission * getPermission();
+private:
+ static const jlong serialVersionUID = 5138225684096988535LL;
+ ::java::security::Permission * __attribute__((aligned(__alignof__( ::java::lang::SecurityException)))) perm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AccessControlException__
diff --git a/gcc-4.8/libjava/java/security/AccessController.h b/gcc-4.8/libjava/java/security/AccessController.h
new file mode 100644
index 000000000..96cc367c7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AccessController.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AccessController__
+#define __java_security_AccessController__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlContext;
+ class AccessController;
+ class Permission;
+ class PrivilegedAction;
+ class PrivilegedExceptionAction;
+ }
+ }
+}
+
+class java::security::AccessController : public ::java::lang::Object
+{
+
+ AccessController();
+public:
+ static void checkPermission(::java::security::Permission *);
+ static ::java::lang::Object * doPrivileged(::java::security::PrivilegedAction *);
+ static ::java::lang::Object * doPrivileged(::java::security::PrivilegedAction *, ::java::security::AccessControlContext *);
+ static ::java::lang::Object * doPrivileged(::java::security::PrivilegedExceptionAction *);
+ static ::java::lang::Object * doPrivileged(::java::security::PrivilegedExceptionAction *, ::java::security::AccessControlContext *);
+ static ::java::security::AccessControlContext * getContext();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AccessController__
diff --git a/gcc-4.8/libjava/java/security/AlgorithmParameterGenerator.h b/gcc-4.8/libjava/java/security/AlgorithmParameterGenerator.h
new file mode 100644
index 000000000..02c9dbf3d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AlgorithmParameterGenerator.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AlgorithmParameterGenerator__
+#define __java_security_AlgorithmParameterGenerator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AlgorithmParameterGenerator;
+ class AlgorithmParameterGeneratorSpi;
+ class AlgorithmParameters;
+ class Provider;
+ class SecureRandom;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::AlgorithmParameterGenerator : public ::java::lang::Object
+{
+
+public: // actually protected
+ AlgorithmParameterGenerator(::java::security::AlgorithmParameterGeneratorSpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ virtual ::java::lang::String * getAlgorithm();
+ static ::java::security::AlgorithmParameterGenerator * getInstance(::java::lang::String *);
+ static ::java::security::AlgorithmParameterGenerator * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::AlgorithmParameterGenerator * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual void init(jint);
+ virtual void init(jint, ::java::security::SecureRandom *);
+ virtual void init(::java::security::spec::AlgorithmParameterSpec *);
+ virtual void init(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *);
+ virtual ::java::security::AlgorithmParameters * generateParameters();
+private:
+ static ::java::lang::String * ALGORITHM_PARAMETER_GENERATOR;
+ ::java::security::AlgorithmParameterGeneratorSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) paramGenSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * algorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AlgorithmParameterGenerator__
diff --git a/gcc-4.8/libjava/java/security/AlgorithmParameterGeneratorSpi.h b/gcc-4.8/libjava/java/security/AlgorithmParameterGeneratorSpi.h
new file mode 100644
index 000000000..c40dfd3df
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AlgorithmParameterGeneratorSpi.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AlgorithmParameterGeneratorSpi__
+#define __java_security_AlgorithmParameterGeneratorSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AlgorithmParameterGeneratorSpi;
+ class AlgorithmParameters;
+ class SecureRandom;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::AlgorithmParameterGeneratorSpi : public ::java::lang::Object
+{
+
+public:
+ AlgorithmParameterGeneratorSpi();
+public: // actually protected
+ virtual void engineInit(jint, ::java::security::SecureRandom *) = 0;
+ virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *) = 0;
+ virtual ::java::security::AlgorithmParameters * engineGenerateParameters() = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AlgorithmParameterGeneratorSpi__
diff --git a/gcc-4.8/libjava/java/security/AlgorithmParameters.h b/gcc-4.8/libjava/java/security/AlgorithmParameters.h
new file mode 100644
index 000000000..630b04312
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AlgorithmParameters.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AlgorithmParameters__
+#define __java_security_AlgorithmParameters__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AlgorithmParameters;
+ class AlgorithmParametersSpi;
+ class Provider;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::AlgorithmParameters : public ::java::lang::Object
+{
+
+public: // actually protected
+ AlgorithmParameters(::java::security::AlgorithmParametersSpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ virtual ::java::lang::String * getAlgorithm();
+ static ::java::security::AlgorithmParameters * getInstance(::java::lang::String *);
+ static ::java::security::AlgorithmParameters * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::AlgorithmParameters * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual void init(::java::security::spec::AlgorithmParameterSpec *);
+ virtual void init(JArray< jbyte > *);
+ virtual void init(JArray< jbyte > *, ::java::lang::String *);
+ virtual ::java::security::spec::AlgorithmParameterSpec * getParameterSpec(::java::lang::Class *);
+ virtual JArray< jbyte > * getEncoded();
+ virtual JArray< jbyte > * getEncoded(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+private:
+ static ::java::lang::String * ALGORITHM_PARAMETERS;
+ ::java::security::AlgorithmParametersSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) paramSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * algorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AlgorithmParameters__
diff --git a/gcc-4.8/libjava/java/security/AlgorithmParametersSpi.h b/gcc-4.8/libjava/java/security/AlgorithmParametersSpi.h
new file mode 100644
index 000000000..a3c269677
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AlgorithmParametersSpi.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AlgorithmParametersSpi__
+#define __java_security_AlgorithmParametersSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AlgorithmParametersSpi;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::AlgorithmParametersSpi : public ::java::lang::Object
+{
+
+public:
+ AlgorithmParametersSpi();
+public: // actually protected
+ virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *) = 0;
+ virtual void engineInit(JArray< jbyte > *) = 0;
+ virtual void engineInit(JArray< jbyte > *, ::java::lang::String *) = 0;
+ virtual ::java::security::spec::AlgorithmParameterSpec * engineGetParameterSpec(::java::lang::Class *) = 0;
+ virtual JArray< jbyte > * engineGetEncoded() = 0;
+ virtual JArray< jbyte > * engineGetEncoded(::java::lang::String *) = 0;
+ virtual ::java::lang::String * engineToString() = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AlgorithmParametersSpi__
diff --git a/gcc-4.8/libjava/java/security/AllPermission$AllPermissionCollection.h b/gcc-4.8/libjava/java/security/AllPermission$AllPermissionCollection.h
new file mode 100644
index 000000000..bf88353db
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AllPermission$AllPermissionCollection.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AllPermission$AllPermissionCollection__
+#define __java_security_AllPermission$AllPermissionCollection__
+
+#pragma interface
+
+#include <java/security/PermissionCollection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AllPermission$AllPermissionCollection;
+ class Permission;
+ }
+ }
+}
+
+class java::security::AllPermission$AllPermissionCollection : public ::java::security::PermissionCollection
+{
+
+ AllPermission$AllPermissionCollection();
+public:
+ void add(::java::security::Permission *);
+ jboolean implies(::java::security::Permission *);
+ ::java::util::Enumeration * elements();
+public: // actually package-private
+ AllPermission$AllPermissionCollection(::java::security::AllPermission$AllPermissionCollection *);
+private:
+ static const jlong serialVersionUID = -4023755556366636806LL;
+ jboolean __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) all_allowed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AllPermission$AllPermissionCollection__
diff --git a/gcc-4.8/libjava/java/security/AllPermission.h b/gcc-4.8/libjava/java/security/AllPermission.h
new file mode 100644
index 000000000..7700a9350
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/AllPermission.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_AllPermission__
+#define __java_security_AllPermission__
+
+#pragma interface
+
+#include <java/security/Permission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AllPermission;
+ class Permission;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::security::AllPermission : public ::java::security::Permission
+{
+
+public:
+ AllPermission();
+ AllPermission(::java::lang::String *, ::java::lang::String *);
+ jboolean implies(::java::security::Permission *);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * getActions();
+ ::java::security::PermissionCollection * newPermissionCollection();
+private:
+ static const jlong serialVersionUID = -2916474571451318075LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_AllPermission__
diff --git a/gcc-4.8/libjava/java/security/BasicPermission$BasicPermissionCollection.h b/gcc-4.8/libjava/java/security/BasicPermission$BasicPermissionCollection.h
new file mode 100644
index 000000000..a2d14544c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/BasicPermission$BasicPermissionCollection.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_BasicPermission$BasicPermissionCollection__
+#define __java_security_BasicPermission$BasicPermissionCollection__
+
+#pragma interface
+
+#include <java/security/PermissionCollection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class BasicPermission$BasicPermissionCollection;
+ class Permission;
+ }
+ }
+}
+
+class java::security::BasicPermission$BasicPermissionCollection : public ::java::security::PermissionCollection
+{
+
+public: // actually package-private
+ BasicPermission$BasicPermissionCollection(::java::lang::Class *);
+public:
+ void add(::java::security::Permission *);
+ jboolean implies(::java::security::Permission *);
+ ::java::util::Enumeration * elements();
+private:
+ static const jlong serialVersionUID = 739301742472979399LL;
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) permissions;
+ jboolean all_allowed;
+ ::java::lang::Class * permClass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_BasicPermission$BasicPermissionCollection__
diff --git a/gcc-4.8/libjava/java/security/BasicPermission.h b/gcc-4.8/libjava/java/security/BasicPermission.h
new file mode 100644
index 000000000..368386287
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/BasicPermission.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_BasicPermission__
+#define __java_security_BasicPermission__
+
+#pragma interface
+
+#include <java/security/Permission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class BasicPermission;
+ class Permission;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::security::BasicPermission : public ::java::security::Permission
+{
+
+public:
+ BasicPermission(::java::lang::String *);
+ BasicPermission(::java::lang::String *, ::java::lang::String *);
+ virtual jboolean implies(::java::security::Permission *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * getActions();
+ virtual ::java::security::PermissionCollection * newPermissionCollection();
+private:
+ static const jlong serialVersionUID = 6279438298436773498LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_BasicPermission__
diff --git a/gcc-4.8/libjava/java/security/Certificate.h b/gcc-4.8/libjava/java/security/Certificate.h
new file mode 100644
index 000000000..9c7af2842
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Certificate.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Certificate__
+#define __java_security_Certificate__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Certificate;
+ class Principal;
+ class PublicKey;
+ }
+ }
+}
+
+class java::security::Certificate : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::security::Principal * getGuarantor() = 0;
+ virtual ::java::security::Principal * getPrincipal() = 0;
+ virtual ::java::security::PublicKey * getPublicKey() = 0;
+ virtual void encode(::java::io::OutputStream *) = 0;
+ virtual void decode(::java::io::InputStream *) = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual ::java::lang::String * toString(jboolean) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_Certificate__
diff --git a/gcc-4.8/libjava/java/security/CodeSource.h b/gcc-4.8/libjava/java/security/CodeSource.h
new file mode 100644
index 000000000..35dffd9ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/CodeSource.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_CodeSource__
+#define __java_security_CodeSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ namespace security
+ {
+ class CodeSource;
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::CodeSource : public ::java::lang::Object
+{
+
+public:
+ CodeSource(::java::net::URL *, JArray< ::java::security::cert::Certificate * > *);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::net::URL * getLocation();
+ virtual JArray< ::java::security::cert::Certificate * > * getCertificates();
+ virtual jboolean implies(::java::security::CodeSource *);
+ virtual ::java::lang::String * toString();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = 4977541819976013951LL;
+ ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) location;
+ ::java::util::HashSet * certs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_CodeSource__
diff --git a/gcc-4.8/libjava/java/security/DigestException.h b/gcc-4.8/libjava/java/security/DigestException.h
new file mode 100644
index 000000000..d216415c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DigestException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DigestException__
+#define __java_security_DigestException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DigestException;
+ }
+ }
+}
+
+class java::security::DigestException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ DigestException();
+ DigestException(::java::lang::String *);
+ DigestException(::java::lang::String *, ::java::lang::Throwable *);
+ DigestException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 5821450303093652515LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_DigestException__
diff --git a/gcc-4.8/libjava/java/security/DigestInputStream.h b/gcc-4.8/libjava/java/security/DigestInputStream.h
new file mode 100644
index 000000000..b112ad2c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DigestInputStream.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DigestInputStream__
+#define __java_security_DigestInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DigestInputStream;
+ class MessageDigest;
+ }
+ }
+}
+
+class java::security::DigestInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ DigestInputStream(::java::io::InputStream *, ::java::security::MessageDigest *);
+ virtual ::java::security::MessageDigest * getMessageDigest();
+ virtual void setMessageDigest(::java::security::MessageDigest *);
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void on(jboolean);
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ ::java::security::MessageDigest * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) digest;
+private:
+ jboolean state;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_DigestInputStream__
diff --git a/gcc-4.8/libjava/java/security/DigestOutputStream.h b/gcc-4.8/libjava/java/security/DigestOutputStream.h
new file mode 100644
index 000000000..5c1605c76
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DigestOutputStream.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DigestOutputStream__
+#define __java_security_DigestOutputStream__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DigestOutputStream;
+ class MessageDigest;
+ }
+ }
+}
+
+class java::security::DigestOutputStream : public ::java::io::FilterOutputStream
+{
+
+public:
+ DigestOutputStream(::java::io::OutputStream *, ::java::security::MessageDigest *);
+ virtual ::java::security::MessageDigest * getMessageDigest();
+ virtual void setMessageDigest(::java::security::MessageDigest *);
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void on(jboolean);
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ ::java::security::MessageDigest * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) digest;
+private:
+ jboolean state;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_DigestOutputStream__
diff --git a/gcc-4.8/libjava/java/security/DomainCombiner.h b/gcc-4.8/libjava/java/security/DomainCombiner.h
new file mode 100644
index 000000000..18906b929
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DomainCombiner.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DomainCombiner__
+#define __java_security_DomainCombiner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DomainCombiner;
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::security::DomainCombiner : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::security::ProtectionDomain * > * combine(JArray< ::java::security::ProtectionDomain * > *, JArray< ::java::security::ProtectionDomain * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_DomainCombiner__
diff --git a/gcc-4.8/libjava/java/security/DummyKeyPairGenerator.h b/gcc-4.8/libjava/java/security/DummyKeyPairGenerator.h
new file mode 100644
index 000000000..c0f35818b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DummyKeyPairGenerator.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DummyKeyPairGenerator__
+#define __java_security_DummyKeyPairGenerator__
+
+#pragma interface
+
+#include <java/security/KeyPairGenerator.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DummyKeyPairGenerator;
+ class KeyPair;
+ class KeyPairGeneratorSpi;
+ class SecureRandom;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::DummyKeyPairGenerator : public ::java::security::KeyPairGenerator
+{
+
+public:
+ DummyKeyPairGenerator(::java::security::KeyPairGeneratorSpi *, ::java::lang::String *);
+ ::java::lang::Object * clone();
+ void initialize(jint, ::java::security::SecureRandom *);
+ void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *);
+ ::java::security::KeyPair * generateKeyPair();
+private:
+ ::java::security::KeyPairGeneratorSpi * __attribute__((aligned(__alignof__( ::java::security::KeyPairGenerator)))) kpgSpi;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_DummyKeyPairGenerator__
diff --git a/gcc-4.8/libjava/java/security/DummyMessageDigest.h b/gcc-4.8/libjava/java/security/DummyMessageDigest.h
new file mode 100644
index 000000000..431096dfe
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DummyMessageDigest.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DummyMessageDigest__
+#define __java_security_DummyMessageDigest__
+
+#pragma interface
+
+#include <java/security/MessageDigest.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DummyMessageDigest;
+ class MessageDigestSpi;
+ }
+ }
+}
+
+class java::security::DummyMessageDigest : public ::java::security::MessageDigest
+{
+
+public:
+ DummyMessageDigest(::java::security::MessageDigestSpi *, ::java::lang::String *);
+ ::java::lang::Object * clone();
+ JArray< jbyte > * engineDigest();
+ jint engineDigest(JArray< jbyte > *, jint, jint);
+ jint engineGetDigestLength();
+ void engineReset();
+ void engineUpdate(jbyte);
+ void engineUpdate(JArray< jbyte > *, jint, jint);
+private:
+ ::java::security::MessageDigestSpi * __attribute__((aligned(__alignof__( ::java::security::MessageDigest)))) mdSpi;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_DummyMessageDigest__
diff --git a/gcc-4.8/libjava/java/security/DummySignature.h b/gcc-4.8/libjava/java/security/DummySignature.h
new file mode 100644
index 000000000..34547473f
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/DummySignature.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_DummySignature__
+#define __java_security_DummySignature__
+
+#pragma interface
+
+#include <java/security/Signature.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class DummySignature;
+ class PrivateKey;
+ class PublicKey;
+ class SignatureSpi;
+ }
+ }
+}
+
+class java::security::DummySignature : public ::java::security::Signature
+{
+
+public:
+ DummySignature(::java::security::SignatureSpi *, ::java::lang::String *);
+ ::java::lang::Object * clone();
+public: // actually protected
+ void engineInitVerify(::java::security::PublicKey *);
+ void engineInitSign(::java::security::PrivateKey *);
+ void engineUpdate(jbyte);
+ void engineUpdate(JArray< jbyte > *, jint, jint);
+ JArray< jbyte > * engineSign();
+ jboolean engineVerify(JArray< jbyte > *);
+ void engineSetParameter(::java::lang::String *, ::java::lang::Object *);
+ ::java::lang::Object * engineGetParameter(::java::lang::String *);
+private:
+ ::java::security::SignatureSpi * __attribute__((aligned(__alignof__( ::java::security::Signature)))) sigSpi;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_DummySignature__
diff --git a/gcc-4.8/libjava/java/security/GeneralSecurityException.h b/gcc-4.8/libjava/java/security/GeneralSecurityException.h
new file mode 100644
index 000000000..6b309b5eb
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/GeneralSecurityException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_GeneralSecurityException__
+#define __java_security_GeneralSecurityException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class GeneralSecurityException;
+ }
+ }
+}
+
+class java::security::GeneralSecurityException : public ::java::lang::Exception
+{
+
+public:
+ GeneralSecurityException();
+ GeneralSecurityException(::java::lang::String *);
+ GeneralSecurityException(::java::lang::String *, ::java::lang::Throwable *);
+ GeneralSecurityException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 894798122053539237LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_GeneralSecurityException__
diff --git a/gcc-4.8/libjava/java/security/Guard.h b/gcc-4.8/libjava/java/security/Guard.h
new file mode 100644
index 000000000..07cc6437d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Guard.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Guard__
+#define __java_security_Guard__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Guard;
+ }
+ }
+}
+
+class java::security::Guard : public ::java::lang::Object
+{
+
+public:
+ virtual void checkGuard(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_Guard__
diff --git a/gcc-4.8/libjava/java/security/GuardedObject.h b/gcc-4.8/libjava/java/security/GuardedObject.h
new file mode 100644
index 000000000..379651249
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/GuardedObject.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_GuardedObject__
+#define __java_security_GuardedObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Guard;
+ class GuardedObject;
+ }
+ }
+}
+
+class java::security::GuardedObject : public ::java::lang::Object
+{
+
+public:
+ GuardedObject(::java::lang::Object *, ::java::security::Guard *);
+ virtual ::java::lang::Object * getObject();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = -5240450096227834308LL;
+ ::java::security::Guard * __attribute__((aligned(__alignof__( ::java::lang::Object)))) guard;
+ ::java::lang::Object * object;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_GuardedObject__
diff --git a/gcc-4.8/libjava/java/security/Identity.h b/gcc-4.8/libjava/java/security/Identity.h
new file mode 100644
index 000000000..8208e7ff6
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Identity.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Identity__
+#define __java_security_Identity__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Certificate;
+ class Identity;
+ class IdentityScope;
+ class PublicKey;
+ }
+ }
+}
+
+class java::security::Identity : public ::java::lang::Object
+{
+
+public: // actually protected
+ Identity();
+public:
+ Identity(::java::lang::String *, ::java::security::IdentityScope *);
+ Identity(::java::lang::String *);
+ virtual ::java::lang::String * getName();
+ virtual ::java::security::IdentityScope * getScope();
+ virtual ::java::security::PublicKey * getPublicKey();
+ virtual void setPublicKey(::java::security::PublicKey *);
+ virtual void setInfo(::java::lang::String *);
+ virtual ::java::lang::String * getInfo();
+ virtual void addCertificate(::java::security::Certificate *);
+ virtual void removeCertificate(::java::security::Certificate *);
+ virtual JArray< ::java::security::Certificate * > * certificates();
+ virtual jboolean equals(::java::lang::Object *);
+public: // actually protected
+ virtual jboolean identityEquals(::java::security::Identity *);
+public:
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * toString(jboolean);
+ virtual jint hashCode();
+private:
+ static const jlong serialVersionUID = 3609922007826600659LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::security::IdentityScope * scope;
+ ::java::security::PublicKey * publicKey;
+ ::java::lang::String * info;
+ ::java::util::Vector * certificates__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Identity__
diff --git a/gcc-4.8/libjava/java/security/IdentityScope.h b/gcc-4.8/libjava/java/security/IdentityScope.h
new file mode 100644
index 000000000..90a493031
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/IdentityScope.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_IdentityScope__
+#define __java_security_IdentityScope__
+
+#pragma interface
+
+#include <java/security/Identity.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Identity;
+ class IdentityScope;
+ class Principal;
+ class PublicKey;
+ }
+ }
+}
+
+class java::security::IdentityScope : public ::java::security::Identity
+{
+
+public: // actually protected
+ IdentityScope();
+public:
+ IdentityScope(::java::lang::String *);
+ IdentityScope(::java::lang::String *, ::java::security::IdentityScope *);
+ static ::java::security::IdentityScope * getSystemScope();
+public: // actually protected
+ static void setSystemScope(::java::security::IdentityScope *);
+public:
+ virtual jint size() = 0;
+ virtual ::java::security::Identity * getIdentity(::java::lang::String *) = 0;
+ virtual ::java::security::Identity * getIdentity(::java::security::Principal *);
+ virtual ::java::security::Identity * getIdentity(::java::security::PublicKey *) = 0;
+ virtual void addIdentity(::java::security::Identity *) = 0;
+ virtual void removeIdentity(::java::security::Identity *) = 0;
+ virtual ::java::util::Enumeration * identities() = 0;
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -2337346281189773310LL;
+ static ::java::security::IdentityScope * systemScope;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_IdentityScope__
diff --git a/gcc-4.8/libjava/java/security/IntersectingDomainCombiner.h b/gcc-4.8/libjava/java/security/IntersectingDomainCombiner.h
new file mode 100644
index 000000000..f192c2615
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/IntersectingDomainCombiner.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_IntersectingDomainCombiner__
+#define __java_security_IntersectingDomainCombiner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class IntersectingDomainCombiner;
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::security::IntersectingDomainCombiner : public ::java::lang::Object
+{
+
+ IntersectingDomainCombiner();
+public:
+ JArray< ::java::security::ProtectionDomain * > * combine(JArray< ::java::security::ProtectionDomain * > *, JArray< ::java::security::ProtectionDomain * > *);
+public: // actually package-private
+ static ::java::security::IntersectingDomainCombiner * SINGLETON;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_IntersectingDomainCombiner__
diff --git a/gcc-4.8/libjava/java/security/InvalidAlgorithmParameterException.h b/gcc-4.8/libjava/java/security/InvalidAlgorithmParameterException.h
new file mode 100644
index 000000000..8ff0d7ed3
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/InvalidAlgorithmParameterException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_InvalidAlgorithmParameterException__
+#define __java_security_InvalidAlgorithmParameterException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class InvalidAlgorithmParameterException;
+ }
+ }
+}
+
+class java::security::InvalidAlgorithmParameterException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ InvalidAlgorithmParameterException();
+ InvalidAlgorithmParameterException(::java::lang::String *);
+ InvalidAlgorithmParameterException(::java::lang::String *, ::java::lang::Throwable *);
+ InvalidAlgorithmParameterException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 2864672297499471472LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_InvalidAlgorithmParameterException__
diff --git a/gcc-4.8/libjava/java/security/InvalidKeyException.h b/gcc-4.8/libjava/java/security/InvalidKeyException.h
new file mode 100644
index 000000000..f79473c40
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/InvalidKeyException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_InvalidKeyException__
+#define __java_security_InvalidKeyException__
+
+#pragma interface
+
+#include <java/security/KeyException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class InvalidKeyException;
+ }
+ }
+}
+
+class java::security::InvalidKeyException : public ::java::security::KeyException
+{
+
+public:
+ InvalidKeyException();
+ InvalidKeyException(::java::lang::String *);
+ InvalidKeyException(::java::lang::String *, ::java::lang::Throwable *);
+ InvalidKeyException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 5698479920593359816LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_InvalidKeyException__
diff --git a/gcc-4.8/libjava/java/security/InvalidParameterException.h b/gcc-4.8/libjava/java/security/InvalidParameterException.h
new file mode 100644
index 000000000..fd9c9a732
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/InvalidParameterException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_InvalidParameterException__
+#define __java_security_InvalidParameterException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class InvalidParameterException;
+ }
+ }
+}
+
+class java::security::InvalidParameterException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ InvalidParameterException();
+ InvalidParameterException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -857968536935667808LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_InvalidParameterException__
diff --git a/gcc-4.8/libjava/java/security/Key.h b/gcc-4.8/libjava/java/security/Key.h
new file mode 100644
index 000000000..630f8123b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Key.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Key__
+#define __java_security_Key__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Key;
+ }
+ }
+}
+
+class java::security::Key : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ static const jlong serialVersionUID = 6603384152749567654LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_Key__
diff --git a/gcc-4.8/libjava/java/security/KeyException.h b/gcc-4.8/libjava/java/security/KeyException.h
new file mode 100644
index 000000000..0d3ce5138
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyException__
+#define __java_security_KeyException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyException;
+ }
+ }
+}
+
+class java::security::KeyException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ KeyException();
+ KeyException(::java::lang::String *);
+ KeyException(::java::lang::String *, ::java::lang::Throwable *);
+ KeyException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -7483676942812432108LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyException__
diff --git a/gcc-4.8/libjava/java/security/KeyFactory.h b/gcc-4.8/libjava/java/security/KeyFactory.h
new file mode 100644
index 000000000..adcec17f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyFactory.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyFactory__
+#define __java_security_KeyFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Key;
+ class KeyFactory;
+ class KeyFactorySpi;
+ class PrivateKey;
+ class Provider;
+ class PublicKey;
+ namespace spec
+ {
+ class KeySpec;
+ }
+ }
+ }
+}
+
+class java::security::KeyFactory : public ::java::lang::Object
+{
+
+public: // actually protected
+ KeyFactory(::java::security::KeyFactorySpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ static ::java::security::KeyFactory * getInstance(::java::lang::String *);
+ static ::java::security::KeyFactory * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::KeyFactory * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::lang::String * getAlgorithm();
+ virtual ::java::security::PublicKey * generatePublic(::java::security::spec::KeySpec *);
+ virtual ::java::security::PrivateKey * generatePrivate(::java::security::spec::KeySpec *);
+ virtual ::java::security::spec::KeySpec * getKeySpec(::java::security::Key *, ::java::lang::Class *);
+ virtual ::java::security::Key * translateKey(::java::security::Key *);
+private:
+ static ::java::lang::String * KEY_FACTORY;
+ ::java::security::KeyFactorySpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keyFacSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * algorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyFactory__
diff --git a/gcc-4.8/libjava/java/security/KeyFactorySpi.h b/gcc-4.8/libjava/java/security/KeyFactorySpi.h
new file mode 100644
index 000000000..518893b59
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyFactorySpi.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyFactorySpi__
+#define __java_security_KeyFactorySpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Key;
+ class KeyFactorySpi;
+ class PrivateKey;
+ class PublicKey;
+ namespace spec
+ {
+ class KeySpec;
+ }
+ }
+ }
+}
+
+class java::security::KeyFactorySpi : public ::java::lang::Object
+{
+
+public:
+ KeyFactorySpi();
+public: // actually protected
+ virtual ::java::security::PublicKey * engineGeneratePublic(::java::security::spec::KeySpec *) = 0;
+ virtual ::java::security::PrivateKey * engineGeneratePrivate(::java::security::spec::KeySpec *) = 0;
+ virtual ::java::security::spec::KeySpec * engineGetKeySpec(::java::security::Key *, ::java::lang::Class *) = 0;
+ virtual ::java::security::Key * engineTranslateKey(::java::security::Key *) = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyFactorySpi__
diff --git a/gcc-4.8/libjava/java/security/KeyManagementException.h b/gcc-4.8/libjava/java/security/KeyManagementException.h
new file mode 100644
index 000000000..20d6964f9
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyManagementException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyManagementException__
+#define __java_security_KeyManagementException__
+
+#pragma interface
+
+#include <java/security/KeyException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyManagementException;
+ }
+ }
+}
+
+class java::security::KeyManagementException : public ::java::security::KeyException
+{
+
+public:
+ KeyManagementException();
+ KeyManagementException(::java::lang::String *);
+ KeyManagementException(::java::lang::String *, ::java::lang::Throwable *);
+ KeyManagementException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 947674216157062695LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyManagementException__
diff --git a/gcc-4.8/libjava/java/security/KeyPair.h b/gcc-4.8/libjava/java/security/KeyPair.h
new file mode 100644
index 000000000..c6c607bb0
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyPair.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyPair__
+#define __java_security_KeyPair__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyPair;
+ class PrivateKey;
+ class PublicKey;
+ }
+ }
+}
+
+class java::security::KeyPair : public ::java::lang::Object
+{
+
+public:
+ KeyPair(::java::security::PublicKey *, ::java::security::PrivateKey *);
+ ::java::security::PublicKey * getPublic();
+ ::java::security::PrivateKey * getPrivate();
+private:
+ static const jlong serialVersionUID = -7565189502268009837LL;
+ ::java::security::PublicKey * __attribute__((aligned(__alignof__( ::java::lang::Object)))) publicKey;
+ ::java::security::PrivateKey * privateKey;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyPair__
diff --git a/gcc-4.8/libjava/java/security/KeyPairGenerator.h b/gcc-4.8/libjava/java/security/KeyPairGenerator.h
new file mode 100644
index 000000000..f1bef60c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyPairGenerator.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyPairGenerator__
+#define __java_security_KeyPairGenerator__
+
+#pragma interface
+
+#include <java/security/KeyPairGeneratorSpi.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyPair;
+ class KeyPairGenerator;
+ class Provider;
+ class SecureRandom;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::KeyPairGenerator : public ::java::security::KeyPairGeneratorSpi
+{
+
+public: // actually protected
+ KeyPairGenerator(::java::lang::String *);
+public:
+ virtual ::java::lang::String * getAlgorithm();
+ static ::java::security::KeyPairGenerator * getInstance(::java::lang::String *);
+ static ::java::security::KeyPairGenerator * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::KeyPairGenerator * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual void initialize(jint);
+ virtual void initialize(jint, ::java::security::SecureRandom *);
+ virtual void initialize(::java::security::spec::AlgorithmParameterSpec *);
+ virtual void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *);
+ virtual ::java::security::KeyPair * genKeyPair();
+ virtual ::java::security::KeyPair * generateKeyPair();
+private:
+ static ::java::lang::String * KEY_PAIR_GENERATOR;
+public: // actually package-private
+ ::java::security::Provider * __attribute__((aligned(__alignof__( ::java::security::KeyPairGeneratorSpi)))) provider;
+private:
+ ::java::lang::String * algorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyPairGenerator__
diff --git a/gcc-4.8/libjava/java/security/KeyPairGeneratorSpi.h b/gcc-4.8/libjava/java/security/KeyPairGeneratorSpi.h
new file mode 100644
index 000000000..0aa4389e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyPairGeneratorSpi.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyPairGeneratorSpi__
+#define __java_security_KeyPairGeneratorSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyPair;
+ class KeyPairGeneratorSpi;
+ class SecureRandom;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::KeyPairGeneratorSpi : public ::java::lang::Object
+{
+
+public:
+ KeyPairGeneratorSpi();
+ virtual void initialize(jint, ::java::security::SecureRandom *) = 0;
+ virtual void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *);
+ virtual ::java::security::KeyPair * generateKeyPair() = 0;
+public: // actually protected
+ virtual ::java::lang::Object * clone();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyPairGeneratorSpi__
diff --git a/gcc-4.8/libjava/java/security/KeyStore$1.h b/gcc-4.8/libjava/java/security/KeyStore$1.h
new file mode 100644
index 000000000..335569c08
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyStore$1.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyStore$1__
+#define __java_security_KeyStore$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyStore$1;
+ }
+ }
+}
+
+class java::security::KeyStore$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ KeyStore$1();
+public:
+ virtual ::java::lang::String * KeyStore$1$run();
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyStore$1__
diff --git a/gcc-4.8/libjava/java/security/KeyStore.h b/gcc-4.8/libjava/java/security/KeyStore.h
new file mode 100644
index 000000000..80f79814a
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyStore.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyStore__
+#define __java_security_KeyStore__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Key;
+ class KeyStore;
+ class KeyStoreSpi;
+ class Provider;
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::KeyStore : public ::java::lang::Object
+{
+
+public: // actually protected
+ KeyStore(::java::security::KeyStoreSpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ static ::java::security::KeyStore * getInstance(::java::lang::String *);
+ static ::java::security::KeyStore * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::KeyStore * getInstance(::java::lang::String *, ::java::security::Provider *);
+ static ::java::lang::String * getDefaultType();
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::lang::String * getType();
+ virtual ::java::security::Key * getKey(::java::lang::String *, JArray< jchar > *);
+ virtual JArray< ::java::security::cert::Certificate * > * getCertificateChain(::java::lang::String *);
+ virtual ::java::security::cert::Certificate * getCertificate(::java::lang::String *);
+ virtual ::java::util::Date * getCreationDate(::java::lang::String *);
+ virtual void setKeyEntry(::java::lang::String *, ::java::security::Key *, JArray< jchar > *, JArray< ::java::security::cert::Certificate * > *);
+ virtual void setKeyEntry(::java::lang::String *, JArray< jbyte > *, JArray< ::java::security::cert::Certificate * > *);
+ virtual void setCertificateEntry(::java::lang::String *, ::java::security::cert::Certificate *);
+ virtual void deleteEntry(::java::lang::String *);
+ virtual ::java::util::Enumeration * aliases();
+ virtual jboolean containsAlias(::java::lang::String *);
+ virtual jint size();
+ virtual jboolean isKeyEntry(::java::lang::String *);
+ virtual jboolean isCertificateEntry(::java::lang::String *);
+ virtual ::java::lang::String * getCertificateAlias(::java::security::cert::Certificate *);
+ virtual void store(::java::io::OutputStream *, JArray< jchar > *);
+ virtual void load(::java::io::InputStream *, JArray< jchar > *);
+private:
+ static ::java::lang::String * KEY_STORE;
+ ::java::security::KeyStoreSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keyStoreSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyStore__
diff --git a/gcc-4.8/libjava/java/security/KeyStoreException.h b/gcc-4.8/libjava/java/security/KeyStoreException.h
new file mode 100644
index 000000000..e056a68a7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyStoreException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyStoreException__
+#define __java_security_KeyStoreException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyStoreException;
+ }
+ }
+}
+
+class java::security::KeyStoreException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ KeyStoreException();
+ KeyStoreException(::java::lang::String *);
+ KeyStoreException(::java::lang::String *, ::java::lang::Throwable *);
+ KeyStoreException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -1119353179322377262LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyStoreException__
diff --git a/gcc-4.8/libjava/java/security/KeyStoreSpi.h b/gcc-4.8/libjava/java/security/KeyStoreSpi.h
new file mode 100644
index 000000000..054cea6f1
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/KeyStoreSpi.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_KeyStoreSpi__
+#define __java_security_KeyStoreSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Key;
+ class KeyStoreSpi;
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::KeyStoreSpi : public ::java::lang::Object
+{
+
+public:
+ KeyStoreSpi();
+ virtual ::java::security::Key * engineGetKey(::java::lang::String *, JArray< jchar > *) = 0;
+ virtual JArray< ::java::security::cert::Certificate * > * engineGetCertificateChain(::java::lang::String *) = 0;
+ virtual ::java::security::cert::Certificate * engineGetCertificate(::java::lang::String *) = 0;
+ virtual ::java::util::Date * engineGetCreationDate(::java::lang::String *) = 0;
+ virtual void engineSetKeyEntry(::java::lang::String *, ::java::security::Key *, JArray< jchar > *, JArray< ::java::security::cert::Certificate * > *) = 0;
+ virtual void engineSetKeyEntry(::java::lang::String *, JArray< jbyte > *, JArray< ::java::security::cert::Certificate * > *) = 0;
+ virtual void engineSetCertificateEntry(::java::lang::String *, ::java::security::cert::Certificate *) = 0;
+ virtual void engineDeleteEntry(::java::lang::String *) = 0;
+ virtual ::java::util::Enumeration * engineAliases() = 0;
+ virtual jboolean engineContainsAlias(::java::lang::String *) = 0;
+ virtual jint engineSize() = 0;
+ virtual jboolean engineIsKeyEntry(::java::lang::String *) = 0;
+ virtual jboolean engineIsCertificateEntry(::java::lang::String *) = 0;
+ virtual ::java::lang::String * engineGetCertificateAlias(::java::security::cert::Certificate *) = 0;
+ virtual void engineStore(::java::io::OutputStream *, JArray< jchar > *) = 0;
+ virtual void engineLoad(::java::io::InputStream *, JArray< jchar > *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_KeyStoreSpi__
diff --git a/gcc-4.8/libjava/java/security/MessageDigest.h b/gcc-4.8/libjava/java/security/MessageDigest.h
new file mode 100644
index 000000000..5cd6cf3b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/MessageDigest.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_MessageDigest__
+#define __java_security_MessageDigest__
+
+#pragma interface
+
+#include <java/security/MessageDigestSpi.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ namespace security
+ {
+ class MessageDigest;
+ class Provider;
+ }
+ }
+}
+
+class java::security::MessageDigest : public ::java::security::MessageDigestSpi
+{
+
+public: // actually protected
+ MessageDigest(::java::lang::String *);
+public:
+ static ::java::security::MessageDigest * getInstance(::java::lang::String *);
+ static ::java::security::MessageDigest * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::MessageDigest * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual void update(jbyte);
+ virtual void update(JArray< jbyte > *, jint, jint);
+ virtual void update(JArray< jbyte > *);
+ virtual void update(::java::nio::ByteBuffer *);
+ virtual JArray< jbyte > * digest();
+ virtual jint digest(JArray< jbyte > *, jint, jint);
+ virtual JArray< jbyte > * digest(JArray< jbyte > *);
+ virtual ::java::lang::String * toString();
+ static jboolean isEqual(JArray< jbyte > *, JArray< jbyte > *);
+ virtual void reset();
+ virtual ::java::lang::String * getAlgorithm();
+ virtual jint getDigestLength();
+ virtual ::java::lang::Object * clone();
+private:
+ ::java::lang::String * digestToString();
+ static ::java::lang::String * MESSAGE_DIGEST;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::security::MessageDigestSpi)))) algorithm;
+public: // actually package-private
+ ::java::security::Provider * provider;
+private:
+ JArray< jbyte > * lastDigest;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_MessageDigest__
diff --git a/gcc-4.8/libjava/java/security/MessageDigestSpi.h b/gcc-4.8/libjava/java/security/MessageDigestSpi.h
new file mode 100644
index 000000000..fea06bf49
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/MessageDigestSpi.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_MessageDigestSpi__
+#define __java_security_MessageDigestSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ namespace security
+ {
+ class MessageDigestSpi;
+ }
+ }
+}
+
+class java::security::MessageDigestSpi : public ::java::lang::Object
+{
+
+public:
+ MessageDigestSpi();
+public: // actually protected
+ virtual jint engineGetDigestLength();
+ virtual void engineUpdate(jbyte) = 0;
+ virtual void engineUpdate(JArray< jbyte > *, jint, jint) = 0;
+ virtual void engineUpdate(::java::nio::ByteBuffer *);
+ virtual JArray< jbyte > * engineDigest() = 0;
+ virtual jint engineDigest(JArray< jbyte > *, jint, jint);
+ virtual void engineReset() = 0;
+public:
+ virtual ::java::lang::Object * clone();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_MessageDigestSpi__
diff --git a/gcc-4.8/libjava/java/security/NoSuchAlgorithmException.h b/gcc-4.8/libjava/java/security/NoSuchAlgorithmException.h
new file mode 100644
index 000000000..413821e72
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/NoSuchAlgorithmException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_NoSuchAlgorithmException__
+#define __java_security_NoSuchAlgorithmException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class NoSuchAlgorithmException;
+ }
+ }
+}
+
+class java::security::NoSuchAlgorithmException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ NoSuchAlgorithmException();
+ NoSuchAlgorithmException(::java::lang::String *);
+ NoSuchAlgorithmException(::java::lang::String *, ::java::lang::Throwable *);
+ NoSuchAlgorithmException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -7443947487218346562LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_NoSuchAlgorithmException__
diff --git a/gcc-4.8/libjava/java/security/NoSuchProviderException.h b/gcc-4.8/libjava/java/security/NoSuchProviderException.h
new file mode 100644
index 000000000..16878c337
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/NoSuchProviderException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_NoSuchProviderException__
+#define __java_security_NoSuchProviderException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class NoSuchProviderException;
+ }
+ }
+}
+
+class java::security::NoSuchProviderException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ NoSuchProviderException();
+ NoSuchProviderException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8488111756688534474LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_NoSuchProviderException__
diff --git a/gcc-4.8/libjava/java/security/Permission.h b/gcc-4.8/libjava/java/security/Permission.h
new file mode 100644
index 000000000..c565f2b58
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Permission.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Permission__
+#define __java_security_Permission__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::security::Permission : public ::java::lang::Object
+{
+
+public:
+ Permission(::java::lang::String *);
+ virtual void checkGuard(::java::lang::Object *);
+ virtual jboolean implies(::java::security::Permission *) = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual jint hashCode() = 0;
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::String * getActions() = 0;
+ virtual ::java::security::PermissionCollection * newPermissionCollection();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -5636570222231596674LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Permission__
diff --git a/gcc-4.8/libjava/java/security/PermissionCollection.h b/gcc-4.8/libjava/java/security/PermissionCollection.h
new file mode 100644
index 000000000..868c23e0e
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/PermissionCollection.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_PermissionCollection__
+#define __java_security_PermissionCollection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::security::PermissionCollection : public ::java::lang::Object
+{
+
+public:
+ PermissionCollection();
+ virtual void add(::java::security::Permission *) = 0;
+ virtual jboolean implies(::java::security::Permission *) = 0;
+ virtual ::java::util::Enumeration * elements() = 0;
+ virtual void setReadOnly();
+ virtual jboolean isReadOnly();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -6727011328946861783LL;
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) readOnly;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_PermissionCollection__
diff --git a/gcc-4.8/libjava/java/security/Permissions$1.h b/gcc-4.8/libjava/java/security/Permissions$1.h
new file mode 100644
index 000000000..22e0e412f
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Permissions$1.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Permissions$1__
+#define __java_security_Permissions$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permissions;
+ class Permissions$1;
+ }
+ }
+}
+
+class java::security::Permissions$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Permissions$1(::java::security::Permissions *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::lang::Object * nextElement();
+public: // actually package-private
+ ::java::util::Enumeration * __attribute__((aligned(__alignof__( ::java::lang::Object)))) main_enum;
+ ::java::util::Enumeration * sub_enum;
+ ::java::security::Permissions * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Permissions$1__
diff --git a/gcc-4.8/libjava/java/security/Permissions$PermissionsHash.h b/gcc-4.8/libjava/java/security/Permissions$PermissionsHash.h
new file mode 100644
index 000000000..870065a4b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Permissions$PermissionsHash.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Permissions$PermissionsHash__
+#define __java_security_Permissions$PermissionsHash__
+
+#pragma interface
+
+#include <java/security/PermissionCollection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class Permissions$PermissionsHash;
+ }
+ }
+}
+
+class java::security::Permissions$PermissionsHash : public ::java::security::PermissionCollection
+{
+
+ Permissions$PermissionsHash();
+public:
+ void add(::java::security::Permission *);
+ jboolean implies(::java::security::Permission *);
+ ::java::util::Enumeration * elements();
+public: // actually package-private
+ Permissions$PermissionsHash(::java::security::Permissions$PermissionsHash *);
+private:
+ static const jlong serialVersionUID = -8491988220802933440LL;
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) perms;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Permissions$PermissionsHash__
diff --git a/gcc-4.8/libjava/java/security/Permissions.h b/gcc-4.8/libjava/java/security/Permissions.h
new file mode 100644
index 000000000..5484fa980
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Permissions.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Permissions__
+#define __java_security_Permissions__
+
+#pragma interface
+
+#include <java/security/PermissionCollection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class PermissionCollection;
+ class Permissions;
+ }
+ }
+}
+
+class java::security::Permissions : public ::java::security::PermissionCollection
+{
+
+public:
+ Permissions();
+ void add(::java::security::Permission *);
+ jboolean implies(::java::security::Permission *);
+ ::java::util::Enumeration * elements();
+private:
+ static const jlong serialVersionUID = 4858622370623524688LL;
+ ::java::security::PermissionCollection * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) allPermission;
+public: // actually package-private
+ ::java::util::Hashtable * perms;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Permissions__
diff --git a/gcc-4.8/libjava/java/security/Policy.h b/gcc-4.8/libjava/java/security/Policy.h
new file mode 100644
index 000000000..116209544
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Policy.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Policy__
+#define __java_security_Policy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class CodeSource;
+ class Permission;
+ class PermissionCollection;
+ class Policy;
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::security::Policy : public ::java::lang::Object
+{
+
+public:
+ Policy();
+ static ::java::security::Policy * getPolicy();
+ static void setPolicy(::java::security::Policy *);
+private:
+ static void setup(::java::security::Policy *);
+public: // actually package-private
+ static ::java::security::Policy * getCurrentPolicy();
+ static jboolean isLoaded();
+public:
+ virtual ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *) = 0;
+ virtual ::java::security::PermissionCollection * getPermissions(::java::security::ProtectionDomain *);
+ virtual jboolean implies(::java::security::ProtectionDomain *, ::java::security::Permission *);
+ virtual void refresh() = 0;
+private:
+ static ::java::security::Policy * currentPolicy;
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pd2pc;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Policy__
diff --git a/gcc-4.8/libjava/java/security/Principal.h b/gcc-4.8/libjava/java/security/Principal.h
new file mode 100644
index 000000000..e3cfb3126
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Principal.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Principal__
+#define __java_security_Principal__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Principal;
+ }
+ }
+}
+
+class java::security::Principal : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual ::java::lang::String * toString() = 0;
+ virtual jint hashCode() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_Principal__
diff --git a/gcc-4.8/libjava/java/security/PrivateKey.h b/gcc-4.8/libjava/java/security/PrivateKey.h
new file mode 100644
index 000000000..2be7e6395
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/PrivateKey.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_PrivateKey__
+#define __java_security_PrivateKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivateKey;
+ }
+ }
+}
+
+class java::security::PrivateKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ static const jlong serialVersionUID = 6034044314589513430LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_PrivateKey__
diff --git a/gcc-4.8/libjava/java/security/PrivilegedAction.h b/gcc-4.8/libjava/java/security/PrivilegedAction.h
new file mode 100644
index 000000000..17481fd00
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/PrivilegedAction.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_PrivilegedAction__
+#define __java_security_PrivilegedAction__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivilegedAction;
+ }
+ }
+}
+
+class java::security::PrivilegedAction : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * run() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_PrivilegedAction__
diff --git a/gcc-4.8/libjava/java/security/PrivilegedActionException.h b/gcc-4.8/libjava/java/security/PrivilegedActionException.h
new file mode 100644
index 000000000..165a1c597
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/PrivilegedActionException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_PrivilegedActionException__
+#define __java_security_PrivilegedActionException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivilegedActionException;
+ }
+ }
+}
+
+class java::security::PrivilegedActionException : public ::java::lang::Exception
+{
+
+public:
+ PrivilegedActionException(::java::lang::Exception *);
+ virtual ::java::lang::Exception * getException();
+ virtual ::java::lang::Throwable * getCause();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 4724086851538908602LL;
+ ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) exception;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_PrivilegedActionException__
diff --git a/gcc-4.8/libjava/java/security/PrivilegedExceptionAction.h b/gcc-4.8/libjava/java/security/PrivilegedExceptionAction.h
new file mode 100644
index 000000000..bfb3046e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/PrivilegedExceptionAction.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_PrivilegedExceptionAction__
+#define __java_security_PrivilegedExceptionAction__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivilegedExceptionAction;
+ }
+ }
+}
+
+class java::security::PrivilegedExceptionAction : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * run() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_PrivilegedExceptionAction__
diff --git a/gcc-4.8/libjava/java/security/ProtectionDomain.h b/gcc-4.8/libjava/java/security/ProtectionDomain.h
new file mode 100644
index 000000000..bb2430be1
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/ProtectionDomain.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_ProtectionDomain__
+#define __java_security_ProtectionDomain__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class CodeSource;
+ class Permission;
+ class PermissionCollection;
+ class Principal;
+ class ProtectionDomain;
+ }
+ }
+}
+
+class java::security::ProtectionDomain : public ::java::lang::Object
+{
+
+public:
+ ProtectionDomain(::java::security::CodeSource *, ::java::security::PermissionCollection *);
+ ProtectionDomain(::java::security::CodeSource *, ::java::security::PermissionCollection *, ::java::lang::ClassLoader *, JArray< ::java::security::Principal * > *);
+private:
+ ProtectionDomain(::java::security::CodeSource *, ::java::security::PermissionCollection *, ::java::lang::ClassLoader *, JArray< ::java::security::Principal * > *, jboolean);
+public:
+ virtual ::java::security::CodeSource * getCodeSource();
+ virtual ::java::lang::ClassLoader * getClassLoader();
+ virtual JArray< ::java::security::Principal * > * getPrincipals();
+ virtual ::java::security::PermissionCollection * getPermissions();
+ virtual jboolean implies(::java::security::Permission *);
+ virtual ::java::lang::String * toString();
+private:
+ ::java::security::CodeSource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) code_source;
+ ::java::security::PermissionCollection * perms;
+ ::java::lang::ClassLoader * classloader;
+ JArray< ::java::security::Principal * > * principals;
+ jboolean staticBinding;
+ jboolean hasAllPermissions;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_ProtectionDomain__
diff --git a/gcc-4.8/libjava/java/security/Provider.h b/gcc-4.8/libjava/java/security/Provider.h
new file mode 100644
index 000000000..5954805f8
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Provider.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Provider__
+#define __java_security_Provider__
+
+#pragma interface
+
+#include <java/util/Properties.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ }
+ }
+}
+
+class java::security::Provider : public ::java::util::Properties
+{
+
+public: // actually protected
+ Provider(::java::lang::String *, jdouble, ::java::lang::String *);
+public:
+ virtual ::java::lang::String * getName();
+ virtual jdouble getVersion();
+ virtual ::java::lang::String * getInfo();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual void clear();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::lang::Object * toCanonicalKey(::java::lang::Object *);
+ static const jlong serialVersionUID = -4298000515446427739LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::Properties)))) info;
+ ::java::lang::String * name;
+ jdouble version;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Provider__
diff --git a/gcc-4.8/libjava/java/security/ProviderException.h b/gcc-4.8/libjava/java/security/ProviderException.h
new file mode 100644
index 000000000..843a100ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/ProviderException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_ProviderException__
+#define __java_security_ProviderException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class ProviderException;
+ }
+ }
+}
+
+class java::security::ProviderException : public ::java::lang::RuntimeException
+{
+
+public:
+ ProviderException();
+ ProviderException(::java::lang::String *);
+ ProviderException(::java::lang::String *, ::java::lang::Throwable *);
+ ProviderException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 5256023526693665674LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_ProviderException__
diff --git a/gcc-4.8/libjava/java/security/PublicKey.h b/gcc-4.8/libjava/java/security/PublicKey.h
new file mode 100644
index 000000000..6a2a72bd8
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/PublicKey.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_PublicKey__
+#define __java_security_PublicKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PublicKey;
+ }
+ }
+}
+
+class java::security::PublicKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ static const jlong serialVersionUID = 7187392471159151072LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_PublicKey__
diff --git a/gcc-4.8/libjava/java/security/SecureClassLoader.h b/gcc-4.8/libjava/java/security/SecureClassLoader.h
new file mode 100644
index 000000000..c8431a7bc
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SecureClassLoader.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SecureClassLoader__
+#define __java_security_SecureClassLoader__
+
+#pragma interface
+
+#include <java/lang/ClassLoader.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ namespace security
+ {
+ class CodeSource;
+ class PermissionCollection;
+ class ProtectionDomain;
+ class SecureClassLoader;
+ }
+ }
+}
+
+class java::security::SecureClassLoader : public ::java::lang::ClassLoader
+{
+
+public: // actually protected
+ SecureClassLoader(::java::lang::ClassLoader *);
+ SecureClassLoader();
+ virtual ::java::lang::Class * defineClass(::java::lang::String *, JArray< jbyte > *, jint, jint, ::java::security::CodeSource *);
+ virtual ::java::lang::Class * defineClass(::java::lang::String *, ::java::nio::ByteBuffer *, ::java::security::CodeSource *);
+private:
+ ::java::security::ProtectionDomain * getProtectionDomain(::java::security::CodeSource *);
+public: // actually protected
+ virtual ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *);
+private:
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::ClassLoader)))) protectionDomainCache;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SecureClassLoader__
diff --git a/gcc-4.8/libjava/java/security/SecureRandom.h b/gcc-4.8/libjava/java/security/SecureRandom.h
new file mode 100644
index 000000000..b54318c44
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SecureRandom.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SecureRandom__
+#define __java_security_SecureRandom__
+
+#pragma interface
+
+#include <java/util/Random.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ class SecureRandom;
+ class SecureRandomSpi;
+ }
+ }
+}
+
+class java::security::SecureRandom : public ::java::util::Random
+{
+
+public:
+ SecureRandom();
+ SecureRandom(JArray< jbyte > *);
+public: // actually protected
+ SecureRandom(::java::security::SecureRandomSpi *, ::java::security::Provider *);
+private:
+ SecureRandom(::java::security::SecureRandomSpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ static ::java::security::SecureRandom * getInstance(::java::lang::String *);
+ static ::java::security::SecureRandom * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::SecureRandom * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::lang::String * getAlgorithm();
+ virtual void setSeed(JArray< jbyte > *);
+ virtual void setSeed(jlong);
+ virtual void nextBytes(JArray< jbyte > *);
+public: // actually protected
+ virtual jint next(jint);
+public:
+ static JArray< jbyte > * getSeed(jint);
+ virtual JArray< jbyte > * generateSeed(jint);
+private:
+ static ::java::lang::String * SECURE_RANDOM;
+ static const jlong serialVersionUID = 4940670005562187LL;
+public: // actually package-private
+ jlong __attribute__((aligned(__alignof__( ::java::util::Random)))) counter;
+ ::java::security::Provider * provider;
+ JArray< jbyte > * randomBytes;
+ jint randomBytesUsed;
+ ::java::security::SecureRandomSpi * secureRandomSpi;
+ JArray< jbyte > * state;
+private:
+ ::java::lang::String * algorithm;
+ jboolean isSeeded;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SecureRandom__
diff --git a/gcc-4.8/libjava/java/security/SecureRandomSpi.h b/gcc-4.8/libjava/java/security/SecureRandomSpi.h
new file mode 100644
index 000000000..8b2b6d7d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SecureRandomSpi.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SecureRandomSpi__
+#define __java_security_SecureRandomSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class SecureRandomSpi;
+ }
+ }
+}
+
+class java::security::SecureRandomSpi : public ::java::lang::Object
+{
+
+public:
+ SecureRandomSpi();
+public: // actually protected
+ virtual void engineSetSeed(JArray< jbyte > *) = 0;
+ virtual void engineNextBytes(JArray< jbyte > *) = 0;
+ virtual JArray< jbyte > * engineGenerateSeed(jint) = 0;
+private:
+ static const jlong serialVersionUID = -2991854161009191830LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SecureRandomSpi__
diff --git a/gcc-4.8/libjava/java/security/Security.h b/gcc-4.8/libjava/java/security/Security.h
new file mode 100644
index 000000000..201c9957d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Security.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Security__
+#define __java_security_Security__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ class Security;
+ }
+ }
+}
+
+class java::security::Security : public ::java::lang::Object
+{
+
+ Security();
+ static jboolean loadProviders(::java::lang::String *, ::java::lang::String *);
+public:
+ static ::java::lang::String * getAlgorithmProperty(::java::lang::String *, ::java::lang::String *);
+ static jint insertProviderAt(::java::security::Provider *, jint);
+ static jint addProvider(::java::security::Provider *);
+ static void removeProvider(::java::lang::String *);
+ static JArray< ::java::security::Provider * > * getProviders();
+ static ::java::security::Provider * getProvider(::java::lang::String *);
+ static ::java::lang::String * getProperty(::java::lang::String *);
+ static void setProperty(::java::lang::String *, ::java::lang::String *);
+ static ::java::util::Set * getAlgorithms(::java::lang::String *);
+ static JArray< ::java::security::Provider * > * getProviders(::java::lang::String *);
+ static JArray< ::java::security::Provider * > * getProviders(::java::util::Map *);
+private:
+ static void selectProviders(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::LinkedHashSet *, ::java::util::LinkedHashSet *);
+ static jboolean provides(::java::security::Provider *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::String * ALG_ALIAS;
+ static ::java::util::Vector * providers;
+ static ::java::util::Properties * secprops;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Security__
diff --git a/gcc-4.8/libjava/java/security/SecurityPermission.h b/gcc-4.8/libjava/java/security/SecurityPermission.h
new file mode 100644
index 000000000..c28bdc630
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SecurityPermission.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SecurityPermission__
+#define __java_security_SecurityPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class SecurityPermission;
+ }
+ }
+}
+
+class java::security::SecurityPermission : public ::java::security::BasicPermission
+{
+
+public:
+ SecurityPermission(::java::lang::String *);
+ SecurityPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 5236109936224050470LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SecurityPermission__
diff --git a/gcc-4.8/libjava/java/security/Signature.h b/gcc-4.8/libjava/java/security/Signature.h
new file mode 100644
index 000000000..43f4d5233
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Signature.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Signature__
+#define __java_security_Signature__
+
+#pragma interface
+
+#include <java/security/SignatureSpi.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ namespace security
+ {
+ class AlgorithmParameters;
+ class PrivateKey;
+ class Provider;
+ class PublicKey;
+ class SecureRandom;
+ class Signature;
+ namespace cert
+ {
+ class Certificate;
+ }
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::Signature : public ::java::security::SignatureSpi
+{
+
+public: // actually protected
+ Signature(::java::lang::String *);
+public:
+ static ::java::security::Signature * getInstance(::java::lang::String *);
+ static ::java::security::Signature * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::Signature * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual void initVerify(::java::security::PublicKey *);
+ virtual void initVerify(::java::security::cert::Certificate *);
+ virtual void initSign(::java::security::PrivateKey *);
+ virtual void initSign(::java::security::PrivateKey *, ::java::security::SecureRandom *);
+ virtual JArray< jbyte > * sign();
+ virtual jint sign(JArray< jbyte > *, jint, jint);
+ virtual jboolean verify(JArray< jbyte > *);
+ virtual jboolean verify(JArray< jbyte > *, jint, jint);
+ virtual void update(jbyte);
+ virtual void update(JArray< jbyte > *);
+ virtual void update(JArray< jbyte > *, jint, jint);
+ virtual void update(::java::nio::ByteBuffer *);
+ virtual ::java::lang::String * getAlgorithm();
+ virtual ::java::lang::String * toString();
+ virtual void setParameter(::java::lang::String *, ::java::lang::Object *);
+ virtual void setParameter(::java::security::spec::AlgorithmParameterSpec *);
+ virtual ::java::security::AlgorithmParameters * getParameters();
+ virtual ::java::lang::Object * getParameter(::java::lang::String *);
+ virtual ::java::lang::Object * clone();
+private:
+ static ::java::lang::String * SIGNATURE;
+public: // actually protected
+ static const jint UNINITIALIZED = 0;
+ static const jint SIGN = 2;
+ static const jint VERIFY = 3;
+ jint __attribute__((aligned(__alignof__( ::java::security::SignatureSpi)))) state;
+private:
+ ::java::lang::String * algorithm;
+public: // actually package-private
+ ::java::security::Provider * provider;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Signature__
diff --git a/gcc-4.8/libjava/java/security/SignatureException.h b/gcc-4.8/libjava/java/security/SignatureException.h
new file mode 100644
index 000000000..32e3d7562
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SignatureException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SignatureException__
+#define __java_security_SignatureException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class SignatureException;
+ }
+ }
+}
+
+class java::security::SignatureException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ SignatureException();
+ SignatureException(::java::lang::String *);
+ SignatureException(::java::lang::String *, ::java::lang::Throwable *);
+ SignatureException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 7509989324975124438LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SignatureException__
diff --git a/gcc-4.8/libjava/java/security/SignatureSpi.h b/gcc-4.8/libjava/java/security/SignatureSpi.h
new file mode 100644
index 000000000..7e2406e5a
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SignatureSpi.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SignatureSpi__
+#define __java_security_SignatureSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ namespace security
+ {
+ class AlgorithmParameters;
+ class PrivateKey;
+ class PublicKey;
+ class SecureRandom;
+ class SignatureSpi;
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::SignatureSpi : public ::java::lang::Object
+{
+
+public:
+ SignatureSpi();
+public: // actually protected
+ virtual void engineInitVerify(::java::security::PublicKey *) = 0;
+ virtual void engineInitSign(::java::security::PrivateKey *) = 0;
+ virtual void engineInitSign(::java::security::PrivateKey *, ::java::security::SecureRandom *);
+ virtual void engineUpdate(jbyte) = 0;
+ virtual void engineUpdate(JArray< jbyte > *, jint, jint) = 0;
+ virtual void engineUpdate(::java::nio::ByteBuffer *);
+ virtual JArray< jbyte > * engineSign() = 0;
+ virtual jint engineSign(JArray< jbyte > *, jint, jint);
+ virtual jboolean engineVerify(JArray< jbyte > *) = 0;
+ virtual jboolean engineVerify(JArray< jbyte > *, jint, jint);
+ virtual void engineSetParameter(::java::lang::String *, ::java::lang::Object *) = 0;
+ virtual void engineSetParameter(::java::security::spec::AlgorithmParameterSpec *);
+ virtual ::java::security::AlgorithmParameters * engineGetParameters();
+ virtual ::java::lang::Object * engineGetParameter(::java::lang::String *) = 0;
+public:
+ virtual ::java::lang::Object * clone();
+public: // actually protected
+ ::java::security::SecureRandom * __attribute__((aligned(__alignof__( ::java::lang::Object)))) appRandom;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SignatureSpi__
diff --git a/gcc-4.8/libjava/java/security/SignedObject.h b/gcc-4.8/libjava/java/security/SignedObject.h
new file mode 100644
index 000000000..430053721
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/SignedObject.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_SignedObject__
+#define __java_security_SignedObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivateKey;
+ class PublicKey;
+ class Signature;
+ class SignedObject;
+ }
+ }
+}
+
+class java::security::SignedObject : public ::java::lang::Object
+{
+
+public:
+ SignedObject(::java::io::Serializable *, ::java::security::PrivateKey *, ::java::security::Signature *);
+ ::java::lang::Object * getObject();
+ JArray< jbyte > * getSignature();
+ ::java::lang::String * getAlgorithm();
+ jboolean verify(::java::security::PublicKey *, ::java::security::Signature *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 720502720485447167LL;
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) content;
+ JArray< jbyte > * signature;
+ ::java::lang::String * thealgorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_SignedObject__
diff --git a/gcc-4.8/libjava/java/security/Signer.h b/gcc-4.8/libjava/java/security/Signer.h
new file mode 100644
index 000000000..080bc8a0b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/Signer.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_Signer__
+#define __java_security_Signer__
+
+#pragma interface
+
+#include <java/security/Identity.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class IdentityScope;
+ class KeyPair;
+ class PrivateKey;
+ class Signer;
+ }
+ }
+}
+
+class java::security::Signer : public ::java::security::Identity
+{
+
+public: // actually protected
+ Signer();
+public:
+ Signer(::java::lang::String *);
+ Signer(::java::lang::String *, ::java::security::IdentityScope *);
+ virtual ::java::security::PrivateKey * getPrivateKey();
+ virtual void setKeyPair(::java::security::KeyPair *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -1763464102261361480LL;
+ ::java::security::PrivateKey * __attribute__((aligned(__alignof__( ::java::security::Identity)))) privateKey;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_Signer__
diff --git a/gcc-4.8/libjava/java/security/UnrecoverableKeyException.h b/gcc-4.8/libjava/java/security/UnrecoverableKeyException.h
new file mode 100644
index 000000000..51c0c8a01
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/UnrecoverableKeyException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_UnrecoverableKeyException__
+#define __java_security_UnrecoverableKeyException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class UnrecoverableKeyException;
+ }
+ }
+}
+
+class java::security::UnrecoverableKeyException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ UnrecoverableKeyException();
+ UnrecoverableKeyException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7275063078190151277LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_UnrecoverableKeyException__
diff --git a/gcc-4.8/libjava/java/security/UnresolvedPermission.h b/gcc-4.8/libjava/java/security/UnresolvedPermission.h
new file mode 100644
index 000000000..ceebc5b72
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/UnresolvedPermission.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_UnresolvedPermission__
+#define __java_security_UnresolvedPermission__
+
+#pragma interface
+
+#include <java/security/Permission.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class PermissionCollection;
+ class UnresolvedPermission;
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::UnresolvedPermission : public ::java::security::Permission
+{
+
+public:
+ UnresolvedPermission(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::security::cert::Certificate * > *);
+ jboolean implies(::java::security::Permission *);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * getActions();
+ ::java::lang::String * toString();
+ ::java::security::PermissionCollection * newPermissionCollection();
+ ::java::lang::String * getUnresolvedType();
+ ::java::lang::String * getUnresolvedName();
+ ::java::lang::String * getUnresolvedActions();
+ JArray< ::java::security::cert::Certificate * > * getUnresolvedCerts();
+private:
+ static const jlong serialVersionUID = -4821973115467008846LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::security::Permission)))) actions;
+ JArray< ::java::security::cert::Certificate * > * certs;
+public: // actually package-private
+ ::java::lang::String * type;
+private:
+ ::java::lang::String * name;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_UnresolvedPermission__
diff --git a/gcc-4.8/libjava/java/security/UnresolvedPermissionCollection$1.h b/gcc-4.8/libjava/java/security/UnresolvedPermissionCollection$1.h
new file mode 100644
index 000000000..2e7537858
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/UnresolvedPermissionCollection$1.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_UnresolvedPermissionCollection$1__
+#define __java_security_UnresolvedPermissionCollection$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class UnresolvedPermissionCollection;
+ class UnresolvedPermissionCollection$1;
+ }
+ }
+}
+
+class java::security::UnresolvedPermissionCollection$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ UnresolvedPermissionCollection$1(::java::security::UnresolvedPermissionCollection *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::lang::Object * nextElement();
+public: // actually package-private
+ ::java::util::Enumeration * __attribute__((aligned(__alignof__( ::java::lang::Object)))) main_enum;
+ ::java::util::Enumeration * sub_enum;
+ ::java::security::UnresolvedPermissionCollection * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_UnresolvedPermissionCollection$1__
diff --git a/gcc-4.8/libjava/java/security/UnresolvedPermissionCollection.h b/gcc-4.8/libjava/java/security/UnresolvedPermissionCollection.h
new file mode 100644
index 000000000..2d31d0e6c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/UnresolvedPermissionCollection.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_UnresolvedPermissionCollection__
+#define __java_security_UnresolvedPermissionCollection__
+
+#pragma interface
+
+#include <java/security/PermissionCollection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class UnresolvedPermissionCollection;
+ }
+ }
+}
+
+class java::security::UnresolvedPermissionCollection : public ::java::security::PermissionCollection
+{
+
+public: // actually package-private
+ UnresolvedPermissionCollection();
+public:
+ virtual void add(::java::security::Permission *);
+ virtual jboolean implies(::java::security::Permission *);
+ virtual ::java::util::Enumeration * elements();
+private:
+ static const jlong serialVersionUID = -7176153071733132400LL;
+public: // actually package-private
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) permissions;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_UnresolvedPermissionCollection__
diff --git a/gcc-4.8/libjava/java/security/VMAccessControlState.h b/gcc-4.8/libjava/java/security/VMAccessControlState.h
new file mode 100644
index 000000000..5c71033ca
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/VMAccessControlState.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_VMAccessControlState__
+#define __java_security_VMAccessControlState__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class VMAccessControlState;
+ }
+ }
+}
+
+class java::security::VMAccessControlState : public ::java::lang::Object
+{
+
+ VMAccessControlState();
+public: // actually package-private
+ static ::java::security::VMAccessControlState * getThreadState();
+ virtual jboolean isInGetContext();
+ virtual void setInGetContext(jboolean);
+ virtual ::java::util::LinkedList * getContexts();
+private:
+ ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) contexts;
+ jboolean inGetContext;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_VMAccessControlState__
diff --git a/gcc-4.8/libjava/java/security/VMAccessControlState.java b/gcc-4.8/libjava/java/security/VMAccessControlState.java
new file mode 100644
index 000000000..360f08a5b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/VMAccessControlState.java
@@ -0,0 +1,103 @@
+/* VMAccessControlState.java -- per-thread state for the access controller.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.security;
+
+import java.util.LinkedList;
+
+class VMAccessControlState
+{
+ /**
+ * A list of {@link AccessControlContext} objects (which can be
+ * null) for each call to {@link AccessController#doPrivileged()} in
+ * the thread's call stack.
+ */
+ private LinkedList contexts = new LinkedList();
+
+ /**
+ * A flag indicating that we are within a call to {@link
+ * VMAccessController#getContext()}.
+ */
+ private boolean inGetContext = false;
+
+ /**
+ * Not directly instantiable: use getThreadState() instead.
+ */
+ private VMAccessControlState() {}
+
+ /**
+ * Return an object representing the access control state of this
+ * thread.
+ *
+ * @return The access control state of this thread, or
+ * <code>null</code> if the VM is not initialized to the point of
+ * being able to return this.
+ */
+ static native VMAccessControlState getThreadState();
+
+ /**
+ * Indicate whether this thread is within a call to {@link
+ * VMAccessController#getContext()}.
+ *
+ * @return <code>true</code> if this thread is within a call to
+ * {@link VMAccessController#getContext()}.
+ */
+ boolean isInGetContext()
+ {
+ return inGetContext;
+ }
+
+ /**
+ * Specify whether this thread is within a call to {@link
+ * VMAccessController#getContext()}.
+ */
+ void setInGetContext(boolean inGetContext)
+ {
+ this.inGetContext = inGetContext;
+ }
+
+ /**
+ * Return a list of {@link AccessControlContext} objects (which can
+ * be null) for each call to {@link AccessController#doPrivileged()}
+ * in the thread's call stack.
+ *
+ * @return a list of {@link AccessControlContext} objects.
+ */
+ LinkedList getContexts()
+ {
+ return contexts;
+ }
+}
diff --git a/gcc-4.8/libjava/java/security/VMAccessController.h b/gcc-4.8/libjava/java/security/VMAccessController.h
new file mode 100644
index 000000000..20cd9ce73
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/VMAccessController.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_VMAccessController__
+#define __java_security_VMAccessController__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlContext;
+ class VMAccessController;
+ }
+ }
+}
+
+class java::security::VMAccessController : public ::java::lang::Object
+{
+
+ static void debug(::java::lang::String *);
+ VMAccessController();
+public: // actually package-private
+ static void pushContext(::java::security::AccessControlContext *);
+ static void popContext();
+ static ::java::security::AccessControlContext * getContext();
+private:
+ static JArray< ::java::lang::Object * > * getStack();
+ static ::java::security::AccessControlContext * DEFAULT_CONTEXT;
+ static jboolean DEBUG;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_VMAccessController__
diff --git a/gcc-4.8/libjava/java/security/VMAccessController.java b/gcc-4.8/libjava/java/security/VMAccessController.java
new file mode 100644
index 000000000..66ada1952
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/VMAccessController.java
@@ -0,0 +1,257 @@
+/* VMAccessController.java -- VM-specific access controller methods.
+ Copyright (C) 2004, 2005, 2006, 2010 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.security;
+
+import java.util.HashSet;
+import java.util.LinkedList;
+
+final class VMAccessController
+{
+
+ // Fields.
+ // -------------------------------------------------------------------------
+
+ /**
+ * And we return this all-permissive context to ensure that privileged
+ * methods called from getContext succeed.
+ */
+ private static final AccessControlContext DEFAULT_CONTEXT;
+ static
+ {
+ CodeSource source = new CodeSource(null, null);
+ Permissions permissions = new Permissions();
+ permissions.add(new AllPermission());
+ ProtectionDomain[] domain = new ProtectionDomain[] {
+ new ProtectionDomain(source, permissions, null, null)
+ };
+ DEFAULT_CONTEXT = new AccessControlContext(domain);
+ }
+
+ private static final boolean DEBUG = gnu.classpath.Configuration.DEBUG;
+ private static void debug(String msg)
+ {
+ System.err.print(">>> VMAccessController: ");
+ System.err.println(msg);
+ }
+
+ // Constructors.
+ // -------------------------------------------------------------------------
+
+ private VMAccessController() { }
+
+ // Class methods.
+ // -------------------------------------------------------------------------
+
+ /**
+ * Relate a class (which should be an instance of {@link PrivilegedAction}
+ * with an access control context. This method is used by {@link
+ * AccessController#doPrivileged(java.security.PrivilegedAction,java.security.AccessControlContext)}
+ * to set up the context that will be returned by {@link #getContext()}.
+ * This method relates the class to the current thread, so contexts
+ * pushed from one thread will not be available to another.
+ *
+ * @param acc The access control context.
+ */
+ static void pushContext (AccessControlContext acc)
+ {
+ // Can't really do anything while the VM is initializing.
+ VMAccessControlState state = VMAccessControlState.getThreadState();
+ if (state == null)
+ return;
+
+ if (DEBUG)
+ debug("pushing " + acc);
+
+ LinkedList stack = state.getContexts();
+ stack.addFirst(acc);
+ }
+
+ /**
+ * Removes the relation of a class to an {@link AccessControlContext}.
+ * This method is used by {@link AccessController} when exiting from a
+ * call to {@link
+ * AccessController#doPrivileged(java.security.PrivilegedAction,java.security.AccessControlContext)}.
+ */
+ static void popContext()
+ {
+ // Can't really do anything while the VM is initializing.
+ VMAccessControlState state = VMAccessControlState.getThreadState();
+ if (state == null)
+ return;
+
+ if (DEBUG)
+ debug("popping context");
+
+ // Stack should never be null, nor should it be empty, if this method
+ // and its counterpart has been called properly.
+ LinkedList stack = state.getContexts();
+ if (!stack.isEmpty())
+ {
+ stack.removeFirst();
+ }
+ else if (DEBUG)
+ {
+ debug("no stack during pop?????");
+ }
+ }
+
+ /**
+ * Examine the method stack of the currently running thread, and create
+ * an {@link AccessControlContext} filled in with the appropriate {@link
+ * ProtectionDomain} objects given this stack.
+ *
+ * @return The context.
+ */
+ static AccessControlContext getContext()
+ {
+ // If the VM is initializing return the all-permissive context
+ // so that any security checks succeed.
+ VMAccessControlState state = VMAccessControlState.getThreadState();
+ if (state == null)
+ return DEFAULT_CONTEXT;
+
+ // If we are already in getContext, but called a method that needs
+ // a permission check, return the all-permissive context so methods
+ // called from here succeed.
+ //
+ // XXX is this necessary? We should verify if there are any calls in
+ // the stack below this method that require permission checks.
+ if (state.isInGetContext())
+ {
+ if (DEBUG)
+ debug("already in getContext");
+ return DEFAULT_CONTEXT;
+ }
+
+ state.setInGetContext(true);
+
+ Object[] stack = getStack();
+ Class[] classes = (Class[]) stack[0];
+ boolean privileged = ((Boolean) stack[1]).booleanValue();
+
+ if (DEBUG)
+ debug("got trace of length " + classes.length);
+
+ HashSet domains = new HashSet();
+ HashSet seenDomains = new HashSet();
+ AccessControlContext context = null;
+
+ // We walk down the stack, adding each ProtectionDomain for each
+ // class in the call stack. If we reach a call to doPrivileged,
+ // we don't add any more stack frames. We skip the first three stack
+ // frames, since they comprise the calls to getStack, getContext,
+ // and AccessController.getContext.
+ for (int i = 3; i < classes.length; i++)
+ {
+ Class clazz = classes[i];
+ ClassLoader loader = clazz.getClassLoader();
+
+ if (DEBUG)
+ {
+ debug("checking " + clazz);
+ // subject to getClassLoader RuntimePermission
+ debug("loader = " + loader);
+ }
+
+ if (privileged && i == classes.length - 2)
+ {
+ // If there was a call to doPrivileged with a supplied context,
+ // return that context. If using JAAS doAs*, it should be
+ // a context with a SubjectDomainCombiner
+ LinkedList l = state.getContexts();
+ if (!l.isEmpty())
+ context = (AccessControlContext) l.getFirst();
+ }
+
+ // subject to getProtectionDomain RuntimePermission
+ ProtectionDomain domain = clazz.getProtectionDomain();
+
+ if (domain == null)
+ continue;
+ if (seenDomains.contains(domain))
+ continue;
+ seenDomains.add(domain);
+
+ // Create a static snapshot of this domain, which may change over time
+ // if the current policy changes.
+ domains.add(new ProtectionDomain(domain.getCodeSource(),
+ domain.getPermissions(),
+ loader, null));
+ }
+
+ if (DEBUG)
+ debug("created domains: " + domains);
+
+ ProtectionDomain[] result = (ProtectionDomain[])
+ domains.toArray(new ProtectionDomain[domains.size()]);
+
+ if (context != null)
+ {
+ DomainCombiner dc = context.getDomainCombiner ();
+ // If the supplied context had no explicit DomainCombiner, use
+ // our private version, which computes the intersection of the
+ // context's domains with the derived set.
+ if (dc == null)
+ context = new AccessControlContext
+ (IntersectingDomainCombiner.SINGLETON.combine
+ (result, context.getProtectionDomains ()));
+ // Use the supplied DomainCombiner. This should be secure,
+ // because only trusted code may create an
+ // AccessControlContext with a custom DomainCombiner.
+ else
+ context = new AccessControlContext (result, context, dc);
+ }
+ // No context was supplied. Return the derived one.
+ else
+ context = new AccessControlContext (result);
+
+ state.setInGetContext(false);
+ return context;
+ }
+
+ /**
+ * Returns a snapshot of the current call stack as a two-element
+ * array. The first element is an array of classes in the call
+ * stack, and the second element is a boolean value indicating
+ * whether the trace stopped early because a call to doPrivileged
+ * was encountered. If this boolean value is true then the call to
+ * doPrivileged will be the second-last frame in the returned trace.
+ *
+ * @return A snapshot of the current call stack.
+ */
+ private static native Object[] getStack();
+}
diff --git a/gcc-4.8/libjava/java/security/acl/Acl.h b/gcc-4.8/libjava/java/security/acl/Acl.h
new file mode 100644
index 000000000..82c8d6de7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/Acl.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_Acl__
+#define __java_security_acl_Acl__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Principal;
+ namespace acl
+ {
+ class Acl;
+ class AclEntry;
+ class Permission;
+ }
+ }
+ }
+}
+
+class java::security::acl::Acl : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getName() = 0;
+ virtual void setName(::java::security::Principal *, ::java::lang::String *) = 0;
+ virtual jboolean addEntry(::java::security::Principal *, ::java::security::acl::AclEntry *) = 0;
+ virtual jboolean removeEntry(::java::security::Principal *, ::java::security::acl::AclEntry *) = 0;
+ virtual ::java::util::Enumeration * entries() = 0;
+ virtual jboolean checkPermission(::java::security::Principal *, ::java::security::acl::Permission *) = 0;
+ virtual ::java::util::Enumeration * getPermissions(::java::security::Principal *) = 0;
+ virtual ::java::lang::String * toString() = 0;
+ virtual jboolean addOwner(::java::security::Principal *, ::java::security::Principal *) = 0;
+ virtual jboolean deleteOwner(::java::security::Principal *, ::java::security::Principal *) = 0;
+ virtual jboolean isOwner(::java::security::Principal *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_acl_Acl__
diff --git a/gcc-4.8/libjava/java/security/acl/AclEntry.h b/gcc-4.8/libjava/java/security/acl/AclEntry.h
new file mode 100644
index 000000000..3b098b0f8
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/AclEntry.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_AclEntry__
+#define __java_security_acl_AclEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Principal;
+ namespace acl
+ {
+ class AclEntry;
+ class Permission;
+ }
+ }
+ }
+}
+
+class java::security::acl::AclEntry : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::security::Principal * getPrincipal() = 0;
+ virtual jboolean setPrincipal(::java::security::Principal *) = 0;
+ virtual void setNegativePermissions() = 0;
+ virtual jboolean isNegative() = 0;
+ virtual jboolean addPermission(::java::security::acl::Permission *) = 0;
+ virtual jboolean removePermission(::java::security::acl::Permission *) = 0;
+ virtual jboolean checkPermission(::java::security::acl::Permission *) = 0;
+ virtual ::java::util::Enumeration * permissions() = 0;
+ virtual ::java::lang::String * toString() = 0;
+ virtual ::java::lang::Object * clone() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_acl_AclEntry__
diff --git a/gcc-4.8/libjava/java/security/acl/AclNotFoundException.h b/gcc-4.8/libjava/java/security/acl/AclNotFoundException.h
new file mode 100644
index 000000000..9daea6522
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/AclNotFoundException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_AclNotFoundException__
+#define __java_security_acl_AclNotFoundException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace acl
+ {
+ class AclNotFoundException;
+ }
+ }
+ }
+}
+
+class java::security::acl::AclNotFoundException : public ::java::lang::Exception
+{
+
+public:
+ AclNotFoundException();
+private:
+ static const jlong serialVersionUID = 5684295034092681791LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_acl_AclNotFoundException__
diff --git a/gcc-4.8/libjava/java/security/acl/Group.h b/gcc-4.8/libjava/java/security/acl/Group.h
new file mode 100644
index 000000000..780774d41
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/Group.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_Group__
+#define __java_security_acl_Group__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Principal;
+ namespace acl
+ {
+ class Group;
+ }
+ }
+ }
+}
+
+class java::security::acl::Group : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean addMember(::java::security::Principal *) = 0;
+ virtual jboolean removeMember(::java::security::Principal *) = 0;
+ virtual jboolean isMember(::java::security::Principal *) = 0;
+ virtual ::java::util::Enumeration * members() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_acl_Group__
diff --git a/gcc-4.8/libjava/java/security/acl/LastOwnerException.h b/gcc-4.8/libjava/java/security/acl/LastOwnerException.h
new file mode 100644
index 000000000..eb03366e0
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/LastOwnerException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_LastOwnerException__
+#define __java_security_acl_LastOwnerException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace acl
+ {
+ class LastOwnerException;
+ }
+ }
+ }
+}
+
+class java::security::acl::LastOwnerException : public ::java::lang::Exception
+{
+
+public:
+ LastOwnerException();
+private:
+ static const jlong serialVersionUID = -5141997548211140359LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_acl_LastOwnerException__
diff --git a/gcc-4.8/libjava/java/security/acl/NotOwnerException.h b/gcc-4.8/libjava/java/security/acl/NotOwnerException.h
new file mode 100644
index 000000000..627e4e57b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/NotOwnerException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_NotOwnerException__
+#define __java_security_acl_NotOwnerException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace acl
+ {
+ class NotOwnerException;
+ }
+ }
+ }
+}
+
+class java::security::acl::NotOwnerException : public ::java::lang::Exception
+{
+
+public:
+ NotOwnerException();
+private:
+ static const jlong serialVersionUID = -5555597911163362399LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_acl_NotOwnerException__
diff --git a/gcc-4.8/libjava/java/security/acl/Owner.h b/gcc-4.8/libjava/java/security/acl/Owner.h
new file mode 100644
index 000000000..b8bc09bf2
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/Owner.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_Owner__
+#define __java_security_acl_Owner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Principal;
+ namespace acl
+ {
+ class Owner;
+ }
+ }
+ }
+}
+
+class java::security::acl::Owner : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean addOwner(::java::security::Principal *, ::java::security::Principal *) = 0;
+ virtual jboolean deleteOwner(::java::security::Principal *, ::java::security::Principal *) = 0;
+ virtual jboolean isOwner(::java::security::Principal *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_acl_Owner__
diff --git a/gcc-4.8/libjava/java/security/acl/Permission.h b/gcc-4.8/libjava/java/security/acl/Permission.h
new file mode 100644
index 000000000..f1c9b2525
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/acl/Permission.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_acl_Permission__
+#define __java_security_acl_Permission__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace acl
+ {
+ class Permission;
+ }
+ }
+ }
+}
+
+class java::security::acl::Permission : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual ::java::lang::String * toString() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_acl_Permission__
diff --git a/gcc-4.8/libjava/java/security/cert/CRL.h b/gcc-4.8/libjava/java/security/cert/CRL.h
new file mode 100644
index 000000000..e1b5298e0
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CRL.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CRL__
+#define __java_security_cert_CRL__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CRL;
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::cert::CRL : public ::java::lang::Object
+{
+
+public: // actually protected
+ CRL(::java::lang::String *);
+public:
+ virtual ::java::lang::String * getType();
+ virtual ::java::lang::String * toString() = 0;
+ virtual jboolean isRevoked(::java::security::cert::Certificate *) = 0;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CRL__
diff --git a/gcc-4.8/libjava/java/security/cert/CRLException.h b/gcc-4.8/libjava/java/security/cert/CRLException.h
new file mode 100644
index 000000000..7e2401eb4
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CRLException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CRLException__
+#define __java_security_cert_CRLException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CRLException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CRLException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ CRLException();
+ CRLException(::java::lang::String *);
+ CRLException(::java::lang::String *, ::java::lang::Throwable *);
+ CRLException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -6694728944094197147LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CRLException__
diff --git a/gcc-4.8/libjava/java/security/cert/CRLSelector.h b/gcc-4.8/libjava/java/security/cert/CRLSelector.h
new file mode 100644
index 000000000..fb5fe7a62
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CRLSelector.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CRLSelector__
+#define __java_security_cert_CRLSelector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CRL;
+ class CRLSelector;
+ }
+ }
+ }
+}
+
+class java::security::cert::CRLSelector : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone() = 0;
+ virtual jboolean match(::java::security::cert::CRL *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_CRLSelector__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPath$CertPathRep.h b/gcc-4.8/libjava/java/security/cert/CertPath$CertPathRep.h
new file mode 100644
index 000000000..a688e1b6d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPath$CertPathRep.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPath$CertPathRep__
+#define __java_security_cert_CertPath$CertPathRep__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPath$CertPathRep;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPath$CertPathRep : public ::java::lang::Object
+{
+
+public: // actually protected
+ CertPath$CertPathRep(::java::lang::String *, JArray< jbyte > *);
+ virtual ::java::lang::Object * readResolve();
+private:
+ static const jlong serialVersionUID = 3015633072427920915LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ JArray< jbyte > * data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPath$CertPathRep__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPath.h b/gcc-4.8/libjava/java/security/cert/CertPath.h
new file mode 100644
index 000000000..ed7378982
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPath.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPath__
+#define __java_security_cert_CertPath__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPath;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPath : public ::java::lang::Object
+{
+
+public: // actually protected
+ CertPath(::java::lang::String *);
+public:
+ virtual ::java::lang::String * getType();
+ virtual ::java::util::Iterator * getEncodings() = 0;
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual JArray< jbyte > * getEncoded(::java::lang::String *) = 0;
+ virtual ::java::util::List * getCertificates() = 0;
+public: // actually protected
+ virtual ::java::lang::Object * writeReplace();
+private:
+ static const jlong serialVersionUID = 6068470306649138683LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPath__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathBuilder.h b/gcc-4.8/libjava/java/security/cert/CertPathBuilder.h
new file mode 100644
index 000000000..2905f7423
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathBuilder.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathBuilder__
+#define __java_security_cert_CertPathBuilder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ namespace cert
+ {
+ class CertPathBuilder;
+ class CertPathBuilderResult;
+ class CertPathBuilderSpi;
+ class CertPathParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathBuilder : public ::java::lang::Object
+{
+
+public: // actually protected
+ CertPathBuilder(::java::security::cert::CertPathBuilderSpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ static ::java::lang::String * getDefaultType();
+ static ::java::security::cert::CertPathBuilder * getInstance(::java::lang::String *);
+ static ::java::security::cert::CertPathBuilder * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::cert::CertPathBuilder * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::lang::String * getAlgorithm();
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::security::cert::CertPathBuilderResult * build(::java::security::cert::CertPathParameters *);
+private:
+ static ::java::lang::String * CERT_PATH_BUILDER;
+ ::java::security::cert::CertPathBuilderSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cpbSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * algorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathBuilder__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathBuilderException.h b/gcc-4.8/libjava/java/security/cert/CertPathBuilderException.h
new file mode 100644
index 000000000..c2cb71b8f
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathBuilderException.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathBuilderException__
+#define __java_security_cert_CertPathBuilderException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPathBuilderException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathBuilderException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ CertPathBuilderException();
+ CertPathBuilderException(::java::lang::String *);
+ CertPathBuilderException(::java::lang::Throwable *);
+ CertPathBuilderException(::java::lang::String *, ::java::lang::Throwable *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::Throwable * getCause();
+ virtual ::java::lang::String * toString();
+ virtual void printStackTrace();
+ virtual void printStackTrace(::java::io::PrintStream *);
+ virtual void printStackTrace(::java::io::PrintWriter *);
+private:
+ static const jlong serialVersionUID = 5316471420178794402LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathBuilderException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathBuilderResult.h b/gcc-4.8/libjava/java/security/cert/CertPathBuilderResult.h
new file mode 100644
index 000000000..74849e8df
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathBuilderResult.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathBuilderResult__
+#define __java_security_cert_CertPathBuilderResult__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPath;
+ class CertPathBuilderResult;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathBuilderResult : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone() = 0;
+ virtual ::java::security::cert::CertPath * getCertPath() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_CertPathBuilderResult__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathBuilderSpi.h b/gcc-4.8/libjava/java/security/cert/CertPathBuilderSpi.h
new file mode 100644
index 000000000..8b9524a5a
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathBuilderSpi.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathBuilderSpi__
+#define __java_security_cert_CertPathBuilderSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPathBuilderResult;
+ class CertPathBuilderSpi;
+ class CertPathParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathBuilderSpi : public ::java::lang::Object
+{
+
+public:
+ CertPathBuilderSpi();
+ virtual ::java::security::cert::CertPathBuilderResult * engineBuild(::java::security::cert::CertPathParameters *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathBuilderSpi__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathParameters.h b/gcc-4.8/libjava/java/security/cert/CertPathParameters.h
new file mode 100644
index 000000000..a6752dfae
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathParameters.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathParameters__
+#define __java_security_cert_CertPathParameters__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPathParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathParameters : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_CertPathParameters__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathValidator$1.h b/gcc-4.8/libjava/java/security/cert/CertPathValidator$1.h
new file mode 100644
index 000000000..162f3d3bc
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathValidator$1.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathValidator$1__
+#define __java_security_cert_CertPathValidator$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPathValidator$1;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathValidator$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CertPathValidator$1();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathValidator$1__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathValidator.h b/gcc-4.8/libjava/java/security/cert/CertPathValidator.h
new file mode 100644
index 000000000..4424264fc
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathValidator.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathValidator__
+#define __java_security_cert_CertPathValidator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ namespace cert
+ {
+ class CertPath;
+ class CertPathParameters;
+ class CertPathValidator;
+ class CertPathValidatorResult;
+ class CertPathValidatorSpi;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathValidator : public ::java::lang::Object
+{
+
+public: // actually protected
+ CertPathValidator(::java::security::cert::CertPathValidatorSpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ static ::java::lang::String * getDefaultType();
+ static ::java::security::cert::CertPathValidator * getInstance(::java::lang::String *);
+ static ::java::security::cert::CertPathValidator * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::cert::CertPathValidator * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::lang::String * getAlgorithm();
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::security::cert::CertPathValidatorResult * validate(::java::security::cert::CertPath *, ::java::security::cert::CertPathParameters *);
+private:
+ static ::java::lang::String * CERT_PATH_VALIDATOR;
+ ::java::security::cert::CertPathValidatorSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) validatorSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * algorithm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathValidator__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathValidatorException.h b/gcc-4.8/libjava/java/security/cert/CertPathValidatorException.h
new file mode 100644
index 000000000..14289c79a
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathValidatorException.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathValidatorException__
+#define __java_security_cert_CertPathValidatorException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPath;
+ class CertPathValidatorException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathValidatorException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ CertPathValidatorException();
+ CertPathValidatorException(::java::lang::String *);
+ CertPathValidatorException(::java::lang::Throwable *);
+ CertPathValidatorException(::java::lang::String *, ::java::lang::Throwable *);
+ CertPathValidatorException(::java::lang::String *, ::java::lang::Throwable *, ::java::security::cert::CertPath *, jint);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::security::cert::CertPath * getCertPath();
+ virtual jint getIndex();
+ virtual ::java::lang::Throwable * getCause();
+ virtual ::java::lang::String * toString();
+ virtual void printStackTrace();
+ virtual void printStackTrace(::java::io::PrintStream *);
+ virtual void printStackTrace(::java::io::PrintWriter *);
+private:
+ static const jlong serialVersionUID = -3083180014971893139LL;
+ jint __attribute__((aligned(__alignof__( ::java::security::GeneralSecurityException)))) index;
+ ::java::security::cert::CertPath * certPath;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathValidatorException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathValidatorResult.h b/gcc-4.8/libjava/java/security/cert/CertPathValidatorResult.h
new file mode 100644
index 000000000..1a453205d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathValidatorResult.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathValidatorResult__
+#define __java_security_cert_CertPathValidatorResult__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPathValidatorResult;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathValidatorResult : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_CertPathValidatorResult__
diff --git a/gcc-4.8/libjava/java/security/cert/CertPathValidatorSpi.h b/gcc-4.8/libjava/java/security/cert/CertPathValidatorSpi.h
new file mode 100644
index 000000000..cb737ef64
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertPathValidatorSpi.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertPathValidatorSpi__
+#define __java_security_cert_CertPathValidatorSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertPath;
+ class CertPathParameters;
+ class CertPathValidatorResult;
+ class CertPathValidatorSpi;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertPathValidatorSpi : public ::java::lang::Object
+{
+
+public:
+ CertPathValidatorSpi();
+ virtual ::java::security::cert::CertPathValidatorResult * engineValidate(::java::security::cert::CertPath *, ::java::security::cert::CertPathParameters *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertPathValidatorSpi__
diff --git a/gcc-4.8/libjava/java/security/cert/CertSelector.h b/gcc-4.8/libjava/java/security/cert/CertSelector.h
new file mode 100644
index 000000000..2288bcc29
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertSelector.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertSelector__
+#define __java_security_cert_CertSelector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertSelector;
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertSelector : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone() = 0;
+ virtual jboolean match(::java::security::cert::Certificate *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_CertSelector__
diff --git a/gcc-4.8/libjava/java/security/cert/CertStore$1.h b/gcc-4.8/libjava/java/security/cert/CertStore$1.h
new file mode 100644
index 000000000..9268dcd79
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertStore$1.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertStore$1__
+#define __java_security_cert_CertStore$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertStore$1;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertStore$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CertStore$1();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertStore$1__
diff --git a/gcc-4.8/libjava/java/security/cert/CertStore.h b/gcc-4.8/libjava/java/security/cert/CertStore.h
new file mode 100644
index 000000000..af7e7488c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertStore.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertStore__
+#define __java_security_cert_CertStore__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ namespace cert
+ {
+ class CRLSelector;
+ class CertSelector;
+ class CertStore;
+ class CertStoreParameters;
+ class CertStoreSpi;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertStore : public ::java::lang::Object
+{
+
+public: // actually protected
+ CertStore(::java::security::cert::CertStoreSpi *, ::java::security::Provider *, ::java::lang::String *, ::java::security::cert::CertStoreParameters *);
+public:
+ static ::java::lang::String * getDefaultType();
+ static ::java::security::cert::CertStore * getInstance(::java::lang::String *, ::java::security::cert::CertStoreParameters *);
+ static ::java::security::cert::CertStore * getInstance(::java::lang::String *, ::java::security::cert::CertStoreParameters *, ::java::lang::String *);
+ static ::java::security::cert::CertStore * getInstance(::java::lang::String *, ::java::security::cert::CertStoreParameters *, ::java::security::Provider *);
+ virtual ::java::lang::String * getType();
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::security::cert::CertStoreParameters * getCertStoreParameters();
+ virtual ::java::util::Collection * getCertificates(::java::security::cert::CertSelector *);
+ virtual ::java::util::Collection * getCRLs(::java::security::cert::CRLSelector *);
+private:
+ static ::java::lang::String * CERT_STORE;
+ ::java::security::cert::CertStoreSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) storeSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * type;
+ ::java::security::cert::CertStoreParameters * params;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertStore__
diff --git a/gcc-4.8/libjava/java/security/cert/CertStoreException.h b/gcc-4.8/libjava/java/security/cert/CertStoreException.h
new file mode 100644
index 000000000..72e42f9ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertStoreException.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertStoreException__
+#define __java_security_cert_CertStoreException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertStoreException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertStoreException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ CertStoreException();
+ CertStoreException(::java::lang::String *);
+ CertStoreException(::java::lang::Throwable *);
+ CertStoreException(::java::lang::String *, ::java::lang::Throwable *);
+ virtual ::java::lang::String * getMessage();
+ virtual ::java::lang::Throwable * getCause();
+ virtual ::java::lang::String * toString();
+ virtual void printStackTrace();
+ virtual void printStackTrace(::java::io::PrintStream *);
+ virtual void printStackTrace(::java::io::PrintWriter *);
+private:
+ static const jlong serialVersionUID = 2395296107471573245LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertStoreException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertStoreParameters.h b/gcc-4.8/libjava/java/security/cert/CertStoreParameters.h
new file mode 100644
index 000000000..57eda812d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertStoreParameters.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertStoreParameters__
+#define __java_security_cert_CertStoreParameters__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertStoreParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertStoreParameters : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_CertStoreParameters__
diff --git a/gcc-4.8/libjava/java/security/cert/CertStoreSpi.h b/gcc-4.8/libjava/java/security/cert/CertStoreSpi.h
new file mode 100644
index 000000000..30dc3a4db
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertStoreSpi.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertStoreSpi__
+#define __java_security_cert_CertStoreSpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CRLSelector;
+ class CertSelector;
+ class CertStoreParameters;
+ class CertStoreSpi;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertStoreSpi : public ::java::lang::Object
+{
+
+public:
+ CertStoreSpi(::java::security::cert::CertStoreParameters *);
+ virtual ::java::util::Collection * engineGetCertificates(::java::security::cert::CertSelector *) = 0;
+ virtual ::java::util::Collection * engineGetCRLs(::java::security::cert::CRLSelector *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertStoreSpi__
diff --git a/gcc-4.8/libjava/java/security/cert/Certificate$CertificateRep.h b/gcc-4.8/libjava/java/security/cert/Certificate$CertificateRep.h
new file mode 100644
index 000000000..3eb75f2cb
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/Certificate$CertificateRep.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_Certificate$CertificateRep__
+#define __java_security_cert_Certificate$CertificateRep__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class Certificate$CertificateRep;
+ }
+ }
+ }
+}
+
+class java::security::cert::Certificate$CertificateRep : public ::java::lang::Object
+{
+
+public: // actually protected
+ Certificate$CertificateRep(::java::lang::String *, JArray< jbyte > *);
+ virtual ::java::lang::Object * readResolve();
+private:
+ static const jlong serialVersionUID = -8563758940495660020LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ JArray< jbyte > * data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_Certificate$CertificateRep__
diff --git a/gcc-4.8/libjava/java/security/cert/Certificate.h b/gcc-4.8/libjava/java/security/cert/Certificate.h
new file mode 100644
index 000000000..350d78a9c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/Certificate.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_Certificate__
+#define __java_security_cert_Certificate__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PublicKey;
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::security::cert::Certificate : public ::java::lang::Object
+{
+
+public: // actually protected
+ Certificate(::java::lang::String *);
+public:
+ virtual ::java::lang::String * getType();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual void verify(::java::security::PublicKey *) = 0;
+ virtual void verify(::java::security::PublicKey *, ::java::lang::String *) = 0;
+ virtual ::java::lang::String * toString() = 0;
+ virtual ::java::security::PublicKey * getPublicKey() = 0;
+public: // actually protected
+ virtual ::java::lang::Object * writeReplace();
+private:
+ static const jlong serialVersionUID = -3585440601605666277LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_Certificate__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateEncodingException.h b/gcc-4.8/libjava/java/security/cert/CertificateEncodingException.h
new file mode 100644
index 000000000..f97e40e16
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateEncodingException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateEncodingException__
+#define __java_security_cert_CertificateEncodingException__
+
+#pragma interface
+
+#include <java/security/cert/CertificateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertificateEncodingException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateEncodingException : public ::java::security::cert::CertificateException
+{
+
+public:
+ CertificateEncodingException();
+ CertificateEncodingException(::java::lang::String *);
+ CertificateEncodingException(::java::lang::String *, ::java::lang::Throwable *);
+ CertificateEncodingException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 6219492851589449162LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateEncodingException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateException.h b/gcc-4.8/libjava/java/security/cert/CertificateException.h
new file mode 100644
index 000000000..11658e289
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateException__
+#define __java_security_cert_CertificateException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertificateException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ CertificateException();
+ CertificateException(::java::lang::String *);
+ CertificateException(::java::lang::String *, ::java::lang::Throwable *);
+ CertificateException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 3192535253797119798LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateExpiredException.h b/gcc-4.8/libjava/java/security/cert/CertificateExpiredException.h
new file mode 100644
index 000000000..a92013dc7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateExpiredException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateExpiredException__
+#define __java_security_cert_CertificateExpiredException__
+
+#pragma interface
+
+#include <java/security/cert/CertificateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertificateExpiredException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateExpiredException : public ::java::security::cert::CertificateException
+{
+
+public:
+ CertificateExpiredException();
+ CertificateExpiredException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 9071001339691533771LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateExpiredException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateFactory.h b/gcc-4.8/libjava/java/security/cert/CertificateFactory.h
new file mode 100644
index 000000000..184e3e4e9
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateFactory.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateFactory__
+#define __java_security_cert_CertificateFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Provider;
+ namespace cert
+ {
+ class CRL;
+ class CertPath;
+ class Certificate;
+ class CertificateFactory;
+ class CertificateFactorySpi;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateFactory : public ::java::lang::Object
+{
+
+public: // actually protected
+ CertificateFactory(::java::security::cert::CertificateFactorySpi *, ::java::security::Provider *, ::java::lang::String *);
+public:
+ static ::java::security::cert::CertificateFactory * getInstance(::java::lang::String *);
+ static ::java::security::cert::CertificateFactory * getInstance(::java::lang::String *, ::java::lang::String *);
+ static ::java::security::cert::CertificateFactory * getInstance(::java::lang::String *, ::java::security::Provider *);
+ virtual ::java::security::Provider * getProvider();
+ virtual ::java::lang::String * getType();
+ virtual ::java::security::cert::Certificate * generateCertificate(::java::io::InputStream *);
+ virtual ::java::util::Collection * generateCertificates(::java::io::InputStream *);
+ virtual ::java::security::cert::CRL * generateCRL(::java::io::InputStream *);
+ virtual ::java::util::Collection * generateCRLs(::java::io::InputStream *);
+ virtual ::java::security::cert::CertPath * generateCertPath(::java::io::InputStream *);
+ virtual ::java::security::cert::CertPath * generateCertPath(::java::io::InputStream *, ::java::lang::String *);
+ virtual ::java::security::cert::CertPath * generateCertPath(::java::util::List *);
+ virtual ::java::util::Iterator * getCertPathEncodings();
+private:
+ static ::java::lang::String * CERTIFICATE_FACTORY;
+ ::java::security::cert::CertificateFactorySpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) certFacSpi;
+ ::java::security::Provider * provider;
+ ::java::lang::String * type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateFactory__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateFactorySpi.h b/gcc-4.8/libjava/java/security/cert/CertificateFactorySpi.h
new file mode 100644
index 000000000..2370e6794
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateFactorySpi.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateFactorySpi__
+#define __java_security_cert_CertificateFactorySpi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CRL;
+ class CertPath;
+ class Certificate;
+ class CertificateFactorySpi;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateFactorySpi : public ::java::lang::Object
+{
+
+public:
+ CertificateFactorySpi();
+ virtual ::java::security::cert::Certificate * engineGenerateCertificate(::java::io::InputStream *) = 0;
+ virtual ::java::util::Collection * engineGenerateCertificates(::java::io::InputStream *) = 0;
+ virtual ::java::security::cert::CRL * engineGenerateCRL(::java::io::InputStream *) = 0;
+ virtual ::java::util::Collection * engineGenerateCRLs(::java::io::InputStream *) = 0;
+ virtual ::java::security::cert::CertPath * engineGenerateCertPath(::java::io::InputStream *);
+ virtual ::java::security::cert::CertPath * engineGenerateCertPath(::java::io::InputStream *, ::java::lang::String *);
+ virtual ::java::security::cert::CertPath * engineGenerateCertPath(::java::util::List *);
+ virtual ::java::util::Iterator * engineGetCertPathEncodings();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateFactorySpi__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateNotYetValidException.h b/gcc-4.8/libjava/java/security/cert/CertificateNotYetValidException.h
new file mode 100644
index 000000000..510bb39fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateNotYetValidException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateNotYetValidException__
+#define __java_security_cert_CertificateNotYetValidException__
+
+#pragma interface
+
+#include <java/security/cert/CertificateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertificateNotYetValidException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateNotYetValidException : public ::java::security::cert::CertificateException
+{
+
+public:
+ CertificateNotYetValidException();
+ CertificateNotYetValidException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 4355919900041064702LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateNotYetValidException__
diff --git a/gcc-4.8/libjava/java/security/cert/CertificateParsingException.h b/gcc-4.8/libjava/java/security/cert/CertificateParsingException.h
new file mode 100644
index 000000000..2827e8961
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CertificateParsingException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CertificateParsingException__
+#define __java_security_cert_CertificateParsingException__
+
+#pragma interface
+
+#include <java/security/cert/CertificateException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CertificateParsingException;
+ }
+ }
+ }
+}
+
+class java::security::cert::CertificateParsingException : public ::java::security::cert::CertificateException
+{
+
+public:
+ CertificateParsingException();
+ CertificateParsingException(::java::lang::String *);
+ CertificateParsingException(::java::lang::String *, ::java::lang::Throwable *);
+ CertificateParsingException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -7989222416793322029LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CertificateParsingException__
diff --git a/gcc-4.8/libjava/java/security/cert/CollectionCertStoreParameters.h b/gcc-4.8/libjava/java/security/cert/CollectionCertStoreParameters.h
new file mode 100644
index 000000000..cabf8dfa3
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/CollectionCertStoreParameters.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_CollectionCertStoreParameters__
+#define __java_security_cert_CollectionCertStoreParameters__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class CollectionCertStoreParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::CollectionCertStoreParameters : public ::java::lang::Object
+{
+
+public:
+ CollectionCertStoreParameters();
+ CollectionCertStoreParameters(::java::util::Collection *);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::util::Collection * getCollection();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) collection;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_CollectionCertStoreParameters__
diff --git a/gcc-4.8/libjava/java/security/cert/LDAPCertStoreParameters.h b/gcc-4.8/libjava/java/security/cert/LDAPCertStoreParameters.h
new file mode 100644
index 000000000..2cdde192f
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/LDAPCertStoreParameters.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_LDAPCertStoreParameters__
+#define __java_security_cert_LDAPCertStoreParameters__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class LDAPCertStoreParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::LDAPCertStoreParameters : public ::java::lang::Object
+{
+
+public:
+ LDAPCertStoreParameters();
+ LDAPCertStoreParameters(::java::lang::String *);
+ LDAPCertStoreParameters(::java::lang::String *, jint);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * getServerName();
+ virtual jint getPort();
+ virtual ::java::lang::String * toString();
+private:
+ static const jint LDAP_PORT = 389;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) serverName;
+ jint port;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_LDAPCertStoreParameters__
diff --git a/gcc-4.8/libjava/java/security/cert/PKIXBuilderParameters.h b/gcc-4.8/libjava/java/security/cert/PKIXBuilderParameters.h
new file mode 100644
index 000000000..bb9ffd707
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PKIXBuilderParameters.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PKIXBuilderParameters__
+#define __java_security_cert_PKIXBuilderParameters__
+
+#pragma interface
+
+#include <java/security/cert/PKIXParameters.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyStore;
+ namespace cert
+ {
+ class CertSelector;
+ class PKIXBuilderParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::PKIXBuilderParameters : public ::java::security::cert::PKIXParameters
+{
+
+public:
+ PKIXBuilderParameters(::java::security::KeyStore *, ::java::security::cert::CertSelector *);
+ PKIXBuilderParameters(::java::util::Set *, ::java::security::cert::CertSelector *);
+ virtual jint getMaxPathLength();
+ virtual void setMaxPathLength(jint);
+ virtual ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::security::cert::PKIXParameters)))) maxPathLength;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_PKIXBuilderParameters__
diff --git a/gcc-4.8/libjava/java/security/cert/PKIXCertPathBuilderResult.h b/gcc-4.8/libjava/java/security/cert/PKIXCertPathBuilderResult.h
new file mode 100644
index 000000000..ad6ee690b
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PKIXCertPathBuilderResult.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PKIXCertPathBuilderResult__
+#define __java_security_cert_PKIXCertPathBuilderResult__
+
+#pragma interface
+
+#include <java/security/cert/PKIXCertPathValidatorResult.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PublicKey;
+ namespace cert
+ {
+ class CertPath;
+ class PKIXCertPathBuilderResult;
+ class PolicyNode;
+ class TrustAnchor;
+ }
+ }
+ }
+}
+
+class java::security::cert::PKIXCertPathBuilderResult : public ::java::security::cert::PKIXCertPathValidatorResult
+{
+
+public:
+ PKIXCertPathBuilderResult(::java::security::cert::CertPath *, ::java::security::cert::TrustAnchor *, ::java::security::cert::PolicyNode *, ::java::security::PublicKey *);
+ virtual ::java::security::cert::CertPath * getCertPath();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::security::cert::CertPath * __attribute__((aligned(__alignof__( ::java::security::cert::PKIXCertPathValidatorResult)))) certPath;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_PKIXCertPathBuilderResult__
diff --git a/gcc-4.8/libjava/java/security/cert/PKIXCertPathChecker.h b/gcc-4.8/libjava/java/security/cert/PKIXCertPathChecker.h
new file mode 100644
index 000000000..375e8f33c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PKIXCertPathChecker.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PKIXCertPathChecker__
+#define __java_security_cert_PKIXCertPathChecker__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class Certificate;
+ class PKIXCertPathChecker;
+ }
+ }
+ }
+}
+
+class java::security::cert::PKIXCertPathChecker : public ::java::lang::Object
+{
+
+public: // actually protected
+ PKIXCertPathChecker();
+public:
+ virtual ::java::lang::Object * clone();
+ virtual void init(jboolean) = 0;
+ virtual jboolean isForwardCheckingSupported() = 0;
+ virtual ::java::util::Set * getSupportedExtensions() = 0;
+ virtual void check(::java::security::cert::Certificate *, ::java::util::Collection *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_PKIXCertPathChecker__
diff --git a/gcc-4.8/libjava/java/security/cert/PKIXCertPathValidatorResult.h b/gcc-4.8/libjava/java/security/cert/PKIXCertPathValidatorResult.h
new file mode 100644
index 000000000..879bc2bf9
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PKIXCertPathValidatorResult.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PKIXCertPathValidatorResult__
+#define __java_security_cert_PKIXCertPathValidatorResult__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PublicKey;
+ namespace cert
+ {
+ class PKIXCertPathValidatorResult;
+ class PolicyNode;
+ class TrustAnchor;
+ }
+ }
+ }
+}
+
+class java::security::cert::PKIXCertPathValidatorResult : public ::java::lang::Object
+{
+
+public:
+ PKIXCertPathValidatorResult(::java::security::cert::TrustAnchor *, ::java::security::cert::PolicyNode *, ::java::security::PublicKey *);
+ virtual ::java::security::cert::TrustAnchor * getTrustAnchor();
+ virtual ::java::security::cert::PolicyNode * getPolicyTree();
+ virtual ::java::security::PublicKey * getPublicKey();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::security::cert::TrustAnchor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) trustAnchor;
+ ::java::security::cert::PolicyNode * policyTree;
+ ::java::security::PublicKey * subjectPublicKey;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_PKIXCertPathValidatorResult__
diff --git a/gcc-4.8/libjava/java/security/cert/PKIXParameters.h b/gcc-4.8/libjava/java/security/cert/PKIXParameters.h
new file mode 100644
index 000000000..7a953696c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PKIXParameters.h
@@ -0,0 +1,83 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PKIXParameters__
+#define __java_security_cert_PKIXParameters__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class KeyStore;
+ namespace cert
+ {
+ class CertSelector;
+ class CertStore;
+ class PKIXCertPathChecker;
+ class PKIXParameters;
+ }
+ }
+ }
+}
+
+class java::security::cert::PKIXParameters : public ::java::lang::Object
+{
+
+public:
+ PKIXParameters(::java::security::KeyStore *);
+ PKIXParameters(::java::util::Set *);
+private:
+ PKIXParameters();
+ PKIXParameters(::java::security::cert::PKIXParameters *);
+public:
+ virtual ::java::util::Set * getTrustAnchors();
+ virtual void setTrustAnchors(::java::util::Set *);
+ virtual ::java::util::Set * getInitialPolicies();
+ virtual void setInitialPolicies(::java::util::Set *);
+ virtual void addCertStore(::java::security::cert::CertStore *);
+ virtual ::java::util::List * getCertStores();
+ virtual void setCertStores(::java::util::List *);
+ virtual jboolean isRevocationEnabled();
+ virtual void setRevocationEnabled(jboolean);
+ virtual jboolean isExplicitPolicyRequired();
+ virtual void setExplicitPolicyRequired(jboolean);
+ virtual jboolean isPolicyMappingInhibited();
+ virtual void setPolicyMappingInhibited(jboolean);
+ virtual jboolean isAnyPolicyInhibited();
+ virtual void setAnyPolicyInhibited(jboolean);
+ virtual jboolean getPolicyQualifiersRejected();
+ virtual void setPolicyQualifiersRejected(jboolean);
+ virtual ::java::util::Date * getDate();
+ virtual void setDate(::java::util::Date *);
+ virtual void addCertPathChecker(::java::security::cert::PKIXCertPathChecker *);
+ virtual ::java::util::List * getCertPathCheckers();
+ virtual void setCertPathCheckers(::java::util::List *);
+ virtual ::java::lang::String * getSigProvider();
+ virtual void setSigProvider(::java::lang::String *);
+ virtual ::java::security::cert::CertSelector * getTargetCertConstraints();
+ virtual void setTargetCertConstraints(::java::security::cert::CertSelector *);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) trustAnchors;
+ ::java::util::Set * initPolicies;
+ ::java::util::List * certStores;
+ ::java::util::List * pathCheckers;
+ jboolean revocationEnabled;
+ jboolean exPolicyRequired;
+ jboolean policyMappingInhibited;
+ jboolean anyPolicyInhibited;
+ jboolean policyQualRejected;
+ ::java::util::Date * date;
+ ::java::lang::String * sigProvider;
+ ::java::security::cert::CertSelector * targetConstraints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_PKIXParameters__
diff --git a/gcc-4.8/libjava/java/security/cert/PolicyNode.h b/gcc-4.8/libjava/java/security/cert/PolicyNode.h
new file mode 100644
index 000000000..04cadaf05
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PolicyNode.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PolicyNode__
+#define __java_security_cert_PolicyNode__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class PolicyNode;
+ }
+ }
+ }
+}
+
+class java::security::cert::PolicyNode : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Iterator * getChildren() = 0;
+ virtual jint getDepth() = 0;
+ virtual ::java::util::Set * getExpectedPolicies() = 0;
+ virtual ::java::security::cert::PolicyNode * getParent() = 0;
+ virtual ::java::util::Set * getPolicyQualifiers() = 0;
+ virtual ::java::lang::String * getValidPolicy() = 0;
+ virtual jboolean isCritical() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_PolicyNode__
diff --git a/gcc-4.8/libjava/java/security/cert/PolicyQualifierInfo.h b/gcc-4.8/libjava/java/security/cert/PolicyQualifierInfo.h
new file mode 100644
index 000000000..ed16d26f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/PolicyQualifierInfo.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_PolicyQualifierInfo__
+#define __java_security_cert_PolicyQualifierInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace security
+ {
+ class OID;
+ namespace der
+ {
+ class DERValue;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class PolicyQualifierInfo;
+ }
+ }
+ }
+}
+
+class java::security::cert::PolicyQualifierInfo : public ::java::lang::Object
+{
+
+public:
+ PolicyQualifierInfo(JArray< jbyte > *);
+ virtual ::java::lang::String * getPolicyQualifierId();
+ virtual JArray< jbyte > * getEncoded();
+ virtual JArray< jbyte > * getPolicyQualifier();
+ virtual ::java::lang::String * toString();
+private:
+ ::gnu::java::security::OID * __attribute__((aligned(__alignof__( ::java::lang::Object)))) oid;
+ JArray< jbyte > * encoded;
+ ::gnu::java::security::der::DERValue * qualifier;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_PolicyQualifierInfo__
diff --git a/gcc-4.8/libjava/java/security/cert/TrustAnchor.h b/gcc-4.8/libjava/java/security/cert/TrustAnchor.h
new file mode 100644
index 000000000..3afc671bc
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/TrustAnchor.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_TrustAnchor__
+#define __java_security_cert_TrustAnchor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace security
+ {
+ namespace x509
+ {
+ class X500DistinguishedName;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace security
+ {
+ class PublicKey;
+ namespace cert
+ {
+ class TrustAnchor;
+ class X509Certificate;
+ }
+ }
+ }
+}
+
+class java::security::cert::TrustAnchor : public ::java::lang::Object
+{
+
+public:
+ TrustAnchor(::java::security::cert::X509Certificate *, JArray< jbyte > *);
+ TrustAnchor(::java::lang::String *, ::java::security::PublicKey *, JArray< jbyte > *);
+ virtual ::java::security::cert::X509Certificate * getTrustedCert();
+ virtual ::java::lang::String * getCAName();
+ virtual ::java::security::PublicKey * getCAPublicKey();
+ virtual JArray< jbyte > * getNameConstraints();
+ virtual ::java::lang::String * toString();
+private:
+ ::gnu::java::security::x509::X500DistinguishedName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) caName;
+ ::java::security::PublicKey * caKey;
+ ::java::security::cert::X509Certificate * trustedCert;
+ JArray< jbyte > * nameConstraints;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_TrustAnchor__
diff --git a/gcc-4.8/libjava/java/security/cert/X509CRL.h b/gcc-4.8/libjava/java/security/cert/X509CRL.h
new file mode 100644
index 000000000..1c9266502
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/X509CRL.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_X509CRL__
+#define __java_security_cert_X509CRL__
+
+#pragma interface
+
+#include <java/security/cert/CRL.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ class Principal;
+ class PublicKey;
+ namespace cert
+ {
+ class X509CRL;
+ class X509CRLEntry;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace security
+ {
+ namespace auth
+ {
+ namespace x500
+ {
+ class X500Principal;
+ }
+ }
+ }
+ }
+}
+
+class java::security::cert::X509CRL : public ::java::security::cert::CRL
+{
+
+public: // actually protected
+ X509CRL();
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual void verify(::java::security::PublicKey *) = 0;
+ virtual void verify(::java::security::PublicKey *, ::java::lang::String *) = 0;
+ virtual jint getVersion() = 0;
+ virtual ::java::security::Principal * getIssuerDN() = 0;
+ virtual ::java::util::Date * getThisUpdate() = 0;
+ virtual ::java::util::Date * getNextUpdate() = 0;
+ virtual ::java::security::cert::X509CRLEntry * getRevokedCertificate(::java::math::BigInteger *) = 0;
+ virtual ::java::util::Set * getRevokedCertificates() = 0;
+ virtual JArray< jbyte > * getTBSCertList() = 0;
+ virtual JArray< jbyte > * getSignature() = 0;
+ virtual ::java::lang::String * getSigAlgName() = 0;
+ virtual ::java::lang::String * getSigAlgOID() = 0;
+ virtual JArray< jbyte > * getSigAlgParams() = 0;
+ virtual ::javax::security::auth::x500::X500Principal * getIssuerX500Principal();
+ virtual jboolean hasUnsupportedCriticalExtension() = 0;
+ virtual ::java::util::Set * getCriticalExtensionOIDs() = 0;
+ virtual ::java::util::Set * getNonCriticalExtensionOIDs() = 0;
+ virtual JArray< jbyte > * getExtensionValue(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_X509CRL__
diff --git a/gcc-4.8/libjava/java/security/cert/X509CRLEntry.h b/gcc-4.8/libjava/java/security/cert/X509CRLEntry.h
new file mode 100644
index 000000000..8d9c8d5f9
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/X509CRLEntry.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_X509CRLEntry__
+#define __java_security_cert_X509CRLEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace cert
+ {
+ class X509CRLEntry;
+ }
+ }
+ }
+}
+
+class java::security::cert::X509CRLEntry : public ::java::lang::Object
+{
+
+public:
+ X509CRLEntry();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual ::java::math::BigInteger * getSerialNumber() = 0;
+ virtual ::java::util::Date * getRevocationDate() = 0;
+ virtual jboolean hasExtensions() = 0;
+ virtual ::java::lang::String * toString() = 0;
+ virtual jboolean hasUnsupportedCriticalExtension() = 0;
+ virtual ::java::util::Set * getCriticalExtensionOIDs() = 0;
+ virtual ::java::util::Set * getNonCriticalExtensionOIDs() = 0;
+ virtual JArray< jbyte > * getExtensionValue(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_X509CRLEntry__
diff --git a/gcc-4.8/libjava/java/security/cert/X509CRLSelector.h b/gcc-4.8/libjava/java/security/cert/X509CRLSelector.h
new file mode 100644
index 000000000..e888f633e
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/X509CRLSelector.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_X509CRLSelector__
+#define __java_security_cert_X509CRLSelector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace cert
+ {
+ class CRL;
+ class X509CRLSelector;
+ class X509Certificate;
+ }
+ }
+ }
+}
+
+class java::security::cert::X509CRLSelector : public ::java::lang::Object
+{
+
+public:
+ X509CRLSelector();
+ virtual void addIssuerName(JArray< jbyte > *);
+ virtual void addIssuerName(::java::lang::String *);
+ virtual void setIssuerNames(::java::util::Collection *);
+ virtual ::java::util::Collection * getIssuerNames();
+ virtual ::java::math::BigInteger * getMaxCRL();
+ virtual ::java::math::BigInteger * getMinCRL();
+ virtual void setMaxCRLNumber(::java::math::BigInteger *);
+ virtual void setMinCRLNumber(::java::math::BigInteger *);
+ virtual ::java::util::Date * getDateAndTime();
+ virtual void setDateAndTime(::java::util::Date *);
+ virtual ::java::security::cert::X509Certificate * getCertificateChecking();
+ virtual void setCertificateChecking(::java::security::cert::X509Certificate *);
+ virtual ::java::lang::String * toString();
+ virtual jboolean match(::java::security::cert::CRL *);
+ virtual ::java::lang::Object * clone();
+private:
+ static ::java::lang::String * CRL_NUMBER_ID;
+ ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) issuerNames;
+ ::java::math::BigInteger * maxCrlNumber;
+ ::java::math::BigInteger * minCrlNumber;
+ ::java::util::Date * date;
+ ::java::security::cert::X509Certificate * cert;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_X509CRLSelector__
diff --git a/gcc-4.8/libjava/java/security/cert/X509CertSelector.h b/gcc-4.8/libjava/java/security/cert/X509CertSelector.h
new file mode 100644
index 000000000..f1d5b3a8f
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/X509CertSelector.h
@@ -0,0 +1,151 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_X509CertSelector__
+#define __java_security_cert_X509CertSelector__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace security
+ {
+ class OID;
+ namespace x509
+ {
+ namespace ext
+ {
+ class GeneralName;
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ class PublicKey;
+ namespace cert
+ {
+ class Certificate;
+ class X509CertSelector;
+ class X509Certificate;
+ }
+ namespace spec
+ {
+ class X509EncodedKeySpec;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace security
+ {
+ namespace auth
+ {
+ namespace x500
+ {
+ class X500Principal;
+ }
+ }
+ }
+ }
+}
+
+class java::security::cert::X509CertSelector : public ::java::lang::Object
+{
+
+ static jboolean checkOid(JArray< jint > *);
+ static ::gnu::java::security::x509::ext::GeneralName * makeName(jint, ::java::lang::String *);
+public:
+ X509CertSelector();
+ virtual void addPathToName(jint, JArray< jbyte > *);
+ virtual void addPathToName(jint, ::java::lang::String *);
+ virtual void addSubjectAlternativeName(jint, JArray< jbyte > *);
+ virtual void addSubjectAlternativeName(jint, ::java::lang::String *);
+ virtual ::java::lang::Object * clone();
+ virtual JArray< jbyte > * getAuthorityKeyIdentifier();
+ virtual jint getBasicConstraints();
+ virtual ::java::security::cert::X509Certificate * getCertificate();
+ virtual ::java::util::Date * getCertificateValid();
+ virtual ::java::util::Set * getExtendedKeyUsage();
+ virtual JArray< jbyte > * getIssuerAsBytes();
+ virtual ::java::lang::String * getIssuerAsString();
+ virtual JArray< jboolean > * getKeyUsage();
+ virtual jboolean getMatchAllSubjectAltNames();
+ virtual JArray< jbyte > * getNameConstraints();
+ virtual ::java::util::Collection * getPathToNames();
+ virtual ::java::util::Set * getPolicy();
+ virtual ::java::util::Date * getPrivateKeyValid();
+ virtual ::java::math::BigInteger * getSerialNumber();
+ virtual ::java::util::Collection * getSubjectAlternativeNames();
+ virtual JArray< jbyte > * getSubjectAsBytes();
+ virtual ::java::lang::String * getSubjectAsString();
+ virtual JArray< jbyte > * getSubjectKeyIdentifier();
+ virtual ::java::security::PublicKey * getSubjectPublicKey();
+ virtual ::java::lang::String * getSubjectPublicKeyAlgID();
+ virtual jboolean match(::java::security::cert::Certificate *);
+ virtual void setAuthorityKeyIdentifier(JArray< jbyte > *);
+ virtual void setBasicConstraints(jint);
+ virtual void setCertificate(::java::security::cert::X509Certificate *);
+ virtual void setCertificateValid(::java::util::Date *);
+ virtual void setExtendedKeyUsage(::java::util::Set *);
+ virtual void setIssuer(JArray< jbyte > *);
+ virtual void setIssuer(::java::lang::String *);
+ virtual void setKeyUsage(JArray< jboolean > *);
+ virtual void setMatchAllSubjectAltNames(jboolean);
+ virtual void setNameConstraints(JArray< jbyte > *);
+ virtual void setPathToNames(::java::util::Collection *);
+ virtual void setPolicy(::java::util::Set *);
+ virtual void setPrivateKeyValid(::java::util::Date *);
+ virtual void setSerialNumber(::java::math::BigInteger *);
+ virtual void setSubject(JArray< jbyte > *);
+ virtual void setSubject(::java::lang::String *);
+ virtual void setSubjectAlternativeNames(::java::util::Collection *);
+ virtual void setSubjectKeyIdentifier(JArray< jbyte > *);
+ virtual void setSubjectPublicKey(JArray< jbyte > *);
+ virtual void setSubjectPublicKey(::java::security::PublicKey *);
+ virtual void setSubjectPublicKeyAlgID(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static JArray< jint > * $SWITCH_TABLE$gnu$java$security$x509$ext$GeneralName$Kind();
+private:
+ static ::java::lang::String * AUTH_KEY_ID;
+ static ::java::lang::String * SUBJECT_KEY_ID;
+ static ::java::lang::String * NAME_CONSTRAINTS_ID;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) basicConstraints;
+ ::java::security::cert::X509Certificate * cert;
+ ::java::math::BigInteger * serialNo;
+ ::javax::security::auth::x500::X500Principal * issuer;
+ ::javax::security::auth::x500::X500Principal * subject;
+ JArray< jbyte > * subjectKeyId;
+ JArray< jbyte > * authKeyId;
+ JArray< jboolean > * keyUsage;
+ ::java::util::Date * certValid;
+ ::gnu::java::security::OID * sigId;
+ ::java::security::PublicKey * subjectKey;
+ ::java::security::spec::X509EncodedKeySpec * subjectKeySpec;
+ ::java::util::Set * keyPurposeSet;
+ ::java::util::List * altNames;
+ jboolean matchAllNames;
+ JArray< jbyte > * nameConstraints;
+ ::java::util::Set * policy;
+ ::java::util::List * pathToNames;
+ static JArray< jint > * $SWITCH_TABLE$gnu$java$security$x509$ext$GeneralName$Kind__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_X509CertSelector__
diff --git a/gcc-4.8/libjava/java/security/cert/X509Certificate.h b/gcc-4.8/libjava/java/security/cert/X509Certificate.h
new file mode 100644
index 000000000..9f8afe1f4
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/X509Certificate.h
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_X509Certificate__
+#define __java_security_cert_X509Certificate__
+
+#pragma interface
+
+#include <java/security/cert/Certificate.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ class Principal;
+ namespace cert
+ {
+ class X509Certificate;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace security
+ {
+ namespace auth
+ {
+ namespace x500
+ {
+ class X500Principal;
+ }
+ }
+ }
+ }
+}
+
+class java::security::cert::X509Certificate : public ::java::security::cert::Certificate
+{
+
+public: // actually protected
+ X509Certificate();
+public:
+ virtual void checkValidity() = 0;
+ virtual void checkValidity(::java::util::Date *) = 0;
+ virtual jint getVersion() = 0;
+ virtual ::java::math::BigInteger * getSerialNumber() = 0;
+ virtual ::java::security::Principal * getIssuerDN() = 0;
+ virtual ::java::security::Principal * getSubjectDN() = 0;
+ virtual ::java::util::Date * getNotBefore() = 0;
+ virtual ::java::util::Date * getNotAfter() = 0;
+ virtual JArray< jbyte > * getTBSCertificate() = 0;
+ virtual JArray< jbyte > * getSignature() = 0;
+ virtual ::java::lang::String * getSigAlgName() = 0;
+ virtual ::java::lang::String * getSigAlgOID() = 0;
+ virtual JArray< jbyte > * getSigAlgParams() = 0;
+ virtual JArray< jboolean > * getIssuerUniqueID() = 0;
+ virtual JArray< jboolean > * getSubjectUniqueID() = 0;
+ virtual JArray< jboolean > * getKeyUsage() = 0;
+ virtual jint getBasicConstraints() = 0;
+ virtual ::java::util::List * getExtendedKeyUsage();
+ virtual ::java::util::Collection * getSubjectAlternativeNames();
+ virtual ::java::util::Collection * getIssuerAlternativeNames();
+ virtual ::javax::security::auth::x500::X500Principal * getSubjectX500Principal();
+ virtual ::javax::security::auth::x500::X500Principal * getIssuerX500Principal();
+ virtual jboolean hasUnsupportedCriticalExtension() = 0;
+ virtual ::java::util::Set * getCriticalExtensionOIDs() = 0;
+ virtual ::java::util::Set * getNonCriticalExtensionOIDs() = 0;
+ virtual JArray< jbyte > * getExtensionValue(::java::lang::String *) = 0;
+private:
+ static const jlong serialVersionUID = -2491127588187038216LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_cert_X509Certificate__
diff --git a/gcc-4.8/libjava/java/security/cert/X509Extension.h b/gcc-4.8/libjava/java/security/cert/X509Extension.h
new file mode 100644
index 000000000..53eb5d1b6
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/cert/X509Extension.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_cert_X509Extension__
+#define __java_security_cert_X509Extension__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class X509Extension;
+ }
+ }
+ }
+}
+
+class java::security::cert::X509Extension : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean hasUnsupportedCriticalExtension() = 0;
+ virtual ::java::util::Set * getCriticalExtensionOIDs() = 0;
+ virtual ::java::util::Set * getNonCriticalExtensionOIDs() = 0;
+ virtual JArray< jbyte > * getExtensionValue(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_cert_X509Extension__
diff --git a/gcc-4.8/libjava/java/security/interfaces/DSAKey.h b/gcc-4.8/libjava/java/security/interfaces/DSAKey.h
new file mode 100644
index 000000000..ee58f377d
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/DSAKey.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_DSAKey__
+#define __java_security_interfaces_DSAKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace interfaces
+ {
+ class DSAKey;
+ class DSAParams;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::DSAKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::security::interfaces::DSAParams * getParams() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_DSAKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/DSAKeyPairGenerator.h b/gcc-4.8/libjava/java/security/interfaces/DSAKeyPairGenerator.h
new file mode 100644
index 000000000..424348c80
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/DSAKeyPairGenerator.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_DSAKeyPairGenerator__
+#define __java_security_interfaces_DSAKeyPairGenerator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class SecureRandom;
+ namespace interfaces
+ {
+ class DSAKeyPairGenerator;
+ class DSAParams;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::DSAKeyPairGenerator : public ::java::lang::Object
+{
+
+public:
+ virtual void initialize(::java::security::interfaces::DSAParams *, ::java::security::SecureRandom *) = 0;
+ virtual void initialize(jint, jboolean, ::java::security::SecureRandom *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_DSAKeyPairGenerator__
diff --git a/gcc-4.8/libjava/java/security/interfaces/DSAParams.h b/gcc-4.8/libjava/java/security/interfaces/DSAParams.h
new file mode 100644
index 000000000..e6963fb11
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/DSAParams.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_DSAParams__
+#define __java_security_interfaces_DSAParams__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class DSAParams;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::DSAParams : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getG() = 0;
+ virtual ::java::math::BigInteger * getP() = 0;
+ virtual ::java::math::BigInteger * getQ() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_DSAParams__
diff --git a/gcc-4.8/libjava/java/security/interfaces/DSAPrivateKey.h b/gcc-4.8/libjava/java/security/interfaces/DSAPrivateKey.h
new file mode 100644
index 000000000..e1fb8e86c
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/DSAPrivateKey.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_DSAPrivateKey__
+#define __java_security_interfaces_DSAPrivateKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class DSAParams;
+ class DSAPrivateKey;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::DSAPrivateKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getX() = 0;
+ virtual ::java::security::interfaces::DSAParams * getParams() = 0;
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ static const jlong serialVersionUID = 7776497482533790279LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_DSAPrivateKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/DSAPublicKey.h b/gcc-4.8/libjava/java/security/interfaces/DSAPublicKey.h
new file mode 100644
index 000000000..079161074
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/DSAPublicKey.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_DSAPublicKey__
+#define __java_security_interfaces_DSAPublicKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class DSAParams;
+ class DSAPublicKey;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::DSAPublicKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getY() = 0;
+ virtual ::java::security::interfaces::DSAParams * getParams() = 0;
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ static const jlong serialVersionUID = 1234526332779022332LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_DSAPublicKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/RSAKey.h b/gcc-4.8/libjava/java/security/interfaces/RSAKey.h
new file mode 100644
index 000000000..76985bdb6
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/RSAKey.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_RSAKey__
+#define __java_security_interfaces_RSAKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class RSAKey;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::RSAKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getModulus() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_RSAKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h b/gcc-4.8/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h
new file mode 100644
index 000000000..3e4ff331f
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_RSAMultiPrimePrivateCrtKey__
+#define __java_security_interfaces_RSAMultiPrimePrivateCrtKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class RSAMultiPrimePrivateCrtKey;
+ }
+ namespace spec
+ {
+ class RSAOtherPrimeInfo;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::RSAMultiPrimePrivateCrtKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getPublicExponent() = 0;
+ virtual ::java::math::BigInteger * getPrimeP() = 0;
+ virtual ::java::math::BigInteger * getPrimeQ() = 0;
+ virtual ::java::math::BigInteger * getPrimeExponentP() = 0;
+ virtual ::java::math::BigInteger * getPrimeExponentQ() = 0;
+ virtual ::java::math::BigInteger * getCrtCoefficient() = 0;
+ virtual JArray< ::java::security::spec::RSAOtherPrimeInfo * > * getOtherPrimeInfo() = 0;
+ virtual ::java::math::BigInteger * getPrivateExponent() = 0;
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual ::java::math::BigInteger * getModulus() = 0;
+ static const jlong serialVersionUID = 618058533534628008LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_RSAMultiPrimePrivateCrtKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/RSAPrivateCrtKey.h b/gcc-4.8/libjava/java/security/interfaces/RSAPrivateCrtKey.h
new file mode 100644
index 000000000..7c6943d43
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/RSAPrivateCrtKey.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_RSAPrivateCrtKey__
+#define __java_security_interfaces_RSAPrivateCrtKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class RSAPrivateCrtKey;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::RSAPrivateCrtKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getPublicExponent() = 0;
+ virtual ::java::math::BigInteger * getPrimeP() = 0;
+ virtual ::java::math::BigInteger * getPrimeQ() = 0;
+ virtual ::java::math::BigInteger * getPrimeExponentP() = 0;
+ virtual ::java::math::BigInteger * getPrimeExponentQ() = 0;
+ virtual ::java::math::BigInteger * getCrtCoefficient() = 0;
+ virtual ::java::math::BigInteger * getPrivateExponent() = 0;
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual ::java::math::BigInteger * getModulus() = 0;
+ static const jlong serialVersionUID = -5682214253527700368LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_RSAPrivateCrtKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/RSAPrivateKey.h b/gcc-4.8/libjava/java/security/interfaces/RSAPrivateKey.h
new file mode 100644
index 000000000..b1e613978
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/RSAPrivateKey.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_RSAPrivateKey__
+#define __java_security_interfaces_RSAPrivateKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class RSAPrivateKey;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::RSAPrivateKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getPrivateExponent() = 0;
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual ::java::math::BigInteger * getModulus() = 0;
+ static const jlong serialVersionUID = 5187144804936595022LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_RSAPrivateKey__
diff --git a/gcc-4.8/libjava/java/security/interfaces/RSAPublicKey.h b/gcc-4.8/libjava/java/security/interfaces/RSAPublicKey.h
new file mode 100644
index 000000000..d2cd7e703
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/interfaces/RSAPublicKey.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_interfaces_RSAPublicKey__
+#define __java_security_interfaces_RSAPublicKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace interfaces
+ {
+ class RSAPublicKey;
+ }
+ }
+ }
+}
+
+class java::security::interfaces::RSAPublicKey : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::math::BigInteger * getPublicExponent() = 0;
+ virtual ::java::lang::String * getAlgorithm() = 0;
+ virtual ::java::lang::String * getFormat() = 0;
+ virtual JArray< jbyte > * getEncoded() = 0;
+ virtual ::java::math::BigInteger * getModulus() = 0;
+ static const jlong serialVersionUID = -8727434096241101194LL;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_interfaces_RSAPublicKey__
diff --git a/gcc-4.8/libjava/java/security/natVMAccessControlState.cc b/gcc-4.8/libjava/java/security/natVMAccessControlState.cc
new file mode 100644
index 000000000..a4c14cdd4
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/natVMAccessControlState.cc
@@ -0,0 +1,32 @@
+// natVMAccessControlState.cc -- Native part of the VMAccessControlState class.
+
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/lang/Thread.h>
+#include <java/security/VMAccessControlState.h>
+
+java::security::VMAccessControlState *
+java::security::VMAccessControlState::getThreadState ()
+{
+ java::lang::Thread *thread = java::lang::Thread::currentThread ();
+ if (thread == NULL)
+ return NULL;
+
+ VMAccessControlState *state =
+ reinterpret_cast<VMAccessControlState *> (thread->accessControlState);
+ if (state == NULL)
+ thread->accessControlState = state = new VMAccessControlState ();
+
+ return state;
+}
diff --git a/gcc-4.8/libjava/java/security/natVMAccessController.cc b/gcc-4.8/libjava/java/security/natVMAccessController.cc
new file mode 100644
index 000000000..9a0ae489e
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/natVMAccessController.cc
@@ -0,0 +1,23 @@
+// natVMAccessController.cc -- Native part of the VMAccessController class.
+
+/* Copyright (C) 2006 Free Software Foundation, Inc.
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-stack.h>
+
+#include <java/security/VMAccessController.h>
+
+jobjectArray
+java::security::VMAccessController::getStack ()
+{
+ return _Jv_StackTrace::GetAccessControlStack ();
+}
diff --git a/gcc-4.8/libjava/java/security/spec/AlgorithmParameterSpec.h b/gcc-4.8/libjava/java/security/spec/AlgorithmParameterSpec.h
new file mode 100644
index 000000000..9fa07b0a3
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/AlgorithmParameterSpec.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_AlgorithmParameterSpec__
+#define __java_security_spec_AlgorithmParameterSpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class AlgorithmParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::AlgorithmParameterSpec : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_spec_AlgorithmParameterSpec__
diff --git a/gcc-4.8/libjava/java/security/spec/DSAParameterSpec.h b/gcc-4.8/libjava/java/security/spec/DSAParameterSpec.h
new file mode 100644
index 000000000..83a2cb8ec
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/DSAParameterSpec.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_DSAParameterSpec__
+#define __java_security_spec_DSAParameterSpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class DSAParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::DSAParameterSpec : public ::java::lang::Object
+{
+
+public:
+ DSAParameterSpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getP();
+ virtual ::java::math::BigInteger * getQ();
+ virtual ::java::math::BigInteger * getG();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p;
+ ::java::math::BigInteger * q;
+ ::java::math::BigInteger * g;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_DSAParameterSpec__
diff --git a/gcc-4.8/libjava/java/security/spec/DSAPrivateKeySpec.h b/gcc-4.8/libjava/java/security/spec/DSAPrivateKeySpec.h
new file mode 100644
index 000000000..fe1cae312
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/DSAPrivateKeySpec.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_DSAPrivateKeySpec__
+#define __java_security_spec_DSAPrivateKeySpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class DSAPrivateKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::DSAPrivateKeySpec : public ::java::lang::Object
+{
+
+public:
+ DSAPrivateKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getX();
+ virtual ::java::math::BigInteger * getP();
+ virtual ::java::math::BigInteger * getQ();
+ virtual ::java::math::BigInteger * getG();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) x;
+ ::java::math::BigInteger * p;
+ ::java::math::BigInteger * q;
+ ::java::math::BigInteger * g;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_DSAPrivateKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/DSAPublicKeySpec.h b/gcc-4.8/libjava/java/security/spec/DSAPublicKeySpec.h
new file mode 100644
index 000000000..aa0cc5c2a
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/DSAPublicKeySpec.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_DSAPublicKeySpec__
+#define __java_security_spec_DSAPublicKeySpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class DSAPublicKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::DSAPublicKeySpec : public ::java::lang::Object
+{
+
+public:
+ DSAPublicKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getY();
+ virtual ::java::math::BigInteger * getP();
+ virtual ::java::math::BigInteger * getQ();
+ virtual ::java::math::BigInteger * getG();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) y;
+ ::java::math::BigInteger * p;
+ ::java::math::BigInteger * q;
+ ::java::math::BigInteger * g;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_DSAPublicKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/EncodedKeySpec.h b/gcc-4.8/libjava/java/security/spec/EncodedKeySpec.h
new file mode 100644
index 000000000..bc913b1e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/EncodedKeySpec.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_EncodedKeySpec__
+#define __java_security_spec_EncodedKeySpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class EncodedKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::EncodedKeySpec : public ::java::lang::Object
+{
+
+public:
+ EncodedKeySpec(JArray< jbyte > *);
+ virtual JArray< jbyte > * getEncoded();
+ virtual ::java::lang::String * getFormat() = 0;
+private:
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) encodedKey;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_EncodedKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/InvalidKeySpecException.h b/gcc-4.8/libjava/java/security/spec/InvalidKeySpecException.h
new file mode 100644
index 000000000..ff2ea69fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/InvalidKeySpecException.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_InvalidKeySpecException__
+#define __java_security_spec_InvalidKeySpecException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class InvalidKeySpecException;
+ }
+ }
+ }
+}
+
+class java::security::spec::InvalidKeySpecException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ InvalidKeySpecException();
+ InvalidKeySpecException(::java::lang::String *);
+ InvalidKeySpecException(::java::lang::String *, ::java::lang::Throwable *);
+ InvalidKeySpecException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 3546139293998810778LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_InvalidKeySpecException__
diff --git a/gcc-4.8/libjava/java/security/spec/InvalidParameterSpecException.h b/gcc-4.8/libjava/java/security/spec/InvalidParameterSpecException.h
new file mode 100644
index 000000000..e80550deb
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/InvalidParameterSpecException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_InvalidParameterSpecException__
+#define __java_security_spec_InvalidParameterSpecException__
+
+#pragma interface
+
+#include <java/security/GeneralSecurityException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class InvalidParameterSpecException;
+ }
+ }
+ }
+}
+
+class java::security::spec::InvalidParameterSpecException : public ::java::security::GeneralSecurityException
+{
+
+public:
+ InvalidParameterSpecException();
+ InvalidParameterSpecException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -970468769593399342LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_InvalidParameterSpecException__
diff --git a/gcc-4.8/libjava/java/security/spec/KeySpec.h b/gcc-4.8/libjava/java/security/spec/KeySpec.h
new file mode 100644
index 000000000..cdb7b40cf
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/KeySpec.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_KeySpec__
+#define __java_security_spec_KeySpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class KeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::KeySpec : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_security_spec_KeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/PKCS8EncodedKeySpec.h b/gcc-4.8/libjava/java/security/spec/PKCS8EncodedKeySpec.h
new file mode 100644
index 000000000..20e7007e1
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/PKCS8EncodedKeySpec.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_PKCS8EncodedKeySpec__
+#define __java_security_spec_PKCS8EncodedKeySpec__
+
+#pragma interface
+
+#include <java/security/spec/EncodedKeySpec.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class PKCS8EncodedKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::PKCS8EncodedKeySpec : public ::java::security::spec::EncodedKeySpec
+{
+
+public:
+ PKCS8EncodedKeySpec(JArray< jbyte > *);
+ virtual JArray< jbyte > * getEncoded();
+ virtual ::java::lang::String * getFormat();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_PKCS8EncodedKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/PSSParameterSpec.h b/gcc-4.8/libjava/java/security/spec/PSSParameterSpec.h
new file mode 100644
index 000000000..01253a2ca
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/PSSParameterSpec.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_PSSParameterSpec__
+#define __java_security_spec_PSSParameterSpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class PSSParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::PSSParameterSpec : public ::java::lang::Object
+{
+
+public:
+ PSSParameterSpec(jint);
+ virtual jint getSaltLength();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) saltLen;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_PSSParameterSpec__
diff --git a/gcc-4.8/libjava/java/security/spec/RSAKeyGenParameterSpec.h b/gcc-4.8/libjava/java/security/spec/RSAKeyGenParameterSpec.h
new file mode 100644
index 000000000..a047dd668
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/RSAKeyGenParameterSpec.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_RSAKeyGenParameterSpec__
+#define __java_security_spec_RSAKeyGenParameterSpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class RSAKeyGenParameterSpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::RSAKeyGenParameterSpec : public ::java::lang::Object
+{
+
+public:
+ RSAKeyGenParameterSpec(jint, ::java::math::BigInteger *);
+ virtual jint getKeysize();
+ virtual ::java::math::BigInteger * getPublicExponent();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) keysize;
+ ::java::math::BigInteger * publicExponent;
+public:
+ static ::java::math::BigInteger * F0;
+ static ::java::math::BigInteger * F4;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_RSAKeyGenParameterSpec__
diff --git a/gcc-4.8/libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h b/gcc-4.8/libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h
new file mode 100644
index 000000000..bebb3d3a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_RSAMultiPrimePrivateCrtKeySpec__
+#define __java_security_spec_RSAMultiPrimePrivateCrtKeySpec__
+
+#pragma interface
+
+#include <java/security/spec/RSAPrivateKeySpec.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class RSAMultiPrimePrivateCrtKeySpec;
+ class RSAOtherPrimeInfo;
+ }
+ }
+ }
+}
+
+class java::security::spec::RSAMultiPrimePrivateCrtKeySpec : public ::java::security::spec::RSAPrivateKeySpec
+{
+
+public:
+ RSAMultiPrimePrivateCrtKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, JArray< ::java::security::spec::RSAOtherPrimeInfo * > *);
+ virtual ::java::math::BigInteger * getPublicExponent();
+ virtual ::java::math::BigInteger * getPrimeP();
+ virtual ::java::math::BigInteger * getPrimeQ();
+ virtual ::java::math::BigInteger * getPrimeExponentP();
+ virtual ::java::math::BigInteger * getPrimeExponentQ();
+ virtual ::java::math::BigInteger * getCrtCoefficient();
+ virtual JArray< ::java::security::spec::RSAOtherPrimeInfo * > * getOtherPrimeInfo();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::security::spec::RSAPrivateKeySpec)))) publicExponent;
+ ::java::math::BigInteger * primeP;
+ ::java::math::BigInteger * primeQ;
+ ::java::math::BigInteger * primeExponentP;
+ ::java::math::BigInteger * primeExponentQ;
+ ::java::math::BigInteger * crtCoefficient;
+ JArray< ::java::security::spec::RSAOtherPrimeInfo * > * otherPrimeInfo;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_RSAMultiPrimePrivateCrtKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/RSAOtherPrimeInfo.h b/gcc-4.8/libjava/java/security/spec/RSAOtherPrimeInfo.h
new file mode 100644
index 000000000..878e3e58e
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/RSAOtherPrimeInfo.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_RSAOtherPrimeInfo__
+#define __java_security_spec_RSAOtherPrimeInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class RSAOtherPrimeInfo;
+ }
+ }
+ }
+}
+
+class java::security::spec::RSAOtherPrimeInfo : public ::java::lang::Object
+{
+
+public:
+ RSAOtherPrimeInfo(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getPrime();
+ virtual ::java::math::BigInteger * getExponent();
+ virtual ::java::math::BigInteger * getCrtCoefficient();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prime;
+ ::java::math::BigInteger * primeExponent;
+ ::java::math::BigInteger * crtCoefficient;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_RSAOtherPrimeInfo__
diff --git a/gcc-4.8/libjava/java/security/spec/RSAPrivateCrtKeySpec.h b/gcc-4.8/libjava/java/security/spec/RSAPrivateCrtKeySpec.h
new file mode 100644
index 000000000..4f25ac678
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/RSAPrivateCrtKeySpec.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_RSAPrivateCrtKeySpec__
+#define __java_security_spec_RSAPrivateCrtKeySpec__
+
+#pragma interface
+
+#include <java/security/spec/RSAPrivateKeySpec.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class RSAPrivateCrtKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::RSAPrivateCrtKeySpec : public ::java::security::spec::RSAPrivateKeySpec
+{
+
+public:
+ RSAPrivateCrtKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getPublicExponent();
+ virtual ::java::math::BigInteger * getPrimeP();
+ virtual ::java::math::BigInteger * getPrimeQ();
+ virtual ::java::math::BigInteger * getPrimeExponentP();
+ virtual ::java::math::BigInteger * getPrimeExponentQ();
+ virtual ::java::math::BigInteger * getCrtCoefficient();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::security::spec::RSAPrivateKeySpec)))) publicExponent;
+ ::java::math::BigInteger * primeP;
+ ::java::math::BigInteger * primeQ;
+ ::java::math::BigInteger * primeExponentP;
+ ::java::math::BigInteger * primeExponentQ;
+ ::java::math::BigInteger * crtCoefficient;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_RSAPrivateCrtKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/RSAPrivateKeySpec.h b/gcc-4.8/libjava/java/security/spec/RSAPrivateKeySpec.h
new file mode 100644
index 000000000..4b0136b45
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/RSAPrivateKeySpec.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_RSAPrivateKeySpec__
+#define __java_security_spec_RSAPrivateKeySpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class RSAPrivateKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::RSAPrivateKeySpec : public ::java::lang::Object
+{
+
+public:
+ RSAPrivateKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getModulus();
+ virtual ::java::math::BigInteger * getPrivateExponent();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) modulus;
+ ::java::math::BigInteger * privateExponent;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_RSAPrivateKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/RSAPublicKeySpec.h b/gcc-4.8/libjava/java/security/spec/RSAPublicKeySpec.h
new file mode 100644
index 000000000..d6f80a316
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/RSAPublicKeySpec.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_RSAPublicKeySpec__
+#define __java_security_spec_RSAPublicKeySpec__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigInteger;
+ }
+ namespace security
+ {
+ namespace spec
+ {
+ class RSAPublicKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::RSAPublicKeySpec : public ::java::lang::Object
+{
+
+public:
+ RSAPublicKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *);
+ virtual ::java::math::BigInteger * getModulus();
+ virtual ::java::math::BigInteger * getPublicExponent();
+private:
+ ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) modulus;
+ ::java::math::BigInteger * publicExponent;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_RSAPublicKeySpec__
diff --git a/gcc-4.8/libjava/java/security/spec/X509EncodedKeySpec.h b/gcc-4.8/libjava/java/security/spec/X509EncodedKeySpec.h
new file mode 100644
index 000000000..426ea1be7
--- /dev/null
+++ b/gcc-4.8/libjava/java/security/spec/X509EncodedKeySpec.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_security_spec_X509EncodedKeySpec__
+#define __java_security_spec_X509EncodedKeySpec__
+
+#pragma interface
+
+#include <java/security/spec/EncodedKeySpec.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace spec
+ {
+ class X509EncodedKeySpec;
+ }
+ }
+ }
+}
+
+class java::security::spec::X509EncodedKeySpec : public ::java::security::spec::EncodedKeySpec
+{
+
+public:
+ X509EncodedKeySpec(JArray< jbyte > *);
+ virtual JArray< jbyte > * getEncoded();
+ virtual ::java::lang::String * getFormat();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_security_spec_X509EncodedKeySpec__
diff --git a/gcc-4.8/libjava/java/sql/Array.h b/gcc-4.8/libjava/java/sql/Array.h
new file mode 100644
index 000000000..34a1e840c
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Array.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Array__
+#define __java_sql_Array__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Array;
+ class ResultSet;
+ }
+ }
+}
+
+class java::sql::Array : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getBaseTypeName() = 0;
+ virtual jint getBaseType() = 0;
+ virtual ::java::lang::Object * getArray() = 0;
+ virtual ::java::lang::Object * getArray(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * getArray(jlong, jint) = 0;
+ virtual ::java::lang::Object * getArray(jlong, jint, ::java::util::Map *) = 0;
+ virtual ::java::sql::ResultSet * getResultSet() = 0;
+ virtual ::java::sql::ResultSet * getResultSet(::java::util::Map *) = 0;
+ virtual ::java::sql::ResultSet * getResultSet(jlong, jint) = 0;
+ virtual ::java::sql::ResultSet * getResultSet(jlong, jint, ::java::util::Map *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Array__
diff --git a/gcc-4.8/libjava/java/sql/BatchUpdateException.h b/gcc-4.8/libjava/java/sql/BatchUpdateException.h
new file mode 100644
index 000000000..b9d28cf88
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/BatchUpdateException.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_BatchUpdateException__
+#define __java_sql_BatchUpdateException__
+
+#pragma interface
+
+#include <java/sql/SQLException.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class BatchUpdateException;
+ }
+ }
+}
+
+class java::sql::BatchUpdateException : public ::java::sql::SQLException
+{
+
+public:
+ BatchUpdateException(::java::lang::String *, ::java::lang::String *, jint, JArray< jint > *);
+ BatchUpdateException(::java::lang::String *, ::java::lang::String *, JArray< jint > *);
+ BatchUpdateException(::java::lang::String *, JArray< jint > *);
+ BatchUpdateException(JArray< jint > *);
+ BatchUpdateException();
+ virtual JArray< jint > * getUpdateCounts();
+public: // actually package-private
+ static const jlong serialVersionUID = 5977529877145521757LL;
+private:
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::sql::SQLException)))) updateCounts;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_BatchUpdateException__
diff --git a/gcc-4.8/libjava/java/sql/Blob.h b/gcc-4.8/libjava/java/sql/Blob.h
new file mode 100644
index 000000000..a1b00c2ed
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Blob.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Blob__
+#define __java_sql_Blob__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Blob;
+ }
+ }
+}
+
+class java::sql::Blob : public ::java::lang::Object
+{
+
+public:
+ virtual jlong length() = 0;
+ virtual JArray< jbyte > * getBytes(jlong, jint) = 0;
+ virtual ::java::io::InputStream * getBinaryStream() = 0;
+ virtual jlong position(JArray< jbyte > *, jlong) = 0;
+ virtual jlong position(::java::sql::Blob *, jlong) = 0;
+ virtual jint setBytes(jlong, JArray< jbyte > *) = 0;
+ virtual jint setBytes(jlong, JArray< jbyte > *, jint, jint) = 0;
+ virtual ::java::io::OutputStream * setBinaryStream(jlong) = 0;
+ virtual void truncate(jlong) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Blob__
diff --git a/gcc-4.8/libjava/java/sql/CallableStatement.h b/gcc-4.8/libjava/java/sql/CallableStatement.h
new file mode 100644
index 000000000..143184e5c
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/CallableStatement.h
@@ -0,0 +1,203 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_CallableStatement__
+#define __java_sql_CallableStatement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ namespace sql
+ {
+ class Array;
+ class Blob;
+ class CallableStatement;
+ class Clob;
+ class Connection;
+ class Date;
+ class ParameterMetaData;
+ class Ref;
+ class ResultSet;
+ class ResultSetMetaData;
+ class SQLWarning;
+ class Time;
+ class Timestamp;
+ }
+ }
+}
+
+class java::sql::CallableStatement : public ::java::lang::Object
+{
+
+public:
+ virtual void registerOutParameter(jint, jint) = 0;
+ virtual void registerOutParameter(jint, jint, jint) = 0;
+ virtual jboolean wasNull() = 0;
+ virtual ::java::lang::String * getString(jint) = 0;
+ virtual jboolean getBoolean(jint) = 0;
+ virtual jbyte getByte(jint) = 0;
+ virtual jshort getShort(jint) = 0;
+ virtual jint getInt(jint) = 0;
+ virtual jlong getLong(jint) = 0;
+ virtual jfloat getFloat(jint) = 0;
+ virtual jdouble getDouble(jint) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(jint, jint) = 0;
+ virtual JArray< jbyte > * getBytes(jint) = 0;
+ virtual ::java::sql::Date * getDate(jint) = 0;
+ virtual ::java::sql::Time * getTime(jint) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(jint) = 0;
+ virtual ::java::lang::Object * getObject(jint) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(jint) = 0;
+ virtual ::java::lang::Object * getObject(jint, ::java::util::Map *) = 0;
+ virtual ::java::sql::Ref * getRef(jint) = 0;
+ virtual ::java::sql::Blob * getBlob(jint) = 0;
+ virtual ::java::sql::Clob * getClob(jint) = 0;
+ virtual ::java::sql::Array * getArray(jint) = 0;
+ virtual ::java::sql::Date * getDate(jint, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Time * getTime(jint, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(jint, ::java::util::Calendar *) = 0;
+ virtual void registerOutParameter(jint, jint, ::java::lang::String *) = 0;
+ virtual void registerOutParameter(::java::lang::String *, jint) = 0;
+ virtual void registerOutParameter(::java::lang::String *, jint, jint) = 0;
+ virtual void registerOutParameter(::java::lang::String *, jint, ::java::lang::String *) = 0;
+ virtual ::java::net::URL * getURL(jint) = 0;
+ virtual void setURL(::java::lang::String *, ::java::net::URL *) = 0;
+ virtual void setNull(::java::lang::String *, jint) = 0;
+ virtual void setBoolean(::java::lang::String *, jboolean) = 0;
+ virtual void setByte(::java::lang::String *, jbyte) = 0;
+ virtual void setShort(::java::lang::String *, jshort) = 0;
+ virtual void setInt(::java::lang::String *, jint) = 0;
+ virtual void setLong(::java::lang::String *, jlong) = 0;
+ virtual void setFloat(::java::lang::String *, jfloat) = 0;
+ virtual void setDouble(::java::lang::String *, jdouble) = 0;
+ virtual void setBigDecimal(::java::lang::String *, ::java::math::BigDecimal *) = 0;
+ virtual void setString(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual void setBytes(::java::lang::String *, JArray< jbyte > *) = 0;
+ virtual void setDate(::java::lang::String *, ::java::sql::Date *) = 0;
+ virtual void setTime(::java::lang::String *, ::java::sql::Time *) = 0;
+ virtual void setTimestamp(::java::lang::String *, ::java::sql::Timestamp *) = 0;
+ virtual void setAsciiStream(::java::lang::String *, ::java::io::InputStream *, jint) = 0;
+ virtual void setBinaryStream(::java::lang::String *, ::java::io::InputStream *, jint) = 0;
+ virtual void setObject(::java::lang::String *, ::java::lang::Object *, jint, jint) = 0;
+ virtual void setObject(::java::lang::String *, ::java::lang::Object *, jint) = 0;
+ virtual void setObject(::java::lang::String *, ::java::lang::Object *) = 0;
+ virtual void setCharacterStream(::java::lang::String *, ::java::io::Reader *, jint) = 0;
+ virtual void setDate(::java::lang::String *, ::java::sql::Date *, ::java::util::Calendar *) = 0;
+ virtual void setTime(::java::lang::String *, ::java::sql::Time *, ::java::util::Calendar *) = 0;
+ virtual void setTimestamp(::java::lang::String *, ::java::sql::Timestamp *, ::java::util::Calendar *) = 0;
+ virtual void setNull(::java::lang::String *, jint, ::java::lang::String *) = 0;
+ virtual ::java::lang::String * getString(::java::lang::String *) = 0;
+ virtual jboolean getBoolean(::java::lang::String *) = 0;
+ virtual jbyte getByte(::java::lang::String *) = 0;
+ virtual jshort getShort(::java::lang::String *) = 0;
+ virtual jint getInt(::java::lang::String *) = 0;
+ virtual jlong getLong(::java::lang::String *) = 0;
+ virtual jfloat getFloat(::java::lang::String *) = 0;
+ virtual jdouble getDouble(::java::lang::String *) = 0;
+ virtual JArray< jbyte > * getBytes(::java::lang::String *) = 0;
+ virtual ::java::sql::Date * getDate(::java::lang::String *) = 0;
+ virtual ::java::sql::Time * getTime(::java::lang::String *) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(::java::lang::String *) = 0;
+ virtual ::java::lang::Object * getObject(::java::lang::String *) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(::java::lang::String *) = 0;
+ virtual ::java::lang::Object * getObject(::java::lang::String *, ::java::util::Map *) = 0;
+ virtual ::java::sql::Ref * getRef(::java::lang::String *) = 0;
+ virtual ::java::sql::Blob * getBlob(::java::lang::String *) = 0;
+ virtual ::java::sql::Clob * getClob(::java::lang::String *) = 0;
+ virtual ::java::sql::Array * getArray(::java::lang::String *) = 0;
+ virtual ::java::sql::Date * getDate(::java::lang::String *, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Time * getTime(::java::lang::String *, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(::java::lang::String *, ::java::util::Calendar *) = 0;
+ virtual ::java::net::URL * getURL(::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * executeQuery() = 0;
+ virtual jint executeUpdate() = 0;
+ virtual void setNull(jint, jint) = 0;
+ virtual void setBoolean(jint, jboolean) = 0;
+ virtual void setByte(jint, jbyte) = 0;
+ virtual void setShort(jint, jshort) = 0;
+ virtual void setInt(jint, jint) = 0;
+ virtual void setLong(jint, jlong) = 0;
+ virtual void setFloat(jint, jfloat) = 0;
+ virtual void setDouble(jint, jdouble) = 0;
+ virtual void setBigDecimal(jint, ::java::math::BigDecimal *) = 0;
+ virtual void setString(jint, ::java::lang::String *) = 0;
+ virtual void setBytes(jint, JArray< jbyte > *) = 0;
+ virtual void setDate(jint, ::java::sql::Date *) = 0;
+ virtual void setTime(jint, ::java::sql::Time *) = 0;
+ virtual void setTimestamp(jint, ::java::sql::Timestamp *) = 0;
+ virtual void setAsciiStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void setUnicodeStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void setBinaryStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void clearParameters() = 0;
+ virtual void setObject(jint, ::java::lang::Object *, jint, jint) = 0;
+ virtual void setObject(jint, ::java::lang::Object *, jint) = 0;
+ virtual void setObject(jint, ::java::lang::Object *) = 0;
+ virtual jboolean execute() = 0;
+ virtual void addBatch() = 0;
+ virtual void setCharacterStream(jint, ::java::io::Reader *, jint) = 0;
+ virtual void setRef(jint, ::java::sql::Ref *) = 0;
+ virtual void setBlob(jint, ::java::sql::Blob *) = 0;
+ virtual void setClob(jint, ::java::sql::Clob *) = 0;
+ virtual void setArray(jint, ::java::sql::Array *) = 0;
+ virtual ::java::sql::ResultSetMetaData * getMetaData() = 0;
+ virtual void setDate(jint, ::java::sql::Date *, ::java::util::Calendar *) = 0;
+ virtual void setTime(jint, ::java::sql::Time *, ::java::util::Calendar *) = 0;
+ virtual void setTimestamp(jint, ::java::sql::Timestamp *, ::java::util::Calendar *) = 0;
+ virtual void setNull(jint, jint, ::java::lang::String *) = 0;
+ virtual void setURL(jint, ::java::net::URL *) = 0;
+ virtual ::java::sql::ParameterMetaData * getParameterMetaData() = 0;
+ virtual ::java::sql::ResultSet * executeQuery(::java::lang::String *) = 0;
+ virtual jint executeUpdate(::java::lang::String *) = 0;
+ virtual void close() = 0;
+ virtual jint getMaxFieldSize() = 0;
+ virtual void setMaxFieldSize(jint) = 0;
+ virtual jint getMaxRows() = 0;
+ virtual void setMaxRows(jint) = 0;
+ virtual void setEscapeProcessing(jboolean) = 0;
+ virtual jint getQueryTimeout() = 0;
+ virtual void setQueryTimeout(jint) = 0;
+ virtual void cancel() = 0;
+ virtual ::java::sql::SQLWarning * getWarnings() = 0;
+ virtual void clearWarnings() = 0;
+ virtual void setCursorName(::java::lang::String *) = 0;
+ virtual jboolean execute(::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getResultSet() = 0;
+ virtual jint getUpdateCount() = 0;
+ virtual jboolean getMoreResults() = 0;
+ virtual void setFetchDirection(jint) = 0;
+ virtual jint getFetchDirection() = 0;
+ virtual void setFetchSize(jint) = 0;
+ virtual jint getFetchSize() = 0;
+ virtual jint getResultSetConcurrency() = 0;
+ virtual jint getResultSetType() = 0;
+ virtual void addBatch(::java::lang::String *) = 0;
+ virtual void clearBatch() = 0;
+ virtual JArray< jint > * executeBatch() = 0;
+ virtual ::java::sql::Connection * getConnection() = 0;
+ virtual jboolean getMoreResults(jint) = 0;
+ virtual ::java::sql::ResultSet * getGeneratedKeys() = 0;
+ virtual jint executeUpdate(::java::lang::String *, jint) = 0;
+ virtual jint executeUpdate(::java::lang::String *, JArray< jint > *) = 0;
+ virtual jint executeUpdate(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual jboolean execute(::java::lang::String *, jint) = 0;
+ virtual jboolean execute(::java::lang::String *, JArray< jint > *) = 0;
+ virtual jboolean execute(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual jint getResultSetHoldability() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_CallableStatement__
diff --git a/gcc-4.8/libjava/java/sql/Clob.h b/gcc-4.8/libjava/java/sql/Clob.h
new file mode 100644
index 000000000..a402a0308
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Clob.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Clob__
+#define __java_sql_Clob__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Clob;
+ }
+ }
+}
+
+class java::sql::Clob : public ::java::lang::Object
+{
+
+public:
+ virtual jlong length() = 0;
+ virtual ::java::lang::String * getSubString(jlong, jint) = 0;
+ virtual ::java::io::Reader * getCharacterStream() = 0;
+ virtual ::java::io::InputStream * getAsciiStream() = 0;
+ virtual jlong position(::java::lang::String *, jlong) = 0;
+ virtual jlong position(::java::sql::Clob *, jlong) = 0;
+ virtual jint setString(jlong, ::java::lang::String *) = 0;
+ virtual jint setString(jlong, ::java::lang::String *, jint, jint) = 0;
+ virtual ::java::io::OutputStream * setAsciiStream(jlong) = 0;
+ virtual ::java::io::Writer * setCharacterStream(jlong) = 0;
+ virtual void truncate(jlong) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Clob__
diff --git a/gcc-4.8/libjava/java/sql/Connection.h b/gcc-4.8/libjava/java/sql/Connection.h
new file mode 100644
index 000000000..3ce236fc8
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Connection.h
@@ -0,0 +1,77 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Connection__
+#define __java_sql_Connection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class CallableStatement;
+ class Connection;
+ class DatabaseMetaData;
+ class PreparedStatement;
+ class SQLWarning;
+ class Savepoint;
+ class Statement;
+ }
+ }
+}
+
+class java::sql::Connection : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::sql::Statement * createStatement() = 0;
+ virtual ::java::sql::PreparedStatement * prepareStatement(::java::lang::String *) = 0;
+ virtual ::java::sql::CallableStatement * prepareCall(::java::lang::String *) = 0;
+ virtual ::java::lang::String * nativeSQL(::java::lang::String *) = 0;
+ virtual void setAutoCommit(jboolean) = 0;
+ virtual jboolean getAutoCommit() = 0;
+ virtual void commit() = 0;
+ virtual void rollback() = 0;
+ virtual void close() = 0;
+ virtual jboolean isClosed() = 0;
+ virtual ::java::sql::DatabaseMetaData * getMetaData() = 0;
+ virtual void setReadOnly(jboolean) = 0;
+ virtual jboolean isReadOnly() = 0;
+ virtual void setCatalog(::java::lang::String *) = 0;
+ virtual ::java::lang::String * getCatalog() = 0;
+ virtual void setTransactionIsolation(jint) = 0;
+ virtual jint getTransactionIsolation() = 0;
+ virtual ::java::sql::SQLWarning * getWarnings() = 0;
+ virtual void clearWarnings() = 0;
+ virtual ::java::sql::Statement * createStatement(jint, jint) = 0;
+ virtual ::java::sql::PreparedStatement * prepareStatement(::java::lang::String *, jint, jint) = 0;
+ virtual ::java::sql::CallableStatement * prepareCall(::java::lang::String *, jint, jint) = 0;
+ virtual ::java::util::Map * getTypeMap() = 0;
+ virtual void setTypeMap(::java::util::Map *) = 0;
+ virtual void setHoldability(jint) = 0;
+ virtual jint getHoldability() = 0;
+ virtual ::java::sql::Savepoint * setSavepoint() = 0;
+ virtual ::java::sql::Savepoint * setSavepoint(::java::lang::String *) = 0;
+ virtual void rollback(::java::sql::Savepoint *) = 0;
+ virtual void releaseSavepoint(::java::sql::Savepoint *) = 0;
+ virtual ::java::sql::Statement * createStatement(jint, jint, jint) = 0;
+ virtual ::java::sql::PreparedStatement * prepareStatement(::java::lang::String *, jint, jint, jint) = 0;
+ virtual ::java::sql::CallableStatement * prepareCall(::java::lang::String *, jint, jint, jint) = 0;
+ virtual ::java::sql::PreparedStatement * prepareStatement(::java::lang::String *, jint) = 0;
+ virtual ::java::sql::PreparedStatement * prepareStatement(::java::lang::String *, JArray< jint > *) = 0;
+ virtual ::java::sql::PreparedStatement * prepareStatement(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ static const jint TRANSACTION_NONE = 0;
+ static const jint TRANSACTION_READ_UNCOMMITTED = 1;
+ static const jint TRANSACTION_READ_COMMITTED = 2;
+ static const jint TRANSACTION_REPEATABLE_READ = 4;
+ static const jint TRANSACTION_SERIALIZABLE = 8;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Connection__
diff --git a/gcc-4.8/libjava/java/sql/DataTruncation.h b/gcc-4.8/libjava/java/sql/DataTruncation.h
new file mode 100644
index 000000000..584c65bcf
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/DataTruncation.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_DataTruncation__
+#define __java_sql_DataTruncation__
+
+#pragma interface
+
+#include <java/sql/SQLWarning.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class DataTruncation;
+ }
+ }
+}
+
+class java::sql::DataTruncation : public ::java::sql::SQLWarning
+{
+
+public:
+ DataTruncation(jint, jboolean, jboolean, jint, jint);
+ virtual jint getIndex();
+ virtual jboolean getParameter();
+ virtual jboolean getRead();
+ virtual jint getDataSize();
+ virtual jint getTransferSize();
+public: // actually package-private
+ static const jlong serialVersionUID = 6464298989504059473LL;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::sql::SQLWarning)))) dataSize;
+ jint index;
+ jboolean parameter;
+ jboolean read;
+ jint transferSize;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_DataTruncation__
diff --git a/gcc-4.8/libjava/java/sql/DatabaseMetaData.h b/gcc-4.8/libjava/java/sql/DatabaseMetaData.h
new file mode 100644
index 000000000..0d1feb748
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/DatabaseMetaData.h
@@ -0,0 +1,245 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_DatabaseMetaData__
+#define __java_sql_DatabaseMetaData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Connection;
+ class DatabaseMetaData;
+ class ResultSet;
+ }
+ }
+}
+
+class java::sql::DatabaseMetaData : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean allProceduresAreCallable() = 0;
+ virtual jboolean allTablesAreSelectable() = 0;
+ virtual ::java::lang::String * getURL() = 0;
+ virtual ::java::lang::String * getUserName() = 0;
+ virtual jboolean isReadOnly() = 0;
+ virtual jboolean nullsAreSortedHigh() = 0;
+ virtual jboolean nullsAreSortedLow() = 0;
+ virtual jboolean nullsAreSortedAtStart() = 0;
+ virtual jboolean nullsAreSortedAtEnd() = 0;
+ virtual ::java::lang::String * getDatabaseProductName() = 0;
+ virtual ::java::lang::String * getDatabaseProductVersion() = 0;
+ virtual ::java::lang::String * getDriverName() = 0;
+ virtual ::java::lang::String * getDriverVersion() = 0;
+ virtual jint getDriverMajorVersion() = 0;
+ virtual jint getDriverMinorVersion() = 0;
+ virtual jboolean usesLocalFiles() = 0;
+ virtual jboolean usesLocalFilePerTable() = 0;
+ virtual jboolean supportsMixedCaseIdentifiers() = 0;
+ virtual jboolean storesUpperCaseIdentifiers() = 0;
+ virtual jboolean storesLowerCaseIdentifiers() = 0;
+ virtual jboolean storesMixedCaseIdentifiers() = 0;
+ virtual jboolean supportsMixedCaseQuotedIdentifiers() = 0;
+ virtual jboolean storesUpperCaseQuotedIdentifiers() = 0;
+ virtual jboolean storesLowerCaseQuotedIdentifiers() = 0;
+ virtual jboolean storesMixedCaseQuotedIdentifiers() = 0;
+ virtual ::java::lang::String * getIdentifierQuoteString() = 0;
+ virtual ::java::lang::String * getSQLKeywords() = 0;
+ virtual ::java::lang::String * getNumericFunctions() = 0;
+ virtual ::java::lang::String * getStringFunctions() = 0;
+ virtual ::java::lang::String * getSystemFunctions() = 0;
+ virtual ::java::lang::String * getTimeDateFunctions() = 0;
+ virtual ::java::lang::String * getSearchStringEscape() = 0;
+ virtual ::java::lang::String * getExtraNameCharacters() = 0;
+ virtual jboolean supportsAlterTableWithAddColumn() = 0;
+ virtual jboolean supportsAlterTableWithDropColumn() = 0;
+ virtual jboolean supportsColumnAliasing() = 0;
+ virtual jboolean nullPlusNonNullIsNull() = 0;
+ virtual jboolean supportsConvert() = 0;
+ virtual jboolean supportsConvert(jint, jint) = 0;
+ virtual jboolean supportsTableCorrelationNames() = 0;
+ virtual jboolean supportsDifferentTableCorrelationNames() = 0;
+ virtual jboolean supportsExpressionsInOrderBy() = 0;
+ virtual jboolean supportsOrderByUnrelated() = 0;
+ virtual jboolean supportsGroupBy() = 0;
+ virtual jboolean supportsGroupByUnrelated() = 0;
+ virtual jboolean supportsGroupByBeyondSelect() = 0;
+ virtual jboolean supportsLikeEscapeClause() = 0;
+ virtual jboolean supportsMultipleResultSets() = 0;
+ virtual jboolean supportsMultipleTransactions() = 0;
+ virtual jboolean supportsNonNullableColumns() = 0;
+ virtual jboolean supportsMinimumSQLGrammar() = 0;
+ virtual jboolean supportsCoreSQLGrammar() = 0;
+ virtual jboolean supportsExtendedSQLGrammar() = 0;
+ virtual jboolean supportsANSI92EntryLevelSQL() = 0;
+ virtual jboolean supportsANSI92IntermediateSQL() = 0;
+ virtual jboolean supportsANSI92FullSQL() = 0;
+ virtual jboolean supportsIntegrityEnhancementFacility() = 0;
+ virtual jboolean supportsOuterJoins() = 0;
+ virtual jboolean supportsFullOuterJoins() = 0;
+ virtual jboolean supportsLimitedOuterJoins() = 0;
+ virtual ::java::lang::String * getSchemaTerm() = 0;
+ virtual ::java::lang::String * getProcedureTerm() = 0;
+ virtual ::java::lang::String * getCatalogTerm() = 0;
+ virtual jboolean isCatalogAtStart() = 0;
+ virtual ::java::lang::String * getCatalogSeparator() = 0;
+ virtual jboolean supportsSchemasInDataManipulation() = 0;
+ virtual jboolean supportsSchemasInProcedureCalls() = 0;
+ virtual jboolean supportsSchemasInTableDefinitions() = 0;
+ virtual jboolean supportsSchemasInIndexDefinitions() = 0;
+ virtual jboolean supportsSchemasInPrivilegeDefinitions() = 0;
+ virtual jboolean supportsCatalogsInDataManipulation() = 0;
+ virtual jboolean supportsCatalogsInProcedureCalls() = 0;
+ virtual jboolean supportsCatalogsInTableDefinitions() = 0;
+ virtual jboolean supportsCatalogsInIndexDefinitions() = 0;
+ virtual jboolean supportsCatalogsInPrivilegeDefinitions() = 0;
+ virtual jboolean supportsPositionedDelete() = 0;
+ virtual jboolean supportsPositionedUpdate() = 0;
+ virtual jboolean supportsSelectForUpdate() = 0;
+ virtual jboolean supportsStoredProcedures() = 0;
+ virtual jboolean supportsSubqueriesInComparisons() = 0;
+ virtual jboolean supportsSubqueriesInExists() = 0;
+ virtual jboolean supportsSubqueriesInIns() = 0;
+ virtual jboolean supportsSubqueriesInQuantifieds() = 0;
+ virtual jboolean supportsCorrelatedSubqueries() = 0;
+ virtual jboolean supportsUnion() = 0;
+ virtual jboolean supportsUnionAll() = 0;
+ virtual jboolean supportsOpenCursorsAcrossCommit() = 0;
+ virtual jboolean supportsOpenCursorsAcrossRollback() = 0;
+ virtual jboolean supportsOpenStatementsAcrossCommit() = 0;
+ virtual jboolean supportsOpenStatementsAcrossRollback() = 0;
+ virtual jint getMaxBinaryLiteralLength() = 0;
+ virtual jint getMaxCharLiteralLength() = 0;
+ virtual jint getMaxColumnNameLength() = 0;
+ virtual jint getMaxColumnsInGroupBy() = 0;
+ virtual jint getMaxColumnsInIndex() = 0;
+ virtual jint getMaxColumnsInOrderBy() = 0;
+ virtual jint getMaxColumnsInSelect() = 0;
+ virtual jint getMaxColumnsInTable() = 0;
+ virtual jint getMaxConnections() = 0;
+ virtual jint getMaxCursorNameLength() = 0;
+ virtual jint getMaxIndexLength() = 0;
+ virtual jint getMaxSchemaNameLength() = 0;
+ virtual jint getMaxProcedureNameLength() = 0;
+ virtual jint getMaxCatalogNameLength() = 0;
+ virtual jint getMaxRowSize() = 0;
+ virtual jboolean doesMaxRowSizeIncludeBlobs() = 0;
+ virtual jint getMaxStatementLength() = 0;
+ virtual jint getMaxStatements() = 0;
+ virtual jint getMaxTableNameLength() = 0;
+ virtual jint getMaxTablesInSelect() = 0;
+ virtual jint getMaxUserNameLength() = 0;
+ virtual jint getDefaultTransactionIsolation() = 0;
+ virtual jboolean supportsTransactions() = 0;
+ virtual jboolean supportsTransactionIsolationLevel(jint) = 0;
+ virtual jboolean supportsDataDefinitionAndDataManipulationTransactions() = 0;
+ virtual jboolean supportsDataManipulationTransactionsOnly() = 0;
+ virtual jboolean dataDefinitionCausesTransactionCommit() = 0;
+ virtual jboolean dataDefinitionIgnoredInTransactions() = 0;
+ virtual ::java::sql::ResultSet * getProcedures(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getProcedureColumns(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getTables(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual ::java::sql::ResultSet * getSchemas() = 0;
+ virtual ::java::sql::ResultSet * getCatalogs() = 0;
+ virtual ::java::sql::ResultSet * getTableTypes() = 0;
+ virtual ::java::sql::ResultSet * getColumns(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getColumnPrivileges(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getTablePrivileges(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getBestRowIdentifier(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint, jboolean) = 0;
+ virtual ::java::sql::ResultSet * getVersionColumns(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getPrimaryKeys(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getImportedKeys(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getExportedKeys(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getCrossReference(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getTypeInfo() = 0;
+ virtual ::java::sql::ResultSet * getIndexInfo(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean) = 0;
+ virtual jboolean supportsResultSetType(jint) = 0;
+ virtual jboolean supportsResultSetConcurrency(jint, jint) = 0;
+ virtual jboolean ownUpdatesAreVisible(jint) = 0;
+ virtual jboolean ownDeletesAreVisible(jint) = 0;
+ virtual jboolean ownInsertsAreVisible(jint) = 0;
+ virtual jboolean othersUpdatesAreVisible(jint) = 0;
+ virtual jboolean othersDeletesAreVisible(jint) = 0;
+ virtual jboolean othersInsertsAreVisible(jint) = 0;
+ virtual jboolean updatesAreDetected(jint) = 0;
+ virtual jboolean deletesAreDetected(jint) = 0;
+ virtual jboolean insertsAreDetected(jint) = 0;
+ virtual jboolean supportsBatchUpdates() = 0;
+ virtual ::java::sql::ResultSet * getUDTs(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< jint > *) = 0;
+ virtual ::java::sql::Connection * getConnection() = 0;
+ virtual jboolean supportsSavepoints() = 0;
+ virtual jboolean supportsNamedParameters() = 0;
+ virtual jboolean supportsMultipleOpenResults() = 0;
+ virtual jboolean supportsGetGeneratedKeys() = 0;
+ virtual ::java::sql::ResultSet * getSuperTypes(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getSuperTables(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getAttributes(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0;
+ virtual jboolean supportsResultSetHoldability(jint) = 0;
+ virtual jint getResultSetHoldability() = 0;
+ virtual jint getDatabaseMajorVersion() = 0;
+ virtual jint getDatabaseMinorVersion() = 0;
+ virtual jint getJDBCMajorVersion() = 0;
+ virtual jint getJDBCMinorVersion() = 0;
+ virtual jint getSQLStateType() = 0;
+ virtual jboolean locatorsUpdateCopy() = 0;
+ virtual jboolean supportsStatementPooling() = 0;
+ static const jint procedureResultUnknown = 0;
+ static const jint procedureNoResult = 1;
+ static const jint procedureReturnsResult = 2;
+ static const jint procedureColumnUnknown = 0;
+ static const jint procedureColumnIn = 1;
+ static const jint procedureColumnInOut = 2;
+ static const jint procedureColumnOut = 4;
+ static const jint procedureColumnReturn = 5;
+ static const jint procedureColumnResult = 3;
+ static const jint procedureNoNulls = 0;
+ static const jint procedureNullable = 1;
+ static const jint procedureNullableUnknown = 2;
+ static const jint columnNoNulls = 0;
+ static const jint columnNullable = 1;
+ static const jint columnNullableUnknown = 2;
+ static const jint bestRowTemporary = 0;
+ static const jint bestRowTransaction = 1;
+ static const jint bestRowSession = 2;
+ static const jint bestRowUnknown = 0;
+ static const jint bestRowNotPseudo = 1;
+ static const jint bestRowPseudo = 2;
+ static const jint versionColumnUnknown = 0;
+ static const jint versionColumnNotPseudo = 1;
+ static const jint versionColumnPseudo = 2;
+ static const jint importedKeyCascade = 0;
+ static const jint importedKeyRestrict = 1;
+ static const jint importedKeySetNull = 2;
+ static const jint importedKeyNoAction = 3;
+ static const jint importedKeySetDefault = 4;
+ static const jint importedKeyInitiallyDeferred = 5;
+ static const jint importedKeyInitiallyImmediate = 6;
+ static const jint importedKeyNotDeferrable = 7;
+ static const jint typeNoNulls = 0;
+ static const jint typeNullable = 1;
+ static const jint typeNullableUnknown = 2;
+ static const jint typePredNone = 0;
+ static const jint typePredChar = 1;
+ static const jint typePredBasic = 2;
+ static const jint typeSearchable = 3;
+ static const jshort tableIndexStatistic = 0;
+ static const jshort tableIndexClustered = 1;
+ static const jshort tableIndexHashed = 2;
+ static const jshort tableIndexOther = 3;
+ static const jshort attributeNoNulls = 0;
+ static const jshort attributeNullable = 1;
+ static const jshort attributeNullableUnknown = 2;
+ static const jint sqlStateXOpen = 1;
+ static const jint sqlStateSQL99 = 2;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_DatabaseMetaData__
diff --git a/gcc-4.8/libjava/java/sql/Date.h b/gcc-4.8/libjava/java/sql/Date.h
new file mode 100644
index 000000000..8a7939b31
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Date.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Date__
+#define __java_sql_Date__
+
+#pragma interface
+
+#include <java/util/Date.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Date;
+ }
+ namespace text
+ {
+ class SimpleDateFormat;
+ }
+ }
+}
+
+class java::sql::Date : public ::java::util::Date
+{
+
+public:
+ Date(jint, jint, jint);
+ Date(jlong);
+ virtual jint getHours();
+ virtual jint getMinutes();
+ virtual jint getSeconds();
+ virtual void setHours(jint);
+ virtual void setMinutes(jint);
+ virtual void setSeconds(jint);
+ static ::java::sql::Date * valueOf(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = 1511598038487230103LL;
+private:
+ static ::java::text::SimpleDateFormat * sdf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_Date__
diff --git a/gcc-4.8/libjava/java/sql/Driver.h b/gcc-4.8/libjava/java/sql/Driver.h
new file mode 100644
index 000000000..f9800b060
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Driver.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Driver__
+#define __java_sql_Driver__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Connection;
+ class Driver;
+ class DriverPropertyInfo;
+ }
+ }
+}
+
+class java::sql::Driver : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::sql::Connection * connect(::java::lang::String *, ::java::util::Properties *) = 0;
+ virtual jboolean acceptsURL(::java::lang::String *) = 0;
+ virtual JArray< ::java::sql::DriverPropertyInfo * > * getPropertyInfo(::java::lang::String *, ::java::util::Properties *) = 0;
+ virtual jint getMajorVersion() = 0;
+ virtual jint getMinorVersion() = 0;
+ virtual jboolean jdbcCompliant() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Driver__
diff --git a/gcc-4.8/libjava/java/sql/DriverManager.h b/gcc-4.8/libjava/java/sql/DriverManager.h
new file mode 100644
index 000000000..f9d87eabe
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/DriverManager.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_DriverManager__
+#define __java_sql_DriverManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Connection;
+ class Driver;
+ class DriverManager;
+ }
+ }
+}
+
+class java::sql::DriverManager : public ::java::lang::Object
+{
+
+ DriverManager();
+public:
+ static ::java::io::PrintWriter * getLogWriter();
+ static void setLogWriter(::java::io::PrintWriter *);
+ static ::java::sql::Connection * getConnection(::java::lang::String *, ::java::util::Properties *);
+ static ::java::sql::Connection * getConnection(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ static ::java::sql::Connection * getConnection(::java::lang::String *);
+ static ::java::sql::Driver * getDriver(::java::lang::String *);
+ static void registerDriver(::java::sql::Driver *);
+ static void deregisterDriver(::java::sql::Driver *);
+ static ::java::util::Enumeration * getDrivers();
+ static void setLoginTimeout(jint);
+ static jint getLoginTimeout();
+ static void setLogStream(::java::io::PrintStream *);
+ static ::java::io::PrintStream * getLogStream();
+ static void println(::java::lang::String *);
+private:
+ static ::java::io::PrintStream * log_stream;
+ static ::java::io::PrintWriter * log_writer;
+ static jint login_timeout;
+ static ::java::util::Vector * drivers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_DriverManager__
diff --git a/gcc-4.8/libjava/java/sql/DriverPropertyInfo.h b/gcc-4.8/libjava/java/sql/DriverPropertyInfo.h
new file mode 100644
index 000000000..46e21af13
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/DriverPropertyInfo.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_DriverPropertyInfo__
+#define __java_sql_DriverPropertyInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class DriverPropertyInfo;
+ }
+ }
+}
+
+class java::sql::DriverPropertyInfo : public ::java::lang::Object
+{
+
+public:
+ DriverPropertyInfo(::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::lang::String * description;
+ jboolean required;
+ ::java::lang::String * value;
+ JArray< ::java::lang::String * > * choices;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_DriverPropertyInfo__
diff --git a/gcc-4.8/libjava/java/sql/ParameterMetaData.h b/gcc-4.8/libjava/java/sql/ParameterMetaData.h
new file mode 100644
index 000000000..a377668ea
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/ParameterMetaData.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_ParameterMetaData__
+#define __java_sql_ParameterMetaData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class ParameterMetaData;
+ }
+ }
+}
+
+class java::sql::ParameterMetaData : public ::java::lang::Object
+{
+
+public:
+ virtual jint getParameterCount() = 0;
+ virtual jint isNullable(jint) = 0;
+ virtual jboolean isSigned(jint) = 0;
+ virtual jint getPrecision(jint) = 0;
+ virtual jint getScale(jint) = 0;
+ virtual jint getParameterType(jint) = 0;
+ virtual ::java::lang::String * getParameterTypeName(jint) = 0;
+ virtual ::java::lang::String * getParameterClassName(jint) = 0;
+ virtual jint getParameterMode(jint) = 0;
+ static const jint parameterNoNulls = 0;
+ static const jint parameterNullable = 1;
+ static const jint parameterNullableUnknown = 2;
+ static const jint parameterModeUnknown = 0;
+ static const jint parameterModeIn = 1;
+ static const jint parameterModeInOut = 2;
+ static const jint parameterModeOut = 4;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_ParameterMetaData__
diff --git a/gcc-4.8/libjava/java/sql/PreparedStatement.h b/gcc-4.8/libjava/java/sql/PreparedStatement.h
new file mode 100644
index 000000000..dcb2e5dea
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/PreparedStatement.h
@@ -0,0 +1,124 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_PreparedStatement__
+#define __java_sql_PreparedStatement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ namespace sql
+ {
+ class Array;
+ class Blob;
+ class Clob;
+ class Connection;
+ class Date;
+ class ParameterMetaData;
+ class PreparedStatement;
+ class Ref;
+ class ResultSet;
+ class ResultSetMetaData;
+ class SQLWarning;
+ class Time;
+ class Timestamp;
+ }
+ }
+}
+
+class java::sql::PreparedStatement : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::sql::ResultSet * executeQuery() = 0;
+ virtual jint executeUpdate() = 0;
+ virtual void setNull(jint, jint) = 0;
+ virtual void setBoolean(jint, jboolean) = 0;
+ virtual void setByte(jint, jbyte) = 0;
+ virtual void setShort(jint, jshort) = 0;
+ virtual void setInt(jint, jint) = 0;
+ virtual void setLong(jint, jlong) = 0;
+ virtual void setFloat(jint, jfloat) = 0;
+ virtual void setDouble(jint, jdouble) = 0;
+ virtual void setBigDecimal(jint, ::java::math::BigDecimal *) = 0;
+ virtual void setString(jint, ::java::lang::String *) = 0;
+ virtual void setBytes(jint, JArray< jbyte > *) = 0;
+ virtual void setDate(jint, ::java::sql::Date *) = 0;
+ virtual void setTime(jint, ::java::sql::Time *) = 0;
+ virtual void setTimestamp(jint, ::java::sql::Timestamp *) = 0;
+ virtual void setAsciiStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void setUnicodeStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void setBinaryStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void clearParameters() = 0;
+ virtual void setObject(jint, ::java::lang::Object *, jint, jint) = 0;
+ virtual void setObject(jint, ::java::lang::Object *, jint) = 0;
+ virtual void setObject(jint, ::java::lang::Object *) = 0;
+ virtual jboolean execute() = 0;
+ virtual void addBatch() = 0;
+ virtual void setCharacterStream(jint, ::java::io::Reader *, jint) = 0;
+ virtual void setRef(jint, ::java::sql::Ref *) = 0;
+ virtual void setBlob(jint, ::java::sql::Blob *) = 0;
+ virtual void setClob(jint, ::java::sql::Clob *) = 0;
+ virtual void setArray(jint, ::java::sql::Array *) = 0;
+ virtual ::java::sql::ResultSetMetaData * getMetaData() = 0;
+ virtual void setDate(jint, ::java::sql::Date *, ::java::util::Calendar *) = 0;
+ virtual void setTime(jint, ::java::sql::Time *, ::java::util::Calendar *) = 0;
+ virtual void setTimestamp(jint, ::java::sql::Timestamp *, ::java::util::Calendar *) = 0;
+ virtual void setNull(jint, jint, ::java::lang::String *) = 0;
+ virtual void setURL(jint, ::java::net::URL *) = 0;
+ virtual ::java::sql::ParameterMetaData * getParameterMetaData() = 0;
+ virtual ::java::sql::ResultSet * executeQuery(::java::lang::String *) = 0;
+ virtual jint executeUpdate(::java::lang::String *) = 0;
+ virtual void close() = 0;
+ virtual jint getMaxFieldSize() = 0;
+ virtual void setMaxFieldSize(jint) = 0;
+ virtual jint getMaxRows() = 0;
+ virtual void setMaxRows(jint) = 0;
+ virtual void setEscapeProcessing(jboolean) = 0;
+ virtual jint getQueryTimeout() = 0;
+ virtual void setQueryTimeout(jint) = 0;
+ virtual void cancel() = 0;
+ virtual ::java::sql::SQLWarning * getWarnings() = 0;
+ virtual void clearWarnings() = 0;
+ virtual void setCursorName(::java::lang::String *) = 0;
+ virtual jboolean execute(::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getResultSet() = 0;
+ virtual jint getUpdateCount() = 0;
+ virtual jboolean getMoreResults() = 0;
+ virtual void setFetchDirection(jint) = 0;
+ virtual jint getFetchDirection() = 0;
+ virtual void setFetchSize(jint) = 0;
+ virtual jint getFetchSize() = 0;
+ virtual jint getResultSetConcurrency() = 0;
+ virtual jint getResultSetType() = 0;
+ virtual void addBatch(::java::lang::String *) = 0;
+ virtual void clearBatch() = 0;
+ virtual JArray< jint > * executeBatch() = 0;
+ virtual ::java::sql::Connection * getConnection() = 0;
+ virtual jboolean getMoreResults(jint) = 0;
+ virtual ::java::sql::ResultSet * getGeneratedKeys() = 0;
+ virtual jint executeUpdate(::java::lang::String *, jint) = 0;
+ virtual jint executeUpdate(::java::lang::String *, JArray< jint > *) = 0;
+ virtual jint executeUpdate(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual jboolean execute(::java::lang::String *, jint) = 0;
+ virtual jboolean execute(::java::lang::String *, JArray< jint > *) = 0;
+ virtual jboolean execute(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual jint getResultSetHoldability() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_PreparedStatement__
diff --git a/gcc-4.8/libjava/java/sql/Ref.h b/gcc-4.8/libjava/java/sql/Ref.h
new file mode 100644
index 000000000..79cfc9a9c
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Ref.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Ref__
+#define __java_sql_Ref__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Ref;
+ }
+ }
+}
+
+class java::sql::Ref : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getBaseTypeName() = 0;
+ virtual ::java::lang::Object * getObject(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * getObject() = 0;
+ virtual void setObject(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Ref__
diff --git a/gcc-4.8/libjava/java/sql/ResultSet.h b/gcc-4.8/libjava/java/sql/ResultSet.h
new file mode 100644
index 000000000..969c0ecc3
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/ResultSet.h
@@ -0,0 +1,197 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_ResultSet__
+#define __java_sql_ResultSet__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ namespace sql
+ {
+ class Array;
+ class Blob;
+ class Clob;
+ class Date;
+ class Ref;
+ class ResultSet;
+ class ResultSetMetaData;
+ class SQLWarning;
+ class Statement;
+ class Time;
+ class Timestamp;
+ }
+ }
+}
+
+class java::sql::ResultSet : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean next() = 0;
+ virtual void close() = 0;
+ virtual jboolean wasNull() = 0;
+ virtual ::java::lang::String * getString(jint) = 0;
+ virtual jboolean getBoolean(jint) = 0;
+ virtual jbyte getByte(jint) = 0;
+ virtual jshort getShort(jint) = 0;
+ virtual jint getInt(jint) = 0;
+ virtual jlong getLong(jint) = 0;
+ virtual jfloat getFloat(jint) = 0;
+ virtual jdouble getDouble(jint) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(jint, jint) = 0;
+ virtual JArray< jbyte > * getBytes(jint) = 0;
+ virtual ::java::sql::Date * getDate(jint) = 0;
+ virtual ::java::sql::Time * getTime(jint) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(jint) = 0;
+ virtual ::java::io::InputStream * getAsciiStream(jint) = 0;
+ virtual ::java::io::InputStream * getUnicodeStream(jint) = 0;
+ virtual ::java::io::InputStream * getBinaryStream(jint) = 0;
+ virtual ::java::lang::String * getString(::java::lang::String *) = 0;
+ virtual jboolean getBoolean(::java::lang::String *) = 0;
+ virtual jbyte getByte(::java::lang::String *) = 0;
+ virtual jshort getShort(::java::lang::String *) = 0;
+ virtual jint getInt(::java::lang::String *) = 0;
+ virtual jlong getLong(::java::lang::String *) = 0;
+ virtual jfloat getFloat(::java::lang::String *) = 0;
+ virtual jdouble getDouble(::java::lang::String *) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(::java::lang::String *, jint) = 0;
+ virtual JArray< jbyte > * getBytes(::java::lang::String *) = 0;
+ virtual ::java::sql::Date * getDate(::java::lang::String *) = 0;
+ virtual ::java::sql::Time * getTime(::java::lang::String *) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(::java::lang::String *) = 0;
+ virtual ::java::io::InputStream * getAsciiStream(::java::lang::String *) = 0;
+ virtual ::java::io::InputStream * getUnicodeStream(::java::lang::String *) = 0;
+ virtual ::java::io::InputStream * getBinaryStream(::java::lang::String *) = 0;
+ virtual ::java::sql::SQLWarning * getWarnings() = 0;
+ virtual void clearWarnings() = 0;
+ virtual ::java::lang::String * getCursorName() = 0;
+ virtual ::java::sql::ResultSetMetaData * getMetaData() = 0;
+ virtual ::java::lang::Object * getObject(jint) = 0;
+ virtual ::java::lang::Object * getObject(::java::lang::String *) = 0;
+ virtual jint findColumn(::java::lang::String *) = 0;
+ virtual ::java::io::Reader * getCharacterStream(jint) = 0;
+ virtual ::java::io::Reader * getCharacterStream(::java::lang::String *) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(jint) = 0;
+ virtual ::java::math::BigDecimal * getBigDecimal(::java::lang::String *) = 0;
+ virtual jboolean isBeforeFirst() = 0;
+ virtual jboolean isAfterLast() = 0;
+ virtual jboolean isFirst() = 0;
+ virtual jboolean isLast() = 0;
+ virtual void beforeFirst() = 0;
+ virtual void afterLast() = 0;
+ virtual jboolean first() = 0;
+ virtual jboolean last() = 0;
+ virtual jint getRow() = 0;
+ virtual jboolean absolute(jint) = 0;
+ virtual jboolean relative(jint) = 0;
+ virtual jboolean previous() = 0;
+ virtual void setFetchDirection(jint) = 0;
+ virtual jint getFetchDirection() = 0;
+ virtual void setFetchSize(jint) = 0;
+ virtual jint getFetchSize() = 0;
+ virtual jint getType() = 0;
+ virtual jint getConcurrency() = 0;
+ virtual jboolean rowUpdated() = 0;
+ virtual jboolean rowInserted() = 0;
+ virtual jboolean rowDeleted() = 0;
+ virtual void updateNull(jint) = 0;
+ virtual void updateBoolean(jint, jboolean) = 0;
+ virtual void updateByte(jint, jbyte) = 0;
+ virtual void updateShort(jint, jshort) = 0;
+ virtual void updateInt(jint, jint) = 0;
+ virtual void updateLong(jint, jlong) = 0;
+ virtual void updateFloat(jint, jfloat) = 0;
+ virtual void updateDouble(jint, jdouble) = 0;
+ virtual void updateBigDecimal(jint, ::java::math::BigDecimal *) = 0;
+ virtual void updateString(jint, ::java::lang::String *) = 0;
+ virtual void updateBytes(jint, JArray< jbyte > *) = 0;
+ virtual void updateDate(jint, ::java::sql::Date *) = 0;
+ virtual void updateTime(jint, ::java::sql::Time *) = 0;
+ virtual void updateTimestamp(jint, ::java::sql::Timestamp *) = 0;
+ virtual void updateAsciiStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void updateBinaryStream(jint, ::java::io::InputStream *, jint) = 0;
+ virtual void updateCharacterStream(jint, ::java::io::Reader *, jint) = 0;
+ virtual void updateObject(jint, ::java::lang::Object *, jint) = 0;
+ virtual void updateObject(jint, ::java::lang::Object *) = 0;
+ virtual void updateNull(::java::lang::String *) = 0;
+ virtual void updateBoolean(::java::lang::String *, jboolean) = 0;
+ virtual void updateByte(::java::lang::String *, jbyte) = 0;
+ virtual void updateShort(::java::lang::String *, jshort) = 0;
+ virtual void updateInt(::java::lang::String *, jint) = 0;
+ virtual void updateLong(::java::lang::String *, jlong) = 0;
+ virtual void updateFloat(::java::lang::String *, jfloat) = 0;
+ virtual void updateDouble(::java::lang::String *, jdouble) = 0;
+ virtual void updateBigDecimal(::java::lang::String *, ::java::math::BigDecimal *) = 0;
+ virtual void updateString(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual void updateBytes(::java::lang::String *, JArray< jbyte > *) = 0;
+ virtual void updateDate(::java::lang::String *, ::java::sql::Date *) = 0;
+ virtual void updateTime(::java::lang::String *, ::java::sql::Time *) = 0;
+ virtual void updateTimestamp(::java::lang::String *, ::java::sql::Timestamp *) = 0;
+ virtual void updateAsciiStream(::java::lang::String *, ::java::io::InputStream *, jint) = 0;
+ virtual void updateBinaryStream(::java::lang::String *, ::java::io::InputStream *, jint) = 0;
+ virtual void updateCharacterStream(::java::lang::String *, ::java::io::Reader *, jint) = 0;
+ virtual void updateObject(::java::lang::String *, ::java::lang::Object *, jint) = 0;
+ virtual void updateObject(::java::lang::String *, ::java::lang::Object *) = 0;
+ virtual void insertRow() = 0;
+ virtual void updateRow() = 0;
+ virtual void deleteRow() = 0;
+ virtual void refreshRow() = 0;
+ virtual void cancelRowUpdates() = 0;
+ virtual void moveToInsertRow() = 0;
+ virtual void moveToCurrentRow() = 0;
+ virtual ::java::sql::Statement * getStatement() = 0;
+ virtual ::java::lang::Object * getObject(jint, ::java::util::Map *) = 0;
+ virtual ::java::sql::Ref * getRef(jint) = 0;
+ virtual ::java::sql::Blob * getBlob(jint) = 0;
+ virtual ::java::sql::Clob * getClob(jint) = 0;
+ virtual ::java::sql::Array * getArray(jint) = 0;
+ virtual ::java::lang::Object * getObject(::java::lang::String *, ::java::util::Map *) = 0;
+ virtual ::java::sql::Ref * getRef(::java::lang::String *) = 0;
+ virtual ::java::sql::Blob * getBlob(::java::lang::String *) = 0;
+ virtual ::java::sql::Clob * getClob(::java::lang::String *) = 0;
+ virtual ::java::sql::Array * getArray(::java::lang::String *) = 0;
+ virtual ::java::sql::Date * getDate(jint, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Date * getDate(::java::lang::String *, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Time * getTime(jint, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Time * getTime(::java::lang::String *, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(jint, ::java::util::Calendar *) = 0;
+ virtual ::java::sql::Timestamp * getTimestamp(::java::lang::String *, ::java::util::Calendar *) = 0;
+ virtual ::java::net::URL * getURL(jint) = 0;
+ virtual ::java::net::URL * getURL(::java::lang::String *) = 0;
+ virtual void updateRef(jint, ::java::sql::Ref *) = 0;
+ virtual void updateRef(::java::lang::String *, ::java::sql::Ref *) = 0;
+ virtual void updateBlob(jint, ::java::sql::Blob *) = 0;
+ virtual void updateBlob(::java::lang::String *, ::java::sql::Blob *) = 0;
+ virtual void updateClob(jint, ::java::sql::Clob *) = 0;
+ virtual void updateClob(::java::lang::String *, ::java::sql::Clob *) = 0;
+ virtual void updateArray(jint, ::java::sql::Array *) = 0;
+ virtual void updateArray(::java::lang::String *, ::java::sql::Array *) = 0;
+ static const jint FETCH_FORWARD = 1000;
+ static const jint FETCH_REVERSE = 1001;
+ static const jint FETCH_UNKNOWN = 1002;
+ static const jint TYPE_FORWARD_ONLY = 1003;
+ static const jint TYPE_SCROLL_INSENSITIVE = 1004;
+ static const jint TYPE_SCROLL_SENSITIVE = 1005;
+ static const jint CONCUR_READ_ONLY = 1007;
+ static const jint CONCUR_UPDATABLE = 1008;
+ static const jint HOLD_CURSORS_OVER_COMMIT = 1;
+ static const jint CLOSE_CURSORS_AT_COMMIT = 2;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_ResultSet__
diff --git a/gcc-4.8/libjava/java/sql/ResultSetMetaData.h b/gcc-4.8/libjava/java/sql/ResultSetMetaData.h
new file mode 100644
index 000000000..d871adee6
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/ResultSetMetaData.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_ResultSetMetaData__
+#define __java_sql_ResultSetMetaData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class ResultSetMetaData;
+ }
+ }
+}
+
+class java::sql::ResultSetMetaData : public ::java::lang::Object
+{
+
+public:
+ virtual jint getColumnCount() = 0;
+ virtual jboolean isAutoIncrement(jint) = 0;
+ virtual jboolean isCaseSensitive(jint) = 0;
+ virtual jboolean isSearchable(jint) = 0;
+ virtual jboolean isCurrency(jint) = 0;
+ virtual jint isNullable(jint) = 0;
+ virtual jboolean isSigned(jint) = 0;
+ virtual jint getColumnDisplaySize(jint) = 0;
+ virtual ::java::lang::String * getColumnLabel(jint) = 0;
+ virtual ::java::lang::String * getColumnName(jint) = 0;
+ virtual ::java::lang::String * getSchemaName(jint) = 0;
+ virtual jint getPrecision(jint) = 0;
+ virtual jint getScale(jint) = 0;
+ virtual ::java::lang::String * getTableName(jint) = 0;
+ virtual ::java::lang::String * getCatalogName(jint) = 0;
+ virtual jint getColumnType(jint) = 0;
+ virtual ::java::lang::String * getColumnTypeName(jint) = 0;
+ virtual jboolean isReadOnly(jint) = 0;
+ virtual jboolean isWritable(jint) = 0;
+ virtual jboolean isDefinitelyWritable(jint) = 0;
+ virtual ::java::lang::String * getColumnClassName(jint) = 0;
+ static const jint columnNoNulls = 0;
+ static const jint columnNullable = 1;
+ static const jint columnNullableUnknown = 2;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_ResultSetMetaData__
diff --git a/gcc-4.8/libjava/java/sql/SQLData.h b/gcc-4.8/libjava/java/sql/SQLData.h
new file mode 100644
index 000000000..d63205a72
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/SQLData.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_SQLData__
+#define __java_sql_SQLData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class SQLData;
+ class SQLInput;
+ class SQLOutput;
+ }
+ }
+}
+
+class java::sql::SQLData : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getSQLTypeName() = 0;
+ virtual void readSQL(::java::sql::SQLInput *, ::java::lang::String *) = 0;
+ virtual void writeSQL(::java::sql::SQLOutput *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_SQLData__
diff --git a/gcc-4.8/libjava/java/sql/SQLException.h b/gcc-4.8/libjava/java/sql/SQLException.h
new file mode 100644
index 000000000..3f88d9456
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/SQLException.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_SQLException__
+#define __java_sql_SQLException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class SQLException;
+ }
+ }
+}
+
+class java::sql::SQLException : public ::java::lang::Exception
+{
+
+public:
+ SQLException(::java::lang::String *, ::java::lang::String *, jint);
+ SQLException(::java::lang::String *, ::java::lang::String *);
+ SQLException(::java::lang::String *);
+ SQLException();
+ virtual ::java::lang::String * getSQLState();
+ virtual jint getErrorCode();
+ virtual ::java::sql::SQLException * getNextException();
+ virtual void setNextException(::java::sql::SQLException *);
+public: // actually package-private
+ static const jlong serialVersionUID = 2135244094396331484LL;
+private:
+ ::java::sql::SQLException * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) next;
+ ::java::lang::String * SQLState;
+ jint vendorCode;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_SQLException__
diff --git a/gcc-4.8/libjava/java/sql/SQLInput.h b/gcc-4.8/libjava/java/sql/SQLInput.h
new file mode 100644
index 000000000..d19ffc03c
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/SQLInput.h
@@ -0,0 +1,68 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_SQLInput__
+#define __java_sql_SQLInput__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ namespace sql
+ {
+ class Array;
+ class Blob;
+ class Clob;
+ class Date;
+ class Ref;
+ class SQLInput;
+ class Time;
+ class Timestamp;
+ }
+ }
+}
+
+class java::sql::SQLInput : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * readString() = 0;
+ virtual jboolean readBoolean() = 0;
+ virtual jbyte readByte() = 0;
+ virtual jshort readShort() = 0;
+ virtual jint readInt() = 0;
+ virtual jlong readLong() = 0;
+ virtual jfloat readFloat() = 0;
+ virtual jdouble readDouble() = 0;
+ virtual ::java::math::BigDecimal * readBigDecimal() = 0;
+ virtual JArray< jbyte > * readBytes() = 0;
+ virtual ::java::sql::Date * readDate() = 0;
+ virtual ::java::sql::Time * readTime() = 0;
+ virtual ::java::sql::Timestamp * readTimestamp() = 0;
+ virtual ::java::io::Reader * readCharacterStream() = 0;
+ virtual ::java::io::InputStream * readAsciiStream() = 0;
+ virtual ::java::io::InputStream * readBinaryStream() = 0;
+ virtual ::java::lang::Object * readObject() = 0;
+ virtual ::java::sql::Ref * readRef() = 0;
+ virtual ::java::sql::Blob * readBlob() = 0;
+ virtual ::java::sql::Clob * readClob() = 0;
+ virtual ::java::sql::Array * readArray() = 0;
+ virtual jboolean wasNull() = 0;
+ virtual ::java::net::URL * readURL() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_SQLInput__
diff --git a/gcc-4.8/libjava/java/sql/SQLOutput.h b/gcc-4.8/libjava/java/sql/SQLOutput.h
new file mode 100644
index 000000000..f0be2db59
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/SQLOutput.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_SQLOutput__
+#define __java_sql_SQLOutput__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ }
+ namespace net
+ {
+ class URL;
+ }
+ namespace sql
+ {
+ class Array;
+ class Blob;
+ class Clob;
+ class Date;
+ class Ref;
+ class SQLData;
+ class SQLOutput;
+ class Struct;
+ class Time;
+ class Timestamp;
+ }
+ }
+}
+
+class java::sql::SQLOutput : public ::java::lang::Object
+{
+
+public:
+ virtual void writeString(::java::lang::String *) = 0;
+ virtual void writeBoolean(jboolean) = 0;
+ virtual void writeByte(jbyte) = 0;
+ virtual void writeShort(jshort) = 0;
+ virtual void writeInt(jint) = 0;
+ virtual void writeLong(jlong) = 0;
+ virtual void writeFloat(jfloat) = 0;
+ virtual void writeDouble(jdouble) = 0;
+ virtual void writeBigDecimal(::java::math::BigDecimal *) = 0;
+ virtual void writeBytes(JArray< jbyte > *) = 0;
+ virtual void writeDate(::java::sql::Date *) = 0;
+ virtual void writeTime(::java::sql::Time *) = 0;
+ virtual void writeTimestamp(::java::sql::Timestamp *) = 0;
+ virtual void writeCharacterStream(::java::io::Reader *) = 0;
+ virtual void writeAsciiStream(::java::io::InputStream *) = 0;
+ virtual void writeBinaryStream(::java::io::InputStream *) = 0;
+ virtual void writeObject(::java::sql::SQLData *) = 0;
+ virtual void writeRef(::java::sql::Ref *) = 0;
+ virtual void writeBlob(::java::sql::Blob *) = 0;
+ virtual void writeClob(::java::sql::Clob *) = 0;
+ virtual void writeStruct(::java::sql::Struct *) = 0;
+ virtual void writeArray(::java::sql::Array *) = 0;
+ virtual void writeURL(::java::net::URL *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_SQLOutput__
diff --git a/gcc-4.8/libjava/java/sql/SQLPermission.h b/gcc-4.8/libjava/java/sql/SQLPermission.h
new file mode 100644
index 000000000..a426f31a0
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/SQLPermission.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_SQLPermission__
+#define __java_sql_SQLPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class SQLPermission;
+ }
+ }
+}
+
+class java::sql::SQLPermission : public ::java::security::BasicPermission
+{
+
+public:
+ SQLPermission(::java::lang::String *);
+ SQLPermission(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_SQLPermission__
diff --git a/gcc-4.8/libjava/java/sql/SQLWarning.h b/gcc-4.8/libjava/java/sql/SQLWarning.h
new file mode 100644
index 000000000..5cb2572ff
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/SQLWarning.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_SQLWarning__
+#define __java_sql_SQLWarning__
+
+#pragma interface
+
+#include <java/sql/SQLException.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class SQLWarning;
+ }
+ }
+}
+
+class java::sql::SQLWarning : public ::java::sql::SQLException
+{
+
+public:
+ SQLWarning(::java::lang::String *, ::java::lang::String *, jint);
+ SQLWarning(::java::lang::String *, ::java::lang::String *);
+ SQLWarning(::java::lang::String *);
+ SQLWarning();
+ virtual ::java::sql::SQLWarning * getNextWarning();
+ virtual void setNextWarning(::java::sql::SQLWarning *);
+public: // actually package-private
+ static const jlong serialVersionUID = 3917336774604784856LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_SQLWarning__
diff --git a/gcc-4.8/libjava/java/sql/Savepoint.h b/gcc-4.8/libjava/java/sql/Savepoint.h
new file mode 100644
index 000000000..d22773c9f
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Savepoint.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Savepoint__
+#define __java_sql_Savepoint__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Savepoint;
+ }
+ }
+}
+
+class java::sql::Savepoint : public ::java::lang::Object
+{
+
+public:
+ virtual jint getSavepointId() = 0;
+ virtual ::java::lang::String * getSavepointName() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Savepoint__
diff --git a/gcc-4.8/libjava/java/sql/Statement.h b/gcc-4.8/libjava/java/sql/Statement.h
new file mode 100644
index 000000000..b4cba4489
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Statement.h
@@ -0,0 +1,77 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Statement__
+#define __java_sql_Statement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Connection;
+ class ResultSet;
+ class SQLWarning;
+ class Statement;
+ }
+ }
+}
+
+class java::sql::Statement : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::sql::ResultSet * executeQuery(::java::lang::String *) = 0;
+ virtual jint executeUpdate(::java::lang::String *) = 0;
+ virtual void close() = 0;
+ virtual jint getMaxFieldSize() = 0;
+ virtual void setMaxFieldSize(jint) = 0;
+ virtual jint getMaxRows() = 0;
+ virtual void setMaxRows(jint) = 0;
+ virtual void setEscapeProcessing(jboolean) = 0;
+ virtual jint getQueryTimeout() = 0;
+ virtual void setQueryTimeout(jint) = 0;
+ virtual void cancel() = 0;
+ virtual ::java::sql::SQLWarning * getWarnings() = 0;
+ virtual void clearWarnings() = 0;
+ virtual void setCursorName(::java::lang::String *) = 0;
+ virtual jboolean execute(::java::lang::String *) = 0;
+ virtual ::java::sql::ResultSet * getResultSet() = 0;
+ virtual jint getUpdateCount() = 0;
+ virtual jboolean getMoreResults() = 0;
+ virtual void setFetchDirection(jint) = 0;
+ virtual jint getFetchDirection() = 0;
+ virtual void setFetchSize(jint) = 0;
+ virtual jint getFetchSize() = 0;
+ virtual jint getResultSetConcurrency() = 0;
+ virtual jint getResultSetType() = 0;
+ virtual void addBatch(::java::lang::String *) = 0;
+ virtual void clearBatch() = 0;
+ virtual JArray< jint > * executeBatch() = 0;
+ virtual ::java::sql::Connection * getConnection() = 0;
+ virtual jboolean getMoreResults(jint) = 0;
+ virtual ::java::sql::ResultSet * getGeneratedKeys() = 0;
+ virtual jint executeUpdate(::java::lang::String *, jint) = 0;
+ virtual jint executeUpdate(::java::lang::String *, JArray< jint > *) = 0;
+ virtual jint executeUpdate(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual jboolean execute(::java::lang::String *, jint) = 0;
+ virtual jboolean execute(::java::lang::String *, JArray< jint > *) = 0;
+ virtual jboolean execute(::java::lang::String *, JArray< ::java::lang::String * > *) = 0;
+ virtual jint getResultSetHoldability() = 0;
+ static const jint CLOSE_CURRENT_RESULT = 1;
+ static const jint KEEP_CURRENT_RESULT = 2;
+ static const jint CLOSE_ALL_RESULTS = 3;
+ static const jint SUCCESS_NO_INFO = -2;
+ static const jint EXECUTE_FAILED = -3;
+ static const jint RETURN_GENERATED_KEYS = 1;
+ static const jint NO_GENERATED_KEYS = 2;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Statement__
diff --git a/gcc-4.8/libjava/java/sql/Struct.h b/gcc-4.8/libjava/java/sql/Struct.h
new file mode 100644
index 000000000..ff9be27b9
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Struct.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Struct__
+#define __java_sql_Struct__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Struct;
+ }
+ }
+}
+
+class java::sql::Struct : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getSQLTypeName() = 0;
+ virtual JArray< ::java::lang::Object * > * getAttributes() = 0;
+ virtual JArray< ::java::lang::Object * > * getAttributes(::java::util::Map *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_sql_Struct__
diff --git a/gcc-4.8/libjava/java/sql/Time.h b/gcc-4.8/libjava/java/sql/Time.h
new file mode 100644
index 000000000..a9c5d12af
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Time.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Time__
+#define __java_sql_Time__
+
+#pragma interface
+
+#include <java/util/Date.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Time;
+ }
+ namespace text
+ {
+ class SimpleDateFormat;
+ }
+ }
+}
+
+class java::sql::Time : public ::java::util::Date
+{
+
+public:
+ virtual jint getDate();
+ virtual jint getDay();
+ virtual jint getMonth();
+ virtual jint getYear();
+ virtual void setDate(jint);
+ virtual void setMonth(jint);
+ virtual void setYear(jint);
+ static ::java::sql::Time * valueOf(::java::lang::String *);
+ Time(jint, jint, jint);
+ Time(jlong);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static const jlong serialVersionUID = 8397324403548013681LL;
+private:
+ static ::java::text::SimpleDateFormat * sdf;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_Time__
diff --git a/gcc-4.8/libjava/java/sql/Timestamp.h b/gcc-4.8/libjava/java/sql/Timestamp.h
new file mode 100644
index 000000000..90333692e
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Timestamp.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Timestamp__
+#define __java_sql_Timestamp__
+
+#pragma interface
+
+#include <java/util/Date.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Timestamp;
+ }
+ namespace text
+ {
+ class DecimalFormat;
+ class SimpleDateFormat;
+ }
+ }
+}
+
+class java::sql::Timestamp : public ::java::util::Date
+{
+
+public:
+ static ::java::sql::Timestamp * valueOf(::java::lang::String *);
+ Timestamp(jint, jint, jint, jint, jint, jint, jint);
+ Timestamp(jlong);
+ virtual jlong getTime();
+ virtual ::java::lang::String * toString();
+ virtual jint getNanos();
+ virtual void setNanos(jint);
+ virtual jboolean before(::java::sql::Timestamp *);
+ virtual jboolean after(::java::sql::Timestamp *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jboolean equals(::java::sql::Timestamp *);
+ virtual jint compareTo(::java::sql::Timestamp *);
+ virtual jint Date$compareTo(::java::util::Date *);
+public: // actually package-private
+ static const jlong serialVersionUID = 2745179027874758501LL;
+private:
+ static ::java::text::SimpleDateFormat * dateFormat;
+ static ::java::text::DecimalFormat * decimalFormat;
+ static ::java::lang::StringBuffer * sbuf;
+ jint __attribute__((aligned(__alignof__( ::java::util::Date)))) nanos;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_Timestamp__
diff --git a/gcc-4.8/libjava/java/sql/Types.h b/gcc-4.8/libjava/java/sql/Types.h
new file mode 100644
index 000000000..8f6388fe2
--- /dev/null
+++ b/gcc-4.8/libjava/java/sql/Types.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_sql_Types__
+#define __java_sql_Types__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace sql
+ {
+ class Types;
+ }
+ }
+}
+
+class java::sql::Types : public ::java::lang::Object
+{
+
+ Types();
+public:
+ static const jint BIT = -7;
+ static const jint TINYINT = -6;
+ static const jint SMALLINT = 5;
+ static const jint INTEGER = 4;
+ static const jint BIGINT = -5;
+ static const jint FLOAT = 6;
+ static const jint REAL = 7;
+ static const jint DOUBLE = 8;
+ static const jint NUMERIC = 2;
+ static const jint DECIMAL = 3;
+ static const jint CHAR = 1;
+ static const jint VARCHAR = 12;
+ static const jint LONGVARCHAR = -1;
+ static const jint DATE = 91;
+ static const jint TIME = 92;
+ static const jint TIMESTAMP = 93;
+ static const jint BINARY = -2;
+ static const jint VARBINARY = -3;
+ static const jint LONGVARBINARY = -4;
+ static const jint NULL = 0;
+ static const jint OTHER = 1111;
+ static const jint JAVA_OBJECT = 2000;
+ static const jint DISTINCT = 2001;
+ static const jint STRUCT = 2002;
+ static const jint ARRAY = 2003;
+ static const jint BLOB = 2004;
+ static const jint CLOB = 2005;
+ static const jint REF = 2006;
+ static const jint DATALINK = 70;
+ static const jint BOOLEAN = 16;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_sql_Types__
diff --git a/gcc-4.8/libjava/java/text/Annotation.h b/gcc-4.8/libjava/java/text/Annotation.h
new file mode 100644
index 000000000..7170a3f91
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/Annotation.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_Annotation__
+#define __java_text_Annotation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class Annotation;
+ }
+ }
+}
+
+class java::text::Annotation : public ::java::lang::Object
+{
+
+public:
+ Annotation(::java::lang::Object *);
+ virtual ::java::lang::Object * getValue();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrib;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_Annotation__
diff --git a/gcc-4.8/libjava/java/text/AttributedCharacterIterator$Attribute.h b/gcc-4.8/libjava/java/text/AttributedCharacterIterator$Attribute.h
new file mode 100644
index 000000000..f47224044
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/AttributedCharacterIterator$Attribute.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_AttributedCharacterIterator$Attribute__
+#define __java_text_AttributedCharacterIterator$Attribute__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator$Attribute;
+ }
+ }
+}
+
+class java::text::AttributedCharacterIterator$Attribute : public ::java::lang::Object
+{
+
+public: // actually protected
+ AttributedCharacterIterator$Attribute(::java::lang::String *);
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::Object * readResolve();
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -9142742483513960612LL;
+public:
+ static ::java::text::AttributedCharacterIterator$Attribute * LANGUAGE;
+ static ::java::text::AttributedCharacterIterator$Attribute * READING;
+ static ::java::text::AttributedCharacterIterator$Attribute * INPUT_METHOD_SEGMENT;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_AttributedCharacterIterator$Attribute__
diff --git a/gcc-4.8/libjava/java/text/AttributedCharacterIterator.h b/gcc-4.8/libjava/java/text/AttributedCharacterIterator.h
new file mode 100644
index 000000000..c5b04f6fa
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/AttributedCharacterIterator.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_AttributedCharacterIterator__
+#define __java_text_AttributedCharacterIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class AttributedCharacterIterator$Attribute;
+ }
+ }
+}
+
+class java::text::AttributedCharacterIterator : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Set * getAllAttributeKeys() = 0;
+ virtual ::java::util::Map * getAttributes() = 0;
+ virtual ::java::lang::Object * getAttribute(::java::text::AttributedCharacterIterator$Attribute *) = 0;
+ virtual jint getRunStart() = 0;
+ virtual jint getRunStart(::java::util::Set *) = 0;
+ virtual jint getRunStart(::java::text::AttributedCharacterIterator$Attribute *) = 0;
+ virtual jint getRunLimit() = 0;
+ virtual jint getRunLimit(::java::util::Set *) = 0;
+ virtual jint getRunLimit(::java::text::AttributedCharacterIterator$Attribute *) = 0;
+ virtual jchar current() = 0;
+ virtual jchar next() = 0;
+ virtual jchar previous() = 0;
+ virtual jchar first() = 0;
+ virtual jchar last() = 0;
+ virtual jint getIndex() = 0;
+ virtual jchar setIndex(jint) = 0;
+ virtual jint getBeginIndex() = 0;
+ virtual jint getEndIndex() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_text_AttributedCharacterIterator__
diff --git a/gcc-4.8/libjava/java/text/AttributedString$AttributeRange.h b/gcc-4.8/libjava/java/text/AttributedString$AttributeRange.h
new file mode 100644
index 000000000..49e33d1ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/AttributedString$AttributeRange.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_AttributedString$AttributeRange__
+#define __java_text_AttributedString$AttributeRange__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedString;
+ class AttributedString$AttributeRange;
+ }
+ }
+}
+
+class java::text::AttributedString$AttributeRange : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AttributedString$AttributeRange(::java::text::AttributedString *, ::java::util::Map *, jint, jint);
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attribs;
+ jint beginIndex;
+ jint endIndex;
+ ::java::text::AttributedString * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_AttributedString$AttributeRange__
diff --git a/gcc-4.8/libjava/java/text/AttributedString.h b/gcc-4.8/libjava/java/text/AttributedString.h
new file mode 100644
index 000000000..51b4c0bc2
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/AttributedString.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_AttributedString__
+#define __java_text_AttributedString__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class AttributedCharacterIterator$Attribute;
+ class AttributedString;
+ class AttributedString$AttributeRange;
+ class StringCharacterIterator;
+ }
+ }
+}
+
+class java::text::AttributedString : public ::java::lang::Object
+{
+
+public:
+ AttributedString(::java::lang::String *);
+ AttributedString(::java::lang::String *, ::java::util::Map *);
+ AttributedString(::java::text::AttributedCharacterIterator *);
+ AttributedString(::java::text::AttributedCharacterIterator *, jint, jint);
+ AttributedString(::java::text::AttributedCharacterIterator *, jint, jint, JArray< ::java::text::AttributedCharacterIterator$Attribute * > *);
+ virtual void addAttribute(::java::text::AttributedCharacterIterator$Attribute *, ::java::lang::Object *);
+ virtual void addAttribute(::java::text::AttributedCharacterIterator$Attribute *, ::java::lang::Object *, jint, jint);
+ virtual void addAttributes(::java::util::Map *, jint, jint);
+ virtual ::java::text::AttributedCharacterIterator * getIterator();
+ virtual ::java::text::AttributedCharacterIterator * getIterator(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *);
+ virtual ::java::text::AttributedCharacterIterator * getIterator(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *, jint, jint);
+private:
+ ::java::text::StringCharacterIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sci;
+ JArray< ::java::text::AttributedString$AttributeRange * > * attribs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_AttributedString__
diff --git a/gcc-4.8/libjava/java/text/AttributedStringIterator.h b/gcc-4.8/libjava/java/text/AttributedStringIterator.h
new file mode 100644
index 000000000..bc2e77f89
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/AttributedStringIterator.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_AttributedStringIterator__
+#define __java_text_AttributedStringIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator$Attribute;
+ class AttributedString$AttributeRange;
+ class AttributedStringIterator;
+ class CharacterIterator;
+ class StringCharacterIterator;
+ }
+ }
+}
+
+class java::text::AttributedStringIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AttributedStringIterator(::java::text::StringCharacterIterator *, JArray< ::java::text::AttributedString$AttributeRange * > *, jint, jint, JArray< ::java::text::AttributedCharacterIterator$Attribute * > *);
+public:
+ virtual ::java::lang::Object * clone();
+ virtual jchar current();
+ virtual jchar next();
+ virtual jchar previous();
+ virtual jchar first();
+ virtual jchar last();
+ virtual jint getIndex();
+ virtual jchar setIndex(jint);
+ virtual jint getBeginIndex();
+ virtual jint getEndIndex();
+ virtual ::java::util::Set * getAllAttributeKeys();
+ virtual jint getRunLimit();
+ virtual jint getRunLimit(::java::text::AttributedCharacterIterator$Attribute *);
+ virtual jint getRunLimit(::java::util::Set *);
+ virtual jint getRunStart();
+ virtual jint getRunStart(::java::text::AttributedCharacterIterator$Attribute *);
+ virtual jint getRunStart(::java::util::Set *);
+private:
+ ::java::lang::Object * getAttribute(::java::text::AttributedCharacterIterator$Attribute *, jint);
+public:
+ virtual ::java::lang::Object * getAttribute(::java::text::AttributedCharacterIterator$Attribute *);
+ virtual ::java::util::Map * getAttributes();
+private:
+ ::java::text::CharacterIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ci;
+ JArray< ::java::text::AttributedString$AttributeRange * > * attribs;
+ JArray< ::java::text::AttributedCharacterIterator$Attribute * > * restricts;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_AttributedStringIterator__
diff --git a/gcc-4.8/libjava/java/text/Bidi.h b/gcc-4.8/libjava/java/text/Bidi.h
new file mode 100644
index 000000000..59b80ed5a
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/Bidi.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_Bidi__
+#define __java_text_Bidi__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class Bidi;
+ }
+ }
+}
+
+class java::text::Bidi : public ::java::lang::Object
+{
+
+public:
+ Bidi(::java::text::AttributedCharacterIterator *);
+ Bidi(JArray< jchar > *, jint, JArray< jbyte > *, jint, jint, jint);
+ Bidi(::java::lang::String *, jint);
+private:
+ void computeTypes();
+ jint computeParagraphEmbeddingLevel();
+ void computeExplicitLevels();
+ void computeRuns();
+ void resolveWeakTypes();
+ void resolveNeutralTypes();
+ void resolveImplicitLevels();
+ void reinsertFormattingCodes();
+ void runBidi();
+public:
+ jboolean baseIsLeftToRight();
+ ::java::text::Bidi * createLineBidi(jint, jint);
+ jint getBaseLevel();
+ jint getLength();
+ jint getLevelAt(jint);
+ jint getRunCount();
+ jint getRunLevel(jint);
+ jint getRunLimit(jint);
+ jint getRunStart(jint);
+ jboolean isLeftToRight();
+ jboolean isMixed();
+ jboolean isRightToLeft();
+ ::java::lang::String * toString();
+ static void reorderVisually(JArray< jbyte > *, jint, JArray< ::java::lang::Object * > *, jint, jint);
+ static jboolean requiresBidi(JArray< jchar > *, jint, jint);
+ static const jint DIRECTION_DEFAULT_LEFT_TO_RIGHT = -2;
+ static const jint DIRECTION_DEFAULT_RIGHT_TO_LEFT = -1;
+ static const jint DIRECTION_LEFT_TO_RIGHT = 0;
+ static const jint DIRECTION_RIGHT_TO_LEFT = 1;
+private:
+ static const jint LTOR = 1;
+ static const jint RTOL = 2;
+ JArray< jchar > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text;
+ jint textOffset;
+ JArray< jbyte > * embeddings;
+ jint embeddingOffset;
+ jint length;
+ jint flags;
+ jint baseEmbedding;
+ JArray< jbyte > * types;
+ JArray< jbyte > * levels;
+ ::java::util::ArrayList * formatterIndices;
+ JArray< jint > * runs;
+ jint resultFlags;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_Bidi__
diff --git a/gcc-4.8/libjava/java/text/BreakIterator.h b/gcc-4.8/libjava/java/text/BreakIterator.h
new file mode 100644
index 000000000..2c6f90ea1
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/BreakIterator.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_BreakIterator__
+#define __java_text_BreakIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class BreakIterator;
+ class CharacterIterator;
+ }
+ }
+}
+
+class java::text::BreakIterator : public ::java::lang::Object
+{
+
+public: // actually protected
+ BreakIterator();
+public:
+ virtual ::java::lang::Object * clone();
+ virtual jint current() = 0;
+ virtual jint first() = 0;
+ virtual jint following(jint) = 0;
+ static JArray< ::java::util::Locale * > * getAvailableLocales();
+private:
+ static ::java::text::BreakIterator * getInstance(::java::lang::String *, ::java::util::Locale *);
+public:
+ static ::java::text::BreakIterator * getCharacterInstance();
+ static ::java::text::BreakIterator * getCharacterInstance(::java::util::Locale *);
+ static ::java::text::BreakIterator * getLineInstance();
+ static ::java::text::BreakIterator * getLineInstance(::java::util::Locale *);
+ static ::java::text::BreakIterator * getSentenceInstance();
+ static ::java::text::BreakIterator * getSentenceInstance(::java::util::Locale *);
+ virtual ::java::text::CharacterIterator * getText() = 0;
+ static ::java::text::BreakIterator * getWordInstance();
+ static ::java::text::BreakIterator * getWordInstance(::java::util::Locale *);
+ virtual jboolean isBoundary(jint);
+ virtual jint last() = 0;
+ virtual jint next() = 0;
+ virtual jint next(jint) = 0;
+ virtual jint preceding(jint);
+ virtual jint previous() = 0;
+ virtual void setText(::java::lang::String *);
+ virtual void setText(::java::text::CharacterIterator *) = 0;
+ static const jint DONE = -1;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_BreakIterator__
diff --git a/gcc-4.8/libjava/java/text/CharacterIterator.h b/gcc-4.8/libjava/java/text/CharacterIterator.h
new file mode 100644
index 000000000..d13612ff3
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/CharacterIterator.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_CharacterIterator__
+#define __java_text_CharacterIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class CharacterIterator;
+ }
+ }
+}
+
+class java::text::CharacterIterator : public ::java::lang::Object
+{
+
+public:
+ virtual jchar current() = 0;
+ virtual jchar next() = 0;
+ virtual jchar previous() = 0;
+ virtual jchar first() = 0;
+ virtual jchar last() = 0;
+ virtual jint getIndex() = 0;
+ virtual jchar setIndex(jint) = 0;
+ virtual jint getBeginIndex() = 0;
+ virtual jint getEndIndex() = 0;
+ virtual ::java::lang::Object * clone() = 0;
+ static const jchar DONE = 65535;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_text_CharacterIterator__
diff --git a/gcc-4.8/libjava/java/text/ChoiceFormat.h b/gcc-4.8/libjava/java/text/ChoiceFormat.h
new file mode 100644
index 000000000..92852ebff
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/ChoiceFormat.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_ChoiceFormat__
+#define __java_text_ChoiceFormat__
+
+#pragma interface
+
+#include <java/text/NumberFormat.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace text
+ {
+ class ChoiceFormat;
+ class FieldPosition;
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::ChoiceFormat : public ::java::text::NumberFormat
+{
+
+public:
+ virtual void applyPattern(::java::lang::String *);
+ ChoiceFormat(::java::lang::String *);
+ ChoiceFormat(JArray< jdouble > *, JArray< ::java::lang::String * > *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::StringBuffer * format(jlong, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::lang::StringBuffer * format(jdouble, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual JArray< ::java::lang::Object * > * getFormats();
+ virtual JArray< jdouble > * getLimits();
+ virtual jint hashCode();
+ static jdouble nextDouble(jdouble);
+ static jdouble nextDouble(jdouble, jboolean);
+ virtual ::java::lang::Number * parse(::java::lang::String *, ::java::text::ParsePosition *);
+ static jdouble previousDouble(jdouble);
+ virtual void setChoices(JArray< jdouble > *, JArray< ::java::lang::String * > *);
+private:
+ void quoteString(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *);
+public:
+ virtual ::java::lang::String * toPattern();
+private:
+ JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::text::NumberFormat)))) choiceFormats;
+ JArray< jdouble > * choiceLimits;
+ static const jint mantissaBits = 52;
+ static const jint exponentBits = 11;
+ static const jlong serialVersionUID = 1795184449645032964LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_ChoiceFormat__
diff --git a/gcc-4.8/libjava/java/text/CollationElementIterator.h b/gcc-4.8/libjava/java/text/CollationElementIterator.h
new file mode 100644
index 000000000..2638b0784
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/CollationElementIterator.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_CollationElementIterator__
+#define __java_text_CollationElementIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class CharacterIterator;
+ class CollationElementIterator;
+ class RuleBasedCollator;
+ class RuleBasedCollator$CollationElement;
+ }
+ }
+}
+
+class java::text::CollationElementIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CollationElementIterator(::java::text::RuleBasedCollator *, ::java::lang::String *);
+ CollationElementIterator(::java::text::RuleBasedCollator *, ::java::text::CharacterIterator *);
+ ::java::text::RuleBasedCollator$CollationElement * nextBlock();
+ ::java::text::RuleBasedCollator$CollationElement * previousBlock();
+public:
+ jint next();
+ jint previous();
+ static jint primaryOrder(jint);
+ void reset();
+ static jshort secondaryOrder(jint);
+ static jshort tertiaryOrder(jint);
+ void setText(::java::lang::String *);
+ void setText(::java::text::CharacterIterator *);
+ jint getOffset();
+ void setOffset(jint);
+ jint getMaxExpansion(jint);
+ static const jint NULLORDER = -1;
+public: // actually package-private
+ ::java::text::RuleBasedCollator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) collator;
+ ::java::text::CharacterIterator * text;
+ jint index;
+ jint textIndex;
+private:
+ JArray< ::java::text::RuleBasedCollator$CollationElement * > * textDecomposition;
+ JArray< jint > * textIndexes;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_CollationElementIterator__
diff --git a/gcc-4.8/libjava/java/text/CollationKey.h b/gcc-4.8/libjava/java/text/CollationKey.h
new file mode 100644
index 000000000..ac110813f
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/CollationKey.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_CollationKey__
+#define __java_text_CollationKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class CollationKey;
+ class Collator;
+ }
+ }
+}
+
+class java::text::CollationKey : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CollationKey(::java::text::Collator *, ::java::lang::String *, JArray< jbyte > *);
+public:
+ virtual jint CollationKey$compareTo(::java::text::CollationKey *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * getSourceString();
+ virtual jint hashCode();
+ virtual JArray< jbyte > * toByteArray();
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ ::java::text::Collator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) collator;
+ ::java::lang::String * originalText;
+ JArray< jbyte > * key;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_CollationKey__
diff --git a/gcc-4.8/libjava/java/text/Collator.h b/gcc-4.8/libjava/java/text/Collator.h
new file mode 100644
index 000000000..075dcb2b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/Collator.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_Collator__
+#define __java_text_Collator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class CollationKey;
+ class Collator;
+ }
+ }
+}
+
+class java::text::Collator : public ::java::lang::Object
+{
+
+public: // actually protected
+ Collator();
+public:
+ virtual jint compare(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jboolean equals(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::Object * clone();
+ static JArray< ::java::util::Locale * > * getAvailableLocales();
+ virtual ::java::text::CollationKey * getCollationKey(::java::lang::String *) = 0;
+ virtual jint getDecomposition();
+ static ::java::text::Collator * getInstance();
+ static ::java::text::Collator * getInstance(::java::util::Locale *);
+ virtual jint getStrength();
+ virtual jint hashCode() = 0;
+ virtual void setDecomposition(jint);
+ virtual void setStrength(jint);
+public: // actually package-private
+ virtual void decomposeCharacter(jchar, ::java::lang::StringBuffer *);
+public:
+ static const jint PRIMARY = 0;
+ static const jint SECONDARY = 1;
+ static const jint TERTIARY = 2;
+ static const jint IDENTICAL = 3;
+ static const jint NO_DECOMPOSITION = 0;
+ static const jint CANONICAL_DECOMPOSITION = 1;
+ static const jint FULL_DECOMPOSITION = 2;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) decmp;
+ jint strength;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_Collator__
diff --git a/gcc-4.8/libjava/java/text/Collator.java b/gcc-4.8/libjava/java/text/Collator.java
new file mode 100644
index 000000000..e493182b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/Collator.java
@@ -0,0 +1,419 @@
+/* Collator.java -- Perform locale dependent String comparisons.
+ Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005, 2007,
+ 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.text;
+
+import gnu.java.locale.LocaleHelper;
+
+import java.text.spi.CollatorProvider;
+
+import java.util.Comparator;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.ServiceLoader;
+
+/**
+ * This class is the abstract superclass of classes which perform
+ * locale dependent <code>String</code> comparisons. A caller requests
+ * an instance of <code>Collator</code> for a particular locale using
+ * the <code>getInstance()</code> static method in this class. That method
+ * will return a locale specific subclass of <code>Collator</code> which
+ * can be used to perform <code>String</code> comparisons for that locale.
+ * If a subclass of <code>Collator</code> cannot be located for a particular
+ * locale, a default instance for the current locale will be returned.
+ *
+ * In addition to setting the correct locale, there are two additional
+ * settings that can be adjusted to affect <code>String</code> comparisons:
+ * strength and decomposition. The strength value determines the level
+ * of signficance of character differences required for them to sort
+ * differently. (For example, whether or not capital letters are considered
+ * different from lower case letters). The decomposition value affects how
+ * variants of the same character are treated for sorting purposes. (For
+ * example, whether or not an accent is signficant or not). These settings
+ * are described in detail in the documentation for the methods and values
+ * that are related to them.
+ *
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @date March 18, 1999
+ */
+public abstract class Collator implements Comparator<Object>, Cloneable
+{
+ /**
+ * This constant is a strength value which indicates that only primary
+ * differences between characters will be considered signficant. As an
+ * example, two completely different English letters such as 'a' and 'b'
+ * are considered to have a primary difference.
+ */
+ public static final int PRIMARY = 0;
+
+ /**
+ * This constant is a strength value which indicates that only secondary
+ * or primary differences between characters will be considered
+ * significant. An example of a secondary difference between characters
+ * are instances of the same letter with different accented forms.
+ */
+ public static final int SECONDARY = 1;
+
+ /**
+ * This constant is a strength value which indicates that tertiary,
+ * secondary, and primary differences will be considered during sorting.
+ * An example of a tertiary difference is capitalization of a given letter.
+ * This is the default value for the strength setting.
+ */
+ public static final int TERTIARY = 2;
+
+ /**
+ * This constant is a strength value which indicates that any difference
+ * at all between character values are considered significant.
+ */
+ public static final int IDENTICAL = 3;
+
+ /**
+ * This constant indicates that accented characters won't be decomposed
+ * when performing comparisons. This will yield the fastest results, but
+ * will only work correctly in call cases for languages which do not
+ * use accents such as English.
+ */
+ public static final int NO_DECOMPOSITION = 0;
+
+ /**
+ * This constant indicates that only characters which are canonical variants
+ * in Unicode 2.0 will be decomposed prior to performing comparisons. This
+ * will cause accented languages to be sorted correctly. This is the
+ * default decomposition value.
+ */
+ public static final int CANONICAL_DECOMPOSITION = 1;
+
+ /**
+ * This constant indicates that both canonical variants and compatibility
+ * variants in Unicode 2.0 will be decomposed prior to performing
+ * comparisons. This is the slowest mode, but is required to get the
+ * correct sorting for certain languages with certain special formats.
+ */
+ public static final int FULL_DECOMPOSITION = 2;
+
+ /**
+ * This method initializes a new instance of <code>Collator</code> to have
+ * the default strength (TERTIARY) and decomposition
+ * (CANONICAL_DECOMPOSITION) settings. This constructor is protected and
+ * is for use by subclasses only. Non-subclass callers should use the
+ * static <code>getInstance()</code> methods of this class to instantiate
+ * <code>Collation</code> objects for the desired locale.
+ */
+ protected Collator ()
+ {
+ strength = TERTIARY;
+ decmp = CANONICAL_DECOMPOSITION;
+ }
+
+ /**
+ * This method compares the two <code>String</code>'s and returns an
+ * integer indicating whether or not the first argument is less than,
+ * equal to, or greater than the second argument. The comparison is
+ * performed according to the rules of the locale for this
+ * <code>Collator</code> and the strength and decomposition rules in
+ * effect.
+ *
+ * @param source The first object to compare
+ * @param target The second object to compare
+ *
+ * @return A negative integer if str1 &lt; str2, 0 if str1 == str2, or
+ * a positive integer if str1 &gt; str2.
+ */
+ public abstract int compare (String source, String target);
+
+ /**
+ * This method compares the two <code>Object</code>'s and returns an
+ * integer indicating whether or not the first argument is less than,
+ * equal to, or greater than the second argument. These two objects
+ * must be <code>String</code>'s or an exception will be thrown.
+ *
+ * @param o1 The first object to compare
+ * @param o2 The second object to compare
+ *
+ * @return A negative integer if obj1 &lt; obj2, 0 if obj1 == obj2, or
+ * a positive integer if obj1 &gt; obj2.
+ *
+ * @exception ClassCastException If the arguments are not instances
+ * of <code>String</code>.
+ */
+ public int compare (Object o1, Object o2)
+ {
+ return compare ((String) o1, (String) o2);
+ }
+
+ /**
+ * This method tests the specified object for equality against this
+ * object. This will be true if and only if the following conditions are
+ * met:
+ * <ul>
+ * <li>The specified object is not <code>null</code>.</li>
+ * <li>The specified object is an instance of <code>Collator</code>.</li>
+ * <li>The specified object has the same strength and decomposition
+ * settings as this object.</li>
+ * </ul>
+ *
+ * @param obj The <code>Object</code> to test for equality against
+ * this object.
+ *
+ * @return <code>true</code> if the specified object is equal to
+ * this one, <code>false</code> otherwise.
+ */
+ public boolean equals (Object obj)
+ {
+ if (! (obj instanceof Collator))
+ return false;
+ Collator c = (Collator) obj;
+ return decmp == c.decmp && strength == c.strength;
+ }
+
+ /**
+ * This method tests whether the specified <code>String</code>'s are equal
+ * according to the collation rules for the locale of this object and
+ * the current strength and decomposition settings.
+ *
+ * @param source The first <code>String</code> to compare
+ * @param target The second <code>String</code> to compare
+ *
+ * @return <code>true</code> if the two strings are equal,
+ * <code>false</code> otherwise.
+ */
+ public boolean equals (String source, String target)
+ {
+ return compare (source, target) == 0;
+ }
+
+ /**
+ * This method returns a copy of this <code>Collator</code> object.
+ *
+ * @return A duplicate of this object.
+ */
+ public Object clone ()
+ {
+ try
+ {
+ return super.clone ();
+ }
+ catch (CloneNotSupportedException _)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * This method returns an array of <code>Locale</code> objects which is
+ * the list of locales for which <code>Collator</code> objects exist.
+ *
+ * @return The list of locales for which <code>Collator</code>'s exist.
+ */
+ public static synchronized Locale[] getAvailableLocales ()
+ {
+ return LocaleHelper.getCollatorLocales();
+ }
+
+ /**
+ * This method transforms the specified <code>String</code> into a
+ * <code>CollationKey</code> for faster comparisons. This is useful when
+ * comparisons against a string might be performed multiple times, such
+ * as during a sort operation.
+ *
+ * @param source The <code>String</code> to convert.
+ *
+ * @return A <code>CollationKey</code> for the specified <code>String</code>.
+ */
+ public abstract CollationKey getCollationKey (String source);
+
+ /**
+ * This method returns the current decomposition setting for this
+ * object. This * will be one of NO_DECOMPOSITION,
+ * CANONICAL_DECOMPOSITION, or * FULL_DECOMPOSITION. See the
+ * documentation for those constants for an * explanation of this
+ * setting.
+ *
+ * @return The current decomposition setting.
+ */
+ public synchronized int getDecomposition ()
+ {
+ return decmp;
+ }
+
+ /**
+ * This method returns an instance of <code>Collator</code> for the
+ * default locale.
+ *
+ * @return A <code>Collator</code> for the default locale.
+ */
+ public static Collator getInstance ()
+ {
+ return getInstance (Locale.getDefault());
+ }
+
+ /**
+ * This method returns an instance of <code>Collator</code> for the
+ * specified locale. If no <code>Collator</code> exists for the desired
+ * locale, the fallback procedure described in
+ * {@link java.util.spi.LocaleServiceProvider} is invoked.
+ *
+ * @param loc The desired locale to load a <code>Collator</code> for.
+ *
+ * @return A <code>Collator</code> for the requested locale
+ */
+ public static Collator getInstance (Locale loc)
+ {
+ String pattern;
+ try
+ {
+ ResourceBundle res =
+ ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
+ loc, ClassLoader.getSystemClassLoader());
+ return new RuleBasedCollator(res.getString("collation_rules"));
+ }
+ catch (MissingResourceException x)
+ {
+ /* This means runtime support for the locale
+ * is not available, so we check providers. */
+ }
+ catch (ParseException x)
+ {
+ throw (InternalError)new InternalError().initCause(x);
+ }
+ for (CollatorProvider p : ServiceLoader.load(CollatorProvider.class))
+ {
+ for (Locale l : p.getAvailableLocales())
+ {
+ if (l.equals(loc))
+ {
+ Collator c = p.getInstance(loc);
+ if (c != null)
+ return c;
+ break;
+ }
+ }
+ }
+ if (loc.equals(Locale.ROOT))
+ {
+ try
+ {
+ return new RuleBasedCollator("<0<1<2<3<4<5<6<7<8<9<A,a<b,B<c," +
+ "C<d,D<e,E<f,F<g,G<h,H<i,I<j,J<k,K" +
+ "<l,L<m,M<n,N<o,O<p,P<q,Q<r,R<s,S<t,"+
+ "T<u,U<v,V<w,W<x,X<y,Y<z,Z");
+ }
+ catch (ParseException x)
+ {
+ throw (InternalError)new InternalError().initCause(x);
+ }
+ }
+ return getInstance(LocaleHelper.getFallbackLocale(loc));
+ }
+
+ /**
+ * This method returns the current strength setting for this object. This
+ * will be one of PRIMARY, SECONDARY, TERTIARY, or IDENTICAL. See the
+ * documentation for those constants for an explanation of this setting.
+ *
+ * @return The current strength setting.
+ */
+ public synchronized int getStrength ()
+ {
+ return strength;
+ }
+
+ /**
+ * This method returns a hash code value for this object.
+ *
+ * @return A hash value for this object.
+ */
+ public abstract int hashCode ();
+
+ /**
+ * This method sets the decomposition setting for this object to the
+ * specified value. This must be one of NO_DECOMPOSITION,
+ * CANONICAL_DECOMPOSITION, or FULL_DECOMPOSITION. Otherwise an
+ * exception will be thrown. See the documentation for those
+ * contants for an explanation of this setting.
+ *
+ * @param mode The new decomposition setting.
+ *
+ * @exception IllegalArgumentException If the requested
+ * decomposition setting is not valid.
+ */
+ public synchronized void setDecomposition (int mode)
+ {
+ if (mode != NO_DECOMPOSITION
+ && mode != CANONICAL_DECOMPOSITION
+ && mode != FULL_DECOMPOSITION)
+ throw new IllegalArgumentException ();
+ decmp = mode;
+ }
+
+ /**
+ * This method sets the strength setting for this object to the specified
+ * value. This must be one of PRIMARY, SECONDARY, TERTIARY, or IDENTICAL.
+ * Otherwise an exception is thrown. See the documentation for these
+ * constants for an explanation of this setting.
+ *
+ * @param strength The new strength setting.
+ *
+ * @exception IllegalArgumentException If the requested strength
+ * setting value is not valid.
+ */
+ public synchronized void setStrength (int strength)
+ {
+ if (strength != PRIMARY && strength != SECONDARY
+ && strength != TERTIARY && strength != IDENTICAL)
+ throw new IllegalArgumentException ();
+ this.strength = strength;
+ }
+
+ // Decompose a single character and append results to the buffer.
+ native final void decomposeCharacter (char c, StringBuffer buf);
+
+ /**
+ * This is the current collation decomposition setting.
+ */
+ int decmp;
+
+ /**
+ * This is the current collation strength setting.
+ */
+ int strength;
+}
diff --git a/gcc-4.8/libjava/java/text/DateFormat$Field.h b/gcc-4.8/libjava/java/text/DateFormat$Field.h
new file mode 100644
index 000000000..47480476f
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/DateFormat$Field.h
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_DateFormat$Field__
+#define __java_text_DateFormat$Field__
+
+#pragma interface
+
+#include <java/text/Format$Field.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormat$Field;
+ }
+ }
+}
+
+class java::text::DateFormat$Field : public ::java::text::Format$Field
+{
+
+ DateFormat$Field();
+public: // actually protected
+ DateFormat$Field(::java::lang::String *, jint);
+public:
+ virtual jint getCalendarField();
+ static ::java::text::DateFormat$Field * ofCalendarField(jint);
+public: // actually protected
+ virtual ::java::lang::Object * readResolve();
+public: // actually package-private
+ static const jlong serialVersionUID = 7441350119349544720LL;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::text::Format$Field)))) calendarField;
+public:
+ static ::java::text::DateFormat$Field * ERA;
+ static ::java::text::DateFormat$Field * YEAR;
+ static ::java::text::DateFormat$Field * MONTH;
+ static ::java::text::DateFormat$Field * DAY_OF_MONTH;
+ static ::java::text::DateFormat$Field * HOUR_OF_DAY1;
+ static ::java::text::DateFormat$Field * HOUR_OF_DAY0;
+ static ::java::text::DateFormat$Field * MINUTE;
+ static ::java::text::DateFormat$Field * SECOND;
+ static ::java::text::DateFormat$Field * MILLISECOND;
+ static ::java::text::DateFormat$Field * DAY_OF_WEEK;
+ static ::java::text::DateFormat$Field * DAY_OF_YEAR;
+ static ::java::text::DateFormat$Field * DAY_OF_WEEK_IN_MONTH;
+ static ::java::text::DateFormat$Field * WEEK_OF_YEAR;
+ static ::java::text::DateFormat$Field * WEEK_OF_MONTH;
+ static ::java::text::DateFormat$Field * AM_PM;
+ static ::java::text::DateFormat$Field * HOUR1;
+ static ::java::text::DateFormat$Field * HOUR0;
+ static ::java::text::DateFormat$Field * TIME_ZONE;
+public: // actually package-private
+ static JArray< ::java::text::DateFormat$Field * > * allFields;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_DateFormat$Field__
diff --git a/gcc-4.8/libjava/java/text/DateFormat.h b/gcc-4.8/libjava/java/text/DateFormat.h
new file mode 100644
index 000000000..5f5241fcb
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/DateFormat.h
@@ -0,0 +1,97 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_DateFormat__
+#define __java_text_DateFormat__
+
+#pragma interface
+
+#include <java/text/Format.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormat;
+ class FieldPosition;
+ class NumberFormat;
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::DateFormat : public ::java::text::Format
+{
+
+public: // actually protected
+ DateFormat();
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::lang::String * format(::java::util::Date *);
+ virtual ::java::lang::StringBuffer * format(::java::util::Date *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *) = 0;
+ static JArray< ::java::util::Locale * > * getAvailableLocales();
+ virtual ::java::util::Calendar * getCalendar();
+private:
+ static ::java::text::DateFormat * computeInstance(jint, ::java::util::Locale *, jboolean, jboolean);
+ static ::java::text::DateFormat * computeInstance(jint, jint, ::java::util::Locale *, jboolean, jboolean);
+ static ::java::text::DateFormat * computeDefault(jint, jint, jboolean, jboolean);
+public:
+ static ::java::text::DateFormat * getDateInstance();
+ static ::java::text::DateFormat * getDateInstance(jint);
+ static ::java::text::DateFormat * getDateInstance(jint, ::java::util::Locale *);
+ static ::java::text::DateFormat * getDateTimeInstance();
+ static ::java::text::DateFormat * getDateTimeInstance(jint, jint);
+ static ::java::text::DateFormat * getDateTimeInstance(jint, jint, ::java::util::Locale *);
+ static ::java::text::DateFormat * getInstance();
+ virtual ::java::text::NumberFormat * getNumberFormat();
+ static ::java::text::DateFormat * getTimeInstance();
+ static ::java::text::DateFormat * getTimeInstance(jint);
+ static ::java::text::DateFormat * getTimeInstance(jint, ::java::util::Locale *);
+ virtual ::java::util::TimeZone * getTimeZone();
+ virtual jint hashCode();
+ virtual jboolean isLenient();
+ virtual ::java::util::Date * parse(::java::lang::String *);
+ virtual ::java::util::Date * parse(::java::lang::String *, ::java::text::ParsePosition *) = 0;
+ virtual ::java::lang::Object * parseObject(::java::lang::String *, ::java::text::ParsePosition *);
+ virtual void setCalendar(::java::util::Calendar *);
+ virtual void setLenient(jboolean);
+ virtual void setNumberFormat(::java::text::NumberFormat *);
+ virtual void setTimeZone(::java::util::TimeZone *);
+private:
+ static const jlong serialVersionUID = 7218322306649953788LL;
+public: // actually protected
+ ::java::util::Calendar * __attribute__((aligned(__alignof__( ::java::text::Format)))) calendar;
+ ::java::text::NumberFormat * numberFormat;
+public:
+ static const jint FULL = 0;
+ static const jint LONG = 1;
+ static const jint MEDIUM = 2;
+ static const jint SHORT = 3;
+ static const jint DEFAULT = 2;
+ static const jint ERA_FIELD = 0;
+ static const jint YEAR_FIELD = 1;
+ static const jint MONTH_FIELD = 2;
+ static const jint DATE_FIELD = 3;
+ static const jint HOUR_OF_DAY1_FIELD = 4;
+ static const jint HOUR_OF_DAY0_FIELD = 5;
+ static const jint MINUTE_FIELD = 6;
+ static const jint SECOND_FIELD = 7;
+ static const jint MILLISECOND_FIELD = 8;
+ static const jint DAY_OF_WEEK_FIELD = 9;
+ static const jint DAY_OF_YEAR_FIELD = 10;
+ static const jint DAY_OF_WEEK_IN_MONTH_FIELD = 11;
+ static const jint WEEK_OF_YEAR_FIELD = 12;
+ static const jint WEEK_OF_MONTH_FIELD = 13;
+ static const jint AM_PM_FIELD = 14;
+ static const jint HOUR1_FIELD = 15;
+ static const jint HOUR0_FIELD = 16;
+ static const jint TIMEZONE_FIELD = 17;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_DateFormat__
diff --git a/gcc-4.8/libjava/java/text/DateFormatSymbols$DFSData.h b/gcc-4.8/libjava/java/text/DateFormatSymbols$DFSData.h
new file mode 100644
index 000000000..939223c93
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/DateFormatSymbols$DFSData.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_DateFormatSymbols$DFSData__
+#define __java_text_DateFormatSymbols$DFSData__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormatSymbols$DFSData;
+ }
+ }
+}
+
+class java::text::DateFormatSymbols$DFSData : public ::java::lang::Object
+{
+
+public:
+ DateFormatSymbols$DFSData(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< JArray< ::java::lang::String * > * > *);
+ virtual JArray< ::java::lang::String * > * getAMPMs();
+ virtual JArray< ::java::lang::String * > * getEras();
+ virtual ::java::lang::String * getLocalPatternChars();
+ virtual JArray< ::java::lang::String * > * getMonths();
+ virtual JArray< ::java::lang::String * > * getShortMonths();
+ virtual JArray< ::java::lang::String * > * getWeekdays();
+ virtual JArray< ::java::lang::String * > * getShortWeekdays();
+ virtual JArray< ::java::lang::String * > * getDateFormats();
+ virtual JArray< ::java::lang::String * > * getTimeFormats();
+ virtual JArray< JArray< ::java::lang::String * > * > * getZoneStrings();
+private:
+ JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ampms;
+ JArray< ::java::lang::String * > * eras;
+ ::java::lang::String * localPatternChars;
+ JArray< ::java::lang::String * > * months;
+ JArray< ::java::lang::String * > * shortMonths;
+ JArray< ::java::lang::String * > * weekdays;
+ JArray< ::java::lang::String * > * shortWeekdays;
+ JArray< ::java::lang::String * > * dateFormats;
+ JArray< ::java::lang::String * > * timeFormats;
+ JArray< JArray< ::java::lang::String * > * > * runtimeZoneStrings;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_DateFormatSymbols$DFSData__
diff --git a/gcc-4.8/libjava/java/text/DateFormatSymbols.h b/gcc-4.8/libjava/java/text/DateFormatSymbols.h
new file mode 100644
index 000000000..a4586541c
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/DateFormatSymbols.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_DateFormatSymbols__
+#define __java_text_DateFormatSymbols__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormatSymbols;
+ class DateFormatSymbols$DFSData;
+ }
+ }
+}
+
+class java::text::DateFormatSymbols : public ::java::lang::Object
+{
+
+ static JArray< ::java::lang::String * > * getStringArray(::java::util::List *, ::java::lang::String *, jint);
+ static JArray< ::java::lang::String * > * getStringArray(::java::util::List *, ::java::lang::String *, jint, JArray< ::java::lang::String * > *);
+ static JArray< JArray< ::java::lang::String * > * > * getZoneStrings(::java::util::List *, ::java::util::Locale *);
+ static JArray< ::java::lang::String * > * formatsForKey(::java::util::List *, ::java::lang::String *);
+ static ::java::lang::String * getString(::java::util::List *, ::java::lang::String *);
+ static ::java::text::DateFormatSymbols$DFSData * retrieveData(::java::util::Locale *);
+public:
+ DateFormatSymbols(::java::util::Locale *);
+ DateFormatSymbols();
+ virtual JArray< ::java::lang::String * > * getAmPmStrings();
+ virtual JArray< ::java::lang::String * > * getEras();
+ virtual ::java::lang::String * getLocalPatternChars();
+ virtual JArray< ::java::lang::String * > * getMonths();
+ virtual JArray< ::java::lang::String * > * getShortMonths();
+ virtual JArray< ::java::lang::String * > * getShortWeekdays();
+ virtual JArray< ::java::lang::String * > * getWeekdays();
+ virtual JArray< JArray< ::java::lang::String * > * > * getZoneStrings();
+ virtual void setAmPmStrings(JArray< ::java::lang::String * > *);
+ virtual void setEras(JArray< ::java::lang::String * > *);
+ virtual void setLocalPatternChars(::java::lang::String *);
+ virtual void setMonths(JArray< ::java::lang::String * > *);
+ virtual void setShortMonths(JArray< ::java::lang::String * > *);
+ virtual void setShortWeekdays(JArray< ::java::lang::String * > *);
+ virtual void setWeekdays(JArray< ::java::lang::String * > *);
+ virtual void setZoneStrings(JArray< JArray< ::java::lang::String * > * > *);
+private:
+ static jboolean equals(::java::lang::Object *, ::java::lang::Object *);
+ static jint hashCode(::java::lang::Object *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * clone();
+ virtual jint hashCode();
+ static ::java::text::DateFormatSymbols * getInstance();
+ static ::java::text::DateFormatSymbols * getInstance(::java::util::Locale *);
+private:
+ static ::java::util::Properties * properties;
+ static ::java::util::regex::Pattern * ZONE_SEP;
+ static ::java::util::regex::Pattern * FIELD_SEP;
+ static ::java::util::concurrent::ConcurrentMap * dataCache;
+public: // actually package-private
+ JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ampms;
+ JArray< ::java::lang::String * > * eras;
+private:
+ ::java::lang::String * localPatternChars;
+public: // actually package-private
+ JArray< ::java::lang::String * > * months;
+ JArray< ::java::lang::String * > * shortMonths;
+ JArray< ::java::lang::String * > * shortWeekdays;
+ JArray< ::java::lang::String * > * weekdays;
+private:
+ JArray< JArray< ::java::lang::String * > * > * runtimeZoneStrings;
+ JArray< JArray< ::java::lang::String * > * > * zoneStrings;
+ static const jlong serialVersionUID = -5987973545549424702LL;
+ static JArray< ::java::lang::String * > * formatPrefixes;
+public: // actually package-private
+ JArray< ::java::lang::String * > * dateFormats;
+ JArray< ::java::lang::String * > * timeFormats;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_DateFormatSymbols__
diff --git a/gcc-4.8/libjava/java/text/DecimalFormat.h b/gcc-4.8/libjava/java/text/DecimalFormat.h
new file mode 100644
index 000000000..a3172d742
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/DecimalFormat.h
@@ -0,0 +1,130 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_DecimalFormat__
+#define __java_text_DecimalFormat__
+
+#pragma interface
+
+#include <java/text/NumberFormat.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ }
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class DecimalFormat;
+ class DecimalFormatSymbols;
+ class FieldPosition;
+ class NumberFormat$Field;
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::DecimalFormat : public ::java::text::NumberFormat
+{
+
+public:
+ DecimalFormat();
+ DecimalFormat(::java::lang::String *);
+ DecimalFormat(::java::lang::String *, ::java::text::DecimalFormatSymbols *);
+ virtual void applyLocalizedPattern(::java::lang::String *);
+ virtual void applyPattern(::java::lang::String *);
+ virtual ::java::lang::Object * clone();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::lang::StringBuffer * format(jdouble, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::lang::StringBuffer * format(jlong, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::text::AttributedCharacterIterator * formatToCharacterIterator(::java::lang::Object *);
+ virtual ::java::util::Currency * getCurrency();
+ virtual ::java::text::DecimalFormatSymbols * getDecimalFormatSymbols();
+ virtual jint getGroupingSize();
+ virtual jint getMultiplier();
+ virtual ::java::lang::String * getNegativePrefix();
+ virtual ::java::lang::String * getNegativeSuffix();
+ virtual ::java::lang::String * getPositivePrefix();
+ virtual ::java::lang::String * getPositiveSuffix();
+ virtual jboolean isDecimalSeparatorAlwaysShown();
+ virtual void setParseBigDecimal(jboolean);
+ virtual jboolean isParseBigDecimal();
+ virtual ::java::lang::Number * parse(::java::lang::String *, ::java::text::ParsePosition *);
+ virtual void setCurrency(::java::util::Currency *);
+ virtual void setDecimalFormatSymbols(::java::text::DecimalFormatSymbols *);
+ virtual void setDecimalSeparatorAlwaysShown(jboolean);
+ virtual void setGroupingSize(jint);
+ virtual void setMaximumIntegerDigits(jint);
+ virtual void setMinimumIntegerDigits(jint);
+ virtual void setMaximumFractionDigits(jint);
+ virtual void setMinimumFractionDigits(jint);
+ virtual void setMultiplier(jint);
+ virtual void setNegativePrefix(::java::lang::String *);
+ virtual void setNegativeSuffix(::java::lang::String *);
+ virtual void setPositivePrefix(::java::lang::String *);
+ virtual void setPositiveSuffix(::java::lang::String *);
+ virtual ::java::lang::String * toLocalizedPattern();
+ virtual ::java::lang::String * toPattern();
+private:
+ jboolean equals(::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * patternChars(::java::text::DecimalFormatSymbols *);
+ ::gnu::java::lang::CPStringBuilder * quoteFix(::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * computePattern(::java::text::DecimalFormatSymbols *);
+ void applyPatternWithSymbols(::java::lang::String *, ::java::text::DecimalFormatSymbols *);
+ jint scanFix(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint, jboolean);
+ jint scanNumberInteger(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint);
+ jint scanFractionalPortion(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint);
+ jint scanExponent(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint);
+ void scanNegativePattern(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint);
+ void formatInternal(::java::math::BigDecimal *, jboolean, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ void handleFractionalPart(::java::lang::StringBuffer *, ::java::lang::String *, ::java::text::FieldPosition *, jboolean);
+ void appendZero(::java::lang::StringBuffer *, jint, jint);
+ void appendDigit(::java::lang::String *, ::java::lang::StringBuffer *, jboolean);
+ jlong getExponent(::java::math::BigDecimal *);
+ ::java::lang::String * adjustTrailingZeros(::java::lang::String *, jint);
+ void addAttribute(::java::text::NumberFormat$Field *, jint, jint);
+ void setDefaultValues();
+ static const jlong serialVersionUID = 864413376551465018LL;
+ static const jint DEFAULT_INTEGER_DIGITS = 309;
+ static const jint DEFAULT_FRACTION_DIGITS = 340;
+ static ::java::text::DecimalFormatSymbols * nonLocalizedSymbols;
+ jboolean __attribute__((aligned(__alignof__( ::java::text::NumberFormat)))) parseBigDecimal;
+ jboolean useCurrencySeparator;
+ jboolean decimalSeparatorAlwaysShown;
+ jboolean showDecimalSeparator;
+ jboolean groupingSeparatorInPattern;
+ jbyte groupingSize;
+ jbyte minExponentDigits;
+ jint exponentRound;
+ jint multiplier;
+ jint negativePatternMultiplier;
+ ::java::lang::String * negativePrefix;
+ ::java::lang::String * negativeSuffix;
+ ::java::lang::String * positivePrefix;
+ ::java::lang::String * positiveSuffix;
+ ::java::text::DecimalFormatSymbols * symbols;
+ jboolean useExponentialNotation;
+ jint maxIntegerDigitsExponent;
+ jboolean hasNegativePrefix;
+ jboolean hasFractionalPattern;
+ ::java::util::ArrayList * attributes;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_DecimalFormat__
diff --git a/gcc-4.8/libjava/java/text/DecimalFormatSymbols.h b/gcc-4.8/libjava/java/text/DecimalFormatSymbols.h
new file mode 100644
index 000000000..8d2937757
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/DecimalFormatSymbols.h
@@ -0,0 +1,96 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_DecimalFormatSymbols__
+#define __java_text_DecimalFormatSymbols__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DecimalFormatSymbols;
+ }
+ }
+}
+
+class java::text::DecimalFormatSymbols : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * clone();
+ DecimalFormatSymbols();
+private:
+ ::java::lang::String * safeGetString(::java::util::ResourceBundle *, ::java::lang::String *, ::java::lang::String *);
+ jchar safeGetChar(::java::util::ResourceBundle *, ::java::lang::String *, jchar);
+public:
+ DecimalFormatSymbols(::java::util::Locale *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::util::Currency * getCurrency();
+ virtual ::java::lang::String * getCurrencySymbol();
+ virtual jchar getDecimalSeparator();
+ virtual jchar getDigit();
+public: // actually package-private
+ virtual jchar getExponential();
+public:
+ virtual jchar getGroupingSeparator();
+ virtual ::java::lang::String * getInfinity();
+ virtual ::java::lang::String * getInternationalCurrencySymbol();
+ virtual jchar getMinusSign();
+ virtual jchar getMonetaryDecimalSeparator();
+ virtual ::java::lang::String * getNaN();
+ virtual jchar getPatternSeparator();
+ virtual jchar getPercent();
+ virtual jchar getPerMill();
+ virtual jchar getZeroDigit();
+ virtual jint hashCode();
+ virtual void setCurrency(::java::util::Currency *);
+ virtual void setCurrencySymbol(::java::lang::String *);
+ virtual void setDecimalSeparator(jchar);
+ virtual void setDigit(jchar);
+public: // actually package-private
+ virtual void setExponential(jchar);
+public:
+ virtual void setGroupingSeparator(jchar);
+ virtual void setInfinity(::java::lang::String *);
+ virtual void setInternationalCurrencySymbol(::java::lang::String *);
+ virtual void setMinusSign(jchar);
+ virtual void setMonetaryDecimalSeparator(jchar);
+ virtual void setNaN(::java::lang::String *);
+ virtual void setPatternSeparator(jchar);
+ virtual void setPercent(jchar);
+ virtual void setPerMill(jchar);
+ virtual void setZeroDigit(jchar);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ static ::java::text::DecimalFormatSymbols * getInstance();
+ static ::java::text::DecimalFormatSymbols * getInstance(::java::util::Locale *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) currencySymbol;
+ jchar decimalSeparator;
+ jchar digit;
+ jchar exponential;
+ jchar groupingSeparator;
+ ::java::lang::String * infinity;
+ ::java::lang::String * intlCurrencySymbol;
+ jchar minusSign;
+ jchar monetarySeparator;
+ ::java::lang::String * NaN;
+ jchar patternSeparator;
+ jchar percent;
+ jchar perMill;
+ jint serialVersionOnStream;
+ jchar zeroDigit;
+ ::java::util::Locale * locale;
+ ::java::util::Currency * currency;
+ static const jlong serialVersionUID = 5772796243397350300LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_DecimalFormatSymbols__
diff --git a/gcc-4.8/libjava/java/text/FieldPosition.h b/gcc-4.8/libjava/java/text/FieldPosition.h
new file mode 100644
index 000000000..d61f9115f
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/FieldPosition.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_FieldPosition__
+#define __java_text_FieldPosition__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class FieldPosition;
+ class Format$Field;
+ }
+ }
+}
+
+class java::text::FieldPosition : public ::java::lang::Object
+{
+
+public:
+ FieldPosition(::java::text::Format$Field *);
+ FieldPosition(::java::text::Format$Field *, jint);
+ FieldPosition(jint);
+ virtual jint getField();
+ virtual ::java::text::Format$Field * getFieldAttribute();
+ virtual jint getBeginIndex();
+ virtual void setBeginIndex(jint);
+ virtual jint getEndIndex();
+ virtual void setEndIndex(jint);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) field_id;
+ jint begin;
+ jint end;
+ ::java::text::Format$Field * field_attribute;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_FieldPosition__
diff --git a/gcc-4.8/libjava/java/text/Format$Field.h b/gcc-4.8/libjava/java/text/Format$Field.h
new file mode 100644
index 000000000..197dd7dce
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/Format$Field.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_Format$Field__
+#define __java_text_Format$Field__
+
+#pragma interface
+
+#include <java/text/AttributedCharacterIterator$Attribute.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class Format$Field;
+ }
+ }
+}
+
+class java::text::Format$Field : public ::java::text::AttributedCharacterIterator$Attribute
+{
+
+public: // actually protected
+ Format$Field(::java::lang::String *);
+public: // actually package-private
+ static const jlong serialVersionUID = 276966692217360283LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_Format$Field__
diff --git a/gcc-4.8/libjava/java/text/Format.h b/gcc-4.8/libjava/java/text/Format.h
new file mode 100644
index 000000000..a0b6d515d
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/Format.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_Format__
+#define __java_text_Format__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class FieldPosition;
+ class Format;
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::Format : public ::java::lang::Object
+{
+
+public: // actually protected
+ Format();
+public:
+ virtual ::java::lang::String * format(::java::lang::Object *);
+ virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *) = 0;
+ virtual ::java::lang::Object * parseObject(::java::lang::String *);
+ virtual ::java::lang::Object * parseObject(::java::lang::String *, ::java::text::ParsePosition *) = 0;
+ virtual ::java::text::AttributedCharacterIterator * formatToCharacterIterator(::java::lang::Object *);
+ virtual ::java::lang::Object * clone();
+public: // actually package-private
+ static const jlong serialVersionUID = -299282585814624189LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_Format__
diff --git a/gcc-4.8/libjava/java/text/MessageFormat$Field.h b/gcc-4.8/libjava/java/text/MessageFormat$Field.h
new file mode 100644
index 000000000..78a9bebba
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/MessageFormat$Field.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_MessageFormat$Field__
+#define __java_text_MessageFormat$Field__
+
+#pragma interface
+
+#include <java/text/Format$Field.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class MessageFormat$Field;
+ }
+ }
+}
+
+class java::text::MessageFormat$Field : public ::java::text::Format$Field
+{
+
+ MessageFormat$Field();
+public: // actually protected
+ MessageFormat$Field(::java::lang::String *);
+ virtual ::java::lang::Object * readResolve();
+public: // actually package-private
+ static const jlong serialVersionUID = 7899943957617360810LL;
+public:
+ static ::java::text::MessageFormat$Field * ARGUMENT;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_MessageFormat$Field__
diff --git a/gcc-4.8/libjava/java/text/MessageFormat$MessageFormatElement.h b/gcc-4.8/libjava/java/text/MessageFormat$MessageFormatElement.h
new file mode 100644
index 000000000..9a95f1f7f
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/MessageFormat$MessageFormatElement.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_MessageFormat$MessageFormatElement__
+#define __java_text_MessageFormat$MessageFormatElement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class Format;
+ class MessageFormat$MessageFormatElement;
+ }
+ }
+}
+
+class java::text::MessageFormat$MessageFormatElement : public ::java::lang::Object
+{
+
+ MessageFormat$MessageFormatElement();
+public: // actually package-private
+ void setLocale(::java::util::Locale *);
+ MessageFormat$MessageFormatElement(::java::text::MessageFormat$MessageFormatElement *);
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) argNumber;
+ ::java::text::Format * setFormat;
+ ::java::text::Format * format;
+ ::java::lang::Class * formatClass;
+ ::java::lang::String * type;
+ ::java::lang::String * style;
+ ::java::lang::String * trailer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_MessageFormat$MessageFormatElement__
diff --git a/gcc-4.8/libjava/java/text/MessageFormat.h b/gcc-4.8/libjava/java/text/MessageFormat.h
new file mode 100644
index 000000000..961b09541
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/MessageFormat.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_MessageFormat__
+#define __java_text_MessageFormat__
+
+#pragma interface
+
+#include <java/text/Format.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ namespace text
+ {
+ class FormatCharacterIterator;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class FieldPosition;
+ class Format;
+ class MessageFormat;
+ class MessageFormat$MessageFormatElement;
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::MessageFormat : public ::java::text::Format
+{
+
+ static jint scanString(::java::lang::String *, jint, ::gnu::java::lang::CPStringBuilder *);
+ static jint scanFormatElement(::java::lang::String *, jint, ::gnu::java::lang::CPStringBuilder *, jchar);
+ static jint scanFormat(::java::lang::String *, jint, ::gnu::java::lang::CPStringBuilder *, ::java::util::List *, ::java::util::Locale *);
+public:
+ virtual void applyPattern(::java::lang::String *);
+ virtual ::java::lang::Object * clone();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::text::AttributedCharacterIterator * formatToCharacterIterator(::java::lang::Object *);
+ static ::java::lang::String * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::StringBuffer * format(JArray< ::java::lang::Object * > *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+private:
+ ::java::lang::StringBuffer * formatInternal(JArray< ::java::lang::Object * > *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *, ::gnu::java::text::FormatCharacterIterator *);
+public:
+ virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual JArray< ::java::text::Format * > * getFormats();
+ virtual ::java::util::Locale * getLocale();
+ virtual jint hashCode();
+private:
+ MessageFormat();
+public:
+ MessageFormat(::java::lang::String *);
+ MessageFormat(::java::lang::String *, ::java::util::Locale *);
+ virtual JArray< ::java::lang::Object * > * parse(::java::lang::String *, ::java::text::ParsePosition *);
+ virtual JArray< ::java::lang::Object * > * parse(::java::lang::String *);
+ virtual ::java::lang::Object * parseObject(::java::lang::String *, ::java::text::ParsePosition *);
+ virtual void setFormat(jint, ::java::text::Format *);
+ virtual void setFormats(JArray< ::java::text::Format * > *);
+ virtual void setLocale(::java::util::Locale *);
+ virtual ::java::lang::String * toPattern();
+ virtual JArray< ::java::text::Format * > * getFormatsByArgumentIndex();
+ virtual void setFormatByArgumentIndex(jint, ::java::text::Format *);
+ virtual void setFormatsByArgumentIndex(JArray< ::java::text::Format * > *);
+private:
+ static const jlong serialVersionUID = 6479157306784022952LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::text::Format)))) pattern;
+ ::java::util::Locale * locale;
+ JArray< ::java::text::MessageFormat$MessageFormatElement * > * elements;
+ ::java::lang::String * leader;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_MessageFormat__
diff --git a/gcc-4.8/libjava/java/text/NumberFormat$Field.h b/gcc-4.8/libjava/java/text/NumberFormat$Field.h
new file mode 100644
index 000000000..6b72af0a4
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/NumberFormat$Field.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_NumberFormat$Field__
+#define __java_text_NumberFormat$Field__
+
+#pragma interface
+
+#include <java/text/Format$Field.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class NumberFormat$Field;
+ }
+ }
+}
+
+class java::text::NumberFormat$Field : public ::java::text::Format$Field
+{
+
+ NumberFormat$Field();
+public: // actually protected
+ NumberFormat$Field(::java::lang::String *);
+ virtual ::java::lang::Object * readResolve();
+public: // actually package-private
+ static const jlong serialVersionUID = 7494728892700160890LL;
+public:
+ static ::java::text::NumberFormat$Field * INTEGER;
+ static ::java::text::NumberFormat$Field * FRACTION;
+ static ::java::text::NumberFormat$Field * EXPONENT;
+ static ::java::text::NumberFormat$Field * DECIMAL_SEPARATOR;
+ static ::java::text::NumberFormat$Field * SIGN;
+ static ::java::text::NumberFormat$Field * GROUPING_SEPARATOR;
+ static ::java::text::NumberFormat$Field * EXPONENT_SYMBOL;
+ static ::java::text::NumberFormat$Field * PERCENT;
+ static ::java::text::NumberFormat$Field * PERMILLE;
+ static ::java::text::NumberFormat$Field * CURRENCY;
+ static ::java::text::NumberFormat$Field * EXPONENT_SIGN;
+private:
+ static JArray< ::java::text::NumberFormat$Field * > * allFields;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_NumberFormat$Field__
diff --git a/gcc-4.8/libjava/java/text/NumberFormat.h b/gcc-4.8/libjava/java/text/NumberFormat.h
new file mode 100644
index 000000000..0b480da4a
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/NumberFormat.h
@@ -0,0 +1,102 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_NumberFormat__
+#define __java_text_NumberFormat__
+
+#pragma interface
+
+#include <java/text/Format.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class FieldPosition;
+ class NumberFormat;
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::NumberFormat : public ::java::text::Format
+{
+
+public:
+ virtual ::java::lang::String * format(jlong);
+ virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::lang::StringBuffer * format(jdouble, ::java::lang::StringBuffer *, ::java::text::FieldPosition *) = 0;
+ virtual ::java::lang::StringBuffer * format(jlong, ::java::lang::StringBuffer *, ::java::text::FieldPosition *) = 0;
+ virtual jboolean equals(::java::lang::Object *);
+ static JArray< ::java::util::Locale * > * getAvailableLocales();
+private:
+ static ::java::text::NumberFormat * computeInstance(::java::util::Locale *, ::java::lang::String *, ::java::lang::String *);
+public:
+ static ::java::text::NumberFormat * getCurrencyInstance();
+ static ::java::text::NumberFormat * getCurrencyInstance(::java::util::Locale *);
+ static ::java::text::NumberFormat * getInstance();
+ static ::java::text::NumberFormat * getInstance(::java::util::Locale *);
+ virtual jint getMaximumFractionDigits();
+ virtual jint getMaximumIntegerDigits();
+ virtual jint getMinimumFractionDigits();
+ virtual jint getMinimumIntegerDigits();
+ static ::java::text::NumberFormat * getNumberInstance();
+ static ::java::text::NumberFormat * getNumberInstance(::java::util::Locale *);
+ static ::java::text::NumberFormat * getIntegerInstance();
+ static ::java::text::NumberFormat * getIntegerInstance(::java::util::Locale *);
+ static ::java::text::NumberFormat * getPercentInstance();
+ static ::java::text::NumberFormat * getPercentInstance(::java::util::Locale *);
+ virtual jint hashCode();
+ virtual jboolean isGroupingUsed();
+ virtual jboolean isParseIntegerOnly();
+public: // actually protected
+ NumberFormat();
+public:
+ virtual ::java::lang::Number * parse(::java::lang::String *, ::java::text::ParsePosition *) = 0;
+ virtual ::java::lang::Number * parse(::java::lang::String *);
+ virtual ::java::lang::Object * parseObject(::java::lang::String *, ::java::text::ParsePosition *);
+ virtual void setGroupingUsed(jboolean);
+ virtual void setMaximumFractionDigits(jint);
+ virtual void setMaximumIntegerDigits(jint);
+ virtual void setMinimumFractionDigits(jint);
+ virtual void setMinimumIntegerDigits(jint);
+ virtual void setParseIntegerOnly(jboolean);
+ virtual ::java::lang::String * format(jdouble);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ virtual ::java::util::Currency * getCurrency();
+ virtual void setCurrency(::java::util::Currency *);
+ static const jint INTEGER_FIELD = 0;
+ static const jint FRACTION_FIELD = 1;
+public: // actually package-private
+ jboolean __attribute__((aligned(__alignof__( ::java::text::Format)))) groupingUsed;
+ jint maximumFractionDigits;
+private:
+ jbyte maxFractionDigits;
+public: // actually package-private
+ jint maximumIntegerDigits;
+private:
+ jbyte maxIntegerDigits;
+public: // actually package-private
+ jint minimumFractionDigits;
+private:
+ jbyte minFractionDigits;
+public: // actually package-private
+ jint minimumIntegerDigits;
+private:
+ jbyte minIntegerDigits;
+public: // actually package-private
+ jboolean parseIntegerOnly;
+private:
+ jint serialVersionOnStream;
+ static const jlong serialVersionUID = -2308460125733713944LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_NumberFormat__
diff --git a/gcc-4.8/libjava/java/text/ParseException.h b/gcc-4.8/libjava/java/text/ParseException.h
new file mode 100644
index 000000000..e8b314fa2
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/ParseException.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_ParseException__
+#define __java_text_ParseException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class ParseException;
+ }
+ }
+}
+
+class java::text::ParseException : public ::java::lang::Exception
+{
+
+public:
+ ParseException(::java::lang::String *, jint);
+ virtual jint getErrorOffset();
+private:
+ static const jlong serialVersionUID = 2703218443322787634LL;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) errorOffset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_ParseException__
diff --git a/gcc-4.8/libjava/java/text/ParsePosition.h b/gcc-4.8/libjava/java/text/ParsePosition.h
new file mode 100644
index 000000000..4f7970cea
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/ParsePosition.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_ParsePosition__
+#define __java_text_ParsePosition__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class ParsePosition;
+ }
+ }
+}
+
+class java::text::ParsePosition : public ::java::lang::Object
+{
+
+public:
+ ParsePosition(jint);
+ virtual jint getIndex();
+ virtual void setIndex(jint);
+ virtual jint getErrorIndex();
+ virtual void setErrorIndex(jint);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index;
+ jint error_index;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_ParsePosition__
diff --git a/gcc-4.8/libjava/java/text/RuleBasedCollator$CollationElement.h b/gcc-4.8/libjava/java/text/RuleBasedCollator$CollationElement.h
new file mode 100644
index 000000000..8baa2a46d
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/RuleBasedCollator$CollationElement.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_RuleBasedCollator$CollationElement__
+#define __java_text_RuleBasedCollator$CollationElement__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class RuleBasedCollator$CollationElement;
+ }
+ }
+}
+
+class java::text::RuleBasedCollator$CollationElement : public ::java::lang::Object
+{
+
+public: // actually package-private
+ RuleBasedCollator$CollationElement(::java::lang::String *, jint, jshort, jshort, jshort, ::java::lang::String *, jboolean);
+ jint getValue();
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ jint primary;
+ jshort secondary;
+ jshort tertiary;
+ jshort equality;
+ jboolean ignore;
+ ::java::lang::String * expansion;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_RuleBasedCollator$CollationElement__
diff --git a/gcc-4.8/libjava/java/text/RuleBasedCollator$CollationSorter.h b/gcc-4.8/libjava/java/text/RuleBasedCollator$CollationSorter.h
new file mode 100644
index 000000000..fb3d18895
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/RuleBasedCollator$CollationSorter.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_RuleBasedCollator$CollationSorter__
+#define __java_text_RuleBasedCollator$CollationSorter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class RuleBasedCollator$CollationSorter;
+ }
+ }
+}
+
+class java::text::RuleBasedCollator$CollationSorter : public ::java::lang::Object
+{
+
+ RuleBasedCollator$CollationSorter(jint, ::java::lang::String *, jint, jboolean);
+public: // actually package-private
+ RuleBasedCollator$CollationSorter(jint, ::java::lang::String *, jint, jboolean, ::java::text::RuleBasedCollator$CollationSorter *);
+ static const jint GREATERP = 0;
+ static const jint GREATERS = 1;
+ static const jint GREATERT = 2;
+ static const jint EQUAL = 3;
+ static const jint RESET = 4;
+ static const jint INVERSE_SECONDARY = 5;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) comparisonType;
+ ::java::lang::String * textElement;
+ jint hashText;
+ jint offset;
+ jboolean ignore;
+ ::java::lang::String * expansionOrdering;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_RuleBasedCollator$CollationSorter__
diff --git a/gcc-4.8/libjava/java/text/RuleBasedCollator.h b/gcc-4.8/libjava/java/text/RuleBasedCollator.h
new file mode 100644
index 000000000..74b5aa8ea
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/RuleBasedCollator.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_RuleBasedCollator__
+#define __java_text_RuleBasedCollator__
+
+#pragma interface
+
+#include <java/text/Collator.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class CharacterIterator;
+ class CollationElementIterator;
+ class CollationKey;
+ class RuleBasedCollator;
+ class RuleBasedCollator$CollationElement;
+ }
+ }
+}
+
+class java::text::RuleBasedCollator : public ::java::text::Collator
+{
+
+public:
+ RuleBasedCollator(::java::lang::String *);
+public: // actually package-private
+ static jint findPrefixLength(::java::lang::String *, ::java::lang::String *);
+private:
+ void mergeRules(jint, ::java::lang::String *, ::java::util::ArrayList *, ::java::util::ArrayList *);
+ jint subParseString(jboolean, ::java::util::ArrayList *, jint, ::java::lang::String *);
+public:
+ virtual ::java::lang::Object * clone();
+private:
+ ::java::util::ArrayList * parseString(::java::lang::String *);
+ void buildCollationVector(::java::util::ArrayList *);
+ void buildPrefixAccess();
+public:
+ virtual jint compare(::java::lang::String *, ::java::lang::String *);
+ virtual jboolean equals(::java::lang::Object *);
+public: // actually package-private
+ virtual ::java::text::RuleBasedCollator$CollationElement * getDefaultElement(jchar);
+ virtual ::java::text::RuleBasedCollator$CollationElement * getDefaultAccentedElement(jchar);
+public:
+ virtual ::java::text::CollationElementIterator * getCollationElementIterator(::java::lang::String *);
+ virtual ::java::text::CollationElementIterator * getCollationElementIterator(::java::text::CharacterIterator *);
+ virtual ::java::text::CollationKey * getCollationKey(::java::lang::String *);
+ virtual ::java::lang::String * getRules();
+ virtual jint hashCode();
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::text::Collator)))) rules;
+ JArray< ::java::text::RuleBasedCollator$CollationElement * > * ce_table;
+public: // actually package-private
+ ::java::util::HashMap * prefix_tree;
+private:
+ jint last_primary_value;
+ jint last_tertiary_value;
+ jboolean inverseAccentComparison;
+public: // actually package-private
+ static ::java::text::RuleBasedCollator$CollationElement * SPECIAL_UNKNOWN_SEQ;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_RuleBasedCollator__
diff --git a/gcc-4.8/libjava/java/text/SimpleDateFormat$CompiledField.h b/gcc-4.8/libjava/java/text/SimpleDateFormat$CompiledField.h
new file mode 100644
index 000000000..b18879201
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/SimpleDateFormat$CompiledField.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_SimpleDateFormat$CompiledField__
+#define __java_text_SimpleDateFormat$CompiledField__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class SimpleDateFormat;
+ class SimpleDateFormat$CompiledField;
+ }
+ }
+}
+
+class java::text::SimpleDateFormat$CompiledField : public ::java::lang::Object
+{
+
+public:
+ SimpleDateFormat$CompiledField(::java::text::SimpleDateFormat *, jint, jint, jchar);
+ virtual jint getField();
+ virtual jint getSize();
+ virtual jchar getCharacter();
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) field;
+ jint size;
+private:
+ jchar character;
+public: // actually package-private
+ ::java::text::SimpleDateFormat * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_SimpleDateFormat$CompiledField__
diff --git a/gcc-4.8/libjava/java/text/SimpleDateFormat.h b/gcc-4.8/libjava/java/text/SimpleDateFormat.h
new file mode 100644
index 000000000..dbdb8169f
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/SimpleDateFormat.h
@@ -0,0 +1,88 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_SimpleDateFormat__
+#define __java_text_SimpleDateFormat__
+
+#pragma interface
+
+#include <java/text/DateFormat.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace text
+ {
+ class FormatBuffer;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace text
+ {
+ class AttributedCharacterIterator;
+ class DateFormatSymbols;
+ class FieldPosition;
+ class ParsePosition;
+ class SimpleDateFormat;
+ }
+ }
+}
+
+class java::text::SimpleDateFormat : public ::java::text::DateFormat
+{
+
+ void readObject(::java::io::ObjectInputStream *);
+ void compileFormat(::java::lang::String *);
+public:
+ virtual ::java::lang::String * toString();
+ SimpleDateFormat();
+ SimpleDateFormat(::java::lang::String *);
+ SimpleDateFormat(::java::lang::String *, ::java::util::Locale *);
+ SimpleDateFormat(::java::lang::String *, ::java::text::DateFormatSymbols *);
+ virtual ::java::lang::String * toPattern();
+ virtual ::java::lang::String * toLocalizedPattern();
+ virtual void applyPattern(::java::lang::String *);
+ virtual void applyLocalizedPattern(::java::lang::String *);
+private:
+ ::java::lang::String * translateLocalizedPattern(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+public:
+ virtual ::java::util::Date * get2DigitYearStart();
+ virtual void set2DigitYearStart(::java::util::Date *);
+ virtual ::java::text::DateFormatSymbols * getDateFormatSymbols();
+ virtual void setDateFormatSymbols(::java::text::DateFormatSymbols *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+private:
+ void formatWithAttribute(::java::util::Date *, ::gnu::java::text::FormatBuffer *, ::java::text::FieldPosition *);
+public:
+ virtual ::java::lang::StringBuffer * format(::java::util::Date *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *);
+ virtual ::java::text::AttributedCharacterIterator * formatToCharacterIterator(::java::lang::Object *);
+private:
+ void withLeadingZeros(jint, jint, ::gnu::java::text::FormatBuffer *);
+ jboolean expect(::java::lang::String *, ::java::text::ParsePosition *, jchar);
+public:
+ virtual ::java::util::Date * parse(::java::lang::String *, ::java::text::ParsePosition *);
+private:
+ ::java::lang::Integer * computeOffset(::java::lang::String *, ::java::text::ParsePosition *);
+ void computeCenturyStart();
+public:
+ virtual ::java::lang::Object * clone();
+private:
+ ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::text::DateFormat)))) tokens;
+ ::java::text::DateFormatSymbols * formatData;
+ ::java::util::Date * defaultCenturyStart;
+ jint defaultCentury;
+ ::java::lang::String * pattern;
+ jint serialVersionOnStream;
+ static const jlong serialVersionUID = 4774881970558875024LL;
+ static ::java::lang::String * standardChars;
+ static const jint RFC822_TIMEZONE_FIELD = 23;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_SimpleDateFormat__
diff --git a/gcc-4.8/libjava/java/text/StringCharacterIterator.h b/gcc-4.8/libjava/java/text/StringCharacterIterator.h
new file mode 100644
index 000000000..d17696356
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/StringCharacterIterator.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_StringCharacterIterator__
+#define __java_text_StringCharacterIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class StringCharacterIterator;
+ }
+ }
+}
+
+class java::text::StringCharacterIterator : public ::java::lang::Object
+{
+
+public:
+ StringCharacterIterator(::java::lang::String *);
+ StringCharacterIterator(::java::lang::String *, jint);
+ StringCharacterIterator(::java::lang::String *, jint, jint, jint);
+public: // actually package-private
+ StringCharacterIterator(::java::text::StringCharacterIterator *, jint, jint);
+public:
+ jchar current();
+ jchar next();
+ jchar previous();
+ jchar first();
+ jchar last();
+ jint getIndex();
+ jchar setIndex(jint);
+ jint getBeginIndex();
+ jint getEndIndex();
+ ::java::lang::Object * clone();
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ void setText(::java::lang::String *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text;
+ jint begin;
+ jint end;
+ jint index;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_StringCharacterIterator__
diff --git a/gcc-4.8/libjava/java/text/natCollator.cc b/gcc-4.8/libjava/java/text/natCollator.cc
new file mode 100644
index 000000000..676a4a41a
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/natCollator.cc
@@ -0,0 +1,74 @@
+// natCollator.cc - Native code for collation.
+
+/* Copyright (C) 1999 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// Written by Tom Tromey <tromey@cygnus.com>.
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/text/Collator.h>
+#include <java/lang/StringBuffer.h>
+
+#include <java-chardecomp.h>
+
+void
+java::text::Collator::decomposeCharacter (jchar c,
+ java::lang::StringBuffer *buf)
+{
+ if (decmp == NO_DECOMPOSITION)
+ {
+ buf->append(c);
+ return;
+ }
+
+ const struct decomp_entry *base;
+ int high;
+
+ if (decmp == FULL_DECOMPOSITION)
+ {
+ base = full_decomposition;
+ high = sizeof (full_decomposition) / sizeof (struct decomp_entry);
+ }
+ else
+ {
+ base = canonical_decomposition;
+ high = sizeof (canonical_decomposition) / sizeof (struct decomp_entry);
+ }
+
+ // FIXME: this is probably a bit slow for the task at hand.
+ int i = high / 2;
+ int low = 0;
+ while (true)
+ {
+ if (c < base[i].key)
+ high = i;
+ else if (c > base[i].key)
+ low = i;
+ else
+ break;
+
+ int old = i;
+ i = (high + low) / 2;
+ if (i == old)
+ {
+ // Not in table, so it expands to itself.
+ buf->append(c);
+ return;
+ }
+ }
+
+ for (int j = 0; base[i].value[j] != '\0'; j += 2)
+ {
+ jchar x = (base[i].value[j] << 8) | (base[i].value[j + 1]);
+ buf->append (x);
+ }
+}
diff --git a/gcc-4.8/libjava/java/text/spi/BreakIteratorProvider.h b/gcc-4.8/libjava/java/text/spi/BreakIteratorProvider.h
new file mode 100644
index 000000000..663dff22f
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/spi/BreakIteratorProvider.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_spi_BreakIteratorProvider__
+#define __java_text_spi_BreakIteratorProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class BreakIterator;
+ namespace spi
+ {
+ class BreakIteratorProvider;
+ }
+ }
+ }
+}
+
+class java::text::spi::BreakIteratorProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ BreakIteratorProvider();
+public:
+ virtual ::java::text::BreakIterator * getCharacterInstance(::java::util::Locale *) = 0;
+ virtual ::java::text::BreakIterator * getLineInstance(::java::util::Locale *) = 0;
+ virtual ::java::text::BreakIterator * getSentenceInstance(::java::util::Locale *) = 0;
+ virtual ::java::text::BreakIterator * getWordInstance(::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_spi_BreakIteratorProvider__
diff --git a/gcc-4.8/libjava/java/text/spi/CollatorProvider.h b/gcc-4.8/libjava/java/text/spi/CollatorProvider.h
new file mode 100644
index 000000000..bf072711b
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/spi/CollatorProvider.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_spi_CollatorProvider__
+#define __java_text_spi_CollatorProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class Collator;
+ namespace spi
+ {
+ class CollatorProvider;
+ }
+ }
+ }
+}
+
+class java::text::spi::CollatorProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ CollatorProvider();
+public:
+ virtual ::java::text::Collator * getInstance(::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_spi_CollatorProvider__
diff --git a/gcc-4.8/libjava/java/text/spi/DateFormatProvider.h b/gcc-4.8/libjava/java/text/spi/DateFormatProvider.h
new file mode 100644
index 000000000..15f6e36e2
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/spi/DateFormatProvider.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_spi_DateFormatProvider__
+#define __java_text_spi_DateFormatProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormat;
+ namespace spi
+ {
+ class DateFormatProvider;
+ }
+ }
+ }
+}
+
+class java::text::spi::DateFormatProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ DateFormatProvider();
+public:
+ virtual ::java::text::DateFormat * getDateInstance(jint, ::java::util::Locale *) = 0;
+ virtual ::java::text::DateFormat * getDateTimeInstance(jint, jint, ::java::util::Locale *) = 0;
+ virtual ::java::text::DateFormat * getTimeInstance(jint, ::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_spi_DateFormatProvider__
diff --git a/gcc-4.8/libjava/java/text/spi/DateFormatSymbolsProvider.h b/gcc-4.8/libjava/java/text/spi/DateFormatSymbolsProvider.h
new file mode 100644
index 000000000..4a7012920
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/spi/DateFormatSymbolsProvider.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_spi_DateFormatSymbolsProvider__
+#define __java_text_spi_DateFormatSymbolsProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormatSymbols;
+ namespace spi
+ {
+ class DateFormatSymbolsProvider;
+ }
+ }
+ }
+}
+
+class java::text::spi::DateFormatSymbolsProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ DateFormatSymbolsProvider();
+public:
+ virtual ::java::text::DateFormatSymbols * getInstance(::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_spi_DateFormatSymbolsProvider__
diff --git a/gcc-4.8/libjava/java/text/spi/DecimalFormatSymbolsProvider.h b/gcc-4.8/libjava/java/text/spi/DecimalFormatSymbolsProvider.h
new file mode 100644
index 000000000..ceead0294
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/spi/DecimalFormatSymbolsProvider.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_spi_DecimalFormatSymbolsProvider__
+#define __java_text_spi_DecimalFormatSymbolsProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DecimalFormatSymbols;
+ namespace spi
+ {
+ class DecimalFormatSymbolsProvider;
+ }
+ }
+ }
+}
+
+class java::text::spi::DecimalFormatSymbolsProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ DecimalFormatSymbolsProvider();
+public:
+ virtual ::java::text::DecimalFormatSymbols * getInstance(::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_spi_DecimalFormatSymbolsProvider__
diff --git a/gcc-4.8/libjava/java/text/spi/NumberFormatProvider.h b/gcc-4.8/libjava/java/text/spi/NumberFormatProvider.h
new file mode 100644
index 000000000..4224aeaa4
--- /dev/null
+++ b/gcc-4.8/libjava/java/text/spi/NumberFormatProvider.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_text_spi_NumberFormatProvider__
+#define __java_text_spi_NumberFormatProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class NumberFormat;
+ namespace spi
+ {
+ class NumberFormatProvider;
+ }
+ }
+ }
+}
+
+class java::text::spi::NumberFormatProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ NumberFormatProvider();
+public:
+ virtual ::java::text::NumberFormat * getCurrencyInstance(::java::util::Locale *) = 0;
+ virtual ::java::text::NumberFormat * getIntegerInstance(::java::util::Locale *) = 0;
+ virtual ::java::text::NumberFormat * getNumberInstance(::java::util::Locale *) = 0;
+ virtual ::java::text::NumberFormat * getPercentInstance(::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_text_spi_NumberFormatProvider__
diff --git a/gcc-4.8/libjava/java/util/AbstractCollection.h b/gcc-4.8/libjava/java/util/AbstractCollection.h
new file mode 100644
index 000000000..15d129d1c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractCollection.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractCollection__
+#define __java_util_AbstractCollection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::AbstractCollection : public ::java::lang::Object
+{
+
+public: // actually protected
+ AbstractCollection();
+public:
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jint size() = 0;
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean isEmpty();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+public: // actually package-private
+ virtual jboolean removeAllInternal(::java::util::Collection *);
+public:
+ virtual jboolean retainAll(::java::util::Collection *);
+public: // actually package-private
+ virtual jboolean retainAllInternal(::java::util::Collection *);
+public:
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ static jboolean equals(::java::lang::Object *, ::java::lang::Object *);
+ static jint hashCode(::java::lang::Object *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractCollection__
diff --git a/gcc-4.8/libjava/java/util/AbstractList$1.h b/gcc-4.8/libjava/java/util/AbstractList$1.h
new file mode 100644
index 000000000..d7aaf2d08
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractList$1.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractList$1__
+#define __java_util_AbstractList$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractList$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractList$1(::java::util::AbstractList$SubList *, jint);
+public:
+ virtual jboolean hasNext();
+ virtual jboolean hasPrevious();
+ virtual ::java::lang::Object * next();
+ virtual ::java::lang::Object * previous();
+ virtual jint nextIndex();
+ virtual jint previousIndex();
+ virtual void remove();
+ virtual void set(::java::lang::Object *);
+ virtual void add(::java::lang::Object *);
+private:
+ ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
+ jint position;
+public: // actually package-private
+ ::java::util::AbstractList$SubList * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractList$1__
diff --git a/gcc-4.8/libjava/java/util/AbstractList$2.h b/gcc-4.8/libjava/java/util/AbstractList$2.h
new file mode 100644
index 000000000..eb15682f3
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractList$2.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractList$2__
+#define __java_util_AbstractList$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractList$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractList$2(::java::util::AbstractList *);
+private:
+ void checkMod();
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) pos;
+ jint size;
+ jint last;
+ jint knownMod;
+public: // actually package-private
+ ::java::util::AbstractList * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractList$2__
diff --git a/gcc-4.8/libjava/java/util/AbstractList$3.h b/gcc-4.8/libjava/java/util/AbstractList$3.h
new file mode 100644
index 000000000..8c3254167
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractList$3.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractList$3__
+#define __java_util_AbstractList$3__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractList$3 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractList$3(::java::util::AbstractList *, jint);
+private:
+ void checkMod();
+public:
+ virtual jboolean hasNext();
+ virtual jboolean hasPrevious();
+ virtual ::java::lang::Object * next();
+ virtual ::java::lang::Object * previous();
+ virtual jint nextIndex();
+ virtual jint previousIndex();
+ virtual void remove();
+ virtual void set(::java::lang::Object *);
+ virtual void add(::java::lang::Object *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) knownMod;
+ jint position;
+ jint lastReturned;
+ jint size;
+public: // actually package-private
+ ::java::util::AbstractList * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractList$3__
diff --git a/gcc-4.8/libjava/java/util/AbstractList$RandomAccessSubList.h b/gcc-4.8/libjava/java/util/AbstractList$RandomAccessSubList.h
new file mode 100644
index 000000000..49b23bc39
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractList$RandomAccessSubList.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractList$RandomAccessSubList__
+#define __java_util_AbstractList$RandomAccessSubList__
+
+#pragma interface
+
+#include <java/util/AbstractList$SubList.h>
+
+class java::util::AbstractList$RandomAccessSubList : public ::java::util::AbstractList$SubList
+{
+
+public: // actually package-private
+ AbstractList$RandomAccessSubList(::java::util::AbstractList *, jint, jint);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractList$RandomAccessSubList__
diff --git a/gcc-4.8/libjava/java/util/AbstractList$SubList.h b/gcc-4.8/libjava/java/util/AbstractList$SubList.h
new file mode 100644
index 000000000..e258ed4df
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractList$SubList.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractList$SubList__
+#define __java_util_AbstractList$SubList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+
+class java::util::AbstractList$SubList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+ AbstractList$SubList(::java::util::AbstractList *, jint, jint);
+ virtual void checkMod();
+private:
+ void checkBoundsInclusive(jint);
+ void checkBoundsExclusive(jint);
+public:
+ virtual jint size();
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * get(jint);
+ virtual void add(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(jint);
+public: // actually protected
+ virtual void removeRange(jint, jint);
+public:
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+public: // actually package-private
+ ::java::util::AbstractList * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) backingList;
+ jint offset;
+ jint size__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractList$SubList__
diff --git a/gcc-4.8/libjava/java/util/AbstractList.h b/gcc-4.8/libjava/java/util/AbstractList.h
new file mode 100644
index 000000000..ace35d68d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractList.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractList__
+#define __java_util_AbstractList__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::AbstractList : public ::java::util::AbstractCollection
+{
+
+public: // actually protected
+ AbstractList();
+public:
+ virtual ::java::lang::Object * get(jint) = 0;
+ virtual void add(jint, ::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jint indexOf(::java::lang::Object *);
+ virtual ::java::util::Iterator * iterator();
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual ::java::util::ListIterator * listIterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+ virtual ::java::lang::Object * remove(jint);
+public: // actually protected
+ virtual void removeRange(jint, jint);
+public:
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual ::java::util::List * subList(jint, jint);
+public: // actually protected
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) modCount;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractList__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap$1.h b/gcc-4.8/libjava/java/util/AbstractMap$1.h
new file mode 100644
index 000000000..4df6b0ce6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap$1.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap$1__
+#define __java_util_AbstractMap$1__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::AbstractMap$1 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ AbstractMap$1(::java::util::AbstractMap *);
+public:
+ virtual jint size();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual ::java::util::Iterator * iterator();
+public: // actually package-private
+ static ::java::util::AbstractMap * access$0(::java::util::AbstractMap$1 *);
+ ::java::util::AbstractMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap$1__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap$2.h b/gcc-4.8/libjava/java/util/AbstractMap$2.h
new file mode 100644
index 000000000..d1e110698
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap$2.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap$2__
+#define __java_util_AbstractMap$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractMap$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractMap$2(::java::util::AbstractMap$1 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) map_iterator;
+public: // actually package-private
+ ::java::util::AbstractMap$1 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap$2__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap$3.h b/gcc-4.8/libjava/java/util/AbstractMap$3.h
new file mode 100644
index 000000000..baf7a313a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap$3.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap$3__
+#define __java_util_AbstractMap$3__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::AbstractMap$3 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ AbstractMap$3(::java::util::AbstractMap *);
+public:
+ virtual jint size();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual ::java::util::Iterator * iterator();
+public: // actually package-private
+ static ::java::util::AbstractMap * access$0(::java::util::AbstractMap$3 *);
+ ::java::util::AbstractMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap$3__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap$4.h b/gcc-4.8/libjava/java/util/AbstractMap$4.h
new file mode 100644
index 000000000..9ea122f68
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap$4.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap$4__
+#define __java_util_AbstractMap$4__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractMap$4 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractMap$4(::java::util::AbstractMap$3 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) map_iterator;
+public: // actually package-private
+ ::java::util::AbstractMap$3 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap$4__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap$SimpleEntry.h b/gcc-4.8/libjava/java/util/AbstractMap$SimpleEntry.h
new file mode 100644
index 000000000..581205048
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap$SimpleEntry.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap$SimpleEntry__
+#define __java_util_AbstractMap$SimpleEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractMap$SimpleEntry : public ::java::lang::Object
+{
+
+public:
+ AbstractMap$SimpleEntry(::java::lang::Object *, ::java::lang::Object *);
+ AbstractMap$SimpleEntry(::java::util::Map$Entry *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * getKey();
+ virtual ::java::lang::Object * getValue();
+ virtual jint hashCode();
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -8499721149061103585LL;
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ ::java::lang::Object * value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap$SimpleEntry__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap$SimpleImmutableEntry.h b/gcc-4.8/libjava/java/util/AbstractMap$SimpleImmutableEntry.h
new file mode 100644
index 000000000..f979f8a0c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap$SimpleImmutableEntry.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap$SimpleImmutableEntry__
+#define __java_util_AbstractMap$SimpleImmutableEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractMap$SimpleImmutableEntry : public ::java::lang::Object
+{
+
+public:
+ AbstractMap$SimpleImmutableEntry(::java::lang::Object *, ::java::lang::Object *);
+ AbstractMap$SimpleImmutableEntry(::java::util::Map$Entry *);
+ virtual ::java::lang::Object * getKey();
+ virtual ::java::lang::Object * getValue();
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 7138329143949025153LL;
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ ::java::lang::Object * value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap$SimpleImmutableEntry__
diff --git a/gcc-4.8/libjava/java/util/AbstractMap.h b/gcc-4.8/libjava/java/util/AbstractMap.h
new file mode 100644
index 000000000..fba927661
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractMap.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractMap__
+#define __java_util_AbstractMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::AbstractMap : public ::java::lang::Object
+{
+
+public: // actually protected
+ AbstractMap();
+public:
+ virtual ::java::util::Set * entrySet() = 0;
+ virtual void clear();
+public: // actually protected
+ virtual ::java::lang::Object * clone();
+public:
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Collection * values();
+public: // actually package-private
+ static jboolean equals(::java::lang::Object *, ::java::lang::Object *);
+ static jint hashCode(::java::lang::Object *);
+ static const jint KEYS = 0;
+ static const jint VALUES = 1;
+ static const jint ENTRIES = 2;
+ ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keys;
+ ::java::util::Collection * values__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractMap__
diff --git a/gcc-4.8/libjava/java/util/AbstractQueue.h b/gcc-4.8/libjava/java/util/AbstractQueue.h
new file mode 100644
index 000000000..f194c25d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractQueue.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractQueue__
+#define __java_util_AbstractQueue__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::AbstractQueue : public ::java::util::AbstractCollection
+{
+
+public: // actually protected
+ AbstractQueue();
+public:
+ virtual jboolean add(::java::lang::Object *);
+ virtual ::java::lang::Object * remove();
+ virtual ::java::lang::Object * element();
+ virtual void clear();
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual jboolean offer(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * poll() = 0;
+ virtual ::java::lang::Object * peek() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractQueue__
diff --git a/gcc-4.8/libjava/java/util/AbstractSequentialList.h b/gcc-4.8/libjava/java/util/AbstractSequentialList.h
new file mode 100644
index 000000000..7763024e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractSequentialList.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractSequentialList__
+#define __java_util_AbstractSequentialList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+
+class java::util::AbstractSequentialList : public ::java::util::AbstractList
+{
+
+public: // actually protected
+ AbstractSequentialList();
+public:
+ virtual ::java::util::ListIterator * listIterator(jint) = 0;
+ virtual void add(jint, ::java::lang::Object *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual ::java::lang::Object * get(jint);
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::lang::Object * remove(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractSequentialList__
diff --git a/gcc-4.8/libjava/java/util/AbstractSet.h b/gcc-4.8/libjava/java/util/AbstractSet.h
new file mode 100644
index 000000000..b3ec39939
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/AbstractSet.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_AbstractSet__
+#define __java_util_AbstractSet__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::AbstractSet : public ::java::util::AbstractCollection
+{
+
+public: // actually protected
+ AbstractSet();
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean removeAll(::java::util::Collection *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_AbstractSet__
diff --git a/gcc-4.8/libjava/java/util/ArrayDeque$DeqIterator.h b/gcc-4.8/libjava/java/util/ArrayDeque$DeqIterator.h
new file mode 100644
index 000000000..bbe30bc53
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ArrayDeque$DeqIterator.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ArrayDeque$DeqIterator__
+#define __java_util_ArrayDeque$DeqIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::ArrayDeque$DeqIterator : public ::java::lang::Object
+{
+
+ ArrayDeque$DeqIterator(::java::util::ArrayDeque *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ ArrayDeque$DeqIterator(::java::util::ArrayDeque *, ::java::util::ArrayDeque$DeqIterator *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cursor;
+ jint fence;
+ jint lastRet;
+public: // actually package-private
+ ::java::util::ArrayDeque * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ArrayDeque$DeqIterator__
diff --git a/gcc-4.8/libjava/java/util/ArrayDeque$DescendingIterator.h b/gcc-4.8/libjava/java/util/ArrayDeque$DescendingIterator.h
new file mode 100644
index 000000000..ee72fd7b6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ArrayDeque$DescendingIterator.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ArrayDeque$DescendingIterator__
+#define __java_util_ArrayDeque$DescendingIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::ArrayDeque$DescendingIterator : public ::java::lang::Object
+{
+
+ ArrayDeque$DescendingIterator(::java::util::ArrayDeque *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ ArrayDeque$DescendingIterator(::java::util::ArrayDeque *, ::java::util::ArrayDeque$DescendingIterator *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cursor;
+ jint fence;
+ jint lastRet;
+public: // actually package-private
+ ::java::util::ArrayDeque * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ArrayDeque$DescendingIterator__
diff --git a/gcc-4.8/libjava/java/util/ArrayDeque.h b/gcc-4.8/libjava/java/util/ArrayDeque.h
new file mode 100644
index 000000000..d1ac9e514
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ArrayDeque.h
@@ -0,0 +1,81 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ArrayDeque__
+#define __java_util_ArrayDeque__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+#include <gcj/array.h>
+
+
+class java::util::ArrayDeque : public ::java::util::AbstractCollection
+{
+
+ void allocateElements(jint);
+ void doubleCapacity();
+ JArray< ::java::lang::Object * > * copyElements(JArray< ::java::lang::Object * > *);
+public:
+ ArrayDeque();
+ ArrayDeque(jint);
+ ArrayDeque(::java::util::Collection *);
+ virtual void addFirst(::java::lang::Object *);
+ virtual void addLast(::java::lang::Object *);
+ virtual jboolean offerFirst(::java::lang::Object *);
+ virtual jboolean offerLast(::java::lang::Object *);
+ virtual ::java::lang::Object * removeFirst();
+ virtual ::java::lang::Object * removeLast();
+ virtual ::java::lang::Object * pollFirst();
+ virtual ::java::lang::Object * pollLast();
+ virtual ::java::lang::Object * getFirst();
+ virtual ::java::lang::Object * getLast();
+ virtual ::java::lang::Object * peekFirst();
+ virtual ::java::lang::Object * peekLast();
+ virtual jboolean removeFirstOccurrence(::java::lang::Object *);
+ virtual jboolean removeLastOccurrence(::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * remove();
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * element();
+ virtual ::java::lang::Object * peek();
+ virtual void push(::java::lang::Object *);
+ virtual ::java::lang::Object * pop();
+private:
+ void checkInvariants();
+ jboolean delete$(jint);
+public:
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::util::Iterator * descendingIterator();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual void clear();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::util::ArrayDeque * ArrayDeque$clone();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ virtual ::java::lang::Object * clone();
+public: // actually package-private
+ static jint access$1(::java::util::ArrayDeque *);
+ static jint access$2(::java::util::ArrayDeque *);
+ static JArray< ::java::lang::Object * > * access$3(::java::util::ArrayDeque *);
+ static jboolean access$4(::java::util::ArrayDeque *, jint);
+private:
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) elements;
+ jint head;
+ jint tail;
+ static const jint MIN_INITIAL_CAPACITY = 8;
+ static const jlong serialVersionUID = 2340985798034038923LL;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ArrayDeque__
diff --git a/gcc-4.8/libjava/java/util/ArrayList.h b/gcc-4.8/libjava/java/util/ArrayList.h
new file mode 100644
index 000000000..4bbdb1ae0
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ArrayList.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ArrayList__
+#define __java_util_ArrayList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::ArrayList : public ::java::util::AbstractList
+{
+
+public:
+ ArrayList(jint);
+ ArrayList();
+ ArrayList(::java::util::Collection *);
+ virtual void trimToSize();
+ virtual void ensureCapacity(jint);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual ::java::lang::Object * clone();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Object * get(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual void add(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(jint);
+ virtual void clear();
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+public: // actually protected
+ virtual void removeRange(jint, jint);
+private:
+ void checkBoundInclusive(jint);
+ void checkBoundExclusive(jint);
+ void raiseBoundsError(jint);
+public: // actually package-private
+ virtual jboolean removeAllInternal(::java::util::Collection *);
+ virtual jboolean retainAllInternal(::java::util::Collection *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 8683452581122892189LL;
+ static const jint DEFAULT_CAPACITY = 10;
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) size__;
+ JArray< ::java::lang::Object * > * data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ArrayList__
diff --git a/gcc-4.8/libjava/java/util/Arrays$ArrayList.h b/gcc-4.8/libjava/java/util/Arrays$ArrayList.h
new file mode 100644
index 000000000..3fe968639
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Arrays$ArrayList.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Arrays$ArrayList__
+#define __java_util_Arrays$ArrayList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::Arrays$ArrayList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+ Arrays$ArrayList(JArray< ::java::lang::Object * > *);
+public:
+ ::java::lang::Object * get(jint);
+ jint size();
+ ::java::lang::Object * set(jint, ::java::lang::Object *);
+ jboolean contains(::java::lang::Object *);
+ jint indexOf(::java::lang::Object *);
+ jint lastIndexOf(::java::lang::Object *);
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+private:
+ static const jlong serialVersionUID = -2764017481108945198LL;
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) a;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Arrays$ArrayList__
diff --git a/gcc-4.8/libjava/java/util/Arrays.h b/gcc-4.8/libjava/java/util/Arrays.h
new file mode 100644
index 000000000..8860ee35a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Arrays.h
@@ -0,0 +1,186 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Arrays__
+#define __java_util_Arrays__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
+
+class java::util::Arrays : public ::java::lang::Object
+{
+
+ Arrays();
+public:
+ static jint binarySearch(JArray< jbyte > *, jbyte);
+ static jint binarySearch(JArray< jbyte > *, jint, jint, jbyte);
+ static jint binarySearch(JArray< jchar > *, jchar);
+ static jint binarySearch(JArray< jchar > *, jint, jint, jchar);
+ static jint binarySearch(JArray< jshort > *, jshort);
+ static jint binarySearch(JArray< jshort > *, jint, jint, jshort);
+ static jint binarySearch(JArray< jint > *, jint);
+ static jint binarySearch(JArray< jint > *, jint, jint, jint);
+ static jint binarySearch(JArray< jlong > *, jlong);
+ static jint binarySearch(JArray< jlong > *, jint, jint, jlong);
+ static jint binarySearch(JArray< jfloat > *, jfloat);
+ static jint binarySearch(JArray< jfloat > *, jint, jint, jfloat);
+ static jint binarySearch(JArray< jdouble > *, jdouble);
+ static jint binarySearch(JArray< jdouble > *, jint, jint, jdouble);
+ static jint binarySearch(JArray< ::java::lang::Object * > *, ::java::lang::Object *);
+ static jint binarySearch(JArray< ::java::lang::Object * > *, jint, jint, ::java::lang::Object *);
+ static jint binarySearch(JArray< ::java::lang::Object * > *, ::java::lang::Object *, ::java::util::Comparator *);
+ static jint binarySearch(JArray< ::java::lang::Object * > *, jint, jint, ::java::lang::Object *, ::java::util::Comparator *);
+ static jboolean equals(JArray< jboolean > *, JArray< jboolean > *);
+ static jboolean equals(JArray< jbyte > *, JArray< jbyte > *);
+ static jboolean equals(JArray< jchar > *, JArray< jchar > *);
+ static jboolean equals(JArray< jshort > *, JArray< jshort > *);
+ static jboolean equals(JArray< jint > *, JArray< jint > *);
+ static jboolean equals(JArray< jlong > *, JArray< jlong > *);
+ static jboolean equals(JArray< jfloat > *, JArray< jfloat > *);
+ static jboolean equals(JArray< jdouble > *, JArray< jdouble > *);
+ static jboolean equals(JArray< ::java::lang::Object * > *, JArray< ::java::lang::Object * > *);
+ static void fill(JArray< jboolean > *, jboolean);
+ static void fill(JArray< jboolean > *, jint, jint, jboolean);
+ static void fill(JArray< jbyte > *, jbyte);
+ static void fill(JArray< jbyte > *, jint, jint, jbyte);
+ static void fill(JArray< jchar > *, jchar);
+ static void fill(JArray< jchar > *, jint, jint, jchar);
+ static void fill(JArray< jshort > *, jshort);
+ static void fill(JArray< jshort > *, jint, jint, jshort);
+ static void fill(JArray< jint > *, jint);
+ static void fill(JArray< jint > *, jint, jint, jint);
+ static void fill(JArray< jlong > *, jlong);
+ static void fill(JArray< jlong > *, jint, jint, jlong);
+ static void fill(JArray< jfloat > *, jfloat);
+ static void fill(JArray< jfloat > *, jint, jint, jfloat);
+ static void fill(JArray< jdouble > *, jdouble);
+ static void fill(JArray< jdouble > *, jint, jint, jdouble);
+ static void fill(JArray< ::java::lang::Object * > *, ::java::lang::Object *);
+ static void fill(JArray< ::java::lang::Object * > *, jint, jint, ::java::lang::Object *);
+ static void sort(JArray< jbyte > *);
+ static void sort(JArray< jbyte > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jbyte > *);
+ static void swap(jint, jint, JArray< jbyte > *);
+ static void vecswap(jint, jint, jint, JArray< jbyte > *);
+ static void qsort(JArray< jbyte > *, jint, jint);
+public:
+ static void sort(JArray< jchar > *);
+ static void sort(JArray< jchar > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jchar > *);
+ static void swap(jint, jint, JArray< jchar > *);
+ static void vecswap(jint, jint, jint, JArray< jchar > *);
+ static void qsort(JArray< jchar > *, jint, jint);
+public:
+ static void sort(JArray< jshort > *);
+ static void sort(JArray< jshort > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jshort > *);
+ static void swap(jint, jint, JArray< jshort > *);
+ static void vecswap(jint, jint, jint, JArray< jshort > *);
+ static void qsort(JArray< jshort > *, jint, jint);
+public:
+ static void sort(JArray< jint > *);
+ static void sort(JArray< jint > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jint > *);
+ static void swap(jint, jint, JArray< jint > *);
+ static void vecswap(jint, jint, jint, JArray< jint > *);
+ static jint compare(jint, jint);
+ static void qsort(JArray< jint > *, jint, jint);
+public:
+ static void sort(JArray< jlong > *);
+ static void sort(JArray< jlong > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jlong > *);
+ static void swap(jint, jint, JArray< jlong > *);
+ static void vecswap(jint, jint, jint, JArray< jlong > *);
+ static jint compare(jlong, jlong);
+ static void qsort(JArray< jlong > *, jint, jint);
+public:
+ static void sort(JArray< jfloat > *);
+ static void sort(JArray< jfloat > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jfloat > *);
+ static void swap(jint, jint, JArray< jfloat > *);
+ static void vecswap(jint, jint, jint, JArray< jfloat > *);
+ static void qsort(JArray< jfloat > *, jint, jint);
+public:
+ static void sort(JArray< jdouble > *);
+ static void sort(JArray< jdouble > *, jint, jint);
+private:
+ static jint med3(jint, jint, jint, JArray< jdouble > *);
+ static void swap(jint, jint, JArray< jdouble > *);
+ static void vecswap(jint, jint, jint, JArray< jdouble > *);
+ static void qsort(JArray< jdouble > *, jint, jint);
+public:
+ static void sort(JArray< ::java::lang::Object * > *);
+ static void sort(JArray< ::java::lang::Object * > *, ::java::util::Comparator *);
+ static void sort(JArray< ::java::lang::Object * > *, jint, jint);
+ static void sort(JArray< ::java::lang::Object * > *, jint, jint, ::java::util::Comparator *);
+ static ::java::util::List * asList(JArray< ::java::lang::Object * > *);
+ static jint hashCode(JArray< jlong > *);
+ static jint hashCode(JArray< jint > *);
+ static jint hashCode(JArray< jshort > *);
+ static jint hashCode(JArray< jchar > *);
+ static jint hashCode(JArray< jbyte > *);
+ static jint hashCode(JArray< jboolean > *);
+ static jint hashCode(JArray< jfloat > *);
+ static jint hashCode(JArray< jdouble > *);
+ static jint hashCode(JArray< ::java::lang::Object * > *);
+ static jint deepHashCode(JArray< ::java::lang::Object * > *);
+ static jboolean deepEquals(JArray< ::java::lang::Object * > *, JArray< ::java::lang::Object * > *);
+ static ::java::lang::String * toString(JArray< jboolean > *);
+ static ::java::lang::String * toString(JArray< jbyte > *);
+ static ::java::lang::String * toString(JArray< jchar > *);
+ static ::java::lang::String * toString(JArray< jshort > *);
+ static ::java::lang::String * toString(JArray< jint > *);
+ static ::java::lang::String * toString(JArray< jlong > *);
+ static ::java::lang::String * toString(JArray< jfloat > *);
+ static ::java::lang::String * toString(JArray< jdouble > *);
+ static ::java::lang::String * toString(JArray< ::java::lang::Object * > *);
+private:
+ static void deepToString(JArray< ::java::lang::Object * > *, ::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
+public:
+ static ::java::lang::String * deepToString(JArray< ::java::lang::Object * > *);
+ static JArray< jboolean > * copyOf(JArray< jboolean > *, jint);
+ static JArray< jboolean > * copyOfRange(JArray< jboolean > *, jint, jint);
+ static JArray< jbyte > * copyOf(JArray< jbyte > *, jint);
+ static JArray< jbyte > * copyOfRange(JArray< jbyte > *, jint, jint);
+ static JArray< jchar > * copyOf(JArray< jchar > *, jint);
+ static JArray< jchar > * copyOfRange(JArray< jchar > *, jint, jint);
+ static JArray< jdouble > * copyOf(JArray< jdouble > *, jint);
+ static JArray< jdouble > * copyOfRange(JArray< jdouble > *, jint, jint);
+ static JArray< jfloat > * copyOf(JArray< jfloat > *, jint);
+ static JArray< jfloat > * copyOfRange(JArray< jfloat > *, jint, jint);
+ static JArray< jint > * copyOf(JArray< jint > *, jint);
+ static JArray< jint > * copyOfRange(JArray< jint > *, jint, jint);
+ static JArray< jlong > * copyOf(JArray< jlong > *, jint);
+ static JArray< jlong > * copyOfRange(JArray< jlong > *, jint, jint);
+ static JArray< jshort > * copyOf(JArray< jshort > *, jint);
+ static JArray< jshort > * copyOfRange(JArray< jshort > *, jint, jint);
+ static JArray< ::java::lang::Object * > * copyOf(JArray< ::java::lang::Object * > *, jint);
+ static JArray< ::java::lang::Object * > * copyOfRange(JArray< ::java::lang::Object * > *, jint, jint);
+ static JArray< ::java::lang::Object * > * copyOf(JArray< ::java::lang::Object * > *, jint, ::java::lang::Class *);
+ static JArray< ::java::lang::Object * > * copyOfRange(JArray< ::java::lang::Object * > *, jint, jint, ::java::lang::Class *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Arrays__
diff --git a/gcc-4.8/libjava/java/util/BitSet.h b/gcc-4.8/libjava/java/util/BitSet.h
new file mode 100644
index 000000000..1470ca0b2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/BitSet.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_BitSet__
+#define __java_util_BitSet__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::BitSet : public ::java::lang::Object
+{
+
+public:
+ BitSet();
+ BitSet(jint);
+ virtual void and$(::java::util::BitSet *);
+ virtual void andNot(::java::util::BitSet *);
+ virtual jint cardinality();
+ virtual void clear();
+ virtual void clear(jint);
+ virtual void clear(jint, jint);
+ virtual ::java::lang::Object * clone();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual void flip(jint);
+ virtual void flip(jint, jint);
+ virtual jboolean get(jint);
+ virtual ::java::util::BitSet * get(jint, jint);
+ virtual jint hashCode();
+ virtual jboolean intersects(::java::util::BitSet *);
+ virtual jboolean isEmpty();
+ virtual jint length();
+ virtual jint nextClearBit(jint);
+ virtual jint nextSetBit(jint);
+ virtual void or$(::java::util::BitSet *);
+ virtual void set(jint);
+ virtual void set(jint, jboolean);
+ virtual void set(jint, jint);
+ virtual void set(jint, jint, jboolean);
+ virtual jint size();
+ virtual ::java::lang::String * toString();
+ virtual void xor$(::java::util::BitSet *);
+private:
+ void ensure(jint);
+public: // actually package-private
+ virtual jboolean containsAll(::java::util::BitSet *);
+private:
+ static const jlong serialVersionUID = 7997698588986878753LL;
+ static const jint LONG_MASK = 63;
+ JArray< jlong > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) bits;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_BitSet__
diff --git a/gcc-4.8/libjava/java/util/Calendar.h b/gcc-4.8/libjava/java/util/Calendar.h
new file mode 100644
index 000000000..9abfba539
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Calendar.h
@@ -0,0 +1,149 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Calendar__
+#define __java_util_Calendar__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Calendar : public ::java::lang::Object
+{
+
+ static ::java::util::ResourceBundle * getBundle(::java::util::Locale *);
+public: // actually protected
+ Calendar();
+ Calendar(::java::util::TimeZone *, ::java::util::Locale *);
+public:
+ static ::java::util::Calendar * getInstance();
+ static ::java::util::Calendar * getInstance(::java::util::TimeZone *);
+ static ::java::util::Calendar * getInstance(::java::util::Locale *);
+ static ::java::util::Calendar * getInstance(::java::util::TimeZone *, ::java::util::Locale *);
+ static JArray< ::java::util::Locale * > * getAvailableLocales();
+public: // actually protected
+ virtual void computeTime() = 0;
+ virtual void computeFields() = 0;
+public:
+ virtual ::java::util::Date * getTime();
+ virtual void setTime(::java::util::Date *);
+ virtual jlong getTimeInMillis();
+ virtual void setTimeInMillis(jlong);
+ virtual jint get(jint);
+public: // actually protected
+ virtual jint internalGet(jint);
+public:
+ virtual void set(jint, jint);
+ virtual void set(jint, jint, jint);
+ virtual void set(jint, jint, jint, jint, jint);
+ virtual void set(jint, jint, jint, jint, jint, jint);
+ virtual void clear();
+ virtual void clear(jint);
+ virtual jboolean isSet(jint);
+public: // actually protected
+ virtual void complete();
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean before(::java::lang::Object *);
+ virtual jboolean after(::java::lang::Object *);
+ virtual void add(jint, jint) = 0;
+ virtual void roll(jint, jboolean) = 0;
+ virtual void roll(jint, jint);
+ virtual void setTimeZone(::java::util::TimeZone *);
+ virtual ::java::util::TimeZone * getTimeZone();
+ virtual void setLenient(jboolean);
+ virtual jboolean isLenient();
+ virtual void setFirstDayOfWeek(jint);
+ virtual jint getFirstDayOfWeek();
+ virtual void setMinimalDaysInFirstWeek(jint);
+ virtual jint getMinimalDaysInFirstWeek();
+ virtual jint getMinimum(jint) = 0;
+ virtual jint getMaximum(jint) = 0;
+ virtual jint getGreatestMinimum(jint) = 0;
+ virtual jint getLeastMaximum(jint) = 0;
+ virtual jint getActualMinimum(jint);
+ virtual jint getActualMaximum(jint);
+ virtual jint Calendar$compareTo(::java::util::Calendar *);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * toString();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ virtual ::java::lang::String * getDisplayName(jint, jint, ::java::util::Locale *);
+ virtual ::java::util::Map * getDisplayNames(jint, jint, ::java::util::Locale *);
+ virtual jint compareTo(::java::lang::Object *);
+ static const jint ERA = 0;
+ static const jint YEAR = 1;
+ static const jint MONTH = 2;
+ static const jint WEEK_OF_YEAR = 3;
+ static const jint WEEK_OF_MONTH = 4;
+ static const jint DATE = 5;
+ static const jint DAY_OF_MONTH = 5;
+ static const jint DAY_OF_YEAR = 6;
+ static const jint DAY_OF_WEEK = 7;
+ static const jint DAY_OF_WEEK_IN_MONTH = 8;
+ static const jint AM_PM = 9;
+ static const jint HOUR = 10;
+ static const jint HOUR_OF_DAY = 11;
+ static const jint MINUTE = 12;
+ static const jint SECOND = 13;
+ static const jint MILLISECOND = 14;
+ static const jint ZONE_OFFSET = 15;
+ static const jint DST_OFFSET = 16;
+ static const jint FIELD_COUNT = 17;
+ static const jint SUNDAY = 1;
+ static const jint MONDAY = 2;
+ static const jint TUESDAY = 3;
+ static const jint WEDNESDAY = 4;
+ static const jint THURSDAY = 5;
+ static const jint FRIDAY = 6;
+ static const jint SATURDAY = 7;
+ static const jint JANUARY = 0;
+ static const jint FEBRUARY = 1;
+ static const jint MARCH = 2;
+ static const jint APRIL = 3;
+ static const jint MAY = 4;
+ static const jint JUNE = 5;
+ static const jint JULY = 6;
+ static const jint AUGUST = 7;
+ static const jint SEPTEMBER = 8;
+ static const jint OCTOBER = 9;
+ static const jint NOVEMBER = 10;
+ static const jint DECEMBER = 11;
+ static const jint UNDECIMBER = 12;
+ static const jint AM = 0;
+ static const jint PM = 1;
+ static const jint ALL_STYLES = 0;
+ static const jint SHORT = 1;
+ static const jint LONG = 2;
+public: // actually protected
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fields;
+ JArray< jboolean > * isSet__;
+ jlong time;
+ jboolean isTimeSet;
+ jboolean areFieldsSet;
+private:
+ ::java::util::TimeZone * zone;
+ static ::java::lang::String * calendarClassName;
+ jboolean lenient;
+ jint firstDayOfWeek;
+ jint minimalDaysInFirstWeek;
+ jboolean explicitDSTOffset;
+ jint serialVersionOnStream;
+public: // actually package-private
+ static const jlong serialVersionUID = -1807547505821590642LL;
+private:
+ static ::java::lang::String * bundleName;
+ static ::java::util::Properties * properties;
+ static ::java::util::HashMap * cache;
+ static JArray< ::java::lang::Class * > * ctorArgTypes;
+ static JArray< ::java::lang::String * > * fieldNames;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Calendar__
diff --git a/gcc-4.8/libjava/java/util/Collection.h b/gcc-4.8/libjava/java/util/Collection.h
new file mode 100644
index 000000000..afeb7ffee
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collection.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collection__
+#define __java_util_Collection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Collection : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual jint hashCode() = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Collection__
diff --git a/gcc-4.8/libjava/java/util/Collections$1$SynchronizedMapEntry.h b/gcc-4.8/libjava/java/util/Collections$1$SynchronizedMapEntry.h
new file mode 100644
index 000000000..754898749
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$1$SynchronizedMapEntry.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$1$SynchronizedMapEntry__
+#define __java_util_Collections$1$SynchronizedMapEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$1$SynchronizedMapEntry : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$1$SynchronizedMapEntry(::java::util::Collections$SynchronizedMap *, ::java::util::Map$Entry *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * getKey();
+ virtual ::java::lang::Object * getValue();
+ virtual jint hashCode();
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ ::java::util::Map$Entry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) e;
+ ::java::util::Collections$SynchronizedMap * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$1$SynchronizedMapEntry__
diff --git a/gcc-4.8/libjava/java/util/Collections$1.h b/gcc-4.8/libjava/java/util/Collections$1.h
new file mode 100644
index 000000000..2e3d80c9d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$1.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$1__
+#define __java_util_Collections$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$1(::java::util::Collections$SingletonSet *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) hasNext__;
+public: // actually package-private
+ ::java::util::Collections$SingletonSet * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$1__
diff --git a/gcc-4.8/libjava/java/util/Collections$2.h b/gcc-4.8/libjava/java/util/Collections$2.h
new file mode 100644
index 000000000..5beb1eca5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$2.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$2__
+#define __java_util_Collections$2__
+
+#pragma interface
+
+#include <java/util/AbstractMap$SimpleEntry.h>
+
+class java::util::Collections$2 : public ::java::util::AbstractMap$SimpleEntry
+{
+
+public: // actually package-private
+ Collections$2(::java::util::Collections$SingletonMap *, ::java::lang::Object *, ::java::lang::Object *);
+public:
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::Collections$SingletonMap * __attribute__((aligned(__alignof__( ::java::util::AbstractMap$SimpleEntry)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$2__
diff --git a/gcc-4.8/libjava/java/util/Collections$3.h b/gcc-4.8/libjava/java/util/Collections$3.h
new file mode 100644
index 000000000..1629d8d26
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$3.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$3__
+#define __java_util_Collections$3__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedSet.h>
+
+class java::util::Collections$3 : public ::java::util::Collections$SynchronizedSet
+{
+
+public: // actually package-private
+ Collections$3(::java::util::Collections$SynchronizedMap *, ::java::lang::Object *, ::java::util::Set *);
+public:
+ virtual ::java::util::Iterator * iterator();
+public: // actually package-private
+ static ::java::util::Collections$SynchronizedMap * access$0(::java::util::Collections$3 *);
+ ::java::util::Collections$SynchronizedMap * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedSet)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$3__
diff --git a/gcc-4.8/libjava/java/util/Collections$4.h b/gcc-4.8/libjava/java/util/Collections$4.h
new file mode 100644
index 000000000..6aa2182b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$4.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$4__
+#define __java_util_Collections$4__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedIterator.h>
+
+class java::util::Collections$4 : public ::java::util::Collections$SynchronizedIterator
+{
+
+public: // actually package-private
+ Collections$4(::java::util::Collections$3 *, ::java::lang::Object *, ::java::util::Iterator *);
+public:
+ virtual ::java::util::Map$Entry * Collections$4$next();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::Collections$3 * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedIterator)))) this$2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$4__
diff --git a/gcc-4.8/libjava/java/util/Collections$5.h b/gcc-4.8/libjava/java/util/Collections$5.h
new file mode 100644
index 000000000..36f8bd13f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$5.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$5__
+#define __java_util_Collections$5__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableIterator.h>
+
+class java::util::Collections$5 : public ::java::util::Collections$UnmodifiableIterator
+{
+
+public: // actually package-private
+ Collections$5(::java::util::Collections$UnmodifiableMap$UnmodifiableEntrySet *, ::java::util::Iterator *);
+public:
+ virtual ::java::util::Map$Entry * Collections$5$next();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::Collections$UnmodifiableMap$UnmodifiableEntrySet * __attribute__((aligned(__alignof__( ::java::util::Collections$UnmodifiableIterator)))) this$2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$5__
diff --git a/gcc-4.8/libjava/java/util/Collections$6.h b/gcc-4.8/libjava/java/util/Collections$6.h
new file mode 100644
index 000000000..d5e2691f8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$6.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$6__
+#define __java_util_Collections$6__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedIterator.h>
+
+class java::util::Collections$6 : public ::java::util::Collections$CheckedIterator
+{
+
+public: // actually package-private
+ Collections$6(::java::util::Collections$CheckedMap$CheckedEntrySet *, ::java::util::Iterator *, ::java::lang::Class *);
+public:
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ static ::java::util::Collections$CheckedMap$CheckedEntrySet * access$0(::java::util::Collections$6 *);
+ ::java::util::Collections$CheckedMap$CheckedEntrySet * __attribute__((aligned(__alignof__( ::java::util::Collections$CheckedIterator)))) this$2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$6__
diff --git a/gcc-4.8/libjava/java/util/Collections$7.h b/gcc-4.8/libjava/java/util/Collections$7.h
new file mode 100644
index 000000000..1b320b9f6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$7.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$7__
+#define __java_util_Collections$7__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$7 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$7(::java::util::Collections$6 *, ::java::util::Map$Entry *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * getKey();
+ virtual ::java::lang::Object * getValue();
+ virtual jint hashCode();
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ ::java::util::Collections$6 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$3;
+private:
+ ::java::util::Map$Entry * val$e;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$7__
diff --git a/gcc-4.8/libjava/java/util/Collections$8.h b/gcc-4.8/libjava/java/util/Collections$8.h
new file mode 100644
index 000000000..4f3faf043
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$8.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$8__
+#define __java_util_Collections$8__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$8 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$8(::java::util::Iterator *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::lang::Object * nextElement();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$i;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$8__
diff --git a/gcc-4.8/libjava/java/util/Collections$9.h b/gcc-4.8/libjava/java/util/Collections$9.h
new file mode 100644
index 000000000..a425a6c51
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$9.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$9__
+#define __java_util_Collections$9__
+
+#pragma interface
+
+#include <java/util/Collections$ReverseComparator.h>
+
+class java::util::Collections$9 : public ::java::util::Collections$ReverseComparator
+{
+
+public: // actually package-private
+ Collections$9(::java::util::Comparator *);
+public:
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+private:
+ ::java::util::Comparator * __attribute__((aligned(__alignof__( ::java::util::Collections$ReverseComparator)))) val$c;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$9__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedCollection.h b/gcc-4.8/libjava/java/util/Collections$CheckedCollection.h
new file mode 100644
index 000000000..688439f04
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedCollection.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedCollection__
+#define __java_util_Collections$CheckedCollection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$CheckedCollection : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$CheckedCollection(::java::util::Collection *, ::java::lang::Class *);
+public:
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual jint size();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 1578914078182001775LL;
+public: // actually package-private
+ ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) c;
+ ::java::lang::Class * type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedCollection__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedIterator.h b/gcc-4.8/libjava/java/util/Collections$CheckedIterator.h
new file mode 100644
index 000000000..cce1f0bcc
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedIterator.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedIterator__
+#define __java_util_Collections$CheckedIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$CheckedIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$CheckedIterator(::java::util::Iterator *, ::java::lang::Class *);
+public:
+ virtual ::java::lang::Object * next();
+ virtual jboolean hasNext();
+ virtual void remove();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
+public: // actually package-private
+ ::java::lang::Class * type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedIterator__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedList.h b/gcc-4.8/libjava/java/util/Collections$CheckedList.h
new file mode 100644
index 000000000..6158bc2a7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedList.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedList__
+#define __java_util_Collections$CheckedList__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedCollection.h>
+
+class java::util::Collections$CheckedList : public ::java::util::Collections$CheckedCollection
+{
+
+public: // actually package-private
+ Collections$CheckedList(::java::util::List *, ::java::lang::Class *);
+public:
+ virtual void add(jint, ::java::lang::Object *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(jint);
+ virtual jint hashCode();
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual ::java::util::ListIterator * listIterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+ virtual ::java::lang::Object * remove(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual ::java::util::List * subList(jint, jint);
+private:
+ static const jlong serialVersionUID = 65247728283967356LL;
+public: // actually package-private
+ ::java::util::List * __attribute__((aligned(__alignof__( ::java::util::Collections$CheckedCollection)))) list;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedList__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedListIterator.h b/gcc-4.8/libjava/java/util/Collections$CheckedListIterator.h
new file mode 100644
index 000000000..2c1b9f03d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedListIterator.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedListIterator__
+#define __java_util_Collections$CheckedListIterator__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedIterator.h>
+
+class java::util::Collections$CheckedListIterator : public ::java::util::Collections$CheckedIterator
+{
+
+public: // actually package-private
+ Collections$CheckedListIterator(::java::util::ListIterator *, ::java::lang::Class *);
+public:
+ void add(::java::lang::Object *);
+ jboolean hasPrevious();
+ jint nextIndex();
+ ::java::lang::Object * previous();
+ jint previousIndex();
+ void set(::java::lang::Object *);
+private:
+ ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::util::Collections$CheckedIterator)))) li;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedListIterator__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h b/gcc-4.8/libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h
new file mode 100644
index 000000000..1882b9a9b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedMap$CheckedEntrySet__
+#define __java_util_Collections$CheckedMap$CheckedEntrySet__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedSet.h>
+
+class java::util::Collections$CheckedMap$CheckedEntrySet : public ::java::util::Collections$CheckedSet
+{
+
+public: // actually package-private
+ Collections$CheckedMap$CheckedEntrySet(::java::util::Set *, ::java::lang::Class *, ::java::lang::Class *, ::java::lang::Class *);
+public:
+ ::java::util::Iterator * iterator();
+public: // actually package-private
+ static ::java::lang::Class * access$0(::java::util::Collections$CheckedMap$CheckedEntrySet *);
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::util::Collections$CheckedSet)))) keyType;
+ ::java::lang::Class * valueType;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedMap$CheckedEntrySet__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedMap.h b/gcc-4.8/libjava/java/util/Collections$CheckedMap.h
new file mode 100644
index 000000000..e32b255f7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedMap.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedMap__
+#define __java_util_Collections$CheckedMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$CheckedMap : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$CheckedMap(::java::util::Map *, ::java::lang::Class *, ::java::lang::Class *);
+public:
+ virtual void clear();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Set * keySet();
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Collection * values();
+private:
+ static const jlong serialVersionUID = 5742860141034234728LL;
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m;
+public: // actually package-private
+ ::java::lang::Class * keyType;
+ ::java::lang::Class * valueType;
+private:
+ ::java::util::Set * entries;
+ ::java::util::Set * keys;
+ ::java::util::Collection * values__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedRandomAccessList.h b/gcc-4.8/libjava/java/util/Collections$CheckedRandomAccessList.h
new file mode 100644
index 000000000..4fad9a793
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedRandomAccessList.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedRandomAccessList__
+#define __java_util_Collections$CheckedRandomAccessList__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedList.h>
+
+class java::util::Collections$CheckedRandomAccessList : public ::java::util::Collections$CheckedList
+{
+
+public: // actually package-private
+ Collections$CheckedRandomAccessList(::java::util::List *, ::java::lang::Class *);
+private:
+ static const jlong serialVersionUID = 1638200125423088369LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedRandomAccessList__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedSet.h b/gcc-4.8/libjava/java/util/Collections$CheckedSet.h
new file mode 100644
index 000000000..e58a98d2e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedSet.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedSet__
+#define __java_util_Collections$CheckedSet__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedCollection.h>
+
+class java::util::Collections$CheckedSet : public ::java::util::Collections$CheckedCollection
+{
+
+public: // actually package-private
+ Collections$CheckedSet(::java::util::Set *, ::java::lang::Class *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+private:
+ static const jlong serialVersionUID = 4694047833775013803LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedSortedMap.h b/gcc-4.8/libjava/java/util/Collections$CheckedSortedMap.h
new file mode 100644
index 000000000..54d830569
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedSortedMap.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedSortedMap__
+#define __java_util_Collections$CheckedSortedMap__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedMap.h>
+
+class java::util::Collections$CheckedSortedMap : public ::java::util::Collections$CheckedMap
+{
+
+public: // actually package-private
+ Collections$CheckedSortedMap(::java::util::SortedMap *, ::java::lang::Class *, ::java::lang::Class *);
+public:
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::lang::Object * firstKey();
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *);
+ virtual ::java::lang::Object * lastKey();
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 1599671320688067438LL;
+ ::java::util::SortedMap * __attribute__((aligned(__alignof__( ::java::util::Collections$CheckedMap)))) sm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedSortedMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$CheckedSortedSet.h b/gcc-4.8/libjava/java/util/Collections$CheckedSortedSet.h
new file mode 100644
index 000000000..f65817529
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CheckedSortedSet.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CheckedSortedSet__
+#define __java_util_Collections$CheckedSortedSet__
+
+#pragma interface
+
+#include <java/util/Collections$CheckedSet.h>
+
+class java::util::Collections$CheckedSortedSet : public ::java::util::Collections$CheckedSet
+{
+
+public: // actually package-private
+ Collections$CheckedSortedSet(::java::util::SortedSet *, ::java::lang::Class *);
+public:
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::lang::Object * first();
+ virtual ::java::util::SortedSet * headSet(::java::lang::Object *);
+ virtual ::java::lang::Object * last();
+ virtual ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::SortedSet * tailSet(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 1599911165492914959LL;
+ ::java::util::SortedSet * __attribute__((aligned(__alignof__( ::java::util::Collections$CheckedSet)))) ss;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CheckedSortedSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$CopiesList.h b/gcc-4.8/libjava/java/util/Collections$CopiesList.h
new file mode 100644
index 000000000..3ff503da4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$CopiesList.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$CopiesList__
+#define __java_util_Collections$CopiesList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$CopiesList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+ Collections$CopiesList(jint, ::java::lang::Object *);
+public:
+ jint size();
+ ::java::lang::Object * get(jint);
+ jboolean contains(::java::lang::Object *);
+ jint indexOf(::java::lang::Object *);
+ jint lastIndexOf(::java::lang::Object *);
+ ::java::util::List * subList(jint, jint);
+ JArray< ::java::lang::Object * > * toArray();
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 2739099268398711800LL;
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) n;
+ ::java::lang::Object * element;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$CopiesList__
diff --git a/gcc-4.8/libjava/java/util/Collections$EmptyList.h b/gcc-4.8/libjava/java/util/Collections$EmptyList.h
new file mode 100644
index 000000000..8133e1643
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$EmptyList.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$EmptyList__
+#define __java_util_Collections$EmptyList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$EmptyList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+ Collections$EmptyList();
+public:
+ jint size();
+ ::java::lang::Object * get(jint);
+ jboolean contains(::java::lang::Object *);
+ jboolean containsAll(::java::util::Collection *);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ jint indexOf(::java::lang::Object *);
+ jint lastIndexOf(::java::lang::Object *);
+ jboolean remove(::java::lang::Object *);
+ jboolean removeAll(::java::util::Collection *);
+ jboolean retainAll(::java::util::Collection *);
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 8842843931221139166LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$EmptyList__
diff --git a/gcc-4.8/libjava/java/util/Collections$EmptyMap.h b/gcc-4.8/libjava/java/util/Collections$EmptyMap.h
new file mode 100644
index 000000000..6b09265c4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$EmptyMap.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$EmptyMap__
+#define __java_util_Collections$EmptyMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+
+class java::util::Collections$EmptyMap : public ::java::util::AbstractMap
+{
+
+public: // actually package-private
+ Collections$EmptyMap();
+public:
+ ::java::util::Set * entrySet();
+ jboolean containsKey(::java::lang::Object *);
+ jboolean containsValue(::java::lang::Object *);
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Object *);
+ jint hashCode();
+ ::java::util::Set * keySet();
+ ::java::lang::Object * remove(::java::lang::Object *);
+ jint size();
+ ::java::util::Collection * values();
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 6428348081105594320LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$EmptyMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$EmptySet.h b/gcc-4.8/libjava/java/util/Collections$EmptySet.h
new file mode 100644
index 000000000..cbd01262f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$EmptySet.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$EmptySet__
+#define __java_util_Collections$EmptySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$EmptySet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ Collections$EmptySet();
+public:
+ jint size();
+ ::java::util::Iterator * iterator();
+ jboolean contains(::java::lang::Object *);
+ jboolean containsAll(::java::util::Collection *);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ jboolean remove(::java::lang::Object *);
+ jboolean removeAll(::java::util::Collection *);
+ jboolean retainAll(::java::util::Collection *);
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 1582296315990362920LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$EmptySet__
diff --git a/gcc-4.8/libjava/java/util/Collections$LIFOQueue.h b/gcc-4.8/libjava/java/util/Collections$LIFOQueue.h
new file mode 100644
index 000000000..c053a4932
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$LIFOQueue.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$LIFOQueue__
+#define __java_util_Collections$LIFOQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+
+class java::util::Collections$LIFOQueue : public ::java::util::AbstractQueue
+{
+
+public:
+ Collections$LIFOQueue(::java::util::Deque *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * peek();
+ virtual ::java::lang::Object * poll();
+ virtual jint size();
+private:
+ ::java::util::Deque * __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) deque;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$LIFOQueue__
diff --git a/gcc-4.8/libjava/java/util/Collections$MapSet.h b/gcc-4.8/libjava/java/util/Collections$MapSet.h
new file mode 100644
index 000000000..70caba782
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$MapSet.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$MapSet__
+#define __java_util_Collections$MapSet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::Collections$MapSet : public ::java::util::AbstractSet
+{
+
+public:
+ Collections$MapSet(::java::util::Map *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jint size();
+private:
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) map;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$MapSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$ReverseComparator.h b/gcc-4.8/libjava/java/util/Collections$ReverseComparator.h
new file mode 100644
index 000000000..006c27cbf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$ReverseComparator.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$ReverseComparator__
+#define __java_util_Collections$ReverseComparator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$ReverseComparator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$ReverseComparator();
+public:
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 7207038068494060240LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$ReverseComparator__
diff --git a/gcc-4.8/libjava/java/util/Collections$SingletonList.h b/gcc-4.8/libjava/java/util/Collections$SingletonList.h
new file mode 100644
index 000000000..03340f1d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SingletonList.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SingletonList__
+#define __java_util_Collections$SingletonList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$SingletonList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+ Collections$SingletonList(::java::lang::Object *);
+public:
+ jint size();
+ ::java::lang::Object * get(jint);
+ jboolean contains(::java::lang::Object *);
+ jboolean containsAll(::java::util::Collection *);
+ jint hashCode();
+ jint indexOf(::java::lang::Object *);
+ jint lastIndexOf(::java::lang::Object *);
+ ::java::util::List * subList(jint, jint);
+ JArray< ::java::lang::Object * > * toArray();
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 3093736618740652951LL;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) element;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SingletonList__
diff --git a/gcc-4.8/libjava/java/util/Collections$SingletonMap.h b/gcc-4.8/libjava/java/util/Collections$SingletonMap.h
new file mode 100644
index 000000000..a5b07689a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SingletonMap.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SingletonMap__
+#define __java_util_Collections$SingletonMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+
+class java::util::Collections$SingletonMap : public ::java::util::AbstractMap
+{
+
+public: // actually package-private
+ Collections$SingletonMap(::java::lang::Object *, ::java::lang::Object *);
+public:
+ ::java::util::Set * entrySet();
+ jboolean containsKey(::java::lang::Object *);
+ jboolean containsValue(::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Object *);
+ jint hashCode();
+ ::java::util::Set * keySet();
+ jint size();
+ ::java::util::Collection * values();
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -6979724477215052911LL;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) k;
+ ::java::lang::Object * v;
+ ::java::util::Set * entries;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SingletonMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$SingletonSet.h b/gcc-4.8/libjava/java/util/Collections$SingletonSet.h
new file mode 100644
index 000000000..51deccdd3
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SingletonSet.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SingletonSet__
+#define __java_util_Collections$SingletonSet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$SingletonSet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ Collections$SingletonSet(::java::lang::Object *);
+public:
+ jint size();
+ ::java::util::Iterator * iterator();
+ jboolean contains(::java::lang::Object *);
+ jboolean containsAll(::java::util::Collection *);
+ jint hashCode();
+ JArray< ::java::lang::Object * > * toArray();
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 3193687207550431679LL;
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) element;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SingletonSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedCollection.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedCollection.h
new file mode 100644
index 000000000..a41b8d2b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedCollection.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedCollection__
+#define __java_util_Collections$SynchronizedCollection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$SynchronizedCollection : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$SynchronizedCollection(::java::util::Collection *);
+ Collections$SynchronizedCollection(::java::lang::Object *, ::java::util::Collection *);
+public:
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual jint size();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 3053995032091335093LL;
+public: // actually package-private
+ ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) c;
+ ::java::lang::Object * mutex;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedCollection__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedIterator.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedIterator.h
new file mode 100644
index 000000000..bc0950b6d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedIterator.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedIterator__
+#define __java_util_Collections$SynchronizedIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$SynchronizedIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$SynchronizedIterator(::java::lang::Object *, ::java::util::Iterator *);
+public:
+ virtual ::java::lang::Object * next();
+ virtual jboolean hasNext();
+ virtual void remove();
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mutex;
+private:
+ ::java::util::Iterator * i;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedIterator__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedList.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedList.h
new file mode 100644
index 000000000..3404a091d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedList.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedList__
+#define __java_util_Collections$SynchronizedList__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedCollection.h>
+
+class java::util::Collections$SynchronizedList : public ::java::util::Collections$SynchronizedCollection
+{
+
+public: // actually package-private
+ Collections$SynchronizedList(::java::util::List *);
+ Collections$SynchronizedList(::java::lang::Object *, ::java::util::List *);
+public:
+ virtual void add(jint, ::java::lang::Object *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(jint);
+ virtual jint hashCode();
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual ::java::util::ListIterator * listIterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+ virtual ::java::lang::Object * remove(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual ::java::util::List * subList(jint, jint);
+private:
+ static const jlong serialVersionUID = -7754090372962971524LL;
+public: // actually package-private
+ ::java::util::List * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedCollection)))) list;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedList__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedListIterator.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedListIterator.h
new file mode 100644
index 000000000..87cd16b0b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedListIterator.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedListIterator__
+#define __java_util_Collections$SynchronizedListIterator__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedIterator.h>
+
+class java::util::Collections$SynchronizedListIterator : public ::java::util::Collections$SynchronizedIterator
+{
+
+public: // actually package-private
+ Collections$SynchronizedListIterator(::java::lang::Object *, ::java::util::ListIterator *);
+public:
+ void add(::java::lang::Object *);
+ jboolean hasPrevious();
+ jint nextIndex();
+ ::java::lang::Object * previous();
+ jint previousIndex();
+ void set(::java::lang::Object *);
+private:
+ ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedIterator)))) li;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedListIterator__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedMap.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedMap.h
new file mode 100644
index 000000000..6232204d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedMap.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedMap__
+#define __java_util_Collections$SynchronizedMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$SynchronizedMap : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$SynchronizedMap(::java::util::Map *);
+ Collections$SynchronizedMap(::java::lang::Object *, ::java::util::Map *);
+public:
+ virtual void clear();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Collection * values();
+private:
+ static const jlong serialVersionUID = 1978198479659022715LL;
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m;
+public: // actually package-private
+ ::java::lang::Object * mutex;
+private:
+ ::java::util::Set * entries;
+ ::java::util::Set * keys;
+ ::java::util::Collection * values__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedRandomAccessList.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedRandomAccessList.h
new file mode 100644
index 000000000..3bf085ee1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedRandomAccessList.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedRandomAccessList__
+#define __java_util_Collections$SynchronizedRandomAccessList__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedList.h>
+
+class java::util::Collections$SynchronizedRandomAccessList : public ::java::util::Collections$SynchronizedList
+{
+
+public: // actually package-private
+ Collections$SynchronizedRandomAccessList(::java::util::List *);
+ Collections$SynchronizedRandomAccessList(::java::lang::Object *, ::java::util::List *);
+public:
+ ::java::util::List * subList(jint, jint);
+private:
+ static const jlong serialVersionUID = 1530674583602358482LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedRandomAccessList__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedSet.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedSet.h
new file mode 100644
index 000000000..bb5b67697
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedSet.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedSet__
+#define __java_util_Collections$SynchronizedSet__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedCollection.h>
+
+class java::util::Collections$SynchronizedSet : public ::java::util::Collections$SynchronizedCollection
+{
+
+public: // actually package-private
+ Collections$SynchronizedSet(::java::util::Set *);
+ Collections$SynchronizedSet(::java::lang::Object *, ::java::util::Set *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+private:
+ static const jlong serialVersionUID = 487447009682186044LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedSortedMap.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedSortedMap.h
new file mode 100644
index 000000000..d31025f26
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedSortedMap.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedSortedMap__
+#define __java_util_Collections$SynchronizedSortedMap__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedMap.h>
+
+class java::util::Collections$SynchronizedSortedMap : public ::java::util::Collections$SynchronizedMap
+{
+
+public: // actually package-private
+ Collections$SynchronizedSortedMap(::java::util::SortedMap *);
+ Collections$SynchronizedSortedMap(::java::lang::Object *, ::java::util::SortedMap *);
+public:
+ ::java::util::Comparator * comparator();
+ ::java::lang::Object * firstKey();
+ ::java::util::SortedMap * headMap(::java::lang::Object *);
+ ::java::lang::Object * lastKey();
+ ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::SortedMap * tailMap(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -8798146769416483793LL;
+ ::java::util::SortedMap * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedMap)))) sm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedSortedMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$SynchronizedSortedSet.h b/gcc-4.8/libjava/java/util/Collections$SynchronizedSortedSet.h
new file mode 100644
index 000000000..dd25a17b7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$SynchronizedSortedSet.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$SynchronizedSortedSet__
+#define __java_util_Collections$SynchronizedSortedSet__
+
+#pragma interface
+
+#include <java/util/Collections$SynchronizedSet.h>
+
+class java::util::Collections$SynchronizedSortedSet : public ::java::util::Collections$SynchronizedSet
+{
+
+public: // actually package-private
+ Collections$SynchronizedSortedSet(::java::util::SortedSet *);
+ Collections$SynchronizedSortedSet(::java::lang::Object *, ::java::util::SortedSet *);
+public:
+ ::java::util::Comparator * comparator();
+ ::java::lang::Object * first();
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+ ::java::lang::Object * last();
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 8695801310862127406LL;
+ ::java::util::SortedSet * __attribute__((aligned(__alignof__( ::java::util::Collections$SynchronizedSet)))) ss;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$SynchronizedSortedSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableCollection.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableCollection.h
new file mode 100644
index 000000000..2241b880a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableCollection.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableCollection__
+#define __java_util_Collections$UnmodifiableCollection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$UnmodifiableCollection : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$UnmodifiableCollection(::java::util::Collection *);
+public:
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual jint size();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 1820017752578914078LL;
+public: // actually package-private
+ ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) c;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableCollection__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableIterator.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableIterator.h
new file mode 100644
index 000000000..3782626aa
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableIterator.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableIterator__
+#define __java_util_Collections$UnmodifiableIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$UnmodifiableIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$UnmodifiableIterator(::java::util::Iterator *);
+public:
+ virtual ::java::lang::Object * next();
+ virtual jboolean hasNext();
+ virtual void remove();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableIterator__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableList.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableList.h
new file mode 100644
index 000000000..e1da47730
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableList.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableList__
+#define __java_util_Collections$UnmodifiableList__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableCollection.h>
+
+class java::util::Collections$UnmodifiableList : public ::java::util::Collections$UnmodifiableCollection
+{
+
+public: // actually package-private
+ Collections$UnmodifiableList(::java::util::List *);
+public:
+ virtual void add(jint, ::java::lang::Object *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(jint);
+ virtual jint hashCode();
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual ::java::util::ListIterator * listIterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+ virtual ::java::lang::Object * remove(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual ::java::util::List * subList(jint, jint);
+private:
+ static const jlong serialVersionUID = -283967356065247728LL;
+public: // actually package-private
+ ::java::util::List * __attribute__((aligned(__alignof__( ::java::util::Collections$UnmodifiableCollection)))) list;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableList__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableListIterator.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableListIterator.h
new file mode 100644
index 000000000..f921a5c0b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableListIterator.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableListIterator__
+#define __java_util_Collections$UnmodifiableListIterator__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableIterator.h>
+
+class java::util::Collections$UnmodifiableListIterator : public ::java::util::Collections$UnmodifiableIterator
+{
+
+public: // actually package-private
+ Collections$UnmodifiableListIterator(::java::util::ListIterator *);
+public:
+ void add(::java::lang::Object *);
+ jboolean hasPrevious();
+ jint nextIndex();
+ ::java::lang::Object * previous();
+ jint previousIndex();
+ void set(::java::lang::Object *);
+private:
+ ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::util::Collections$UnmodifiableIterator)))) li;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableListIterator__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h
new file mode 100644
index 000000000..c0358c9b8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry__
+#define __java_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry : public ::java::lang::Object
+{
+
+ Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry(::java::util::Map$Entry *);
+public:
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::Object * getKey();
+ ::java::lang::Object * getValue();
+ jint hashCode();
+ ::java::lang::Object * setValue(::java::lang::Object *);
+ ::java::lang::String * toString();
+public: // actually package-private
+ Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry(::java::util::Map$Entry *, ::java::util::Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry *);
+private:
+ ::java::util::Map$Entry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) e;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h
new file mode 100644
index 000000000..8299dc468
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableMap$UnmodifiableEntrySet__
+#define __java_util_Collections$UnmodifiableMap$UnmodifiableEntrySet__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableSet.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections$UnmodifiableMap$UnmodifiableEntrySet : public ::java::util::Collections$UnmodifiableSet
+{
+
+public: // actually package-private
+ Collections$UnmodifiableMap$UnmodifiableEntrySet(::java::util::Set *);
+public:
+ ::java::util::Iterator * iterator();
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+private:
+ static const jlong serialVersionUID = 7854390611657943733LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableMap$UnmodifiableEntrySet__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap.h
new file mode 100644
index 000000000..3aaee0a7b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableMap.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableMap__
+#define __java_util_Collections$UnmodifiableMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Collections$UnmodifiableMap : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Collections$UnmodifiableMap(::java::util::Map *);
+public:
+ virtual void clear();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Set * keySet();
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Collection * values();
+private:
+ static const jlong serialVersionUID = -1034234728574286014LL;
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m;
+ ::java::util::Set * entries;
+ ::java::util::Set * keys;
+ ::java::util::Collection * values__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableRandomAccessList.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableRandomAccessList.h
new file mode 100644
index 000000000..62a310b41
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableRandomAccessList.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableRandomAccessList__
+#define __java_util_Collections$UnmodifiableRandomAccessList__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableList.h>
+
+class java::util::Collections$UnmodifiableRandomAccessList : public ::java::util::Collections$UnmodifiableList
+{
+
+public: // actually package-private
+ Collections$UnmodifiableRandomAccessList(::java::util::List *);
+private:
+ static const jlong serialVersionUID = -2542308836966382001LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableRandomAccessList__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableSet.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableSet.h
new file mode 100644
index 000000000..3633ae299
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableSet.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableSet__
+#define __java_util_Collections$UnmodifiableSet__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableCollection.h>
+
+class java::util::Collections$UnmodifiableSet : public ::java::util::Collections$UnmodifiableCollection
+{
+
+public: // actually package-private
+ Collections$UnmodifiableSet(::java::util::Set *);
+public:
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+private:
+ static const jlong serialVersionUID = -9215047833775013803LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableSet__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedMap.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedMap.h
new file mode 100644
index 000000000..6c5a37426
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedMap.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableSortedMap__
+#define __java_util_Collections$UnmodifiableSortedMap__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableMap.h>
+
+class java::util::Collections$UnmodifiableSortedMap : public ::java::util::Collections$UnmodifiableMap
+{
+
+public: // actually package-private
+ Collections$UnmodifiableSortedMap(::java::util::SortedMap *);
+public:
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::lang::Object * firstKey();
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *);
+ virtual ::java::lang::Object * lastKey();
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -8806743815996713206LL;
+ ::java::util::SortedMap * __attribute__((aligned(__alignof__( ::java::util::Collections$UnmodifiableMap)))) sm;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableSortedMap__
diff --git a/gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedSet.h b/gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedSet.h
new file mode 100644
index 000000000..50d776d6d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections$UnmodifiableSortedSet.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections$UnmodifiableSortedSet__
+#define __java_util_Collections$UnmodifiableSortedSet__
+
+#pragma interface
+
+#include <java/util/Collections$UnmodifiableSet.h>
+
+class java::util::Collections$UnmodifiableSortedSet : public ::java::util::Collections$UnmodifiableSet
+{
+
+public: // actually package-private
+ Collections$UnmodifiableSortedSet(::java::util::SortedSet *);
+public:
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::lang::Object * first();
+ virtual ::java::util::SortedSet * headSet(::java::lang::Object *);
+ virtual ::java::lang::Object * last();
+ virtual ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::SortedSet * tailSet(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -4929149591599911165LL;
+ ::java::util::SortedSet * __attribute__((aligned(__alignof__( ::java::util::Collections$UnmodifiableSet)))) ss;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections$UnmodifiableSortedSet__
diff --git a/gcc-4.8/libjava/java/util/Collections.h b/gcc-4.8/libjava/java/util/Collections.h
new file mode 100644
index 000000000..2ca25f898
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Collections.h
@@ -0,0 +1,87 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Collections__
+#define __java_util_Collections__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Collections : public ::java::lang::Object
+{
+
+ static jboolean isSequential(::java::util::List *);
+ Collections();
+public:
+ static ::java::util::Set * emptySet();
+ static ::java::util::List * emptyList();
+ static ::java::util::Map * emptyMap();
+public: // actually package-private
+ static jint compare(::java::lang::Object *, ::java::lang::Object *, ::java::util::Comparator *);
+public:
+ static jint binarySearch(::java::util::List *, ::java::lang::Object *);
+ static jint binarySearch(::java::util::List *, ::java::lang::Object *, ::java::util::Comparator *);
+ static void copy(::java::util::List *, ::java::util::List *);
+ static ::java::util::Enumeration * enumeration(::java::util::Collection *);
+ static void fill(::java::util::List *, ::java::lang::Object *);
+ static jint indexOfSubList(::java::util::List *, ::java::util::List *);
+ static jint lastIndexOfSubList(::java::util::List *, ::java::util::List *);
+ static ::java::util::ArrayList * list(::java::util::Enumeration *);
+ static ::java::lang::Object * max(::java::util::Collection *);
+ static ::java::lang::Object * max(::java::util::Collection *, ::java::util::Comparator *);
+ static ::java::lang::Object * min(::java::util::Collection *);
+ static ::java::lang::Object * min(::java::util::Collection *, ::java::util::Comparator *);
+ static ::java::util::List * nCopies(jint, ::java::lang::Object *);
+ static jboolean replaceAll(::java::util::List *, ::java::lang::Object *, ::java::lang::Object *);
+ static void reverse(::java::util::List *);
+ static ::java::util::Comparator * reverseOrder(::java::util::Comparator *);
+ static ::java::util::Comparator * reverseOrder();
+ static void rotate(::java::util::List *, jint);
+ static void shuffle(::java::util::List *);
+ static void shuffle(::java::util::List *, ::java::util::Random *);
+ static jint frequency(::java::util::Collection *, ::java::lang::Object *);
+ static jboolean addAll(::java::util::Collection *, JArray< ::java::lang::Object * > *);
+ static jboolean disjoint(::java::util::Collection *, ::java::util::Collection *);
+ static ::java::util::Set * singleton(::java::lang::Object *);
+ static ::java::util::List * singletonList(::java::lang::Object *);
+ static ::java::util::Map * singletonMap(::java::lang::Object *, ::java::lang::Object *);
+ static void sort(::java::util::List *);
+ static void sort(::java::util::List *, ::java::util::Comparator *);
+ static void swap(::java::util::List *, jint, jint);
+ static ::java::util::Collection * synchronizedCollection(::java::util::Collection *);
+ static ::java::util::List * synchronizedList(::java::util::List *);
+ static ::java::util::Map * synchronizedMap(::java::util::Map *);
+ static ::java::util::Set * synchronizedSet(::java::util::Set *);
+ static ::java::util::SortedMap * synchronizedSortedMap(::java::util::SortedMap *);
+ static ::java::util::SortedSet * synchronizedSortedSet(::java::util::SortedSet *);
+ static ::java::util::Collection * unmodifiableCollection(::java::util::Collection *);
+ static ::java::util::List * unmodifiableList(::java::util::List *);
+ static ::java::util::Map * unmodifiableMap(::java::util::Map *);
+ static ::java::util::Set * unmodifiableSet(::java::util::Set *);
+ static ::java::util::SortedMap * unmodifiableSortedMap(::java::util::SortedMap *);
+ static ::java::util::SortedSet * unmodifiableSortedSet(::java::util::SortedSet *);
+ static ::java::util::Collection * checkedCollection(::java::util::Collection *, ::java::lang::Class *);
+ static ::java::util::List * checkedList(::java::util::List *, ::java::lang::Class *);
+ static ::java::util::Map * checkedMap(::java::util::Map *, ::java::lang::Class *, ::java::lang::Class *);
+ static ::java::util::Set * checkedSet(::java::util::Set *, ::java::lang::Class *);
+ static ::java::util::SortedMap * checkedSortedMap(::java::util::SortedMap *, ::java::lang::Class *, ::java::lang::Class *);
+ static ::java::util::SortedSet * checkedSortedSet(::java::util::SortedSet *, ::java::lang::Class *);
+ static ::java::util::Queue * asLifoQueue(::java::util::Deque *);
+ static ::java::util::Set * newSetFromMap(::java::util::Map *);
+private:
+ static const jint LARGE_LIST_SIZE = 16;
+public:
+ static ::java::util::Set * EMPTY_SET;
+ static ::java::util::List * EMPTY_LIST;
+ static ::java::util::Map * EMPTY_MAP;
+private:
+ static ::java::util::Collections$ReverseComparator * rcInstance;
+ static ::java::util::Random * defaultRandom;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Collections__
diff --git a/gcc-4.8/libjava/java/util/Comparator.h b/gcc-4.8/libjava/java/util/Comparator.h
new file mode 100644
index 000000000..f14275e58
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Comparator.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Comparator__
+#define __java_util_Comparator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Comparator : public ::java::lang::Object
+{
+
+public:
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Comparator__
diff --git a/gcc-4.8/libjava/java/util/ConcurrentModificationException.h b/gcc-4.8/libjava/java/util/ConcurrentModificationException.h
new file mode 100644
index 000000000..012ab658d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ConcurrentModificationException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ConcurrentModificationException__
+#define __java_util_ConcurrentModificationException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::util::ConcurrentModificationException : public ::java::lang::RuntimeException
+{
+
+public:
+ ConcurrentModificationException();
+ ConcurrentModificationException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -3666751008965953603LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ConcurrentModificationException__
diff --git a/gcc-4.8/libjava/java/util/Currency.h b/gcc-4.8/libjava/java/util/Currency.h
new file mode 100644
index 000000000..2697c97ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Currency.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Currency__
+#define __java_util_Currency__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Currency : public ::java::lang::Object
+{
+
+ Currency();
+ Currency(::java::util::Locale *);
+ Currency(::java::lang::String *);
+public:
+ ::java::lang::String * getCurrencyCode();
+ jint getDefaultFractionDigits();
+ static ::java::util::Currency * getInstance(::java::util::Locale *);
+ static ::java::util::Currency * getInstance(::java::lang::String *);
+ ::java::lang::String * getSymbol();
+ ::java::lang::String * getSymbol(::java::util::Locale *);
+ ::java::lang::String * toString();
+private:
+ ::java::lang::Object * readResolve();
+public: // actually package-private
+ static const jlong serialVersionUID = -158308464356906721LL;
+private:
+ static ::java::util::Properties * properties;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) currencyCode;
+ jint fractionDigits;
+ static ::java::util::Map * countryMap;
+ static ::java::util::Map * cache;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Currency__
diff --git a/gcc-4.8/libjava/java/util/Date.h b/gcc-4.8/libjava/java/util/Date.h
new file mode 100644
index 000000000..0f801d87a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Date.h
@@ -0,0 +1,69 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Date__
+#define __java_util_Date__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Date : public ::java::lang::Object
+{
+
+public:
+ Date();
+ Date(jlong);
+ Date(jint, jint, jint);
+ Date(jint, jint, jint, jint, jint);
+ Date(jint, jint, jint, jint, jint, jint);
+ Date(::java::lang::String *);
+ virtual ::java::lang::Object * clone();
+ static jlong UTC(jint, jint, jint, jint, jint, jint);
+ virtual jlong getTime();
+ virtual jint getTimezoneOffset();
+ virtual void setTime(jlong);
+ virtual jboolean after(::java::util::Date *);
+ virtual jboolean before(::java::util::Date *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint Date$compareTo(::java::util::Date *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * toLocaleString();
+ virtual ::java::lang::String * toGMTString();
+private:
+ static jint parseTz(::java::lang::String *, jchar);
+ static jint parseMonth(::java::lang::String *);
+ static jboolean parseDayOfWeek(::java::lang::String *);
+public:
+ static jlong parse(::java::lang::String *);
+ virtual jint getYear();
+ virtual void setYear(jint);
+ virtual jint getMonth();
+ virtual void setMonth(jint);
+ virtual jint getDate();
+ virtual void setDate(jint);
+ virtual jint getDay();
+ virtual jint getHours();
+ virtual void setHours(jint);
+ virtual jint getMinutes();
+ virtual void setMinutes(jint);
+ virtual jint getSeconds();
+ virtual void setSeconds(jint);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ virtual jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 7523967970034938905LL;
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) time;
+ static JArray< ::java::lang::String * > * weekNames;
+ static JArray< ::java::lang::String * > * monthNames;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Date__
diff --git a/gcc-4.8/libjava/java/util/Deque.h b/gcc-4.8/libjava/java/util/Deque.h
new file mode 100644
index 000000000..0ceb91f82
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Deque.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Deque__
+#define __java_util_Deque__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Deque : public ::java::lang::Object
+{
+
+public:
+ virtual void addFirst(::java::lang::Object *) = 0;
+ virtual void addLast(::java::lang::Object *) = 0;
+ virtual jboolean offerFirst(::java::lang::Object *) = 0;
+ virtual jboolean offerLast(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * removeFirst() = 0;
+ virtual ::java::lang::Object * removeLast() = 0;
+ virtual ::java::lang::Object * pollFirst() = 0;
+ virtual ::java::lang::Object * pollLast() = 0;
+ virtual ::java::lang::Object * getFirst() = 0;
+ virtual ::java::lang::Object * getLast() = 0;
+ virtual ::java::lang::Object * peekFirst() = 0;
+ virtual ::java::lang::Object * peekLast() = 0;
+ virtual jboolean removeFirstOccurrence(::java::lang::Object *) = 0;
+ virtual jboolean removeLastOccurrence(::java::lang::Object *) = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean offer(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * remove() = 0;
+ virtual ::java::lang::Object * poll() = 0;
+ virtual ::java::lang::Object * element() = 0;
+ virtual ::java::lang::Object * peek() = 0;
+ virtual void push(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * pop() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual ::java::util::Iterator * descendingIterator() = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Deque__
diff --git a/gcc-4.8/libjava/java/util/Dictionary.h b/gcc-4.8/libjava/java/util/Dictionary.h
new file mode 100644
index 000000000..5f02531a5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Dictionary.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Dictionary__
+#define __java_util_Dictionary__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Dictionary : public ::java::lang::Object
+{
+
+public:
+ Dictionary();
+ virtual ::java::util::Enumeration * elements() = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Enumeration * keys() = 0;
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * remove(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Dictionary__
diff --git a/gcc-4.8/libjava/java/util/DuplicateFormatFlagsException.h b/gcc-4.8/libjava/java/util/DuplicateFormatFlagsException.h
new file mode 100644
index 000000000..c384bc026
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/DuplicateFormatFlagsException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_DuplicateFormatFlagsException__
+#define __java_util_DuplicateFormatFlagsException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::DuplicateFormatFlagsException : public ::java::util::IllegalFormatException
+{
+
+public:
+ DuplicateFormatFlagsException(::java::lang::String *);
+ virtual ::java::lang::String * getFlags();
+private:
+ static const jlong serialVersionUID = 18890531LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) flags;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_DuplicateFormatFlagsException__
diff --git a/gcc-4.8/libjava/java/util/EmptyStackException.h b/gcc-4.8/libjava/java/util/EmptyStackException.h
new file mode 100644
index 000000000..7b5b16759
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EmptyStackException.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EmptyStackException__
+#define __java_util_EmptyStackException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::util::EmptyStackException : public ::java::lang::RuntimeException
+{
+
+public:
+ EmptyStackException();
+private:
+ static const jlong serialVersionUID = 5084686378493302095LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EmptyStackException__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$1.h b/gcc-4.8/libjava/java/util/EnumMap$1.h
new file mode 100644
index 000000000..9d36b6f39
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$1.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$1__
+#define __java_util_EnumMap$1__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::EnumMap$1 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ EnumMap$1(::java::util::EnumMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ static ::java::util::EnumMap * access$0(::java::util::EnumMap$1 *);
+ ::java::util::EnumMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$1__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$2.h b/gcc-4.8/libjava/java/util/EnumMap$2.h
new file mode 100644
index 000000000..d7753d7ca
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$2.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$2__
+#define __java_util_EnumMap$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EnumMap$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ EnumMap$2(::java::util::EnumMap$1 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Enum * EnumMap$2$next();
+ virtual void remove();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ jint index;
+ ::java::util::EnumMap$1 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$2__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$3.h b/gcc-4.8/libjava/java/util/EnumMap$3.h
new file mode 100644
index 000000000..54fa6aff5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$3.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$3__
+#define __java_util_EnumMap$3__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::EnumMap$3 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ EnumMap$3(::java::util::EnumMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+public: // actually package-private
+ static ::java::util::EnumMap * access$0(::java::util::EnumMap$3 *);
+ ::java::util::EnumMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$3__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$4.h b/gcc-4.8/libjava/java/util/EnumMap$4.h
new file mode 100644
index 000000000..2c8a392b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$4.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$4__
+#define __java_util_EnumMap$4__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EnumMap$4 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ EnumMap$4(::java::util::EnumMap$3 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ jint index;
+ ::java::util::EnumMap$3 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$4__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$5.h b/gcc-4.8/libjava/java/util/EnumMap$5.h
new file mode 100644
index 000000000..67aff5608
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$5.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$5__
+#define __java_util_EnumMap$5__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::EnumMap$5 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ EnumMap$5(::java::util::EnumMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ static ::java::util::EnumMap * access$0(::java::util::EnumMap$5 *);
+ ::java::util::EnumMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$5__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$6.h b/gcc-4.8/libjava/java/util/EnumMap$6.h
new file mode 100644
index 000000000..f57eb42fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$6.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$6__
+#define __java_util_EnumMap$6__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EnumMap$6 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ EnumMap$6(::java::util::EnumMap$5 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::util::Map$Entry * EnumMap$6$next();
+ virtual void remove();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ static ::java::util::EnumMap$5 * access$1(::java::util::EnumMap$6 *);
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ jint index;
+ ::java::util::EnumMap$5 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$6__
diff --git a/gcc-4.8/libjava/java/util/EnumMap$7.h b/gcc-4.8/libjava/java/util/EnumMap$7.h
new file mode 100644
index 000000000..7f7ef4f72
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap$7.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap$7__
+#define __java_util_EnumMap$7__
+
+#pragma interface
+
+#include <java/util/AbstractMap$SimpleEntry.h>
+
+class java::util::EnumMap$7 : public ::java::util::AbstractMap$SimpleEntry
+{
+
+public: // actually package-private
+ EnumMap$7(::java::util::EnumMap$6 *, ::java::lang::Enum *, ::java::lang::Object *);
+public:
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::EnumMap$6 * __attribute__((aligned(__alignof__( ::java::util::AbstractMap$SimpleEntry)))) this$2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap$7__
diff --git a/gcc-4.8/libjava/java/util/EnumMap.h b/gcc-4.8/libjava/java/util/EnumMap.h
new file mode 100644
index 000000000..074f87839
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumMap.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumMap__
+#define __java_util_EnumMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+#include <gcj/array.h>
+
+
+class java::util::EnumMap : public ::java::util::AbstractMap
+{
+
+public:
+ EnumMap(::java::lang::Class *);
+ EnumMap(::java::util::EnumMap *);
+ EnumMap(::java::util::Map *);
+ virtual jint size();
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * EnumMap$put(::java::lang::Enum *, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual void clear();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::util::Collection * values();
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::util::EnumMap * EnumMap$clone();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 458661240069192865LL;
+public: // actually package-private
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) store;
+ jint cardinality;
+ ::java::lang::Class * enumClass;
+ ::java::util::Set * entries;
+ static ::java::lang::Object * emptySlot;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumMap__
diff --git a/gcc-4.8/libjava/java/util/EnumSet$1.h b/gcc-4.8/libjava/java/util/EnumSet$1.h
new file mode 100644
index 000000000..4d7e3a2b9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumSet$1.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumSet$1__
+#define __java_util_EnumSet$1__
+
+#pragma interface
+
+#include <java/util/EnumSet.h>
+
+class java::util::EnumSet$1 : public ::java::util::EnumSet
+{
+
+public: // actually package-private
+ EnumSet$1();
+public:
+ virtual jboolean EnumSet$1$add(::java::lang::Enum *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual jint size();
+ virtual jboolean add(::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumSet$1__
diff --git a/gcc-4.8/libjava/java/util/EnumSet$2.h b/gcc-4.8/libjava/java/util/EnumSet$2.h
new file mode 100644
index 000000000..14464a1ac
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumSet$2.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumSet$2__
+#define __java_util_EnumSet$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EnumSet$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ EnumSet$2(::java::util::EnumSet$1 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Enum * EnumSet$2$next();
+ virtual void remove();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__;
+ jint count;
+ ::java::util::EnumSet$1 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumSet$2__
diff --git a/gcc-4.8/libjava/java/util/EnumSet.h b/gcc-4.8/libjava/java/util/EnumSet.h
new file mode 100644
index 000000000..5497e306d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EnumSet.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumSet__
+#define __java_util_EnumSet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+#include <gcj/array.h>
+
+
+class java::util::EnumSet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ EnumSet();
+public:
+ virtual ::java::util::EnumSet * EnumSet$clone();
+ static ::java::util::EnumSet * allOf(::java::lang::Class *);
+ static ::java::util::EnumSet * noneOf(::java::lang::Class *);
+ static ::java::util::EnumSet * copyOf(::java::util::EnumSet *);
+ static ::java::util::EnumSet * copyOf(::java::util::Collection *);
+ static ::java::util::EnumSet * complementOf(::java::util::EnumSet *);
+ static ::java::util::EnumSet * of(::java::lang::Enum *);
+ static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *);
+ static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *);
+ static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *);
+ static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *);
+ static ::java::util::EnumSet * of(::java::lang::Enum *, JArray< ::java::lang::Enum * > *);
+ static ::java::util::EnumSet * range(::java::lang::Enum *, ::java::lang::Enum *);
+ virtual ::java::lang::Object * clone();
+private:
+ static const jlong serialVersionUID = 4782406773684236311LL;
+public: // actually package-private
+ ::java::util::BitSet * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) store;
+ jint cardinality;
+ ::java::lang::Class * enumClass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumSet__
diff --git a/gcc-4.8/libjava/java/util/Enumeration.h b/gcc-4.8/libjava/java/util/Enumeration.h
new file mode 100644
index 000000000..a79045f0e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Enumeration.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Enumeration__
+#define __java_util_Enumeration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Enumeration : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean hasMoreElements() = 0;
+ virtual ::java::lang::Object * nextElement() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Enumeration__
diff --git a/gcc-4.8/libjava/java/util/EventListener.h b/gcc-4.8/libjava/java/util/EventListener.h
new file mode 100644
index 000000000..7ab4585c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EventListener.h
@@ -0,0 +1,18 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EventListener__
+#define __java_util_EventListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EventListener : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_EventListener__
diff --git a/gcc-4.8/libjava/java/util/EventListenerProxy.h b/gcc-4.8/libjava/java/util/EventListenerProxy.h
new file mode 100644
index 000000000..06f165097
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EventListenerProxy.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EventListenerProxy__
+#define __java_util_EventListenerProxy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EventListenerProxy : public ::java::lang::Object
+{
+
+public:
+ EventListenerProxy(::java::util::EventListener *);
+ virtual ::java::util::EventListener * getListener();
+private:
+ ::java::util::EventListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listener;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EventListenerProxy__
diff --git a/gcc-4.8/libjava/java/util/EventObject.h b/gcc-4.8/libjava/java/util/EventObject.h
new file mode 100644
index 000000000..bd1862b95
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/EventObject.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EventObject__
+#define __java_util_EventObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EventObject : public ::java::lang::Object
+{
+
+public:
+ EventObject(::java::lang::Object *);
+ virtual ::java::lang::Object * getSource();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 5516075349620653480LL;
+public: // actually protected
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) source;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EventObject__
diff --git a/gcc-4.8/libjava/java/util/FormatFlagsConversionMismatchException.h b/gcc-4.8/libjava/java/util/FormatFlagsConversionMismatchException.h
new file mode 100644
index 000000000..ce0d3fe3d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/FormatFlagsConversionMismatchException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_FormatFlagsConversionMismatchException__
+#define __java_util_FormatFlagsConversionMismatchException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::FormatFlagsConversionMismatchException : public ::java::util::IllegalFormatException
+{
+
+public:
+ FormatFlagsConversionMismatchException(::java::lang::String *, jchar);
+ virtual jchar getConversion();
+ virtual ::java::lang::String * getFlags();
+private:
+ static const jlong serialVersionUID = 19120414LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) f;
+ jchar c;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_FormatFlagsConversionMismatchException__
diff --git a/gcc-4.8/libjava/java/util/Formattable.h b/gcc-4.8/libjava/java/util/Formattable.h
new file mode 100644
index 000000000..7af1df738
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Formattable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Formattable__
+#define __java_util_Formattable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Formattable : public ::java::lang::Object
+{
+
+public:
+ virtual void formatTo(::java::util::Formatter *, jint, jint, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Formattable__
diff --git a/gcc-4.8/libjava/java/util/FormattableFlags.h b/gcc-4.8/libjava/java/util/FormattableFlags.h
new file mode 100644
index 000000000..36fba012b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/FormattableFlags.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_FormattableFlags__
+#define __java_util_FormattableFlags__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::FormattableFlags : public ::java::lang::Object
+{
+
+ FormattableFlags();
+public:
+ static const jint LEFT_JUSTIFY = 1;
+ static const jint UPPERCASE = 2;
+ static const jint ALTERNATE = 4;
+public: // actually package-private
+ static const jint PLUS = 8;
+ static const jint SPACE = 16;
+ static const jint ZERO = 32;
+ static const jint COMMA = 64;
+ static const jint PAREN = 128;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_FormattableFlags__
diff --git a/gcc-4.8/libjava/java/util/Formatter$BigDecimalLayoutForm.h b/gcc-4.8/libjava/java/util/Formatter$BigDecimalLayoutForm.h
new file mode 100644
index 000000000..a6ea3a893
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Formatter$BigDecimalLayoutForm.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Formatter$BigDecimalLayoutForm__
+#define __java_util_Formatter$BigDecimalLayoutForm__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::util::Formatter$BigDecimalLayoutForm : public ::java::lang::Enum
+{
+
+ Formatter$BigDecimalLayoutForm(::java::lang::String *, jint);
+public:
+ static JArray< ::java::util::Formatter$BigDecimalLayoutForm * > * values();
+ static ::java::util::Formatter$BigDecimalLayoutForm * valueOf(::java::lang::String *);
+ static ::java::util::Formatter$BigDecimalLayoutForm * DECIMAL_FLOAT;
+ static ::java::util::Formatter$BigDecimalLayoutForm * SCIENTIFIC;
+private:
+ static JArray< ::java::util::Formatter$BigDecimalLayoutForm * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Formatter$BigDecimalLayoutForm__
diff --git a/gcc-4.8/libjava/java/util/Formatter.h b/gcc-4.8/libjava/java/util/Formatter.h
new file mode 100644
index 000000000..71a659f66
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Formatter.h
@@ -0,0 +1,100 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Formatter__
+#define __java_util_Formatter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormatSymbols;
+ }
+ }
+}
+
+class java::util::Formatter : public ::java::lang::Object
+{
+
+public:
+ Formatter();
+ Formatter(::java::util::Locale *);
+ Formatter(::java::lang::Appendable *);
+ Formatter(::java::lang::Appendable *, ::java::util::Locale *);
+ Formatter(::java::io::File *);
+ Formatter(::java::io::File *, ::java::lang::String *);
+ Formatter(::java::io::File *, ::java::lang::String *, ::java::util::Locale *);
+ Formatter(::java::io::OutputStream *);
+ Formatter(::java::io::OutputStream *, ::java::lang::String *);
+ Formatter(::java::io::OutputStream *, ::java::lang::String *, ::java::util::Locale *);
+ Formatter(::java::io::PrintStream *);
+ Formatter(::java::lang::String *);
+ Formatter(::java::lang::String *, ::java::lang::String *);
+ Formatter(::java::lang::String *, ::java::lang::String *, ::java::util::Locale *);
+ void close();
+ void flush();
+private:
+ ::java::lang::String * getName(jint);
+ void checkFlags(jint, jint, jchar);
+ void noPrecision(jint);
+ void applyLocalization(::gnu::java::lang::CPStringBuilder *, jint, jint, jboolean);
+ void genericFormat(::java::lang::String *, jint, jint, jint);
+ void booleanFormat(::java::lang::Object *, jint, jint, jint, jchar);
+ void hashCodeFormat(::java::lang::Object *, jint, jint, jint, jchar);
+ void stringFormat(::java::lang::Object *, jint, jint, jint, jchar);
+ void characterFormat(::java::lang::Object *, jint, jint, jint, jchar);
+ void percentFormat(jint, jint, jint);
+ void newLineFormat(jint, jint, jint);
+ ::gnu::java::lang::CPStringBuilder * basicIntegralConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
+ void hexOrOctalConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
+ void decimalConversion(::java::lang::Object *, jint, jint, jint, jchar);
+ void singleDateTimeConversion(::gnu::java::lang::CPStringBuilder *, ::java::util::Calendar *, jchar, ::java::text::DateFormatSymbols *);
+ void dateTimeConversion(::java::lang::Object *, jint, jint, jint, jchar, jchar);
+ void advance();
+ jint parseInt();
+ jint parseArgumentIndex();
+ jint parseFlags();
+ jint parseWidth();
+ jint parsePrecision();
+public:
+ ::java::util::Formatter * format(::java::util::Locale *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ ::java::util::Formatter * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
+ ::java::io::IOException * ioException();
+ ::java::util::Locale * locale();
+ ::java::lang::Appendable * out();
+ ::java::lang::String * toString();
+private:
+ ::java::lang::Appendable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out__;
+ ::java::util::Locale * locale__;
+ jboolean closed;
+ ::java::io::IOException * ioException__;
+ ::java::lang::String * format__;
+ jint index;
+ jint length;
+ ::java::util::Locale * fmtLocale;
+ static ::java::lang::String * FLAGS;
+ static ::java::lang::String * lineSeparator;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Formatter__
diff --git a/gcc-4.8/libjava/java/util/FormatterClosedException.h b/gcc-4.8/libjava/java/util/FormatterClosedException.h
new file mode 100644
index 000000000..e4e950bca
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/FormatterClosedException.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_FormatterClosedException__
+#define __java_util_FormatterClosedException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+
+class java::util::FormatterClosedException : public ::java::lang::IllegalStateException
+{
+
+public:
+ FormatterClosedException();
+private:
+ static const jlong serialVersionUID = 18111216LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_FormatterClosedException__
diff --git a/gcc-4.8/libjava/java/util/GregorianCalendar.h b/gcc-4.8/libjava/java/util/GregorianCalendar.h
new file mode 100644
index 000000000..9fe77cde5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/GregorianCalendar.h
@@ -0,0 +1,71 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_GregorianCalendar__
+#define __java_util_GregorianCalendar__
+
+#pragma interface
+
+#include <java/util/Calendar.h>
+#include <gcj/array.h>
+
+
+class java::util::GregorianCalendar : public ::java::util::Calendar
+{
+
+public:
+ GregorianCalendar();
+ GregorianCalendar(::java::util::TimeZone *);
+ GregorianCalendar(::java::util::Locale *);
+ GregorianCalendar(::java::util::TimeZone *, ::java::util::Locale *);
+private:
+ GregorianCalendar(::java::util::TimeZone *, ::java::util::Locale *, jboolean);
+public:
+ GregorianCalendar(jint, jint, jint);
+ GregorianCalendar(jint, jint, jint, jint, jint);
+ GregorianCalendar(jint, jint, jint, jint, jint, jint);
+ virtual void setGregorianChange(::java::util::Date *);
+ virtual ::java::util::Date * getGregorianChange();
+ virtual jboolean isLeapYear(jint);
+private:
+ jint getWeekDay(jint, jint);
+ jint getFirstDayOfMonth(jint, jint);
+ jboolean isGregorian(jint, jint);
+ void nonLeniencyCheck();
+public: // actually protected
+ virtual void computeTime();
+private:
+ jlong getLinearDay(jint, jint, jboolean);
+ void calculateDay(JArray< jint > *, jlong, jboolean);
+public: // actually protected
+ virtual void computeFields();
+public:
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual void add(jint, jint);
+ virtual void roll(jint, jboolean);
+private:
+ void cleanUpAfterRoll(jint, jint);
+public:
+ virtual void roll(jint, jint);
+ virtual jint getMinimum(jint);
+ virtual jint getMaximum(jint);
+ virtual jint getGreatestMinimum(jint);
+ virtual jint getLeastMaximum(jint);
+ virtual jint getActualMinimum(jint);
+ virtual jint getActualMaximum(jint);
+ static const jint BC = 0;
+ static const jint AD = 1;
+private:
+ jlong __attribute__((aligned(__alignof__( ::java::util::Calendar)))) gregorianCutover;
+public: // actually package-private
+ static const jlong serialVersionUID = -8125100834729963327LL;
+private:
+ static const jint EPOCH_DAYS = 719162;
+ static JArray< jint > * minimums;
+ static JArray< jint > * maximums;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_GregorianCalendar__
diff --git a/gcc-4.8/libjava/java/util/HashMap$1.h b/gcc-4.8/libjava/java/util/HashMap$1.h
new file mode 100644
index 000000000..abf0354c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashMap$1.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashMap$1__
+#define __java_util_HashMap$1__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::HashMap$1 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ HashMap$1(::java::util::HashMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashMap$1__
diff --git a/gcc-4.8/libjava/java/util/HashMap$2.h b/gcc-4.8/libjava/java/util/HashMap$2.h
new file mode 100644
index 000000000..8b90c54f5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashMap$2.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashMap$2__
+#define __java_util_HashMap$2__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::HashMap$2 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ HashMap$2(::java::util::HashMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+public: // actually package-private
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashMap$2__
diff --git a/gcc-4.8/libjava/java/util/HashMap$3.h b/gcc-4.8/libjava/java/util/HashMap$3.h
new file mode 100644
index 000000000..dc988a071
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashMap$3.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashMap$3__
+#define __java_util_HashMap$3__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::HashMap$3 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ HashMap$3(::java::util::HashMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashMap$3__
diff --git a/gcc-4.8/libjava/java/util/HashMap$HashEntry.h b/gcc-4.8/libjava/java/util/HashMap$HashEntry.h
new file mode 100644
index 000000000..9f0093d7f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashMap$HashEntry.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashMap$HashEntry__
+#define __java_util_HashMap$HashEntry__
+
+#pragma interface
+
+#include <java/util/AbstractMap$SimpleEntry.h>
+
+class java::util::HashMap$HashEntry : public ::java::util::AbstractMap$SimpleEntry
+{
+
+public: // actually package-private
+ HashMap$HashEntry(::java::lang::Object *, ::java::lang::Object *);
+ virtual void access();
+ virtual ::java::lang::Object * cleanup();
+ ::java::util::HashMap$HashEntry * __attribute__((aligned(__alignof__( ::java::util::AbstractMap$SimpleEntry)))) next;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashMap$HashEntry__
diff --git a/gcc-4.8/libjava/java/util/HashMap$HashIterator.h b/gcc-4.8/libjava/java/util/HashMap$HashIterator.h
new file mode 100644
index 000000000..b56fb350c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashMap$HashIterator.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashMap$HashIterator__
+#define __java_util_HashMap$HashIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::HashMap$HashIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ HashMap$HashIterator(::java::util::HashMap *, jint);
+public:
+ jboolean hasNext();
+ ::java::lang::Object * next();
+ void remove();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ jint knownMod;
+ jint count;
+ jint idx;
+ ::java::util::HashMap$HashEntry * last;
+ ::java::util::HashMap$HashEntry * next__;
+public: // actually package-private
+ ::java::util::HashMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashMap$HashIterator__
diff --git a/gcc-4.8/libjava/java/util/HashMap.h b/gcc-4.8/libjava/java/util/HashMap.h
new file mode 100644
index 000000000..8cd751812
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashMap.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashMap__
+#define __java_util_HashMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+#include <gcj/array.h>
+
+
+class java::util::HashMap : public ::java::util::AbstractMap
+{
+
+public:
+ HashMap();
+ HashMap(::java::util::Map *);
+ HashMap(jint);
+ HashMap(jint, jfloat);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual void clear();
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::util::Collection * values();
+ virtual ::java::util::Set * entrySet();
+public: // actually package-private
+ virtual void addEntry(::java::lang::Object *, ::java::lang::Object *, jint, jboolean);
+ virtual ::java::util::HashMap$HashEntry * getEntry(::java::lang::Object *);
+ virtual jint hash(::java::lang::Object *);
+ virtual ::java::util::Iterator * iterator(jint);
+ virtual void putAllInternal(::java::util::Map *);
+private:
+ void rehash();
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ static const jint DEFAULT_CAPACITY = 16;
+ static jfloat DEFAULT_LOAD_FACTOR;
+private:
+ static const jlong serialVersionUID = 362498820763181265LL;
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) threshold;
+public: // actually package-private
+ jfloat loadFactor;
+ JArray< ::java::util::HashMap$HashEntry * > * buckets;
+ jint modCount;
+ jint size__;
+private:
+ ::java::util::Set * entries;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashMap__
diff --git a/gcc-4.8/libjava/java/util/HashSet.h b/gcc-4.8/libjava/java/util/HashSet.h
new file mode 100644
index 000000000..0d96ab91c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/HashSet.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_HashSet__
+#define __java_util_HashSet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::HashSet : public ::java::util::AbstractSet
+{
+
+public:
+ HashSet();
+ HashSet(jint);
+ HashSet(jint, jfloat);
+ HashSet(::java::util::Collection *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual void clear();
+ virtual ::java::lang::Object * clone();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jint size();
+public: // actually package-private
+ virtual ::java::util::HashMap * init(jint, jfloat);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -5024744406713321676LL;
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) map;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_HashSet__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$1.h b/gcc-4.8/libjava/java/util/Hashtable$1.h
new file mode 100644
index 000000000..c2dbaf0c1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$1.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$1__
+#define __java_util_Hashtable$1__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::Hashtable$1 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ Hashtable$1(::java::util::Hashtable *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$1__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$2.h b/gcc-4.8/libjava/java/util/Hashtable$2.h
new file mode 100644
index 000000000..12939c75c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$2.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$2__
+#define __java_util_Hashtable$2__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::Hashtable$2 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ Hashtable$2(::java::util::Hashtable *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+public: // actually package-private
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$2__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$3.h b/gcc-4.8/libjava/java/util/Hashtable$3.h
new file mode 100644
index 000000000..9804a67d8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$3.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$3__
+#define __java_util_Hashtable$3__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::Hashtable$3 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ Hashtable$3(::java::util::Hashtable *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$3__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$EntryEnumerator.h b/gcc-4.8/libjava/java/util/Hashtable$EntryEnumerator.h
new file mode 100644
index 000000000..a0f160153
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$EntryEnumerator.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$EntryEnumerator__
+#define __java_util_Hashtable$EntryEnumerator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Hashtable$EntryEnumerator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Hashtable$EntryEnumerator(::java::util::Hashtable *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::util::Map$Entry * Hashtable$EntryEnumerator$nextElement();
+ virtual ::java::lang::Object * nextElement();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ jint idx;
+ ::java::util::Hashtable$HashEntry * next;
+ ::java::util::Hashtable * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$EntryEnumerator__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$EntryIterator.h b/gcc-4.8/libjava/java/util/Hashtable$EntryIterator.h
new file mode 100644
index 000000000..7927391ef
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$EntryIterator.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$EntryIterator__
+#define __java_util_Hashtable$EntryIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Hashtable$EntryIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Hashtable$EntryIterator(::java::util::Hashtable *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::util::Map$Entry * Hashtable$EntryIterator$next();
+ virtual void remove();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) knownMod;
+ jint count;
+ jint idx;
+ ::java::util::Hashtable$HashEntry * last;
+ ::java::util::Hashtable$HashEntry * next__;
+ ::java::util::Hashtable * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$EntryIterator__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$HashEntry.h b/gcc-4.8/libjava/java/util/Hashtable$HashEntry.h
new file mode 100644
index 000000000..c0a1c581b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$HashEntry.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$HashEntry__
+#define __java_util_Hashtable$HashEntry__
+
+#pragma interface
+
+#include <java/util/AbstractMap$SimpleEntry.h>
+
+class java::util::Hashtable$HashEntry : public ::java::util::AbstractMap$SimpleEntry
+{
+
+public: // actually package-private
+ Hashtable$HashEntry(::java::lang::Object *, ::java::lang::Object *);
+public:
+ ::java::lang::Object * setValue(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::Hashtable$HashEntry * __attribute__((aligned(__alignof__( ::java::util::AbstractMap$SimpleEntry)))) next;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$HashEntry__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$KeyEnumerator.h b/gcc-4.8/libjava/java/util/Hashtable$KeyEnumerator.h
new file mode 100644
index 000000000..db4765da7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$KeyEnumerator.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$KeyEnumerator__
+#define __java_util_Hashtable$KeyEnumerator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Hashtable$KeyEnumerator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Hashtable$KeyEnumerator(::java::util::Hashtable *);
+public:
+ jboolean hasMoreElements();
+ ::java::lang::Object * nextElement();
+private:
+ ::java::util::Hashtable$EntryEnumerator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enumerator;
+public: // actually package-private
+ ::java::util::Hashtable * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$KeyEnumerator__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$KeyIterator.h b/gcc-4.8/libjava/java/util/Hashtable$KeyIterator.h
new file mode 100644
index 000000000..faf1d9322
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$KeyIterator.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$KeyIterator__
+#define __java_util_Hashtable$KeyIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Hashtable$KeyIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Hashtable$KeyIterator(::java::util::Hashtable *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::Hashtable$EntryIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterator;
+public: // actually package-private
+ ::java::util::Hashtable * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$KeyIterator__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$ValueEnumerator.h b/gcc-4.8/libjava/java/util/Hashtable$ValueEnumerator.h
new file mode 100644
index 000000000..4dce71ab7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$ValueEnumerator.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$ValueEnumerator__
+#define __java_util_Hashtable$ValueEnumerator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Hashtable$ValueEnumerator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Hashtable$ValueEnumerator(::java::util::Hashtable *);
+public:
+ jboolean hasMoreElements();
+ ::java::lang::Object * nextElement();
+private:
+ ::java::util::Hashtable$EntryEnumerator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enumerator;
+public: // actually package-private
+ ::java::util::Hashtable * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$ValueEnumerator__
diff --git a/gcc-4.8/libjava/java/util/Hashtable$ValueIterator.h b/gcc-4.8/libjava/java/util/Hashtable$ValueIterator.h
new file mode 100644
index 000000000..d25279837
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable$ValueIterator.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable$ValueIterator__
+#define __java_util_Hashtable$ValueIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Hashtable$ValueIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Hashtable$ValueIterator(::java::util::Hashtable *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::Hashtable$EntryIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterator;
+public: // actually package-private
+ ::java::util::Hashtable * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable$ValueIterator__
diff --git a/gcc-4.8/libjava/java/util/Hashtable.h b/gcc-4.8/libjava/java/util/Hashtable.h
new file mode 100644
index 000000000..bc33cb149
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Hashtable.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Hashtable__
+#define __java_util_Hashtable__
+
+#pragma interface
+
+#include <java/util/Dictionary.h>
+#include <gcj/array.h>
+
+
+class java::util::Hashtable : public ::java::util::Dictionary
+{
+
+public:
+ Hashtable();
+ Hashtable(::java::util::Map *);
+ Hashtable(jint);
+ Hashtable(jint, jfloat);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Enumeration * keys();
+ virtual ::java::util::Enumeration * elements();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual void clear();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::util::Collection * values();
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+private:
+ jint hash(::java::lang::Object *);
+public: // actually package-private
+ virtual ::java::util::Hashtable$HashEntry * getEntry(::java::lang::Object *);
+ virtual void putAllInternal(::java::util::Map *);
+public: // actually protected
+ virtual void rehash();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jint DEFAULT_CAPACITY = 11;
+ static jfloat DEFAULT_LOAD_FACTOR;
+ static const jlong serialVersionUID = 1421746759512286392LL;
+ jint __attribute__((aligned(__alignof__( ::java::util::Dictionary)))) threshold;
+ jfloat loadFactor;
+public: // actually package-private
+ JArray< ::java::util::Hashtable$HashEntry * > * buckets;
+ jint modCount;
+ jint size__;
+private:
+ ::java::util::Set * keys__;
+ ::java::util::Collection * values__;
+ ::java::util::Set * entries;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Hashtable__
diff --git a/gcc-4.8/libjava/java/util/IdentityHashMap$1.h b/gcc-4.8/libjava/java/util/IdentityHashMap$1.h
new file mode 100644
index 000000000..e2e37f47b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IdentityHashMap$1.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IdentityHashMap$1__
+#define __java_util_IdentityHashMap$1__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::IdentityHashMap$1 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ IdentityHashMap$1(::java::util::IdentityHashMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::IdentityHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IdentityHashMap$1__
diff --git a/gcc-4.8/libjava/java/util/IdentityHashMap$2.h b/gcc-4.8/libjava/java/util/IdentityHashMap$2.h
new file mode 100644
index 000000000..f45ba8f72
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IdentityHashMap$2.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IdentityHashMap$2__
+#define __java_util_IdentityHashMap$2__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::IdentityHashMap$2 : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ IdentityHashMap$2(::java::util::IdentityHashMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::IdentityHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IdentityHashMap$2__
diff --git a/gcc-4.8/libjava/java/util/IdentityHashMap$3.h b/gcc-4.8/libjava/java/util/IdentityHashMap$3.h
new file mode 100644
index 000000000..42deb4932
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IdentityHashMap$3.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IdentityHashMap$3__
+#define __java_util_IdentityHashMap$3__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::IdentityHashMap$3 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ IdentityHashMap$3(::java::util::IdentityHashMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::IdentityHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IdentityHashMap$3__
diff --git a/gcc-4.8/libjava/java/util/IdentityHashMap$IdentityEntry.h b/gcc-4.8/libjava/java/util/IdentityHashMap$IdentityEntry.h
new file mode 100644
index 000000000..be9fa72da
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IdentityHashMap$IdentityEntry.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IdentityHashMap$IdentityEntry__
+#define __java_util_IdentityHashMap$IdentityEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::IdentityHashMap$IdentityEntry : public ::java::lang::Object
+{
+
+public: // actually package-private
+ IdentityHashMap$IdentityEntry(::java::util::IdentityHashMap *, jint);
+public:
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::Object * getKey();
+ ::java::lang::Object * getValue();
+ jint hashCode();
+ ::java::lang::Object * setValue(::java::lang::Object *);
+ ::java::lang::String * toString();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) loc;
+ jint knownMod;
+ ::java::util::IdentityHashMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IdentityHashMap$IdentityEntry__
diff --git a/gcc-4.8/libjava/java/util/IdentityHashMap$IdentityIterator.h b/gcc-4.8/libjava/java/util/IdentityHashMap$IdentityIterator.h
new file mode 100644
index 000000000..d2ab43e48
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IdentityHashMap$IdentityIterator.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IdentityHashMap$IdentityIterator__
+#define __java_util_IdentityHashMap$IdentityIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::IdentityHashMap$IdentityIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ IdentityHashMap$IdentityIterator(::java::util::IdentityHashMap *, jint);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ jint knownMod;
+ jint count;
+ jint loc;
+ ::java::util::IdentityHashMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IdentityHashMap$IdentityIterator__
diff --git a/gcc-4.8/libjava/java/util/IdentityHashMap.h b/gcc-4.8/libjava/java/util/IdentityHashMap.h
new file mode 100644
index 000000000..9e77a4b29
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IdentityHashMap.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IdentityHashMap__
+#define __java_util_IdentityHashMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+#include <gcj/array.h>
+
+
+class java::util::IdentityHashMap : public ::java::util::AbstractMap
+{
+
+public:
+ IdentityHashMap();
+ IdentityHashMap(jint);
+ IdentityHashMap(::java::util::Map *);
+ virtual void clear();
+ virtual ::java::lang::Object * clone();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+public: // actually package-private
+ virtual void removeAtIndex(jint);
+public:
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::util::Collection * values();
+public: // actually package-private
+ virtual ::java::lang::Object * xform(::java::lang::Object *);
+ virtual ::java::lang::Object * unxform(::java::lang::Object *);
+ virtual jint hash(::java::lang::Object *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jint DEFAULT_CAPACITY = 21;
+public: // actually package-private
+ static ::java::lang::Object * nullslot;
+private:
+ static const jlong serialVersionUID = 8188218128353913216LL;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) size__;
+ JArray< ::java::lang::Object * > * table;
+ jint modCount;
+private:
+ ::java::util::Set * entries;
+ jint threshold;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IdentityHashMap__
diff --git a/gcc-4.8/libjava/java/util/IllegalFormatCodePointException.h b/gcc-4.8/libjava/java/util/IllegalFormatCodePointException.h
new file mode 100644
index 000000000..30801b6d2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IllegalFormatCodePointException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IllegalFormatCodePointException__
+#define __java_util_IllegalFormatCodePointException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::IllegalFormatCodePointException : public ::java::util::IllegalFormatException
+{
+
+public:
+ IllegalFormatCodePointException(jint);
+ virtual jint getCodePoint();
+private:
+ static const jlong serialVersionUID = 19080630LL;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) c;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IllegalFormatCodePointException__
diff --git a/gcc-4.8/libjava/java/util/IllegalFormatConversionException.h b/gcc-4.8/libjava/java/util/IllegalFormatConversionException.h
new file mode 100644
index 000000000..b6b7e8124
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IllegalFormatConversionException.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IllegalFormatConversionException__
+#define __java_util_IllegalFormatConversionException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::IllegalFormatConversionException : public ::java::util::IllegalFormatException
+{
+
+public:
+ IllegalFormatConversionException(jchar, ::java::lang::Class *);
+ virtual jchar getConversion();
+ virtual ::java::lang::Class * getArgumentClass();
+private:
+ static const jlong serialVersionUID = 17000126LL;
+public: // actually package-private
+ jchar __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) c;
+ ::java::lang::Class * arg;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IllegalFormatConversionException__
diff --git a/gcc-4.8/libjava/java/util/IllegalFormatException.h b/gcc-4.8/libjava/java/util/IllegalFormatException.h
new file mode 100644
index 000000000..bf5f4088f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IllegalFormatException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IllegalFormatException__
+#define __java_util_IllegalFormatException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+
+class java::util::IllegalFormatException : public ::java::lang::IllegalArgumentException
+{
+
+public: // actually package-private
+ IllegalFormatException();
+ IllegalFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 18830826LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IllegalFormatException__
diff --git a/gcc-4.8/libjava/java/util/IllegalFormatFlagsException.h b/gcc-4.8/libjava/java/util/IllegalFormatFlagsException.h
new file mode 100644
index 000000000..c5c13c01b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IllegalFormatFlagsException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IllegalFormatFlagsException__
+#define __java_util_IllegalFormatFlagsException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::IllegalFormatFlagsException : public ::java::util::IllegalFormatException
+{
+
+public:
+ IllegalFormatFlagsException(::java::lang::String *);
+ virtual ::java::lang::String * getFlags();
+private:
+ static const jlong serialVersionUID = 790824LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) flags;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IllegalFormatFlagsException__
diff --git a/gcc-4.8/libjava/java/util/IllegalFormatPrecisionException.h b/gcc-4.8/libjava/java/util/IllegalFormatPrecisionException.h
new file mode 100644
index 000000000..a4ca0ec23
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IllegalFormatPrecisionException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IllegalFormatPrecisionException__
+#define __java_util_IllegalFormatPrecisionException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::IllegalFormatPrecisionException : public ::java::util::IllegalFormatException
+{
+
+public:
+ IllegalFormatPrecisionException(jint);
+ virtual jint getPrecision();
+private:
+ static const jlong serialVersionUID = 18711008LL;
+ jint __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) p;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IllegalFormatPrecisionException__
diff --git a/gcc-4.8/libjava/java/util/IllegalFormatWidthException.h b/gcc-4.8/libjava/java/util/IllegalFormatWidthException.h
new file mode 100644
index 000000000..e278642db
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/IllegalFormatWidthException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_IllegalFormatWidthException__
+#define __java_util_IllegalFormatWidthException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::IllegalFormatWidthException : public ::java::util::IllegalFormatException
+{
+
+public:
+ IllegalFormatWidthException(jint);
+ virtual jint getWidth();
+private:
+ static const jlong serialVersionUID = 16660902LL;
+ jint __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) w;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_IllegalFormatWidthException__
diff --git a/gcc-4.8/libjava/java/util/InputMismatchException.h b/gcc-4.8/libjava/java/util/InputMismatchException.h
new file mode 100644
index 000000000..d1d7216bf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/InputMismatchException.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_InputMismatchException__
+#define __java_util_InputMismatchException__
+
+#pragma interface
+
+#include <java/util/NoSuchElementException.h>
+
+class java::util::InputMismatchException : public ::java::util::NoSuchElementException
+{
+
+public:
+ InputMismatchException();
+ InputMismatchException(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_InputMismatchException__
diff --git a/gcc-4.8/libjava/java/util/InvalidPropertiesFormatException.h b/gcc-4.8/libjava/java/util/InvalidPropertiesFormatException.h
new file mode 100644
index 000000000..0380e88d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/InvalidPropertiesFormatException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_InvalidPropertiesFormatException__
+#define __java_util_InvalidPropertiesFormatException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::util::InvalidPropertiesFormatException : public ::java::io::IOException
+{
+
+public:
+ InvalidPropertiesFormatException(::java::lang::String *);
+ InvalidPropertiesFormatException(::java::lang::Throwable *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 7763056076009360219LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_InvalidPropertiesFormatException__
diff --git a/gcc-4.8/libjava/java/util/Iterator.h b/gcc-4.8/libjava/java/util/Iterator.h
new file mode 100644
index 000000000..27343a5b8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Iterator.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Iterator__
+#define __java_util_Iterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Iterator : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean hasNext() = 0;
+ virtual ::java::lang::Object * next() = 0;
+ virtual void remove() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Iterator__
diff --git a/gcc-4.8/libjava/java/util/LinkedHashMap$1.h b/gcc-4.8/libjava/java/util/LinkedHashMap$1.h
new file mode 100644
index 000000000..7341014cd
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedHashMap$1.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedHashMap$1__
+#define __java_util_LinkedHashMap$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::LinkedHashMap$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedHashMap$1(::java::util::LinkedHashMap *, jint);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ ::java::util::LinkedHashMap$LinkedHashEntry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+ ::java::util::LinkedHashMap$LinkedHashEntry * last;
+ jint knownMod;
+ ::java::util::LinkedHashMap * this$0;
+private:
+ jint val$type;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedHashMap$1__
diff --git a/gcc-4.8/libjava/java/util/LinkedHashMap$LinkedHashEntry.h b/gcc-4.8/libjava/java/util/LinkedHashMap$LinkedHashEntry.h
new file mode 100644
index 000000000..8db632b32
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedHashMap$LinkedHashEntry.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedHashMap$LinkedHashEntry__
+#define __java_util_LinkedHashMap$LinkedHashEntry__
+
+#pragma interface
+
+#include <java/util/HashMap$HashEntry.h>
+
+class java::util::LinkedHashMap$LinkedHashEntry : public ::java::util::HashMap$HashEntry
+{
+
+public: // actually package-private
+ LinkedHashMap$LinkedHashEntry(::java::util::LinkedHashMap *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual void access();
+ virtual ::java::lang::Object * cleanup();
+ ::java::util::LinkedHashMap$LinkedHashEntry * __attribute__((aligned(__alignof__( ::java::util::HashMap$HashEntry)))) pred;
+ ::java::util::LinkedHashMap$LinkedHashEntry * succ;
+ ::java::util::LinkedHashMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedHashMap$LinkedHashEntry__
diff --git a/gcc-4.8/libjava/java/util/LinkedHashMap.h b/gcc-4.8/libjava/java/util/LinkedHashMap.h
new file mode 100644
index 000000000..d57308875
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedHashMap.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedHashMap__
+#define __java_util_LinkedHashMap__
+
+#pragma interface
+
+#include <java/util/HashMap.h>
+
+class java::util::LinkedHashMap : public ::java::util::HashMap
+{
+
+public:
+ LinkedHashMap();
+ LinkedHashMap(::java::util::Map *);
+ LinkedHashMap(jint);
+ LinkedHashMap(jint, jfloat);
+ LinkedHashMap(jint, jfloat, jboolean);
+ virtual void clear();
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+public: // actually protected
+ virtual jboolean removeEldestEntry(::java::util::Map$Entry *);
+public: // actually package-private
+ virtual void addEntry(::java::lang::Object *, ::java::lang::Object *, jint, jboolean);
+ virtual void putAllInternal(::java::util::Map *);
+ virtual ::java::util::Iterator * iterator(jint);
+private:
+ static const jlong serialVersionUID = 3801124242820219131LL;
+public: // actually package-private
+ ::java::util::LinkedHashMap$LinkedHashEntry * __attribute__((aligned(__alignof__( ::java::util::HashMap)))) root;
+ jboolean accessOrder;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedHashMap__
diff --git a/gcc-4.8/libjava/java/util/LinkedHashSet.h b/gcc-4.8/libjava/java/util/LinkedHashSet.h
new file mode 100644
index 000000000..d63aec8e6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedHashSet.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedHashSet__
+#define __java_util_LinkedHashSet__
+
+#pragma interface
+
+#include <java/util/HashSet.h>
+
+class java::util::LinkedHashSet : public ::java::util::HashSet
+{
+
+public:
+ LinkedHashSet();
+ LinkedHashSet(jint);
+ LinkedHashSet(jint, jfloat);
+ LinkedHashSet(::java::util::Collection *);
+public: // actually package-private
+ virtual ::java::util::HashMap * init(jint, jfloat);
+private:
+ static const jlong serialVersionUID = -2851667679971038690LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedHashSet__
diff --git a/gcc-4.8/libjava/java/util/LinkedList$1.h b/gcc-4.8/libjava/java/util/LinkedList$1.h
new file mode 100644
index 000000000..a570d6e1a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedList$1.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedList$1__
+#define __java_util_LinkedList$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::LinkedList$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedList$1(::java::util::LinkedList *);
+private:
+ void checkMod();
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) knownMod;
+ ::java::util::LinkedList$Entry * next__;
+ ::java::util::LinkedList$Entry * lastReturned;
+ jint position;
+public: // actually package-private
+ ::java::util::LinkedList * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedList$1__
diff --git a/gcc-4.8/libjava/java/util/LinkedList$Entry.h b/gcc-4.8/libjava/java/util/LinkedList$Entry.h
new file mode 100644
index 000000000..c44d48c3e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedList$Entry.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedList$Entry__
+#define __java_util_LinkedList$Entry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::LinkedList$Entry : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedList$Entry(::java::lang::Object *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
+ ::java::util::LinkedList$Entry * next;
+ ::java::util::LinkedList$Entry * previous;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedList$Entry__
diff --git a/gcc-4.8/libjava/java/util/LinkedList$LinkedListItr.h b/gcc-4.8/libjava/java/util/LinkedList$LinkedListItr.h
new file mode 100644
index 000000000..2756e206e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedList$LinkedListItr.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedList$LinkedListItr__
+#define __java_util_LinkedList$LinkedListItr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::LinkedList$LinkedListItr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedList$LinkedListItr(::java::util::LinkedList *, jint);
+private:
+ void checkMod();
+public:
+ jint nextIndex();
+ jint previousIndex();
+ jboolean hasNext();
+ jboolean hasPrevious();
+ ::java::lang::Object * next();
+ ::java::lang::Object * previous();
+ void remove();
+ void add(::java::lang::Object *);
+ void set(::java::lang::Object *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) knownMod;
+ ::java::util::LinkedList$Entry * next__;
+ ::java::util::LinkedList$Entry * previous__;
+ ::java::util::LinkedList$Entry * lastReturned;
+ jint position;
+public: // actually package-private
+ ::java::util::LinkedList * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedList$LinkedListItr__
diff --git a/gcc-4.8/libjava/java/util/LinkedList.h b/gcc-4.8/libjava/java/util/LinkedList.h
new file mode 100644
index 000000000..0c5e681d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/LinkedList.h
@@ -0,0 +1,81 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_LinkedList__
+#define __java_util_LinkedList__
+
+#pragma interface
+
+#include <java/util/AbstractSequentialList.h>
+#include <gcj/array.h>
+
+
+class java::util::LinkedList : public ::java::util::AbstractSequentialList
+{
+
+public: // actually package-private
+ virtual ::java::util::LinkedList$Entry * getEntry(jint);
+ virtual void removeEntry(::java::util::LinkedList$Entry *);
+private:
+ void checkBoundsInclusive(jint);
+ void checkBoundsExclusive(jint);
+public:
+ LinkedList();
+ LinkedList(::java::util::Collection *);
+ virtual ::java::lang::Object * getFirst();
+ virtual ::java::lang::Object * getLast();
+ virtual ::java::lang::Object * removeFirst();
+ virtual ::java::lang::Object * removeLast();
+ virtual void addFirst(::java::lang::Object *);
+ virtual void addLast(::java::lang::Object *);
+private:
+ void addLastEntry(::java::util::LinkedList$Entry *);
+public:
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jint size();
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual void clear();
+ virtual ::java::lang::Object * get(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual void add(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(jint);
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual ::java::util::ListIterator * listIterator(jint);
+ virtual ::java::lang::Object * clone();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * element();
+ virtual ::java::lang::Object * peek();
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * remove();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ virtual ::java::util::Iterator * descendingIterator();
+ virtual jboolean offerFirst(::java::lang::Object *);
+ virtual jboolean offerLast(::java::lang::Object *);
+ virtual ::java::lang::Object * peekFirst();
+ virtual ::java::lang::Object * peekLast();
+ virtual ::java::lang::Object * pollFirst();
+ virtual ::java::lang::Object * pollLast();
+ virtual ::java::lang::Object * pop();
+ virtual void push(::java::lang::Object *);
+ virtual jboolean removeFirstOccurrence(::java::lang::Object *);
+ virtual jboolean removeLastOccurrence(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 876323262645176354LL;
+public: // actually package-private
+ ::java::util::LinkedList$Entry * __attribute__((aligned(__alignof__( ::java::util::AbstractSequentialList)))) first;
+ ::java::util::LinkedList$Entry * last;
+ jint size__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_LinkedList__
diff --git a/gcc-4.8/libjava/java/util/List.h b/gcc-4.8/libjava/java/util/List.h
new file mode 100644
index 000000000..89e637b09
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/List.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_List__
+#define __java_util_List__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::List : public ::java::lang::Object
+{
+
+public:
+ virtual void add(jint, ::java::lang::Object *) = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(jint, ::java::util::Collection *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * get(jint) = 0;
+ virtual jint hashCode() = 0;
+ virtual jint indexOf(::java::lang::Object *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jint lastIndexOf(::java::lang::Object *) = 0;
+ virtual ::java::util::ListIterator * listIterator() = 0;
+ virtual ::java::util::ListIterator * listIterator(jint) = 0;
+ virtual ::java::lang::Object * remove(jint) = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::List * subList(jint, jint) = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_List__
diff --git a/gcc-4.8/libjava/java/util/ListIterator.h b/gcc-4.8/libjava/java/util/ListIterator.h
new file mode 100644
index 000000000..947ad3ccf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ListIterator.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ListIterator__
+#define __java_util_ListIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::ListIterator : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean hasNext() = 0;
+ virtual jboolean hasPrevious() = 0;
+ virtual ::java::lang::Object * next() = 0;
+ virtual ::java::lang::Object * previous() = 0;
+ virtual jint nextIndex() = 0;
+ virtual jint previousIndex() = 0;
+ virtual void add(::java::lang::Object *) = 0;
+ virtual void remove() = 0;
+ virtual void set(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_ListIterator__
diff --git a/gcc-4.8/libjava/java/util/ListResourceBundle.h b/gcc-4.8/libjava/java/util/ListResourceBundle.h
new file mode 100644
index 000000000..216d14b4d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ListResourceBundle.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ListResourceBundle__
+#define __java_util_ListResourceBundle__
+
+#pragma interface
+
+#include <java/util/ResourceBundle.h>
+#include <gcj/array.h>
+
+
+class java::util::ListResourceBundle : public ::java::util::ResourceBundle
+{
+
+public:
+ ListResourceBundle();
+ virtual ::java::lang::Object * handleGetObject(::java::lang::String *);
+ virtual ::java::util::Enumeration * getKeys();
+public: // actually protected
+ virtual JArray< JArray< ::java::lang::Object * > * > * getContents() = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ListResourceBundle__
diff --git a/gcc-4.8/libjava/java/util/Locale.h b/gcc-4.8/libjava/java/util/Locale.h
new file mode 100644
index 000000000..041dab342
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Locale.h
@@ -0,0 +1,90 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Locale__
+#define __java_util_Locale__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Locale : public ::java::lang::Object
+{
+
+ static ::java::util::Locale * getLocale(::java::lang::String *);
+ static ::java::util::Locale * getLocale(::java::lang::String *, ::java::lang::String *);
+ static ::java::util::Locale * getLocale(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ ::java::lang::String * convertLanguage(::java::lang::String *);
+public:
+ Locale(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ Locale(::java::lang::String *, ::java::lang::String *);
+ Locale(::java::lang::String *);
+ static ::java::util::Locale * getDefault();
+ static void setDefault(::java::util::Locale *);
+ static JArray< ::java::util::Locale * > * getAvailableLocales();
+ static JArray< ::java::lang::String * > * getISOCountries();
+ static JArray< ::java::lang::String * > * getISOLanguages();
+private:
+ static JArray< ::java::lang::String * > * getISOStrings(::java::lang::String *);
+public:
+ ::java::lang::String * getLanguage();
+ ::java::lang::String * getCountry();
+ ::java::lang::String * getVariant();
+ ::java::lang::String * toString();
+ ::java::lang::String * getISO3Language();
+ ::java::lang::String * getISO3Country();
+ ::java::lang::String * getDisplayLanguage();
+ ::java::lang::String * getDisplayLanguage(::java::util::Locale *);
+ ::java::lang::String * getDisplayCountry();
+ ::java::lang::String * getDisplayCountry(::java::util::Locale *);
+ ::java::lang::String * getDisplayVariant();
+ ::java::lang::String * getDisplayVariant(::java::util::Locale *);
+ ::java::lang::String * getDisplayName();
+ ::java::lang::String * getDisplayName(::java::util::Locale *);
+ ::java::lang::Object * clone();
+ jint hashCode();
+ jboolean equals(::java::lang::Object *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ static ::java::util::Locale * ENGLISH;
+ static ::java::util::Locale * FRENCH;
+ static ::java::util::Locale * GERMAN;
+ static ::java::util::Locale * ITALIAN;
+ static ::java::util::Locale * JAPANESE;
+ static ::java::util::Locale * KOREAN;
+ static ::java::util::Locale * CHINESE;
+ static ::java::util::Locale * SIMPLIFIED_CHINESE;
+ static ::java::util::Locale * TRADITIONAL_CHINESE;
+ static ::java::util::Locale * FRANCE;
+ static ::java::util::Locale * GERMANY;
+ static ::java::util::Locale * ITALY;
+ static ::java::util::Locale * JAPAN;
+ static ::java::util::Locale * KOREA;
+ static ::java::util::Locale * CHINA;
+ static ::java::util::Locale * PRC;
+ static ::java::util::Locale * TAIWAN;
+ static ::java::util::Locale * UK;
+ static ::java::util::Locale * US;
+ static ::java::util::Locale * CANADA;
+ static ::java::util::Locale * CANADA_FRENCH;
+ static ::java::util::Locale * ROOT;
+private:
+ static const jlong serialVersionUID = 9149081749638150636LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) language;
+ ::java::lang::String * country;
+ ::java::lang::String * variant;
+ jint hashcode;
+ static JArray< ::java::util::Locale * > * availableLocales;
+ static ::java::util::HashMap * localeMap;
+ static ::java::util::Locale * defaultLocale;
+ static JArray< ::java::lang::String * > * languageCache;
+ static JArray< ::java::lang::String * > * countryCache;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Locale__
diff --git a/gcc-4.8/libjava/java/util/Map$Entry.h b/gcc-4.8/libjava/java/util/Map$Entry.h
new file mode 100644
index 000000000..694a37e7a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Map$Entry.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Map$Entry__
+#define __java_util_Map$Entry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Map$Entry : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * getKey() = 0;
+ virtual ::java::lang::Object * getValue() = 0;
+ virtual ::java::lang::Object * setValue(::java::lang::Object *) = 0;
+ virtual jint hashCode() = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Map$Entry__
diff --git a/gcc-4.8/libjava/java/util/Map.h b/gcc-4.8/libjava/java/util/Map.h
new file mode 100644
index 000000000..05cc5e900
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Map.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Map__
+#define __java_util_Map__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Map : public ::java::lang::Object
+{
+
+public:
+ virtual void clear() = 0;
+ virtual jboolean containsKey(::java::lang::Object *) = 0;
+ virtual jboolean containsValue(::java::lang::Object *) = 0;
+ virtual ::java::util::Set * entrySet() = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jint hashCode() = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Set * keySet() = 0;
+ virtual void putAll(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * remove(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Collection * values() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Map__
diff --git a/gcc-4.8/libjava/java/util/MissingFormatArgumentException.h b/gcc-4.8/libjava/java/util/MissingFormatArgumentException.h
new file mode 100644
index 000000000..d0908d2d4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/MissingFormatArgumentException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_MissingFormatArgumentException__
+#define __java_util_MissingFormatArgumentException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::MissingFormatArgumentException : public ::java::util::IllegalFormatException
+{
+
+public:
+ MissingFormatArgumentException(::java::lang::String *);
+ virtual ::java::lang::String * getFormatSpecifier();
+private:
+ static const jlong serialVersionUID = 19190115LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) s;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_MissingFormatArgumentException__
diff --git a/gcc-4.8/libjava/java/util/MissingFormatWidthException.h b/gcc-4.8/libjava/java/util/MissingFormatWidthException.h
new file mode 100644
index 000000000..dac93c0c4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/MissingFormatWidthException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_MissingFormatWidthException__
+#define __java_util_MissingFormatWidthException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::MissingFormatWidthException : public ::java::util::IllegalFormatException
+{
+
+public:
+ MissingFormatWidthException(::java::lang::String *);
+ virtual ::java::lang::String * getFormatSpecifier();
+private:
+ static const jlong serialVersionUID = 15560123LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) s;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_MissingFormatWidthException__
diff --git a/gcc-4.8/libjava/java/util/MissingResourceException.h b/gcc-4.8/libjava/java/util/MissingResourceException.h
new file mode 100644
index 000000000..0523e031a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/MissingResourceException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_MissingResourceException__
+#define __java_util_MissingResourceException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::util::MissingResourceException : public ::java::lang::RuntimeException
+{
+
+public:
+ MissingResourceException(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getClassName();
+ virtual ::java::lang::String * getKey();
+private:
+ static const jlong serialVersionUID = -4876345176062000401LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) className;
+ ::java::lang::String * key;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_MissingResourceException__
diff --git a/gcc-4.8/libjava/java/util/NavigableMap.h b/gcc-4.8/libjava/java/util/NavigableMap.h
new file mode 100644
index 000000000..9e4834834
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/NavigableMap.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_NavigableMap__
+#define __java_util_NavigableMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::NavigableMap : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Map$Entry * lowerEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * lowerKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * floorEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * floorKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * ceilingKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * higherEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * higherKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * firstEntry() = 0;
+ virtual ::java::util::Map$Entry * lastEntry() = 0;
+ virtual ::java::util::Map$Entry * pollFirstEntry() = 0;
+ virtual ::java::util::Map$Entry * pollLastEntry() = 0;
+ virtual ::java::util::NavigableMap * descendingMap() = 0;
+ virtual ::java::util::NavigableSet * navigableKeySet() = 0;
+ virtual ::java::util::NavigableSet * descendingKeySet() = 0;
+ virtual ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *) = 0;
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *) = 0;
+ virtual ::java::util::Comparator * comparator() = 0;
+ virtual ::java::lang::Object * firstKey() = 0;
+ virtual ::java::lang::Object * lastKey() = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsKey(::java::lang::Object *) = 0;
+ virtual jboolean containsValue(::java::lang::Object *) = 0;
+ virtual ::java::util::Set * entrySet() = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Set * keySet() = 0;
+ virtual void putAll(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * remove(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Collection * values() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_NavigableMap__
diff --git a/gcc-4.8/libjava/java/util/NavigableSet.h b/gcc-4.8/libjava/java/util/NavigableSet.h
new file mode 100644
index 000000000..c7e228ea1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/NavigableSet.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_NavigableSet__
+#define __java_util_NavigableSet__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::NavigableSet : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * lower(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * floor(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * ceiling(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * higher(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * pollFirst() = 0;
+ virtual ::java::lang::Object * pollLast() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual ::java::util::NavigableSet * descendingSet() = 0;
+ virtual ::java::util::Iterator * descendingIterator() = 0;
+ virtual ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::SortedSet * headSet(::java::lang::Object *) = 0;
+ virtual ::java::util::SortedSet * tailSet(::java::lang::Object *) = 0;
+ virtual ::java::util::Comparator * comparator() = 0;
+ virtual ::java::lang::Object * first() = 0;
+ virtual ::java::lang::Object * last() = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_NavigableSet__
diff --git a/gcc-4.8/libjava/java/util/NoSuchElementException.h b/gcc-4.8/libjava/java/util/NoSuchElementException.h
new file mode 100644
index 000000000..43cd64676
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/NoSuchElementException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_NoSuchElementException__
+#define __java_util_NoSuchElementException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::util::NoSuchElementException : public ::java::lang::RuntimeException
+{
+
+public:
+ NoSuchElementException();
+ NoSuchElementException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 6769829250639411880LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_NoSuchElementException__
diff --git a/gcc-4.8/libjava/java/util/Observable.h b/gcc-4.8/libjava/java/util/Observable.h
new file mode 100644
index 000000000..070e97d23
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Observable.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Observable__
+#define __java_util_Observable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Observable : public ::java::lang::Object
+{
+
+public:
+ Observable();
+ virtual void addObserver(::java::util::Observer *);
+public: // actually protected
+ virtual void clearChanged();
+public:
+ virtual jint countObservers();
+ virtual void deleteObserver(::java::util::Observer *);
+ virtual void deleteObservers();
+ virtual jboolean hasChanged();
+ virtual void notifyObservers();
+ virtual void notifyObservers(::java::lang::Object *);
+public: // actually protected
+ virtual void setChanged();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) changed;
+ ::java::util::LinkedHashSet * observers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Observable__
diff --git a/gcc-4.8/libjava/java/util/Observer.h b/gcc-4.8/libjava/java/util/Observer.h
new file mode 100644
index 000000000..05964feea
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Observer.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Observer__
+#define __java_util_Observer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Observer : public ::java::lang::Object
+{
+
+public:
+ virtual void update(::java::util::Observable *, ::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Observer__
diff --git a/gcc-4.8/libjava/java/util/PriorityQueue$1.h b/gcc-4.8/libjava/java/util/PriorityQueue$1.h
new file mode 100644
index 000000000..9268616f0
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/PriorityQueue$1.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_PriorityQueue$1__
+#define __java_util_PriorityQueue$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::PriorityQueue$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ PriorityQueue$1(::java::util::PriorityQueue *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index;
+ jint count;
+ ::java::util::PriorityQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_PriorityQueue$1__
diff --git a/gcc-4.8/libjava/java/util/PriorityQueue.h b/gcc-4.8/libjava/java/util/PriorityQueue.h
new file mode 100644
index 000000000..7072486a1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/PriorityQueue.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_PriorityQueue__
+#define __java_util_PriorityQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::PriorityQueue : public ::java::util::AbstractQueue
+{
+
+public:
+ PriorityQueue();
+ PriorityQueue(::java::util::Collection *);
+ PriorityQueue(jint);
+ PriorityQueue(jint, ::java::util::Comparator *);
+ PriorityQueue(::java::util::PriorityQueue *);
+ PriorityQueue(::java::util::SortedSet *);
+ virtual void clear();
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * peek();
+ virtual ::java::lang::Object * poll();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jint size();
+ virtual jboolean addAll(::java::util::Collection *);
+public: // actually package-private
+ virtual jint findSlot(jint);
+ virtual void remove(jint);
+ virtual void bubbleUp(jint);
+ virtual void resize();
+private:
+ static const jint DEFAULT_CAPACITY = 11;
+ static const jlong serialVersionUID = -7720805057305804111LL;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) used;
+ JArray< ::java::lang::Object * > * storage;
+ ::java::util::Comparator * comparator__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_PriorityQueue__
diff --git a/gcc-4.8/libjava/java/util/Properties.h b/gcc-4.8/libjava/java/util/Properties.h
new file mode 100644
index 000000000..ccb76b5a2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Properties.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Properties__
+#define __java_util_Properties__
+
+#pragma interface
+
+#include <java/util/Hashtable.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
+
+class java::util::Properties : public ::java::util::Hashtable
+{
+
+public:
+ Properties();
+ Properties(::java::util::Properties *);
+ virtual ::java::lang::Object * setProperty(::java::lang::String *, ::java::lang::String *);
+ virtual void load(::java::io::Reader *);
+ virtual void load(::java::io::InputStream *);
+ virtual void save(::java::io::OutputStream *, ::java::lang::String *);
+ virtual void store(::java::io::OutputStream *, ::java::lang::String *);
+ virtual ::java::lang::String * getProperty(::java::lang::String *);
+ virtual ::java::lang::String * getProperty(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::util::Enumeration * propertyNames();
+ virtual void list(::java::io::PrintStream *);
+ virtual void list(::java::io::PrintWriter *);
+private:
+ void formatForOutput(::java::lang::String *, ::gnu::java::lang::CPStringBuilder *, jboolean);
+public:
+ virtual void storeToXML(::java::io::OutputStream *, ::java::lang::String *);
+ virtual void storeToXML(::java::io::OutputStream *, ::java::lang::String *, ::java::lang::String *);
+ virtual void loadFromXML(::java::io::InputStream *);
+public: // actually protected
+ ::java::util::Properties * __attribute__((aligned(__alignof__( ::java::util::Hashtable)))) defaults;
+private:
+ static const jlong serialVersionUID = 4112578634029874840LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Properties__
diff --git a/gcc-4.8/libjava/java/util/PropertyPermission.h b/gcc-4.8/libjava/java/util/PropertyPermission.h
new file mode 100644
index 000000000..afd551447
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/PropertyPermission.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_PropertyPermission__
+#define __java_util_PropertyPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ class PermissionCollection;
+ }
+ }
+}
+
+class java::util::PropertyPermission : public ::java::security::BasicPermission
+{
+
+public:
+ PropertyPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ void setActions(::java::lang::String *);
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ jboolean implies(::java::security::Permission *);
+ jboolean equals(::java::lang::Object *);
+ jint hashCode();
+ ::java::lang::String * getActions();
+ ::java::security::PermissionCollection * newPermissionCollection();
+private:
+ static JArray< ::java::io::ObjectStreamField * > * serialPersistentFields;
+ static const jlong serialVersionUID = 885438825399942851LL;
+ static const jint READ = 1;
+ static const jint WRITE = 2;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::security::BasicPermission)))) actions;
+private:
+ static JArray< ::java::lang::String * > * actionStrings;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_PropertyPermission__
diff --git a/gcc-4.8/libjava/java/util/PropertyPermissionCollection.h b/gcc-4.8/libjava/java/util/PropertyPermissionCollection.h
new file mode 100644
index 000000000..0c00a4e0b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/PropertyPermissionCollection.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_PropertyPermissionCollection__
+#define __java_util_PropertyPermissionCollection__
+
+#pragma interface
+
+#include <java/security/PermissionCollection.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ }
+ }
+}
+
+class java::util::PropertyPermissionCollection : public ::java::security::PermissionCollection
+{
+
+public: // actually package-private
+ PropertyPermissionCollection();
+public:
+ virtual void add(::java::security::Permission *);
+ virtual jboolean implies(::java::security::Permission *);
+ virtual ::java::util::Enumeration * elements();
+private:
+ static const jlong serialVersionUID = 7015263904581634791LL;
+ ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) permissions;
+ jboolean all_allowed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_PropertyPermissionCollection__
diff --git a/gcc-4.8/libjava/java/util/PropertyResourceBundle.h b/gcc-4.8/libjava/java/util/PropertyResourceBundle.h
new file mode 100644
index 000000000..fa6528511
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/PropertyResourceBundle.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_PropertyResourceBundle__
+#define __java_util_PropertyResourceBundle__
+
+#pragma interface
+
+#include <java/util/ResourceBundle.h>
+
+class java::util::PropertyResourceBundle : public ::java::util::ResourceBundle
+{
+
+public:
+ PropertyResourceBundle(::java::io::InputStream *);
+ PropertyResourceBundle(::java::io::Reader *);
+ virtual ::java::lang::Object * handleGetObject(::java::lang::String *);
+ virtual ::java::util::Enumeration * getKeys();
+private:
+ ::java::util::Properties * __attribute__((aligned(__alignof__( ::java::util::ResourceBundle)))) properties;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_PropertyResourceBundle__
diff --git a/gcc-4.8/libjava/java/util/Queue.h b/gcc-4.8/libjava/java/util/Queue.h
new file mode 100644
index 000000000..c4e8f0573
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Queue.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Queue__
+#define __java_util_Queue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Queue : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean offer(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * remove() = 0;
+ virtual ::java::lang::Object * poll() = 0;
+ virtual ::java::lang::Object * element() = 0;
+ virtual ::java::lang::Object * peek() = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Queue__
diff --git a/gcc-4.8/libjava/java/util/Random.h b/gcc-4.8/libjava/java/util/Random.h
new file mode 100644
index 000000000..93bcf2e6c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Random.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Random__
+#define __java_util_Random__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Random : public ::java::lang::Object
+{
+
+public:
+ Random();
+ Random(jlong);
+ virtual void setSeed(jlong);
+public: // actually protected
+ virtual jint next(jint);
+public:
+ virtual void nextBytes(JArray< jbyte > *);
+ virtual jint nextInt();
+ virtual jint nextInt(jint);
+ virtual jlong nextLong();
+ virtual jboolean nextBoolean();
+ virtual jfloat nextFloat();
+ virtual jdouble nextDouble();
+ virtual jdouble nextGaussian();
+private:
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) haveNextNextGaussian;
+ jdouble nextNextGaussian;
+ jlong seed;
+ static const jlong serialVersionUID = 3905348978240129619LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Random__
diff --git a/gcc-4.8/libjava/java/util/RandomAccess.h b/gcc-4.8/libjava/java/util/RandomAccess.h
new file mode 100644
index 000000000..e2bfce761
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/RandomAccess.h
@@ -0,0 +1,18 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_RandomAccess__
+#define __java_util_RandomAccess__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::RandomAccess : public ::java::lang::Object
+{
+
+public:
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_RandomAccess__
diff --git a/gcc-4.8/libjava/java/util/ResourceBundle$1.h b/gcc-4.8/libjava/java/util/ResourceBundle$1.h
new file mode 100644
index 000000000..b2b883175
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ResourceBundle$1.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ResourceBundle$1__
+#define __java_util_ResourceBundle$1__
+
+#pragma interface
+
+#include <java/util/LinkedHashMap.h>
+
+class java::util::ResourceBundle$1 : public ::java::util::LinkedHashMap
+{
+
+public: // actually package-private
+ ResourceBundle$1(jint, jfloat, jboolean);
+public:
+ virtual jboolean removeEldestEntry(::java::util::Map$Entry *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ResourceBundle$1__
diff --git a/gcc-4.8/libjava/java/util/ResourceBundle$BundleKey.h b/gcc-4.8/libjava/java/util/ResourceBundle$BundleKey.h
new file mode 100644
index 000000000..49c051cfb
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ResourceBundle$BundleKey.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ResourceBundle$BundleKey__
+#define __java_util_ResourceBundle$BundleKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::ResourceBundle$BundleKey : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ResourceBundle$BundleKey();
+ ResourceBundle$BundleKey(::java::util::Locale *, ::java::lang::String *, ::java::util::Locale *, ::java::lang::ClassLoader *);
+ virtual void set(::java::util::Locale *, ::java::lang::String *, ::java::util::Locale *, ::java::lang::ClassLoader *);
+public:
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ ::java::util::Locale * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultLocale;
+ ::java::lang::String * baseName;
+ ::java::util::Locale * locale;
+ ::java::lang::ClassLoader * classLoader;
+ jint hashcode;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ResourceBundle$BundleKey__
diff --git a/gcc-4.8/libjava/java/util/ResourceBundle.h b/gcc-4.8/libjava/java/util/ResourceBundle.h
new file mode 100644
index 000000000..e14e4539f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ResourceBundle.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ResourceBundle__
+#define __java_util_ResourceBundle__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::ResourceBundle : public ::java::lang::Object
+{
+
+public:
+ ResourceBundle();
+ virtual ::java::lang::String * getString(::java::lang::String *);
+ virtual JArray< ::java::lang::String * > * getStringArray(::java::lang::String *);
+ virtual ::java::lang::Object * getObject(::java::lang::String *);
+ virtual ::java::util::Locale * getLocale();
+public: // actually protected
+ virtual void setParent(::java::util::ResourceBundle *);
+public:
+ static ::java::util::ResourceBundle * getBundle(::java::lang::String *);
+ static ::java::util::ResourceBundle * getBundle(::java::lang::String *, ::java::util::Locale *);
+ static ::java::util::ResourceBundle * getBundle(::java::lang::String *, ::java::util::Locale *, ::java::lang::ClassLoader *);
+public: // actually protected
+ virtual ::java::lang::Object * handleGetObject(::java::lang::String *) = 0;
+public:
+ virtual ::java::util::Enumeration * getKeys() = 0;
+private:
+ static ::java::util::ResourceBundle * tryBundle(::java::lang::String *, ::java::lang::ClassLoader *);
+ static ::java::util::ResourceBundle * tryBundle(::java::lang::String *, ::java::util::Locale *, ::java::lang::ClassLoader *, jboolean);
+public:
+ static void clearCache();
+ static void clearCache(::java::lang::ClassLoader *);
+private:
+ static const jint CACHE_SIZE = 100;
+public: // actually protected
+ ::java::util::ResourceBundle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent;
+private:
+ ::java::util::Locale * locale;
+ static ::java::util::Map * bundleCache;
+ static ::java::util::ResourceBundle$BundleKey * lookupKey;
+ static ::java::lang::Object * nullEntry;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ResourceBundle__
diff --git a/gcc-4.8/libjava/java/util/Scanner.h b/gcc-4.8/libjava/java/util/Scanner.h
new file mode 100644
index 000000000..bca1ab77e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Scanner.h
@@ -0,0 +1,178 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Scanner__
+#define __java_util_Scanner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ class BigInteger;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class ReadableByteChannel;
+ }
+ }
+ namespace text
+ {
+ class DecimalFormat;
+ class DecimalFormatSymbols;
+ class NumberFormat;
+ }
+ }
+}
+
+class java::util::Scanner : public ::java::lang::Object
+{
+
+public:
+ Scanner(::java::io::File *);
+ Scanner(::java::io::File *, ::java::lang::String *);
+ Scanner(::java::io::InputStream *);
+ Scanner(::java::io::InputStream *, ::java::lang::String *);
+ Scanner(::java::lang::Readable *);
+ Scanner(::java::nio::channels::ReadableByteChannel *);
+ Scanner(::java::nio::channels::ReadableByteChannel *, ::java::lang::String *);
+ Scanner(::java::lang::String *);
+ virtual void close();
+ virtual ::java::util::regex::Pattern * delimiter();
+ virtual ::java::lang::String * findInLine(::java::util::regex::Pattern *);
+ virtual ::java::lang::String * findInLine(::java::lang::String *);
+ virtual ::java::lang::String * findWithinHorizon(::java::util::regex::Pattern *, jint);
+ virtual ::java::lang::String * findWithinHorizon(::java::lang::String *, jint);
+ virtual jboolean hasNext();
+ virtual jboolean hasNext(::java::util::regex::Pattern *);
+ virtual jboolean hasNext(::java::lang::String *);
+ virtual jboolean hasNextBigDecimal();
+ virtual jboolean hasNextBigInteger();
+ virtual jboolean hasNextBigInteger(jint);
+ virtual jboolean hasNextBoolean();
+ virtual jboolean hasNextByte();
+ virtual jboolean hasNextByte(jint);
+ virtual jboolean hasNextDouble();
+ virtual jboolean hasNextFloat();
+ virtual jboolean hasNextInt();
+ virtual jboolean hasNextInt(jint);
+ virtual jboolean hasNextLine();
+ virtual jboolean hasNextLong();
+ virtual jboolean hasNextLong(jint);
+ virtual jboolean hasNextShort();
+ virtual jboolean hasNextShort(jint);
+ virtual ::java::io::IOException * ioException();
+ virtual jboolean isUseLocale();
+ virtual ::java::util::Locale * locale();
+ virtual ::java::util::regex::MatchResult * match();
+ virtual ::java::lang::String * Scanner$next();
+ virtual ::java::lang::String * next(::java::util::regex::Pattern *);
+ virtual ::java::lang::String * next(::java::lang::String *);
+ virtual ::java::math::BigDecimal * nextBigDecimal();
+ virtual ::java::math::BigInteger * nextBigInteger();
+ virtual ::java::math::BigInteger * nextBigInteger(jint);
+ virtual jboolean nextBoolean();
+ virtual jbyte nextByte();
+ virtual jbyte nextByte(jint);
+ virtual jdouble nextDouble();
+ virtual jfloat nextFloat();
+ virtual jint nextInt();
+ virtual jint nextInt(jint);
+ virtual ::java::lang::String * nextLine();
+ virtual jlong nextLong();
+ virtual jlong nextLong(jint);
+ virtual jshort nextShort();
+ virtual jshort nextShort(jint);
+ virtual jint radix();
+ virtual void remove();
+ virtual void setUseLocale(jboolean);
+ virtual ::java::util::Scanner * skip(::java::util::regex::Pattern *);
+ virtual ::java::util::Scanner * skip(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Scanner * useDelimiter(::java::util::regex::Pattern *);
+ virtual ::java::util::Scanner * useDelimiter(::java::lang::String *);
+ virtual ::java::util::Scanner * useLocale(::java::util::Locale *);
+ virtual ::java::util::Scanner * useRadix(jint);
+private:
+ ::java::lang::String * myApplyLocale(::java::lang::String *, jint);
+ ::java::lang::String * myApplyLocaleBD(::java::lang::String *);
+ ::java::math::BigDecimal * myBigDecimal(jboolean);
+ ::java::lang::String * myConvert(::java::lang::String *);
+ ::java::lang::String * myCoreNext(jboolean, ::java::util::regex::Pattern *);
+ void myFillBuffer();
+ jboolean myFillBuffer_loop(::java::util::regex::Matcher *, jint, jboolean);
+ ::java::lang::String * myFindPInStr(::java::util::regex::Pattern *, ::java::lang::String *, jint);
+ ::java::lang::String * myNext(::java::util::regex::Pattern *, jboolean);
+ ::java::math::BigInteger * myNextBigInteger(jint, jboolean, ::java::lang::String *);
+ jboolean myNextBoolean(jboolean);
+ jbyte myNextByte(jint, jboolean);
+ jdouble myNextDouble(jboolean);
+ jint myNextInt(jint, jboolean);
+ ::java::lang::String * myNextLine(jboolean);
+ jlong myNextLong(jint, jboolean);
+ jshort myNextShort(jint, jboolean);
+ ::java::lang::String * myPrepareForNext(::java::util::regex::Pattern *, jboolean);
+ jboolean shallUseLastFound(::java::util::regex::Pattern *);
+public:
+ virtual ::java::lang::Object * next();
+private:
+ static ::java::lang::String * NOT_LONG;
+ static ::java::lang::String * ERR_PREFIX;
+ static ::java::lang::String * NOT_INT;
+ static ::java::lang::String * NOT_DOUBLE;
+ static ::java::lang::String * NOT_BYTE;
+ static ::java::lang::String * NOT_BOOLEAN;
+ static ::java::lang::String * IS_NOT;
+ static ::java::lang::String * DEFAULT_PATTERN_S;
+ static ::java::util::regex::Pattern * DEFAULT_PATTERN;
+ static ::java::lang::String * BIG_INTEGER;
+ static ::java::lang::String * NEW_LINE;
+ ::java::io::IOException * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastIOException;
+ ::java::io::InputStream * bIS;
+ const jint MaxBufferLen;
+ const jint MIN_BUF_LEN;
+ const jint MAX_PREFIX;
+ ::java::lang::String * actBuffer;
+ jint currentRadix;
+ ::java::util::Locale * actLocale;
+ ::java::util::regex::Pattern * p;
+ jint actPos;
+ JArray< jbyte > * tmpBuffer;
+ ::java::lang::String * charsetName;
+ ::java::util::regex::Matcher * myMatcher;
+ ::java::util::regex::MatchResult * actResult;
+ ::java::lang::Readable * readableSource;
+ ::java::nio::channels::ReadableByteChannel * rbcSource;
+ jboolean isClosed;
+ ::java::lang::String * lastFound;
+ jboolean lastFoundPresent;
+ jint lastNextPos;
+ jint lastPatternHash;
+ jint last_RegionStart;
+ jint last_RegionEnd;
+ jboolean last_anchor;
+ jboolean last_transparent;
+ ::java::util::regex::MatchResult * lastResult;
+ jint procesedChars;
+ jboolean needInput;
+ jboolean skipped;
+ jboolean doSkipp;
+ jboolean matchValid;
+ ::java::text::NumberFormat * actFormat;
+ ::java::text::DecimalFormat * df;
+ jboolean useLocale__;
+ ::java::text::DecimalFormatSymbols * dfs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Scanner__
diff --git a/gcc-4.8/libjava/java/util/ServiceConfigurationError.h b/gcc-4.8/libjava/java/util/ServiceConfigurationError.h
new file mode 100644
index 000000000..7a2a905ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ServiceConfigurationError.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ServiceConfigurationError__
+#define __java_util_ServiceConfigurationError__
+
+#pragma interface
+
+#include <java/lang/Error.h>
+
+class java::util::ServiceConfigurationError : public ::java::lang::Error
+{
+
+public:
+ ServiceConfigurationError(::java::lang::String *);
+ ServiceConfigurationError(::java::lang::String *, ::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 74132770414881LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ServiceConfigurationError__
diff --git a/gcc-4.8/libjava/java/util/ServiceLoader$1.h b/gcc-4.8/libjava/java/util/ServiceLoader$1.h
new file mode 100644
index 000000000..52e883d3e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ServiceLoader$1.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ServiceLoader$1__
+#define __java_util_ServiceLoader$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::ServiceLoader$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ServiceLoader$1(::java::util::ServiceLoader *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cacheIt;
+public: // actually package-private
+ ::java::util::ServiceLoader * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ServiceLoader$1__
diff --git a/gcc-4.8/libjava/java/util/ServiceLoader.h b/gcc-4.8/libjava/java/util/ServiceLoader.h
new file mode 100644
index 000000000..f3a91601f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/ServiceLoader.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_ServiceLoader__
+#define __java_util_ServiceLoader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::ServiceLoader : public ::java::lang::Object
+{
+
+ ServiceLoader(::java::lang::Class *, ::java::lang::ClassLoader *);
+public:
+ ::java::util::Iterator * iterator();
+ static ::java::util::ServiceLoader * load(::java::lang::Class *);
+ static ::java::util::ServiceLoader * load(::java::lang::Class *, ::java::lang::ClassLoader *);
+ static ::java::util::ServiceLoader * loadInstalled(::java::lang::Class *);
+ void reload();
+ ::java::lang::String * toString();
+public: // actually package-private
+ static ::java::util::List * access$0(::java::util::ServiceLoader *);
+ static ::java::util::Iterator * access$1(::java::util::ServiceLoader *);
+ static ::java::lang::Class * access$2(::java::util::ServiceLoader *);
+ static ::java::lang::ClassLoader * access$3(::java::util::ServiceLoader *);
+ static void access$4(::java::util::ServiceLoader *, ::java::util::Iterator *);
+private:
+ ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) spi;
+ ::java::lang::ClassLoader * loader;
+ ::java::util::List * cache;
+ ::java::util::Iterator * serviceIt;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_ServiceLoader__
diff --git a/gcc-4.8/libjava/java/util/Set.h b/gcc-4.8/libjava/java/util/Set.h
new file mode 100644
index 000000000..a56347218
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Set.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Set__
+#define __java_util_Set__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Set : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean equals(::java::lang::Object *) = 0;
+ virtual jint hashCode() = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_Set__
diff --git a/gcc-4.8/libjava/java/util/SimpleTimeZone.h b/gcc-4.8/libjava/java/util/SimpleTimeZone.h
new file mode 100644
index 000000000..311e31f32
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/SimpleTimeZone.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_SimpleTimeZone__
+#define __java_util_SimpleTimeZone__
+
+#pragma interface
+
+#include <java/util/TimeZone.h>
+#include <gcj/array.h>
+
+
+class java::util::SimpleTimeZone : public ::java::util::TimeZone
+{
+
+public:
+ SimpleTimeZone(jint, ::java::lang::String *);
+ SimpleTimeZone(jint, ::java::lang::String *, jint, jint, jint, jint, jint, jint, jint, jint);
+ SimpleTimeZone(jint, ::java::lang::String *, jint, jint, jint, jint, jint, jint, jint, jint, jint);
+ SimpleTimeZone(jint, ::java::lang::String *, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint);
+ virtual void setStartYear(jint);
+private:
+ jint checkRule(jint, jint, jint);
+public:
+ virtual void setStartRule(jint, jint, jint, jint);
+ virtual void setStartRule(jint, jint, jint, jint, jboolean);
+ virtual void setStartRule(jint, jint, jint);
+ virtual void setEndRule(jint, jint, jint, jint);
+ virtual void setEndRule(jint, jint, jint, jint, jboolean);
+ virtual void setEndRule(jint, jint, jint);
+ virtual jint getOffset(jint, jint, jint, jint, jint, jint);
+ virtual jint getRawOffset();
+ virtual void setRawOffset(jint);
+ virtual jint getDSTSavings();
+ virtual void setDSTSavings(jint);
+ virtual jboolean useDaylightTime();
+private:
+ jint getDaysInMonth(jint, jint);
+ jboolean isBefore(jint, jint, jint, jint, jint, jint, jint, jint, jint, jint);
+public:
+ virtual jboolean inDaylightTime(::java::util::Date *);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jboolean hasSameRules(::java::util::TimeZone *);
+ virtual ::java::lang::String * toString();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ jint __attribute__((aligned(__alignof__( ::java::util::TimeZone)))) rawOffset;
+ jboolean useDaylight;
+ jint dstSavings;
+ jint startYear;
+ static const jint DOM_MODE = 1;
+ static const jint DOW_IN_MONTH_MODE = 2;
+ static const jint DOW_GE_DOM_MODE = 3;
+ static const jint DOW_LE_DOM_MODE = 4;
+ jint startMode;
+ jint startMonth;
+ jint startDay;
+ jint startDayOfWeek;
+ jint startTime;
+ jint startTimeMode;
+ jint endMonth;
+ jint endMode;
+ jint endDay;
+ jint endDayOfWeek;
+ jint endTime;
+ jint endTimeMode;
+ JArray< jbyte > * monthLength;
+ static JArray< jbyte > * monthArr;
+ jint serialVersionOnStream;
+ static const jlong serialVersionUID = -403250971215465050LL;
+public:
+ static const jint STANDARD_TIME = 1;
+ static const jint WALL_TIME = 0;
+ static const jint UTC_TIME = 2;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_SimpleTimeZone__
diff --git a/gcc-4.8/libjava/java/util/SortedMap.h b/gcc-4.8/libjava/java/util/SortedMap.h
new file mode 100644
index 000000000..881489248
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/SortedMap.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_SortedMap__
+#define __java_util_SortedMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::SortedMap : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Comparator * comparator() = 0;
+ virtual ::java::lang::Object * firstKey() = 0;
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * lastKey() = 0;
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsKey(::java::lang::Object *) = 0;
+ virtual jboolean containsValue(::java::lang::Object *) = 0;
+ virtual ::java::util::Set * entrySet() = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Set * keySet() = 0;
+ virtual void putAll(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * remove(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Collection * values() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_SortedMap__
diff --git a/gcc-4.8/libjava/java/util/SortedSet.h b/gcc-4.8/libjava/java/util/SortedSet.h
new file mode 100644
index 000000000..157019a55
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/SortedSet.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_SortedSet__
+#define __java_util_SortedSet__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::SortedSet : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::Comparator * comparator() = 0;
+ virtual ::java::lang::Object * first() = 0;
+ virtual ::java::util::SortedSet * headSet(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * last() = 0;
+ virtual ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::SortedSet * tailSet(::java::lang::Object *) = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_SortedSet__
diff --git a/gcc-4.8/libjava/java/util/Stack.h b/gcc-4.8/libjava/java/util/Stack.h
new file mode 100644
index 000000000..b6e25f268
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Stack.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Stack__
+#define __java_util_Stack__
+
+#pragma interface
+
+#include <java/util/Vector.h>
+
+class java::util::Stack : public ::java::util::Vector
+{
+
+public:
+ Stack();
+ virtual ::java::lang::Object * push(::java::lang::Object *);
+ virtual ::java::lang::Object * pop();
+ virtual ::java::lang::Object * peek();
+ virtual jboolean empty();
+ virtual jint search(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = 1224463164541339165LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Stack__
diff --git a/gcc-4.8/libjava/java/util/StringTokenizer.h b/gcc-4.8/libjava/java/util/StringTokenizer.h
new file mode 100644
index 000000000..45d8cb893
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/StringTokenizer.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_StringTokenizer__
+#define __java_util_StringTokenizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::StringTokenizer : public ::java::lang::Object
+{
+
+public:
+ StringTokenizer(::java::lang::String *);
+ StringTokenizer(::java::lang::String *, ::java::lang::String *);
+ StringTokenizer(::java::lang::String *, ::java::lang::String *, jboolean);
+ virtual jboolean hasMoreTokens();
+ virtual ::java::lang::String * nextToken(::java::lang::String *);
+ virtual ::java::lang::String * nextToken();
+ virtual jboolean hasMoreElements();
+ virtual ::java::lang::Object * nextElement();
+ virtual jint countTokens();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) pos;
+ ::java::lang::String * str;
+ jint len;
+ ::java::lang::String * delim;
+ jboolean retDelims;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_StringTokenizer__
diff --git a/gcc-4.8/libjava/java/util/TimeZone$1.h b/gcc-4.8/libjava/java/util/TimeZone$1.h
new file mode 100644
index 000000000..35000eaeb
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TimeZone$1.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TimeZone$1__
+#define __java_util_TimeZone$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TimeZone$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TimeZone$1();
+public:
+ virtual ::java::util::TimeZone * TimeZone$1$run();
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TimeZone$1__
diff --git a/gcc-4.8/libjava/java/util/TimeZone.h b/gcc-4.8/libjava/java/util/TimeZone.h
new file mode 100644
index 000000000..9ae0ebc3f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TimeZone.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TimeZone__
+#define __java_util_TimeZone__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::TimeZone : public ::java::lang::Object
+{
+
+public:
+ TimeZone();
+private:
+ static ::java::util::TimeZone * defaultZone();
+public: // actually package-private
+ static ::java::util::HashMap * timezones();
+ static ::java::util::TimeZone * getDefaultTimeZone(::java::lang::String *);
+private:
+ static JArray< jint > * getDateParams(::java::lang::String *);
+ static jint parseTime(::java::lang::String *);
+public:
+ virtual jint getOffset(jint, jint, jint, jint, jint, jint) = 0;
+ virtual jint getOffset(jlong);
+ virtual jint getRawOffset() = 0;
+ virtual void setRawOffset(jint) = 0;
+ virtual ::java::lang::String * getID();
+ virtual void setID(::java::lang::String *);
+ virtual ::java::lang::String * getDisplayName();
+ virtual ::java::lang::String * getDisplayName(::java::util::Locale *);
+ virtual ::java::lang::String * getDisplayName(jboolean, jint);
+ virtual ::java::lang::String * getDisplayName(jboolean, jint, ::java::util::Locale *);
+private:
+ ::java::lang::String * getDefaultDisplayName(jboolean);
+public:
+ virtual jboolean useDaylightTime() = 0;
+ virtual jboolean inDaylightTime(::java::util::Date *) = 0;
+ virtual jint getDSTSavings();
+private:
+ static ::java::util::TimeZone * getTimeZoneInternal(::java::lang::String *);
+public:
+ static ::java::util::TimeZone * getTimeZone(::java::lang::String *);
+ static JArray< ::java::lang::String * > * getAvailableIDs(jint);
+private:
+ static jint getAvailableIDs(::java::io::File *, ::java::lang::String *, ::java::util::ArrayList *);
+public:
+ static JArray< ::java::lang::String * > * getAvailableIDs();
+ static ::java::util::TimeZone * getDefault();
+ static void setDefault(::java::util::TimeZone *);
+ virtual jboolean hasSameRules(::java::util::TimeZone *);
+ virtual ::java::lang::Object * clone();
+ static const jint SHORT = 0;
+ static const jint LONG = 1;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ID;
+ static ::java::util::TimeZone * defaultZone0;
+ static const jlong serialVersionUID = 3581463369166924961LL;
+ static ::java::lang::String * zoneinfo_dir;
+ static JArray< ::java::lang::String * > * availableIDs;
+ static ::java::util::HashMap * aliases0;
+ static ::java::util::HashMap * timezones0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TimeZone__
diff --git a/gcc-4.8/libjava/java/util/Timer$Scheduler.h b/gcc-4.8/libjava/java/util/Timer$Scheduler.h
new file mode 100644
index 000000000..ca61c0f76
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Timer$Scheduler.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Timer$Scheduler__
+#define __java_util_Timer$Scheduler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Timer$Scheduler : public ::java::lang::Object
+{
+
+public:
+ Timer$Scheduler(::java::util::Timer$TaskQueue *);
+ void run();
+private:
+ ::java::util::Timer$TaskQueue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queue;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Timer$Scheduler__
diff --git a/gcc-4.8/libjava/java/util/Timer$TaskQueue.h b/gcc-4.8/libjava/java/util/Timer$TaskQueue.h
new file mode 100644
index 000000000..13416d32e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Timer$TaskQueue.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Timer$TaskQueue__
+#define __java_util_Timer$TaskQueue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::Timer$TaskQueue : public ::java::lang::Object
+{
+
+public:
+ Timer$TaskQueue();
+private:
+ void add(::java::util::TimerTask *);
+ void remove();
+public:
+ void enqueue(::java::util::TimerTask *);
+private:
+ ::java::util::TimerTask * top();
+public:
+ ::java::util::TimerTask * serve();
+ void setNullOnEmpty(jboolean);
+ void stop();
+ jint purge();
+private:
+ static const jint DEFAULT_SIZE = 32;
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) nullOnEmpty;
+ JArray< ::java::util::TimerTask * > * heap;
+ jint elements;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Timer$TaskQueue__
diff --git a/gcc-4.8/libjava/java/util/Timer.h b/gcc-4.8/libjava/java/util/Timer.h
new file mode 100644
index 000000000..2246cfd30
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Timer.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Timer__
+#define __java_util_Timer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Timer : public ::java::lang::Object
+{
+
+public:
+ Timer();
+ Timer(jboolean);
+ Timer(::java::lang::String *);
+ Timer(::java::lang::String *, jboolean);
+private:
+ Timer(jboolean, jint);
+ Timer(jboolean, jint, ::java::lang::String *);
+public:
+ virtual void cancel();
+private:
+ void schedule(::java::util::TimerTask *, jlong, jlong, jboolean);
+ static void positiveDelay(jlong);
+ static void positivePeriod(jlong);
+public:
+ virtual void schedule(::java::util::TimerTask *, ::java::util::Date *);
+ virtual void schedule(::java::util::TimerTask *, ::java::util::Date *, jlong);
+ virtual void schedule(::java::util::TimerTask *, jlong);
+ virtual void schedule(::java::util::TimerTask *, jlong, jlong);
+ virtual void scheduleAtFixedRate(::java::util::TimerTask *, ::java::util::Date *, jlong);
+ virtual void scheduleAtFixedRate(::java::util::TimerTask *, jlong, jlong);
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual jint purge();
+private:
+ static jint nr;
+ ::java::util::Timer$TaskQueue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queue;
+ ::java::util::Timer$Scheduler * scheduler;
+ ::java::lang::Thread * thread;
+ jboolean canceled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Timer__
diff --git a/gcc-4.8/libjava/java/util/TimerTask.h b/gcc-4.8/libjava/java/util/TimerTask.h
new file mode 100644
index 000000000..a38b66ed8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TimerTask.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TimerTask__
+#define __java_util_TimerTask__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TimerTask : public ::java::lang::Object
+{
+
+public: // actually protected
+ TimerTask();
+public:
+ virtual jboolean cancel();
+ virtual void run() = 0;
+ virtual jlong scheduledExecutionTime();
+public: // actually package-private
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) scheduled;
+ jlong lastExecutionTime;
+ jlong period;
+ jboolean fixed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TimerTask__
diff --git a/gcc-4.8/libjava/java/util/TooManyListenersException.h b/gcc-4.8/libjava/java/util/TooManyListenersException.h
new file mode 100644
index 000000000..da5e72a0e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TooManyListenersException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TooManyListenersException__
+#define __java_util_TooManyListenersException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::TooManyListenersException : public ::java::lang::Exception
+{
+
+public:
+ TooManyListenersException();
+ TooManyListenersException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 5074640544770687831LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TooManyListenersException__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$1.h b/gcc-4.8/libjava/java/util/TreeMap$1.h
new file mode 100644
index 000000000..07e719ba9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$1.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$1__
+#define __java_util_TreeMap$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TreeMap$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TreeMap$1(::java::util::TreeMap$SubMap$NavigableEntrySet *);
+public:
+ virtual jint TreeMap$1$compare(::java::util::Map$Entry *, ::java::util::Map$Entry *);
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+public: // actually package-private
+ ::java::util::TreeMap$SubMap$NavigableEntrySet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$1__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$2.h b/gcc-4.8/libjava/java/util/TreeMap$2.h
new file mode 100644
index 000000000..ffb6dbe75
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$2.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$2__
+#define __java_util_TreeMap$2__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::TreeMap$2 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ TreeMap$2(::java::util::TreeMap$SubMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+public: // actually package-private
+ ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$2__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$3.h b/gcc-4.8/libjava/java/util/TreeMap$3.h
new file mode 100644
index 000000000..73b8f825d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$3.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$3__
+#define __java_util_TreeMap$3__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::TreeMap$3 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ TreeMap$3(::java::util::TreeMap$DescendingMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+public: // actually package-private
+ static ::java::util::TreeMap$DescendingMap * access$0(::java::util::TreeMap$3 *);
+ ::java::util::TreeMap$DescendingMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$3__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$4.h b/gcc-4.8/libjava/java/util/TreeMap$4.h
new file mode 100644
index 000000000..31cdf766a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$4.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$4__
+#define __java_util_TreeMap$4__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TreeMap$4 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TreeMap$4(::java::util::TreeMap$3 *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::Map$Entry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) last;
+ ::java::util::Map$Entry * next__;
+public: // actually package-private
+ ::java::util::TreeMap$3 * this$2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$4__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$5.h b/gcc-4.8/libjava/java/util/TreeMap$5.h
new file mode 100644
index 000000000..c7629276f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$5.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$5__
+#define __java_util_TreeMap$5__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TreeMap$5 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TreeMap$5(::java::util::TreeMap$DescendingSet *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) last;
+ ::java::lang::Object * next__;
+public: // actually package-private
+ ::java::util::TreeMap$DescendingSet * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$5__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$6.h b/gcc-4.8/libjava/java/util/TreeMap$6.h
new file mode 100644
index 000000000..8b0bb5bc8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$6.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$6__
+#define __java_util_TreeMap$6__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TreeMap$6 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TreeMap$6(::java::util::TreeMap$NavigableEntrySet *);
+public:
+ virtual jint TreeMap$6$compare(::java::util::Map$Entry *, ::java::util::Map$Entry *);
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+public: // actually package-private
+ ::java::util::TreeMap$NavigableEntrySet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$6__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$7.h b/gcc-4.8/libjava/java/util/TreeMap$7.h
new file mode 100644
index 000000000..09086a467
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$7.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$7__
+#define __java_util_TreeMap$7__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::TreeMap$7 : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ TreeMap$7(::java::util::TreeMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+public: // actually package-private
+ ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$7__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$DescendingMap.h b/gcc-4.8/libjava/java/util/TreeMap$DescendingMap.h
new file mode 100644
index 000000000..70d6e6c76
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$DescendingMap.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$DescendingMap__
+#define __java_util_TreeMap$DescendingMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TreeMap$DescendingMap : public ::java::lang::Object
+{
+
+public:
+ TreeMap$DescendingMap(::java::util::NavigableMap *);
+ ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *);
+ ::java::lang::Object * ceilingKey(::java::lang::Object *);
+ void clear();
+ ::java::util::Comparator * comparator();
+ jboolean containsKey(::java::lang::Object *);
+ jboolean containsValue(::java::lang::Object *);
+ ::java::util::NavigableSet * descendingKeySet();
+ ::java::util::NavigableMap * descendingMap();
+ ::java::util::Set * entrySet();
+ jboolean equals(::java::lang::Object *);
+ ::java::util::Map$Entry * firstEntry();
+ ::java::lang::Object * firstKey();
+ ::java::util::Map$Entry * floorEntry(::java::lang::Object *);
+ ::java::lang::Object * floorKey(::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Object *);
+ jint hashCode();
+ ::java::util::SortedMap * headMap(::java::lang::Object *);
+ ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean);
+ ::java::util::Map$Entry * higherEntry(::java::lang::Object *);
+ ::java::lang::Object * higherKey(::java::lang::Object *);
+ ::java::util::Set * keySet();
+ jboolean isEmpty();
+ ::java::util::Map$Entry * lastEntry();
+ ::java::lang::Object * lastKey();
+ ::java::util::Map$Entry * lowerEntry(::java::lang::Object *);
+ ::java::lang::Object * lowerKey(::java::lang::Object *);
+ ::java::util::NavigableSet * navigableKeySet();
+ ::java::util::Map$Entry * pollFirstEntry();
+ ::java::util::Map$Entry * pollLastEntry();
+ ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ void putAll(::java::util::Map *);
+ ::java::lang::Object * remove(::java::lang::Object *);
+ jint size();
+ ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedMap * tailMap(::java::lang::Object *);
+ ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean);
+ ::java::lang::String * toString();
+ ::java::util::Collection * values();
+private:
+ ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries;
+ ::java::util::Set * keys;
+ ::java::util::NavigableSet * nKeys;
+ ::java::util::Collection * values__;
+ ::java::util::NavigableMap * map;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$DescendingMap__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$DescendingSet.h b/gcc-4.8/libjava/java/util/TreeMap$DescendingSet.h
new file mode 100644
index 000000000..4824a2747
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$DescendingSet.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$DescendingSet__
+#define __java_util_TreeMap$DescendingSet__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::TreeMap$DescendingSet : public ::java::lang::Object
+{
+
+public:
+ TreeMap$DescendingSet(::java::util::NavigableSet *);
+ jboolean add(::java::lang::Object *);
+ jboolean addAll(::java::util::Collection *);
+ ::java::lang::Object * ceiling(::java::lang::Object *);
+ void clear();
+ ::java::util::Comparator * comparator();
+ jboolean contains(::java::lang::Object *);
+ jboolean containsAll(::java::util::Collection *);
+ ::java::util::Iterator * descendingIterator();
+ ::java::util::NavigableSet * descendingSet();
+ jboolean equals(::java::lang::Object *);
+ ::java::lang::Object * first();
+ ::java::lang::Object * floor(::java::lang::Object *);
+ jint hashCode();
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+ ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ ::java::lang::Object * higher(::java::lang::Object *);
+ jboolean isEmpty();
+ ::java::util::Iterator * iterator();
+ ::java::lang::Object * last();
+ ::java::lang::Object * lower(::java::lang::Object *);
+ ::java::lang::Object * pollFirst();
+ ::java::lang::Object * pollLast();
+ jboolean remove(::java::lang::Object *);
+ jboolean removeAll(::java::util::Collection *);
+ jboolean retainAll(::java::util::Collection *);
+ jint size();
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ ::java::lang::String * toString();
+private:
+ ::java::util::NavigableSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) set;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$DescendingSet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$EntrySet.h b/gcc-4.8/libjava/java/util/TreeMap$EntrySet.h
new file mode 100644
index 000000000..ed03318b8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$EntrySet.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$EntrySet__
+#define __java_util_TreeMap$EntrySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::TreeMap$EntrySet : public ::java::util::AbstractSet
+{
+
+ TreeMap$EntrySet(::java::util::TreeMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ TreeMap$EntrySet(::java::util::TreeMap *, ::java::util::TreeMap$EntrySet *);
+ ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$EntrySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$KeySet.h b/gcc-4.8/libjava/java/util/TreeMap$KeySet.h
new file mode 100644
index 000000000..0559a4dd7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$KeySet.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$KeySet__
+#define __java_util_TreeMap$KeySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::TreeMap$KeySet : public ::java::util::AbstractSet
+{
+
+ TreeMap$KeySet(::java::util::TreeMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ TreeMap$KeySet(::java::util::TreeMap *, ::java::util::TreeMap$KeySet *);
+ TreeMap$KeySet(::java::util::TreeMap *, ::java::util::TreeMap$KeySet *, ::java::util::TreeMap$KeySet *);
+ ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$KeySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$NavigableEntrySet.h b/gcc-4.8/libjava/java/util/TreeMap$NavigableEntrySet.h
new file mode 100644
index 000000000..cdbed6ee3
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$NavigableEntrySet.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$NavigableEntrySet__
+#define __java_util_TreeMap$NavigableEntrySet__
+
+#pragma interface
+
+#include <java/util/TreeMap$EntrySet.h>
+
+class java::util::TreeMap$NavigableEntrySet : public ::java::util::TreeMap$EntrySet
+{
+
+ TreeMap$NavigableEntrySet(::java::util::TreeMap *);
+public:
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$ceiling(::java::util::Map$Entry *);
+ ::java::util::Comparator * comparator();
+ ::java::util::Iterator * descendingIterator();
+ ::java::util::NavigableSet * descendingSet();
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$first();
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$floor(::java::util::Map$Entry *);
+ ::java::util::SortedSet * TreeMap$NavigableEntrySet$headSet(::java::util::Map$Entry *);
+ ::java::util::NavigableSet * TreeMap$NavigableEntrySet$headSet(::java::util::Map$Entry *, jboolean);
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$higher(::java::util::Map$Entry *);
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$last();
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$lower(::java::util::Map$Entry *);
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$pollFirst();
+ ::java::util::Map$Entry * TreeMap$NavigableEntrySet$pollLast();
+ ::java::util::SortedSet * TreeMap$NavigableEntrySet$subSet(::java::util::Map$Entry *, ::java::util::Map$Entry *);
+ ::java::util::NavigableSet * TreeMap$NavigableEntrySet$subSet(::java::util::Map$Entry *, jboolean, ::java::util::Map$Entry *, jboolean);
+ ::java::util::SortedSet * TreeMap$NavigableEntrySet$tailSet(::java::util::Map$Entry *);
+ ::java::util::NavigableSet * TreeMap$NavigableEntrySet$tailSet(::java::util::Map$Entry *, jboolean);
+ ::java::lang::Object * pollFirst();
+ ::java::lang::Object * higher(::java::lang::Object *);
+ ::java::lang::Object * lower(::java::lang::Object *);
+ ::java::lang::Object * pollLast();
+ ::java::lang::Object * first();
+ ::java::lang::Object * last();
+ ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * ceiling(::java::lang::Object *);
+ ::java::lang::Object * floor(::java::lang::Object *);
+ ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+public: // actually package-private
+ TreeMap$NavigableEntrySet(::java::util::TreeMap *, ::java::util::TreeMap$NavigableEntrySet *);
+ static ::java::util::TreeMap * access$15(::java::util::TreeMap$NavigableEntrySet *);
+ ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::TreeMap$EntrySet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$NavigableEntrySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$NavigableKeySet.h b/gcc-4.8/libjava/java/util/TreeMap$NavigableKeySet.h
new file mode 100644
index 000000000..247ac276b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$NavigableKeySet.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$NavigableKeySet__
+#define __java_util_TreeMap$NavigableKeySet__
+
+#pragma interface
+
+#include <java/util/TreeMap$KeySet.h>
+
+class java::util::TreeMap$NavigableKeySet : public ::java::util::TreeMap$KeySet
+{
+
+ TreeMap$NavigableKeySet(::java::util::TreeMap *);
+public:
+ ::java::lang::Object * ceiling(::java::lang::Object *);
+ ::java::util::Comparator * comparator();
+ ::java::util::Iterator * descendingIterator();
+ ::java::util::NavigableSet * descendingSet();
+ ::java::lang::Object * first();
+ ::java::lang::Object * floor(::java::lang::Object *);
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+ ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ ::java::lang::Object * higher(::java::lang::Object *);
+ ::java::lang::Object * last();
+ ::java::lang::Object * lower(::java::lang::Object *);
+ ::java::lang::Object * pollFirst();
+ ::java::lang::Object * pollLast();
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+public: // actually package-private
+ TreeMap$NavigableKeySet(::java::util::TreeMap *, ::java::util::TreeMap$NavigableKeySet *);
+ ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::TreeMap$KeySet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$NavigableKeySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$Node.h b/gcc-4.8/libjava/java/util/TreeMap$Node.h
new file mode 100644
index 000000000..1f0740099
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$Node.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$Node__
+#define __java_util_TreeMap$Node__
+
+#pragma interface
+
+#include <java/util/AbstractMap$SimpleEntry.h>
+
+class java::util::TreeMap$Node : public ::java::util::AbstractMap$SimpleEntry
+{
+
+public: // actually package-private
+ TreeMap$Node(::java::lang::Object *, ::java::lang::Object *, jint);
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractMap$SimpleEntry)))) color;
+ ::java::util::TreeMap$Node * left;
+ ::java::util::TreeMap$Node * right;
+ ::java::util::TreeMap$Node * parent;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$Node__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$SubMap$EntrySet.h b/gcc-4.8/libjava/java/util/TreeMap$SubMap$EntrySet.h
new file mode 100644
index 000000000..70a2ffc51
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$SubMap$EntrySet.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$SubMap$EntrySet__
+#define __java_util_TreeMap$SubMap$EntrySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::TreeMap$SubMap$EntrySet : public ::java::util::AbstractSet
+{
+
+ TreeMap$SubMap$EntrySet(::java::util::TreeMap$SubMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ TreeMap$SubMap$EntrySet(::java::util::TreeMap$SubMap *, ::java::util::TreeMap$SubMap$EntrySet *);
+ ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$SubMap$EntrySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$SubMap$KeySet.h b/gcc-4.8/libjava/java/util/TreeMap$SubMap$KeySet.h
new file mode 100644
index 000000000..812d7cd58
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$SubMap$KeySet.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$SubMap$KeySet__
+#define __java_util_TreeMap$SubMap$KeySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::TreeMap$SubMap$KeySet : public ::java::util::AbstractSet
+{
+
+ TreeMap$SubMap$KeySet(::java::util::TreeMap$SubMap *);
+public:
+ virtual jint size();
+ virtual ::java::util::Iterator * iterator();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+public: // actually package-private
+ TreeMap$SubMap$KeySet(::java::util::TreeMap$SubMap *, ::java::util::TreeMap$SubMap$KeySet *);
+ TreeMap$SubMap$KeySet(::java::util::TreeMap$SubMap *, ::java::util::TreeMap$SubMap$KeySet *, ::java::util::TreeMap$SubMap$KeySet *);
+ ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$SubMap$KeySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableEntrySet.h b/gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableEntrySet.h
new file mode 100644
index 000000000..34c997702
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableEntrySet.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$SubMap$NavigableEntrySet__
+#define __java_util_TreeMap$SubMap$NavigableEntrySet__
+
+#pragma interface
+
+#include <java/util/TreeMap$SubMap$EntrySet.h>
+
+class java::util::TreeMap$SubMap$NavigableEntrySet : public ::java::util::TreeMap$SubMap$EntrySet
+{
+
+ TreeMap$SubMap$NavigableEntrySet(::java::util::TreeMap$SubMap *);
+public:
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$ceiling(::java::util::Map$Entry *);
+ ::java::util::Comparator * comparator();
+ ::java::util::Iterator * descendingIterator();
+ ::java::util::NavigableSet * descendingSet();
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$first();
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$floor(::java::util::Map$Entry *);
+ ::java::util::SortedSet * TreeMap$SubMap$NavigableEntrySet$headSet(::java::util::Map$Entry *);
+ ::java::util::NavigableSet * TreeMap$SubMap$NavigableEntrySet$headSet(::java::util::Map$Entry *, jboolean);
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$higher(::java::util::Map$Entry *);
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$last();
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$lower(::java::util::Map$Entry *);
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$pollFirst();
+ ::java::util::Map$Entry * TreeMap$SubMap$NavigableEntrySet$pollLast();
+ ::java::util::SortedSet * TreeMap$SubMap$NavigableEntrySet$subSet(::java::util::Map$Entry *, ::java::util::Map$Entry *);
+ ::java::util::NavigableSet * TreeMap$SubMap$NavigableEntrySet$subSet(::java::util::Map$Entry *, jboolean, ::java::util::Map$Entry *, jboolean);
+ ::java::util::SortedSet * TreeMap$SubMap$NavigableEntrySet$tailSet(::java::util::Map$Entry *);
+ ::java::util::NavigableSet * TreeMap$SubMap$NavigableEntrySet$tailSet(::java::util::Map$Entry *, jboolean);
+ ::java::lang::Object * pollFirst();
+ ::java::lang::Object * higher(::java::lang::Object *);
+ ::java::lang::Object * lower(::java::lang::Object *);
+ ::java::lang::Object * pollLast();
+ ::java::lang::Object * first();
+ ::java::lang::Object * last();
+ ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * ceiling(::java::lang::Object *);
+ ::java::lang::Object * floor(::java::lang::Object *);
+ ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+public: // actually package-private
+ TreeMap$SubMap$NavigableEntrySet(::java::util::TreeMap$SubMap *, ::java::util::TreeMap$SubMap$NavigableEntrySet *);
+ static ::java::util::TreeMap$SubMap * access$15(::java::util::TreeMap$SubMap$NavigableEntrySet *);
+ ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::TreeMap$SubMap$EntrySet)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$SubMap$NavigableEntrySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableKeySet.h b/gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableKeySet.h
new file mode 100644
index 000000000..66509d11f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$SubMap$NavigableKeySet.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$SubMap$NavigableKeySet__
+#define __java_util_TreeMap$SubMap$NavigableKeySet__
+
+#pragma interface
+
+#include <java/util/TreeMap$SubMap$KeySet.h>
+
+class java::util::TreeMap$SubMap$NavigableKeySet : public ::java::util::TreeMap$SubMap$KeySet
+{
+
+ TreeMap$SubMap$NavigableKeySet(::java::util::TreeMap$SubMap *);
+public:
+ ::java::lang::Object * ceiling(::java::lang::Object *);
+ ::java::util::Comparator * comparator();
+ ::java::util::Iterator * descendingIterator();
+ ::java::util::NavigableSet * descendingSet();
+ ::java::lang::Object * first();
+ ::java::lang::Object * floor(::java::lang::Object *);
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+ ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ ::java::lang::Object * higher(::java::lang::Object *);
+ ::java::lang::Object * last();
+ ::java::lang::Object * lower(::java::lang::Object *);
+ ::java::lang::Object * pollFirst();
+ ::java::lang::Object * pollLast();
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+public: // actually package-private
+ TreeMap$SubMap$NavigableKeySet(::java::util::TreeMap$SubMap *, ::java::util::TreeMap$SubMap$NavigableKeySet *);
+ ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::TreeMap$SubMap$KeySet)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$SubMap$NavigableKeySet__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$SubMap.h b/gcc-4.8/libjava/java/util/TreeMap$SubMap.h
new file mode 100644
index 000000000..accd468bf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$SubMap.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$SubMap__
+#define __java_util_TreeMap$SubMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+
+class java::util::TreeMap$SubMap : public ::java::util::AbstractMap
+{
+
+public: // actually package-private
+ TreeMap$SubMap(::java::util::TreeMap *, ::java::lang::Object *, ::java::lang::Object *);
+ jboolean keyInRange(::java::lang::Object *);
+public:
+ ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *);
+ ::java::lang::Object * ceilingKey(::java::lang::Object *);
+ ::java::util::NavigableSet * descendingKeySet();
+ ::java::util::NavigableMap * descendingMap();
+ void clear();
+ ::java::util::Comparator * comparator();
+ jboolean containsKey(::java::lang::Object *);
+ jboolean containsValue(::java::lang::Object *);
+ ::java::util::Set * entrySet();
+ ::java::util::Map$Entry * firstEntry();
+ ::java::lang::Object * firstKey();
+ ::java::util::Map$Entry * floorEntry(::java::lang::Object *);
+ ::java::lang::Object * floorKey(::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Object *);
+ ::java::util::SortedMap * headMap(::java::lang::Object *);
+ ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean);
+ ::java::util::Set * keySet();
+ ::java::util::Map$Entry * higherEntry(::java::lang::Object *);
+ ::java::lang::Object * higherKey(::java::lang::Object *);
+ ::java::util::Map$Entry * lastEntry();
+ ::java::lang::Object * lastKey();
+ ::java::util::Map$Entry * lowerEntry(::java::lang::Object *);
+ ::java::lang::Object * lowerKey(::java::lang::Object *);
+ ::java::util::NavigableSet * navigableKeySet();
+ ::java::util::Map$Entry * pollFirstEntry();
+ ::java::util::Map$Entry * pollLastEntry();
+ ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * remove(::java::lang::Object *);
+ jint size();
+ ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedMap * tailMap(::java::lang::Object *);
+ ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean);
+ ::java::util::Collection * values();
+public: // actually package-private
+ static ::java::util::TreeMap * access$0(::java::util::TreeMap$SubMap *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) minKey;
+ ::java::lang::Object * maxKey;
+private:
+ ::java::util::Set * entries;
+ ::java::util::NavigableMap * descendingMap__;
+ ::java::util::NavigableSet * nKeys;
+public: // actually package-private
+ ::java::util::TreeMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$SubMap__
diff --git a/gcc-4.8/libjava/java/util/TreeMap$TreeIterator.h b/gcc-4.8/libjava/java/util/TreeMap$TreeIterator.h
new file mode 100644
index 000000000..5d8603eed
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap$TreeIterator.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap$TreeIterator__
+#define __java_util_TreeMap$TreeIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::TreeMap$TreeIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ TreeMap$TreeIterator(::java::util::TreeMap *, jint);
+ TreeMap$TreeIterator(::java::util::TreeMap *, jint, ::java::util::TreeMap$Node *, ::java::util::TreeMap$Node *);
+public:
+ jboolean hasNext();
+ ::java::lang::Object * next();
+ void remove();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type;
+ jint knownMod;
+ ::java::util::TreeMap$Node * last;
+ ::java::util::TreeMap$Node * next__;
+ ::java::util::TreeMap$Node * max;
+public: // actually package-private
+ ::java::util::TreeMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap$TreeIterator__
diff --git a/gcc-4.8/libjava/java/util/TreeMap.h b/gcc-4.8/libjava/java/util/TreeMap.h
new file mode 100644
index 000000000..b87c89262
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeMap.h
@@ -0,0 +1,109 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeMap__
+#define __java_util_TreeMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+
+class java::util::TreeMap : public ::java::util::AbstractMap
+{
+
+public:
+ TreeMap();
+ TreeMap(::java::util::Comparator *);
+ TreeMap(::java::util::Map *);
+ TreeMap(::java::util::SortedMap *);
+ virtual void clear();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::util::Comparator * comparator();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual ::java::lang::Object * firstKey();
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *);
+ virtual ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean);
+ virtual ::java::util::Set * keySet();
+ virtual ::java::lang::Object * lastKey();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *);
+ virtual ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean);
+ virtual ::java::util::Collection * values();
+public: // actually package-private
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+private:
+ void deleteFixup(::java::util::TreeMap$Node *, ::java::util::TreeMap$Node *);
+ void fabricateTree(jint);
+public: // actually package-private
+ virtual ::java::util::TreeMap$Node * firstNode();
+ virtual ::java::util::TreeMap$Node * getNode(::java::lang::Object *);
+ virtual ::java::util::TreeMap$Node * highestLessThan(::java::lang::Object *);
+ virtual ::java::util::TreeMap$Node * highestLessThan(::java::lang::Object *, jboolean);
+private:
+ void insertFixup(::java::util::TreeMap$Node *);
+ ::java::util::TreeMap$Node * lastNode();
+public: // actually package-private
+ virtual ::java::util::TreeMap$Node * lowestGreaterThan(::java::lang::Object *, jboolean);
+ virtual ::java::util::TreeMap$Node * lowestGreaterThan(::java::lang::Object *, jboolean, jboolean);
+private:
+ ::java::util::TreeMap$Node * predecessor(::java::util::TreeMap$Node *);
+public: // actually package-private
+ virtual void putFromObjStream(::java::io::ObjectInputStream *, jint, jboolean);
+ virtual void putKeysLinear(::java::util::Iterator *, jint);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ virtual void removeNode(::java::util::TreeMap$Node *);
+private:
+ void rotateLeft(::java::util::TreeMap$Node *);
+ void rotateRight(::java::util::TreeMap$Node *);
+public: // actually package-private
+ virtual ::java::util::TreeMap$Node * successor(::java::util::TreeMap$Node *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ virtual ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * ceilingKey(::java::lang::Object *);
+ virtual ::java::util::NavigableSet * descendingKeySet();
+ virtual ::java::util::NavigableMap * descendingMap();
+ virtual ::java::util::Map$Entry * firstEntry();
+ virtual ::java::util::Map$Entry * floorEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * floorKey(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * higherEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * higherKey(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * lastEntry();
+ virtual ::java::util::Map$Entry * lowerEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * lowerKey(::java::lang::Object *);
+ virtual ::java::util::NavigableSet * navigableKeySet();
+ virtual ::java::util::Map$Entry * pollFirstEntry();
+ virtual ::java::util::Map$Entry * pollLastEntry();
+private:
+ static const jlong serialVersionUID = 919286545866124006LL;
+public: // actually package-private
+ static const jint RED = -1;
+ static const jint BLACK = 1;
+ static ::java::util::TreeMap$Node * nil;
+private:
+ ::java::util::TreeMap$Node * __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) root;
+public: // actually package-private
+ jint size__;
+private:
+ ::java::util::Set * entries;
+ ::java::util::NavigableMap * descendingMap__;
+ ::java::util::NavigableSet * nKeys;
+public: // actually package-private
+ jint modCount;
+ ::java::util::Comparator * comparator__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeMap__
diff --git a/gcc-4.8/libjava/java/util/TreeSet.h b/gcc-4.8/libjava/java/util/TreeSet.h
new file mode 100644
index 000000000..1e19c1933
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/TreeSet.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_TreeSet__
+#define __java_util_TreeSet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::TreeSet : public ::java::util::AbstractSet
+{
+
+public:
+ TreeSet();
+ TreeSet(::java::util::Comparator *);
+ TreeSet(::java::util::Collection *);
+ TreeSet(::java::util::SortedSet *);
+private:
+ TreeSet(::java::util::NavigableMap *);
+public:
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual void clear();
+ virtual ::java::lang::Object * clone();
+ virtual ::java::util::Comparator * comparator();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual ::java::lang::Object * first();
+ virtual ::java::util::SortedSet * headSet(::java::lang::Object *);
+ virtual ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ virtual jboolean isEmpty();
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::lang::Object * last();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ virtual ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ virtual ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ virtual ::java::lang::Object * ceiling(::java::lang::Object *);
+ virtual ::java::util::Iterator * descendingIterator();
+ virtual ::java::util::NavigableSet * descendingSet();
+ virtual ::java::lang::Object * floor(::java::lang::Object *);
+ virtual ::java::lang::Object * higher(::java::lang::Object *);
+ virtual ::java::lang::Object * lower(::java::lang::Object *);
+ virtual ::java::lang::Object * pollFirst();
+ virtual ::java::lang::Object * pollLast();
+private:
+ static const jlong serialVersionUID = -2479143000061671589LL;
+ ::java::util::NavigableMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) map;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_TreeSet__
diff --git a/gcc-4.8/libjava/java/util/UUID.h b/gcc-4.8/libjava/java/util/UUID.h
new file mode 100644
index 000000000..0eda9d67b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/UUID.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_UUID__
+#define __java_util_UUID__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::UUID : public ::java::lang::Object
+{
+
+public:
+ UUID(jlong, jlong);
+ jint clockSequence();
+ jint UUID$compareTo(::java::util::UUID *);
+ jboolean equals(::java::lang::Object *);
+ static ::java::util::UUID * fromString(::java::lang::String *);
+ ::java::lang::String * toString();
+ jlong getLeastSignificantBits();
+ jlong getMostSignificantBits();
+ jint hashCode();
+ static ::java::util::UUID * nameUUIDFromBytes(JArray< jbyte > *);
+ jlong node();
+ jlong timestamp();
+ static ::java::util::UUID * randomUUID();
+private:
+ ::java::lang::String * padHex(jlong, jint);
+public:
+ jint variant();
+ jint version();
+ jint compareTo(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -4856846361193249489LL;
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) mostSigBits;
+ jlong leastSigBits;
+ static ::java::util::Random * r;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_UUID__
diff --git a/gcc-4.8/libjava/java/util/UnknownFormatConversionException.h b/gcc-4.8/libjava/java/util/UnknownFormatConversionException.h
new file mode 100644
index 000000000..53f8917be
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/UnknownFormatConversionException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_UnknownFormatConversionException__
+#define __java_util_UnknownFormatConversionException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::UnknownFormatConversionException : public ::java::util::IllegalFormatException
+{
+
+public:
+ UnknownFormatConversionException(::java::lang::String *);
+ virtual ::java::lang::String * getConversion();
+private:
+ static const jlong serialVersionUID = 19060418LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) s;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_UnknownFormatConversionException__
diff --git a/gcc-4.8/libjava/java/util/UnknownFormatFlagsException.h b/gcc-4.8/libjava/java/util/UnknownFormatFlagsException.h
new file mode 100644
index 000000000..62c277a2f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/UnknownFormatFlagsException.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_UnknownFormatFlagsException__
+#define __java_util_UnknownFormatFlagsException__
+
+#pragma interface
+
+#include <java/util/IllegalFormatException.h>
+
+class java::util::UnknownFormatFlagsException : public ::java::util::IllegalFormatException
+{
+
+public:
+ UnknownFormatFlagsException(::java::lang::String *);
+ virtual ::java::lang::String * getFlags();
+private:
+ static const jlong serialVersionUID = 19370506LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::IllegalFormatException)))) flags;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_UnknownFormatFlagsException__
diff --git a/gcc-4.8/libjava/java/util/VMTimeZone.h b/gcc-4.8/libjava/java/util/VMTimeZone.h
new file mode 100644
index 000000000..26ca5e224
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/VMTimeZone.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_VMTimeZone__
+#define __java_util_VMTimeZone__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::VMTimeZone : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMTimeZone();
+ static ::java::util::TimeZone * getDefaultTimeZoneId();
+private:
+ static ::java::lang::String * readTimeZoneFile(::java::lang::String *);
+ static ::java::lang::String * readSysconfigClockFile(::java::lang::String *);
+ static ::java::lang::String * getSystemTimeZoneId();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_VMTimeZone__
diff --git a/gcc-4.8/libjava/java/util/VMTimeZone.java b/gcc-4.8/libjava/java/util/VMTimeZone.java
new file mode 100644
index 000000000..992ecaf28
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/VMTimeZone.java
@@ -0,0 +1,300 @@
+/* java.util.VMTimeZone
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.util;
+
+import gnu.classpath.Configuration;
+import gnu.classpath.SystemProperties;
+import gnu.java.util.ZoneInfo;
+import java.util.TimeZone;
+
+import java.io.*;
+
+/**
+ *
+ */
+final class VMTimeZone
+{
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary("javautil");
+ }
+ }
+
+ /**
+ * This method returns a time zone id string which is in the form
+ * (standard zone name) or (standard zone name)(GMT offset) or
+ * (standard zone name)(GMT offset)(daylight time zone name). The
+ * GMT offset can be in seconds, or where it is evenly divisible by
+ * 3600, then it can be in hours. The offset must be the time to
+ * add to the local time to get GMT. If a offset is given and the
+ * time zone observes daylight saving then the (daylight time zone
+ * name) must also be given (otherwise it is assumed the time zone
+ * does not observe any daylight savings).
+ * <p>
+ * The result of this method is given to the method
+ * TimeZone.getDefaultTimeZone(String) which tries to map the time
+ * zone id to a known TimeZone. See that method on how the returned
+ * String is mapped to a real TimeZone object.
+ * <p>
+ * The reference implementation which is made for GNU/Posix like
+ * systems calls <code>System.getenv("TZ")</code>,
+ * <code>readTimeZoneFile("/etc/timezone")</code>,
+ * <code>ZoneInfo.readTZFile((String)null, "/etc/localtime")</code>
+ * and finally <code>getSystemTimeZoneId()</code> till a supported
+ * TimeZone is found through
+ * <code>TimeZone.getDefaultTimeZone(String)</code>.
+ * If every method fails <code>null</code> is returned (which means
+ * the TimeZone code will fall back on GMT as default time zone).
+ * <p>
+ * Note that this method is called inside a
+ * <code>AccessController.doPrivileged()</code> block and runs with
+ * the priviliges of the java.util system classes. It will only be
+ * called when the default time zone is not yet set, the system
+ * property user.timezone isn't set and it is requested for the
+ * first time.
+ */
+ static TimeZone getDefaultTimeZoneId()
+ {
+ TimeZone zone = null;
+
+ // See if TZ environment variable is set and accessible.
+ String tzid = System.getenv("TZ");
+ if (tzid != null && !tzid.equals(""))
+ zone = TimeZone.getDefaultTimeZone(tzid);
+
+ // Try to parse /etc/timezone.
+ if (zone == null)
+ {
+ tzid = readTimeZoneFile("/etc/timezone");
+ if (tzid != null && !tzid.equals(""))
+ zone = TimeZone.getDefaultTimeZone(tzid);
+ }
+
+ // Try to parse /etc/localtime
+ if (zone == null)
+ {
+ zone = ZoneInfo.readTZFile((String) null, "/etc/localtime");
+ if (zone != null)
+ {
+ // Try to find a more suitable ID for the /etc/localtime
+ // timezone.
+ // Sometimes /etc/localtime is a symlink to some
+ // /usr/share/zoneinfo/ file.
+ String id = null;
+ try
+ {
+ id = new File("/etc/localtime").getCanonicalPath();
+ if (id != null)
+ {
+ String zoneinfo_dir
+ = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir");
+ if (zoneinfo_dir != null)
+ zoneinfo_dir
+ = new File(zoneinfo_dir
+ + File.separatorChar).getCanonicalPath();
+ if (zoneinfo_dir != null && id.startsWith(zoneinfo_dir))
+ {
+ int pos = zoneinfo_dir.length();
+ while (pos < id.length()
+ && id.charAt(pos) == File.separatorChar)
+ pos++;
+ if (pos < id.length())
+ id = id.substring(pos);
+ else
+ id = null;
+ }
+ else
+ id = null;
+ }
+ }
+ catch (IOException ioe)
+ {
+ id = null;
+ }
+
+ if (id == null)
+ id = readSysconfigClockFile("/etc/sysconfig/clock");
+
+ if (id != null)
+ zone.setID(id);
+ }
+ }
+
+ // Try some system specific way
+ if (zone == null)
+ {
+ tzid = getSystemTimeZoneId();
+ if (tzid != null && !tzid.equals(""))
+ zone = TimeZone.getDefaultTimeZone(tzid);
+ }
+
+ return zone;
+ }
+
+ /**
+ * Tries to read the time zone name from a file. Only the first
+ * consecutive letters, digits, slashes, dashes and underscores are
+ * read from the file. If the file cannot be read or an IOException
+ * occurs null is returned.
+ * <p>
+ * The /etc/timezone file is not standard, but a lot of systems have
+ * it. If it exist the first line always contains a string
+ * describing the timezone of the host of domain. Some systems
+ * contain a /etc/TIMEZONE file which is used to set the TZ
+ * environment variable (which is checked before /etc/timezone is
+ * read).
+ */
+ private static String readTimeZoneFile(String file)
+ {
+ File f = new File(file);
+ if (!f.exists())
+ return null;
+
+ InputStreamReader isr = null;
+ try
+ {
+ FileInputStream fis = new FileInputStream(f);
+ BufferedInputStream bis = new BufferedInputStream(fis);
+ isr = new InputStreamReader(bis);
+
+ StringBuffer sb = new StringBuffer();
+ int i = isr.read();
+ while (i != -1)
+ {
+ char c = (char) i;
+ if (Character.isLetter(c) || Character.isDigit(c)
+ || c == '/' || c == '-' || c == '_')
+ {
+ sb.append(c);
+ i = isr.read();
+ }
+ else
+ break;
+ }
+ return sb.toString();
+ }
+ catch (IOException ioe)
+ {
+ // Parse error, not a proper tzfile.
+ return null;
+ }
+ finally
+ {
+ try
+ {
+ if (isr != null)
+ isr.close();
+ }
+ catch (IOException ioe)
+ {
+ // Error while close, nothing we can do.
+ }
+ }
+ }
+
+ /**
+ * Tries to read the time zone name from a file.
+ * If the file cannot be read or an IOException occurs null is returned.
+ * <p>
+ * The /etc/sysconfig/clock file is not standard, but a lot of systems
+ * have it. The file is included by shell scripts and the timezone
+ * name is defined in ZONE variable.
+ * This routine should grok it with or without quotes:
+ * ZONE=America/New_York
+ * or
+ * ZONE="Europe/London"
+ */
+ private static String readSysconfigClockFile(String file)
+ {
+ BufferedReader br = null;
+ try
+ {
+ FileInputStream fis = new FileInputStream(file);
+ BufferedInputStream bis = new BufferedInputStream(fis);
+ br = new BufferedReader(new InputStreamReader(bis));
+
+ for (String line = br.readLine(); line != null; line = br.readLine())
+ {
+ line = line.trim();
+ if (line.length() < 8 || !line.startsWith("ZONE="))
+ continue;
+ int posstart = 6;
+ int posend;
+ if (line.charAt(5) == '"')
+ posend = line.indexOf('"', 6);
+ else if (line.charAt(5) == '\'')
+ posend = line.indexOf('\'', 6);
+ else
+ {
+ posstart = 5;
+ posend = line.length();
+ }
+ if (posend < 0)
+ return null;
+ return line.substring(posstart, posend);
+ }
+ return null;
+ }
+ catch (IOException ioe)
+ {
+ // Parse error, not a proper tzfile.
+ return null;
+ }
+ finally
+ {
+ try
+ {
+ if (br != null)
+ br.close();
+ }
+ catch (IOException ioe)
+ {
+ // Error while close, nothing we can do.
+ }
+ }
+ }
+
+ /**
+ * Tries to get the system time zone id through native code.
+ */
+ private static native String getSystemTimeZoneId();
+}
diff --git a/gcc-4.8/libjava/java/util/Vector$1.h b/gcc-4.8/libjava/java/util/Vector$1.h
new file mode 100644
index 000000000..d7edea6c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Vector$1.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Vector$1__
+#define __java_util_Vector$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::Vector$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Vector$1(::java::util::Vector *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::lang::Object * nextElement();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
+public: // actually package-private
+ ::java::util::Vector * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Vector$1__
diff --git a/gcc-4.8/libjava/java/util/Vector.h b/gcc-4.8/libjava/java/util/Vector.h
new file mode 100644
index 000000000..c903819c4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/Vector.h
@@ -0,0 +1,78 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Vector__
+#define __java_util_Vector__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::Vector : public ::java::util::AbstractList
+{
+
+public:
+ Vector();
+ Vector(::java::util::Collection *);
+ Vector(jint, jint);
+ Vector(jint);
+ virtual void copyInto(JArray< ::java::lang::Object * > *);
+ virtual void trimToSize();
+ virtual void ensureCapacity(jint);
+ virtual void setSize(jint);
+ virtual jint capacity();
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Enumeration * elements();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint indexOf(::java::lang::Object *, jint);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *, jint);
+ virtual ::java::lang::Object * elementAt(jint);
+ virtual ::java::lang::Object * firstElement();
+ virtual ::java::lang::Object * lastElement();
+ virtual void setElementAt(::java::lang::Object *, jint);
+ virtual void removeElementAt(jint);
+ virtual void insertElementAt(::java::lang::Object *, jint);
+ virtual void addElement(::java::lang::Object *);
+ virtual jboolean removeElement(::java::lang::Object *);
+ virtual void removeAllElements();
+ virtual ::java::lang::Object * clone();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Object * get(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual void add(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(jint);
+ virtual void clear();
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::List * subList(jint, jint);
+public: // actually protected
+ virtual void removeRange(jint, jint);
+private:
+ void checkBoundInclusive(jint);
+ void checkBoundExclusive(jint);
+ void raiseBoundsError(jint, ::java::lang::String *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = -2767605614048989439LL;
+public: // actually protected
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) elementData;
+ jint elementCount;
+ jint capacityIncrement;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Vector__
diff --git a/gcc-4.8/libjava/java/util/WeakHashMap$1.h b/gcc-4.8/libjava/java/util/WeakHashMap$1.h
new file mode 100644
index 000000000..4f49b672c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/WeakHashMap$1.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_WeakHashMap$1__
+#define __java_util_WeakHashMap$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::WeakHashMap$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ WeakHashMap$1();
+public:
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_WeakHashMap$1__
diff --git a/gcc-4.8/libjava/java/util/WeakHashMap$2.h b/gcc-4.8/libjava/java/util/WeakHashMap$2.h
new file mode 100644
index 000000000..79f65500d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/WeakHashMap$2.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_WeakHashMap$2__
+#define __java_util_WeakHashMap$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::WeakHashMap$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ WeakHashMap$2(::java::util::WeakHashMap$WeakEntrySet *);
+private:
+ void checkMod();
+ ::java::util::WeakHashMap$WeakBucket$WeakEntry * findNext(::java::util::WeakHashMap$WeakBucket$WeakEntry *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ ::java::util::WeakHashMap$WeakBucket$WeakEntry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastEntry;
+ ::java::util::WeakHashMap$WeakBucket$WeakEntry * nextEntry;
+ jint knownMod;
+ ::java::util::WeakHashMap$WeakEntrySet * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_WeakHashMap$2__
diff --git a/gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h b/gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h
new file mode 100644
index 000000000..5ddfa8738
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_WeakHashMap$WeakBucket$WeakEntry__
+#define __java_util_WeakHashMap$WeakBucket$WeakEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::WeakHashMap$WeakBucket$WeakEntry : public ::java::lang::Object
+{
+
+public:
+ WeakHashMap$WeakBucket$WeakEntry(::java::util::WeakHashMap$WeakBucket *, ::java::lang::Object *);
+ virtual ::java::util::WeakHashMap$WeakBucket * getBucket();
+ virtual ::java::lang::Object * getKey();
+ virtual ::java::lang::Object * getValue();
+ virtual ::java::lang::Object * setValue(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ ::java::util::WeakHashMap$WeakBucket * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_WeakHashMap$WeakBucket$WeakEntry__
diff --git a/gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket.h b/gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket.h
new file mode 100644
index 000000000..9fc29d8dc
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/WeakHashMap$WeakBucket.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_WeakHashMap$WeakBucket__
+#define __java_util_WeakHashMap$WeakBucket__
+
+#pragma interface
+
+#include <java/lang/ref/WeakReference.h>
+
+class java::util::WeakHashMap$WeakBucket : public ::java::lang::ref::WeakReference
+{
+
+public:
+ WeakHashMap$WeakBucket(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *, ::java::lang::Object *, jint);
+public: // actually package-private
+ virtual ::java::util::WeakHashMap$WeakBucket$WeakEntry * getEntry();
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::ref::WeakReference)))) value;
+ ::java::util::WeakHashMap$WeakBucket * next;
+ jint slot;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_WeakHashMap$WeakBucket__
diff --git a/gcc-4.8/libjava/java/util/WeakHashMap$WeakEntrySet.h b/gcc-4.8/libjava/java/util/WeakHashMap$WeakEntrySet.h
new file mode 100644
index 000000000..cfd558e42
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/WeakHashMap$WeakEntrySet.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_WeakHashMap$WeakEntrySet__
+#define __java_util_WeakHashMap$WeakEntrySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::WeakHashMap$WeakEntrySet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ WeakHashMap$WeakEntrySet(::java::util::WeakHashMap *);
+public:
+ jint size();
+ ::java::util::Iterator * iterator();
+public: // actually package-private
+ static ::java::util::WeakHashMap * access$0(::java::util::WeakHashMap$WeakEntrySet *);
+ ::java::util::WeakHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_WeakHashMap$WeakEntrySet__
diff --git a/gcc-4.8/libjava/java/util/WeakHashMap.h b/gcc-4.8/libjava/java/util/WeakHashMap.h
new file mode 100644
index 000000000..e5875adf6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/WeakHashMap.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_WeakHashMap__
+#define __java_util_WeakHashMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+#include <gcj/array.h>
+
+
+class java::util::WeakHashMap : public ::java::util::AbstractMap
+{
+
+public:
+ WeakHashMap();
+ WeakHashMap(jint);
+ WeakHashMap(jint, jfloat);
+ WeakHashMap(::java::util::Map *);
+private:
+ jint hash(::java::lang::Object *);
+public: // actually package-private
+ virtual void cleanQueue();
+private:
+ void rehash();
+ ::java::util::WeakHashMap$WeakBucket$WeakEntry * internalGet(::java::lang::Object *);
+ void internalAdd(::java::lang::Object *, ::java::lang::Object *);
+public: // actually package-private
+ virtual void internalRemove(::java::util::WeakHashMap$WeakBucket *);
+public:
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual void clear();
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * keySet();
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::util::Collection * values();
+private:
+ static const jint DEFAULT_CAPACITY = 11;
+ static jfloat DEFAULT_LOAD_FACTOR;
+public: // actually package-private
+ static ::java::lang::Object * NULL_KEY;
+private:
+ ::java::lang::ref::ReferenceQueue * __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) queue;
+public: // actually package-private
+ jint size__;
+private:
+ jfloat loadFactor;
+ jint threshold;
+public: // actually package-private
+ jint modCount;
+private:
+ ::java::util::WeakHashMap$WeakEntrySet * theEntrySet;
+public: // actually package-private
+ JArray< ::java::util::WeakHashMap$WeakBucket * > * buckets;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_WeakHashMap__
diff --git a/gcc-4.8/libjava/java/util/concurrent/AbstractExecutorService.h b/gcc-4.8/libjava/java/util/concurrent/AbstractExecutorService.h
new file mode 100644
index 000000000..796171e61
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/AbstractExecutorService.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_AbstractExecutorService__
+#define __java_util_concurrent_AbstractExecutorService__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::AbstractExecutorService : public ::java::lang::Object
+{
+
+public:
+ AbstractExecutorService();
+public: // actually protected
+ virtual ::java::util::concurrent::RunnableFuture * newTaskFor(::java::lang::Runnable *, ::java::lang::Object *);
+ virtual ::java::util::concurrent::RunnableFuture * newTaskFor(::java::util::concurrent::Callable *);
+public:
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *);
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *);
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *);
+private:
+ ::java::lang::Object * doInvokeAny(::java::util::Collection *, jboolean, jlong);
+public:
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *);
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::List * invokeAll(::java::util::Collection *);
+ virtual ::java::util::List * invokeAll(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void shutdown() = 0;
+ virtual ::java::util::List * shutdownNow() = 0;
+ virtual jboolean isShutdown() = 0;
+ virtual jboolean isTerminated() = 0;
+ virtual jboolean awaitTermination(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual void execute(::java::lang::Runnable *) = 0;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_AbstractExecutorService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h b/gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h
new file mode 100644
index 000000000..fdddf6c31
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ArrayBlockingQueue$Itr__
+#define __java_util_concurrent_ArrayBlockingQueue$Itr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ArrayBlockingQueue$Itr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ArrayBlockingQueue$Itr(::java::util::concurrent::ArrayBlockingQueue *);
+public:
+ virtual jboolean hasNext();
+private:
+ void checkNext();
+public:
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) nextIndex;
+ ::java::lang::Object * nextItem;
+ jint lastRet;
+public: // actually package-private
+ ::java::util::concurrent::ArrayBlockingQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ArrayBlockingQueue$Itr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue.h b/gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue.h
new file mode 100644
index 000000000..a431043c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ArrayBlockingQueue.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ArrayBlockingQueue__
+#define __java_util_concurrent_ArrayBlockingQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ArrayBlockingQueue : public ::java::util::AbstractQueue
+{
+
+public: // actually package-private
+ virtual jint inc(jint);
+private:
+ void insert(::java::lang::Object *);
+ ::java::lang::Object * extract();
+public: // actually package-private
+ virtual void removeAt(jint);
+public:
+ ArrayBlockingQueue(jint);
+ ArrayBlockingQueue(jint, jboolean);
+ ArrayBlockingQueue(jint, jboolean, ::java::util::Collection *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual void put(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * take();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * peek();
+ virtual jint size();
+ virtual jint remainingCapacity();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean contains(::java::lang::Object *);
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+ virtual void clear();
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+ virtual ::java::util::Iterator * iterator();
+public: // actually package-private
+ static jint access$0(::java::util::concurrent::ArrayBlockingQueue *);
+ static jint access$1(::java::util::concurrent::ArrayBlockingQueue *);
+ static JArray< ::java::lang::Object * > * access$2(::java::util::concurrent::ArrayBlockingQueue *);
+ static jint access$3(::java::util::concurrent::ArrayBlockingQueue *);
+ static ::java::util::concurrent::locks::ReentrantLock * access$4(::java::util::concurrent::ArrayBlockingQueue *);
+private:
+ static const jlong serialVersionUID = -817911632652898426LL;
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) items;
+ jint takeIndex;
+ jint putIndex;
+ jint count;
+ ::java::util::concurrent::locks::ReentrantLock * lock;
+ ::java::util::concurrent::locks::Condition * notEmpty;
+ ::java::util::concurrent::locks::Condition * notFull;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ArrayBlockingQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/BlockingDeque.h b/gcc-4.8/libjava/java/util/concurrent/BlockingDeque.h
new file mode 100644
index 000000000..4aa4cb533
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/BlockingDeque.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_BlockingDeque__
+#define __java_util_concurrent_BlockingDeque__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::BlockingDeque : public ::java::lang::Object
+{
+
+public:
+ virtual void addFirst(::java::lang::Object *) = 0;
+ virtual void addLast(::java::lang::Object *) = 0;
+ virtual jboolean offerFirst(::java::lang::Object *) = 0;
+ virtual jboolean offerLast(::java::lang::Object *) = 0;
+ virtual void putFirst(::java::lang::Object *) = 0;
+ virtual void putLast(::java::lang::Object *) = 0;
+ virtual jboolean offerFirst(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual jboolean offerLast(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * takeFirst() = 0;
+ virtual ::java::lang::Object * takeLast() = 0;
+ virtual ::java::lang::Object * pollFirst(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * pollLast(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual jboolean removeFirstOccurrence(::java::lang::Object *) = 0;
+ virtual jboolean removeLastOccurrence(::java::lang::Object *) = 0;
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean offer(::java::lang::Object *) = 0;
+ virtual void put(::java::lang::Object *) = 0;
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * remove() = 0;
+ virtual ::java::lang::Object * poll() = 0;
+ virtual ::java::lang::Object * take() = 0;
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * element() = 0;
+ virtual ::java::lang::Object * peek() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual void push(::java::lang::Object *) = 0;
+ virtual jint remainingCapacity() = 0;
+ virtual jint drainTo(::java::util::Collection *) = 0;
+ virtual jint drainTo(::java::util::Collection *, jint) = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ virtual ::java::lang::Object * removeFirst() = 0;
+ virtual ::java::lang::Object * removeLast() = 0;
+ virtual ::java::lang::Object * pollFirst() = 0;
+ virtual ::java::lang::Object * pollLast() = 0;
+ virtual ::java::lang::Object * getFirst() = 0;
+ virtual ::java::lang::Object * getLast() = 0;
+ virtual ::java::lang::Object * peekFirst() = 0;
+ virtual ::java::lang::Object * peekLast() = 0;
+ virtual ::java::lang::Object * pop() = 0;
+ virtual ::java::util::Iterator * descendingIterator() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_BlockingDeque__
diff --git a/gcc-4.8/libjava/java/util/concurrent/BlockingQueue.h b/gcc-4.8/libjava/java/util/concurrent/BlockingQueue.h
new file mode 100644
index 000000000..66cc905fb
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/BlockingQueue.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_BlockingQueue__
+#define __java_util_concurrent_BlockingQueue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::BlockingQueue : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean add(::java::lang::Object *) = 0;
+ virtual jboolean offer(::java::lang::Object *) = 0;
+ virtual void put(::java::lang::Object *) = 0;
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * take() = 0;
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual jint remainingCapacity() = 0;
+ virtual jboolean remove(::java::lang::Object *) = 0;
+ virtual jboolean contains(::java::lang::Object *) = 0;
+ virtual jint drainTo(::java::util::Collection *) = 0;
+ virtual jint drainTo(::java::util::Collection *, jint) = 0;
+ virtual ::java::lang::Object * remove() = 0;
+ virtual ::java::lang::Object * poll() = 0;
+ virtual ::java::lang::Object * element() = 0;
+ virtual ::java::lang::Object * peek() = 0;
+ virtual jboolean addAll(::java::util::Collection *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsAll(::java::util::Collection *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Iterator * iterator() = 0;
+ virtual jboolean removeAll(::java::util::Collection *) = 0;
+ virtual jboolean retainAll(::java::util::Collection *) = 0;
+ virtual jint size() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray() = 0;
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_BlockingQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/BrokenBarrierException.h b/gcc-4.8/libjava/java/util/concurrent/BrokenBarrierException.h
new file mode 100644
index 000000000..e5930d5d5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/BrokenBarrierException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_BrokenBarrierException__
+#define __java_util_concurrent_BrokenBarrierException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::concurrent::BrokenBarrierException : public ::java::lang::Exception
+{
+
+public:
+ BrokenBarrierException();
+ BrokenBarrierException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7117394618823254244LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_BrokenBarrierException__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Callable.h b/gcc-4.8/libjava/java/util/concurrent/Callable.h
new file mode 100644
index 000000000..636260e03
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Callable.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Callable__
+#define __java_util_concurrent_Callable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Callable : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * call() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_Callable__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CancellationException.h b/gcc-4.8/libjava/java/util/concurrent/CancellationException.h
new file mode 100644
index 000000000..7695b0162
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CancellationException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CancellationException__
+#define __java_util_concurrent_CancellationException__
+
+#pragma interface
+
+#include <java/lang/IllegalStateException.h>
+
+class java::util::concurrent::CancellationException : public ::java::lang::IllegalStateException
+{
+
+public:
+ CancellationException();
+ CancellationException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = -9202173006928992231LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CancellationException__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CompletionService.h b/gcc-4.8/libjava/java/util/concurrent/CompletionService.h
new file mode 100644
index 000000000..90d79023c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CompletionService.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CompletionService__
+#define __java_util_concurrent_CompletionService__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::CompletionService : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *) = 0;
+ virtual ::java::util::concurrent::Future * take() = 0;
+ virtual ::java::util::concurrent::Future * poll() = 0;
+ virtual ::java::util::concurrent::Future * poll(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_CompletionService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h
new file mode 100644
index 000000000..4c4c191b5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$EntryIterator__
+#define __java_util_concurrent_ConcurrentHashMap$EntryIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentHashMap$HashIterator.h>
+
+class java::util::concurrent::ConcurrentHashMap$EntryIterator : public ::java::util::concurrent::ConcurrentHashMap$HashIterator
+{
+
+public: // actually package-private
+ ConcurrentHashMap$EntryIterator(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ ::java::util::Map$Entry * ConcurrentHashMap$EntryIterator$next();
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentHashMap$HashIterator)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$EntryIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h
new file mode 100644
index 000000000..999c02283
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$EntrySet__
+#define __java_util_concurrent_ConcurrentHashMap$EntrySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::concurrent::ConcurrentHashMap$EntrySet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ ConcurrentHashMap$EntrySet(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ ::java::util::Iterator * iterator();
+ jboolean contains(::java::lang::Object *);
+ jboolean remove(::java::lang::Object *);
+ jint size();
+ void clear();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$EntrySet__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h
new file mode 100644
index 000000000..2667ed07c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$HashEntry__
+#define __java_util_concurrent_ConcurrentHashMap$HashEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentHashMap$HashEntry : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentHashMap$HashEntry(::java::lang::Object *, jint, ::java::util::concurrent::ConcurrentHashMap$HashEntry *, ::java::lang::Object *);
+ static JArray< ::java::util::concurrent::ConcurrentHashMap$HashEntry * > * newArray(jint);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ jint hash;
+ ::java::lang::Object * volatile value;
+ ::java::util::concurrent::ConcurrentHashMap$HashEntry * next;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$HashEntry__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h
new file mode 100644
index 000000000..2a3895cb1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$HashIterator__
+#define __java_util_concurrent_ConcurrentHashMap$HashIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentHashMap$HashIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentHashMap$HashIterator(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ virtual jboolean hasMoreElements();
+public: // actually package-private
+ virtual void advance();
+public:
+ virtual jboolean hasNext();
+public: // actually package-private
+ virtual ::java::util::concurrent::ConcurrentHashMap$HashEntry * nextEntry();
+public:
+ virtual void remove();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) nextSegmentIndex;
+ jint nextTableIndex;
+ JArray< ::java::util::concurrent::ConcurrentHashMap$HashEntry * > * currentTable;
+ ::java::util::concurrent::ConcurrentHashMap$HashEntry * nextEntry__;
+ ::java::util::concurrent::ConcurrentHashMap$HashEntry * lastReturned;
+ ::java::util::concurrent::ConcurrentHashMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$HashIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h
new file mode 100644
index 000000000..afa1b8a0d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$KeyIterator__
+#define __java_util_concurrent_ConcurrentHashMap$KeyIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentHashMap$HashIterator.h>
+
+class java::util::concurrent::ConcurrentHashMap$KeyIterator : public ::java::util::concurrent::ConcurrentHashMap$HashIterator
+{
+
+public: // actually package-private
+ ConcurrentHashMap$KeyIterator(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ ::java::lang::Object * next();
+ ::java::lang::Object * nextElement();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentHashMap$HashIterator)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$KeyIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h
new file mode 100644
index 000000000..31b002fed
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$KeySet__
+#define __java_util_concurrent_ConcurrentHashMap$KeySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+
+class java::util::concurrent::ConcurrentHashMap$KeySet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ ConcurrentHashMap$KeySet(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ ::java::util::Iterator * iterator();
+ jint size();
+ jboolean contains(::java::lang::Object *);
+ jboolean remove(::java::lang::Object *);
+ void clear();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$KeySet__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Segment.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Segment.h
new file mode 100644
index 000000000..55d06e869
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Segment.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$Segment__
+#define __java_util_concurrent_ConcurrentHashMap$Segment__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/ReentrantLock.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentHashMap$Segment : public ::java::util::concurrent::locks::ReentrantLock
+{
+
+public: // actually package-private
+ ConcurrentHashMap$Segment(jint, jfloat);
+ static JArray< ::java::util::concurrent::ConcurrentHashMap$Segment * > * newArray(jint);
+ void setTable(JArray< ::java::util::concurrent::ConcurrentHashMap$HashEntry * > *);
+ ::java::util::concurrent::ConcurrentHashMap$HashEntry * getFirst(jint);
+ ::java::lang::Object * readValueUnderLock(::java::util::concurrent::ConcurrentHashMap$HashEntry *);
+ ::java::lang::Object * get(::java::lang::Object *, jint);
+ jboolean containsKey(::java::lang::Object *, jint);
+ jboolean containsValue(::java::lang::Object *);
+ jboolean replace(::java::lang::Object *, jint, ::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * replace(::java::lang::Object *, jint, ::java::lang::Object *);
+ ::java::lang::Object * put(::java::lang::Object *, jint, ::java::lang::Object *, jboolean);
+ void rehash();
+ ::java::lang::Object * remove(::java::lang::Object *, jint, ::java::lang::Object *);
+ void clear();
+private:
+ static const jlong serialVersionUID = 2249069246763182397LL;
+public: // actually package-private
+ jint volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::ReentrantLock)))) count;
+ jint modCount;
+ jint threshold;
+ JArray< ::java::util::concurrent::ConcurrentHashMap$HashEntry * > * volatile table;
+ jfloat loadFactor;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$Segment__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h
new file mode 100644
index 000000000..6ccd9057c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$ValueIterator__
+#define __java_util_concurrent_ConcurrentHashMap$ValueIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentHashMap$HashIterator.h>
+
+class java::util::concurrent::ConcurrentHashMap$ValueIterator : public ::java::util::concurrent::ConcurrentHashMap$HashIterator
+{
+
+public: // actually package-private
+ ConcurrentHashMap$ValueIterator(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ ::java::lang::Object * next();
+ ::java::lang::Object * nextElement();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentHashMap$HashIterator)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$ValueIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Values.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Values.h
new file mode 100644
index 000000000..9470ec452
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$Values.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$Values__
+#define __java_util_concurrent_ConcurrentHashMap$Values__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+
+class java::util::concurrent::ConcurrentHashMap$Values : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ ConcurrentHashMap$Values(::java::util::concurrent::ConcurrentHashMap *);
+public:
+ ::java::util::Iterator * iterator();
+ jint size();
+ jboolean contains(::java::lang::Object *);
+ void clear();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$Values__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h
new file mode 100644
index 000000000..9c7398ee9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap$WriteThroughEntry__
+#define __java_util_concurrent_ConcurrentHashMap$WriteThroughEntry__
+
+#pragma interface
+
+#include <java/util/AbstractMap$SimpleEntry.h>
+
+class java::util::concurrent::ConcurrentHashMap$WriteThroughEntry : public ::java::util::AbstractMap$SimpleEntry
+{
+
+public: // actually package-private
+ ConcurrentHashMap$WriteThroughEntry(::java::util::concurrent::ConcurrentHashMap *, ::java::lang::Object *, ::java::lang::Object *);
+public:
+ ::java::lang::Object * setValue(::java::lang::Object *);
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractMap$SimpleEntry)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap$WriteThroughEntry__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap.h
new file mode 100644
index 000000000..0e733c065
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentHashMap.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentHashMap__
+#define __java_util_concurrent_ConcurrentHashMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentHashMap : public ::java::util::AbstractMap
+{
+
+ static jint hash(jint);
+public: // actually package-private
+ virtual ::java::util::concurrent::ConcurrentHashMap$Segment * segmentFor(jint);
+public:
+ ConcurrentHashMap(jint, jfloat, jint);
+ ConcurrentHashMap(jint, jfloat);
+ ConcurrentHashMap(jint);
+ ConcurrentHashMap();
+ ConcurrentHashMap(::java::util::Map *);
+ virtual jboolean isEmpty();
+ virtual jint size();
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual jboolean contains(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * putIfAbsent(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean replace(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * replace(::java::lang::Object *, ::java::lang::Object *);
+ virtual void clear();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::util::Collection * values();
+ virtual ::java::util::Set * entrySet();
+ virtual ::java::util::Enumeration * keys();
+ virtual ::java::util::Enumeration * elements();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 7249069246763182397LL;
+public: // actually package-private
+ static const jint DEFAULT_INITIAL_CAPACITY = 16;
+ static jfloat DEFAULT_LOAD_FACTOR;
+ static const jint DEFAULT_CONCURRENCY_LEVEL = 16;
+ static const jint MAXIMUM_CAPACITY = 1073741824;
+ static const jint MAX_SEGMENTS = 65536;
+ static const jint RETRIES_BEFORE_LOCK = 2;
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) segmentMask;
+ jint segmentShift;
+ JArray< ::java::util::concurrent::ConcurrentHashMap$Segment * > * segments;
+ ::java::util::Set * keySet__;
+ ::java::util::Set * entrySet__;
+ ::java::util::Collection * values__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentHashMap__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h
new file mode 100644
index 000000000..ddf3f7e88
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentLinkedQueue$Itr__
+#define __java_util_concurrent_ConcurrentLinkedQueue$Itr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentLinkedQueue$Itr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentLinkedQueue$Itr(::java::util::concurrent::ConcurrentLinkedQueue *);
+private:
+ ::java::lang::Object * advance();
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::concurrent::ConcurrentLinkedQueue$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nextNode;
+ ::java::lang::Object * nextItem;
+ ::java::util::concurrent::ConcurrentLinkedQueue$Node * lastRet;
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentLinkedQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentLinkedQueue$Itr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h
new file mode 100644
index 000000000..af69ba60a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentLinkedQueue$Node__
+#define __java_util_concurrent_ConcurrentLinkedQueue$Node__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentLinkedQueue$Node : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentLinkedQueue$Node(::java::lang::Object *);
+ ConcurrentLinkedQueue$Node(::java::lang::Object *, ::java::util::concurrent::ConcurrentLinkedQueue$Node *);
+ virtual ::java::lang::Object * getItem();
+ virtual jboolean casItem(::java::lang::Object *, ::java::lang::Object *);
+ virtual void setItem(::java::lang::Object *);
+ virtual ::java::util::concurrent::ConcurrentLinkedQueue$Node * getNext();
+ virtual jboolean casNext(::java::util::concurrent::ConcurrentLinkedQueue$Node *, ::java::util::concurrent::ConcurrentLinkedQueue$Node *);
+ virtual void setNext(::java::util::concurrent::ConcurrentLinkedQueue$Node *);
+private:
+ ::java::lang::Object * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) item;
+ ::java::util::concurrent::ConcurrentLinkedQueue$Node * volatile next;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * nextUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * itemUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentLinkedQueue$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue.h
new file mode 100644
index 000000000..512bc0e07
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentLinkedQueue.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentLinkedQueue__
+#define __java_util_concurrent_ConcurrentLinkedQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+
+class java::util::concurrent::ConcurrentLinkedQueue : public ::java::util::AbstractQueue
+{
+
+ jboolean casTail(::java::util::concurrent::ConcurrentLinkedQueue$Node *, ::java::util::concurrent::ConcurrentLinkedQueue$Node *);
+ jboolean casHead(::java::util::concurrent::ConcurrentLinkedQueue$Node *, ::java::util::concurrent::ConcurrentLinkedQueue$Node *);
+public:
+ ConcurrentLinkedQueue();
+ ConcurrentLinkedQueue(::java::util::Collection *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * peek();
+public: // actually package-private
+ virtual ::java::util::concurrent::ConcurrentLinkedQueue$Node * first();
+public:
+ virtual jboolean isEmpty();
+ virtual jint size();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual ::java::util::Iterator * iterator();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = 196745693267521676LL;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * tailUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * headUpdater;
+ ::java::util::concurrent::ConcurrentLinkedQueue$Node * volatile __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) head;
+ ::java::util::concurrent::ConcurrentLinkedQueue$Node * volatile tail;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentLinkedQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentMap.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentMap.h
new file mode 100644
index 000000000..a3357e304
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentMap.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentMap__
+#define __java_util_concurrent_ConcurrentMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentMap : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Object * putIfAbsent(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean remove(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean replace(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * replace(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsKey(::java::lang::Object *) = 0;
+ virtual jboolean containsValue(::java::lang::Object *) = 0;
+ virtual ::java::util::Set * entrySet() = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Set * keySet() = 0;
+ virtual void putAll(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * remove(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Collection * values() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_ConcurrentMap__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentNavigableMap.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentNavigableMap.h
new file mode 100644
index 000000000..68f4d01c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentNavigableMap.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentNavigableMap__
+#define __java_util_concurrent_ConcurrentNavigableMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentNavigableMap : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * headMap(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * tailMap(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * subMap(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * headMap(::java::lang::Object *) = 0;
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * tailMap(::java::lang::Object *) = 0;
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * descendingMap() = 0;
+ virtual ::java::util::NavigableSet * navigableKeySet() = 0;
+ virtual ::java::util::NavigableSet * keySet() = 0;
+ virtual ::java::util::NavigableSet * descendingKeySet() = 0;
+ virtual ::java::lang::Object * putIfAbsent(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean remove(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean replace(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * replace(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual void clear() = 0;
+ virtual jboolean containsKey(::java::lang::Object *) = 0;
+ virtual jboolean containsValue(::java::lang::Object *) = 0;
+ virtual ::java::util::Set * entrySet() = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean isEmpty() = 0;
+ virtual ::java::util::Set * keySet() = 0;
+ virtual void putAll(::java::util::Map *) = 0;
+ virtual ::java::lang::Object * remove(::java::lang::Object *) = 0;
+ virtual jint size() = 0;
+ virtual ::java::util::Collection * values() = 0;
+ virtual ::java::util::Map$Entry * lowerEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * lowerKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * floorEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * floorKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * ceilingKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * higherEntry(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * higherKey(::java::lang::Object *) = 0;
+ virtual ::java::util::Map$Entry * firstEntry() = 0;
+ virtual ::java::util::Map$Entry * lastEntry() = 0;
+ virtual ::java::util::Map$Entry * pollFirstEntry() = 0;
+ virtual ::java::util::Map$Entry * pollLastEntry() = 0;
+ virtual ::java::util::NavigableMap * descendingMap() = 0;
+ virtual ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean) = 0;
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *) = 0;
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *) = 0;
+ virtual ::java::util::Comparator * comparator() = 0;
+ virtual ::java::lang::Object * firstKey() = 0;
+ virtual ::java::lang::Object * lastKey() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_ConcurrentNavigableMap__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h
new file mode 100644
index 000000000..b64afd554
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$ComparableUsingComparator__
+#define __java_util_concurrent_ConcurrentSkipListMap$ComparableUsingComparator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$ComparableUsingComparator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$ComparableUsingComparator(::java::lang::Object *, ::java::util::Comparator *);
+public:
+ jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) actualKey;
+ ::java::util::Comparator * cmp;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$ComparableUsingComparator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h
new file mode 100644
index 000000000..67d71928f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$EntryIterator__
+#define __java_util_concurrent_ConcurrentSkipListMap$EntryIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$Iter.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$EntryIterator : public ::java::util::concurrent::ConcurrentSkipListMap$Iter
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$EntryIterator(::java::util::concurrent::ConcurrentSkipListMap *);
+public:
+ ::java::util::Map$Entry * ConcurrentSkipListMap$EntryIterator$next();
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$Iter)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$EntryIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h
new file mode 100644
index 000000000..e235ffc8d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$EntrySet__
+#define __java_util_concurrent_ConcurrentSkipListMap$EntrySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentSkipListMap$EntrySet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$EntrySet(::java::util::concurrent::ConcurrentNavigableMap *);
+public:
+ ::java::util::Iterator * iterator();
+ jboolean contains(::java::lang::Object *);
+ jboolean remove(::java::lang::Object *);
+ jboolean isEmpty();
+ jint size();
+ void clear();
+ jboolean equals(::java::lang::Object *);
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+private:
+ ::java::util::concurrent::ConcurrentNavigableMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) m;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$EntrySet__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h
new file mode 100644
index 000000000..f20214ce6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$HeadIndex__
+#define __java_util_concurrent_ConcurrentSkipListMap$HeadIndex__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$Index.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$HeadIndex : public ::java::util::concurrent::ConcurrentSkipListMap$Index
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$HeadIndex(::java::util::concurrent::ConcurrentSkipListMap$Node *, ::java::util::concurrent::ConcurrentSkipListMap$Index *, ::java::util::concurrent::ConcurrentSkipListMap$Index *, jint);
+ jint __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$Index)))) level;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$HeadIndex__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h
new file mode 100644
index 000000000..629cff881
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$Index__
+#define __java_util_concurrent_ConcurrentSkipListMap$Index__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$Index : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$Index(::java::util::concurrent::ConcurrentSkipListMap$Node *, ::java::util::concurrent::ConcurrentSkipListMap$Index *, ::java::util::concurrent::ConcurrentSkipListMap$Index *);
+ virtual jboolean casRight(::java::util::concurrent::ConcurrentSkipListMap$Index *, ::java::util::concurrent::ConcurrentSkipListMap$Index *);
+ virtual jboolean indexesDeletedNode();
+ virtual jboolean link(::java::util::concurrent::ConcurrentSkipListMap$Index *, ::java::util::concurrent::ConcurrentSkipListMap$Index *);
+ virtual jboolean unlink(::java::util::concurrent::ConcurrentSkipListMap$Index *);
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node;
+ ::java::util::concurrent::ConcurrentSkipListMap$Index * down;
+ ::java::util::concurrent::ConcurrentSkipListMap$Index * volatile right;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * rightUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$Index__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h
new file mode 100644
index 000000000..f9170b317
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$Iter__
+#define __java_util_concurrent_ConcurrentSkipListMap$Iter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$Iter : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$Iter(::java::util::concurrent::ConcurrentSkipListMap *);
+public:
+ virtual jboolean hasNext();
+public: // actually package-private
+ virtual void advance();
+public:
+ virtual void remove();
+ virtual ::java::lang::Object * next() = 0;
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastReturned;
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * next;
+ ::java::lang::Object * nextValue;
+ ::java::util::concurrent::ConcurrentSkipListMap * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$Iter__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h
new file mode 100644
index 000000000..03eb3e84a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$KeyIterator__
+#define __java_util_concurrent_ConcurrentSkipListMap$KeyIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$Iter.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$KeyIterator : public ::java::util::concurrent::ConcurrentSkipListMap$Iter
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$KeyIterator(::java::util::concurrent::ConcurrentSkipListMap *);
+public:
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$Iter)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$KeyIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h
new file mode 100644
index 000000000..e52b30ea1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$KeySet__
+#define __java_util_concurrent_ConcurrentSkipListMap$KeySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentSkipListMap$KeySet : public ::java::util::AbstractSet
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$KeySet(::java::util::concurrent::ConcurrentNavigableMap *);
+public:
+ jint size();
+ jboolean isEmpty();
+ jboolean contains(::java::lang::Object *);
+ jboolean remove(::java::lang::Object *);
+ void clear();
+ ::java::lang::Object * lower(::java::lang::Object *);
+ ::java::lang::Object * floor(::java::lang::Object *);
+ ::java::lang::Object * ceiling(::java::lang::Object *);
+ ::java::lang::Object * higher(::java::lang::Object *);
+ ::java::util::Comparator * comparator();
+ ::java::lang::Object * first();
+ ::java::lang::Object * last();
+ ::java::lang::Object * pollFirst();
+ ::java::lang::Object * pollLast();
+ ::java::util::Iterator * iterator();
+ jboolean equals(::java::lang::Object *);
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ ::java::util::Iterator * descendingIterator();
+ ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+ ::java::util::NavigableSet * ConcurrentSkipListMap$KeySet$subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableSet * ConcurrentSkipListMap$KeySet$headSet(::java::lang::Object *);
+ ::java::util::NavigableSet * ConcurrentSkipListMap$KeySet$tailSet(::java::lang::Object *);
+ ::java::util::NavigableSet * descendingSet();
+ ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ ::java::util::SortedSet * headSet(::java::lang::Object *);
+private:
+ ::java::util::concurrent::ConcurrentNavigableMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) m;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$KeySet__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h
new file mode 100644
index 000000000..c9d5d890d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$Node__
+#define __java_util_concurrent_ConcurrentSkipListMap$Node__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$Node : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$Node(::java::lang::Object *, ::java::lang::Object *, ::java::util::concurrent::ConcurrentSkipListMap$Node *);
+ ConcurrentSkipListMap$Node(::java::util::concurrent::ConcurrentSkipListMap$Node *);
+ jboolean casValue(::java::lang::Object *, ::java::lang::Object *);
+ jboolean casNext(::java::util::concurrent::ConcurrentSkipListMap$Node *, ::java::util::concurrent::ConcurrentSkipListMap$Node *);
+ jboolean isMarker();
+ jboolean isBaseHeader();
+ jboolean appendMarker(::java::util::concurrent::ConcurrentSkipListMap$Node *);
+ void helpDelete(::java::util::concurrent::ConcurrentSkipListMap$Node *, ::java::util::concurrent::ConcurrentSkipListMap$Node *);
+ ::java::lang::Object * getValidValue();
+ ::java::util::AbstractMap$SimpleImmutableEntry * createSnapshot();
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
+ ::java::lang::Object * volatile value;
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * volatile next;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * nextUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * valueUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h
new file mode 100644
index 000000000..0c0c9e552
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapEntryIterator__
+#define __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapEntryIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapEntryIterator : public ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$SubMap$SubMapEntryIterator(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+public:
+ ::java::util::Map$Entry * ConcurrentSkipListMap$SubMap$SubMapEntryIterator$next();
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapEntryIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h
new file mode 100644
index 000000000..a4f569348
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapIter__
+#define __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapIter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$SubMap$SubMapIter(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+public:
+ virtual jboolean hasNext();
+public: // actually package-private
+ virtual void advance();
+private:
+ void ascend();
+ void descend();
+public:
+ virtual void remove();
+ virtual ::java::lang::Object * next() = 0;
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastReturned;
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * next;
+ ::java::lang::Object * nextValue;
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapIter__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h
new file mode 100644
index 000000000..5af0bca1d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapKeyIterator__
+#define __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapKeyIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapKeyIterator : public ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$SubMap$SubMapKeyIterator(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+public:
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapKeyIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h
new file mode 100644
index 000000000..deefc73c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapValueIterator__
+#define __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapValueIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapValueIterator : public ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$SubMap$SubMapValueIterator(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+public:
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$SubMap$SubMapIter)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$SubMap$SubMapValueIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h
new file mode 100644
index 000000000..345fb2551
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h
@@ -0,0 +1,118 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$SubMap__
+#define __java_util_concurrent_ConcurrentSkipListMap$SubMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$SubMap : public ::java::util::AbstractMap
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$SubMap(::java::util::concurrent::ConcurrentSkipListMap *, ::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean, jboolean);
+private:
+ jboolean tooLow(::java::lang::Object *);
+ jboolean tooHigh(::java::lang::Object *);
+ jboolean inBounds(::java::lang::Object *);
+ void checkKeyBounds(::java::lang::Object *);
+ jboolean isBeforeEnd(::java::util::concurrent::ConcurrentSkipListMap$Node *);
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * loNode();
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * hiNode();
+ ::java::lang::Object * lowestKey();
+ ::java::lang::Object * highestKey();
+ ::java::util::Map$Entry * lowestEntry();
+ ::java::util::Map$Entry * highestEntry();
+ ::java::util::Map$Entry * removeLowest();
+ ::java::util::Map$Entry * removeHighest();
+ ::java::util::Map$Entry * getNearEntry(::java::lang::Object *, jint);
+ ::java::lang::Object * getNearKey(::java::lang::Object *, jint);
+public:
+ jboolean containsKey(::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Object *);
+ ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * remove(::java::lang::Object *);
+ jint size();
+ jboolean isEmpty();
+ jboolean containsValue(::java::lang::Object *);
+ void clear();
+ ::java::lang::Object * putIfAbsent(::java::lang::Object *, ::java::lang::Object *);
+ jboolean remove(::java::lang::Object *, ::java::lang::Object *);
+ jboolean replace(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * replace(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::Comparator * comparator();
+private:
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * newSubMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+public:
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$headMap(::java::lang::Object *, jboolean);
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$tailMap(::java::lang::Object *, jboolean);
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$subMap(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$headMap(::java::lang::Object *);
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$tailMap(::java::lang::Object *);
+ ::java::util::concurrent::ConcurrentSkipListMap$SubMap * ConcurrentSkipListMap$SubMap$descendingMap();
+ ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *);
+ ::java::lang::Object * ceilingKey(::java::lang::Object *);
+ ::java::util::Map$Entry * lowerEntry(::java::lang::Object *);
+ ::java::lang::Object * lowerKey(::java::lang::Object *);
+ ::java::util::Map$Entry * floorEntry(::java::lang::Object *);
+ ::java::lang::Object * floorKey(::java::lang::Object *);
+ ::java::util::Map$Entry * higherEntry(::java::lang::Object *);
+ ::java::lang::Object * higherKey(::java::lang::Object *);
+ ::java::lang::Object * firstKey();
+ ::java::lang::Object * lastKey();
+ ::java::util::Map$Entry * firstEntry();
+ ::java::util::Map$Entry * lastEntry();
+ ::java::util::Map$Entry * pollFirstEntry();
+ ::java::util::Map$Entry * pollLastEntry();
+ ::java::util::NavigableSet * ConcurrentSkipListMap$SubMap$keySet();
+ ::java::util::NavigableSet * navigableKeySet();
+ ::java::util::Collection * values();
+ ::java::util::Set * entrySet();
+ ::java::util::NavigableSet * descendingKeySet();
+public: // actually package-private
+ ::java::util::Iterator * keyIterator();
+ ::java::util::Iterator * valueIterator();
+ ::java::util::Iterator * entryIterator();
+public:
+ ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::concurrent::ConcurrentNavigableMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::concurrent::ConcurrentNavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ ::java::util::SortedMap * tailMap(::java::lang::Object *);
+ ::java::util::concurrent::ConcurrentNavigableMap * tailMap(::java::lang::Object *);
+ ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean);
+ ::java::util::concurrent::ConcurrentNavigableMap * tailMap(::java::lang::Object *, jboolean);
+ ::java::util::SortedMap * headMap(::java::lang::Object *);
+ ::java::util::concurrent::ConcurrentNavigableMap * headMap(::java::lang::Object *);
+ ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean);
+ ::java::util::concurrent::ConcurrentNavigableMap * headMap(::java::lang::Object *, jboolean);
+ ::java::util::Set * keySet();
+ ::java::util::NavigableMap * descendingMap();
+ ::java::util::concurrent::ConcurrentNavigableMap * descendingMap();
+public: // actually package-private
+ static jboolean access$15(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+ static ::java::util::concurrent::ConcurrentSkipListMap$Node * access$16(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+ static ::java::util::concurrent::ConcurrentSkipListMap$Node * access$17(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+ static jboolean access$18(::java::util::concurrent::ConcurrentSkipListMap$SubMap *, ::java::lang::Object *);
+ static jboolean access$19(::java::util::concurrent::ConcurrentSkipListMap$SubMap *, ::java::lang::Object *);
+ static ::java::util::concurrent::ConcurrentSkipListMap * access$20(::java::util::concurrent::ConcurrentSkipListMap$SubMap *);
+ static jboolean access$21(::java::util::concurrent::ConcurrentSkipListMap$SubMap *, ::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -7647078645895051609LL;
+ ::java::util::concurrent::ConcurrentSkipListMap * __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) m;
+ ::java::lang::Object * lo;
+ ::java::lang::Object * hi;
+ jboolean loInclusive;
+ jboolean hiInclusive;
+ jboolean isDescending;
+ ::java::util::concurrent::ConcurrentSkipListMap$KeySet * keySetView;
+ ::java::util::Set * entrySetView;
+ ::java::util::Collection * valuesView;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$SubMap__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h
new file mode 100644
index 000000000..fa671d814
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$ValueIterator__
+#define __java_util_concurrent_ConcurrentSkipListMap$ValueIterator__
+
+#pragma interface
+
+#include <java/util/concurrent/ConcurrentSkipListMap$Iter.h>
+
+class java::util::concurrent::ConcurrentSkipListMap$ValueIterator : public ::java::util::concurrent::ConcurrentSkipListMap$Iter
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$ValueIterator(::java::util::concurrent::ConcurrentSkipListMap *);
+public:
+ ::java::lang::Object * next();
+public: // actually package-private
+ ::java::util::concurrent::ConcurrentSkipListMap * __attribute__((aligned(__alignof__( ::java::util::concurrent::ConcurrentSkipListMap$Iter)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$ValueIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h
new file mode 100644
index 000000000..1fc3b1b8e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap$Values__
+#define __java_util_concurrent_ConcurrentSkipListMap$Values__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ConcurrentSkipListMap$Values : public ::java::util::AbstractCollection
+{
+
+public: // actually package-private
+ ConcurrentSkipListMap$Values(::java::util::concurrent::ConcurrentNavigableMap *);
+public:
+ ::java::util::Iterator * iterator();
+ jboolean isEmpty();
+ jint size();
+ jboolean contains(::java::lang::Object *);
+ void clear();
+ JArray< ::java::lang::Object * > * toArray();
+ JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+private:
+ ::java::util::concurrent::ConcurrentNavigableMap * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) m;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap$Values__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap.h
new file mode 100644
index 000000000..2f4da898b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListMap.h
@@ -0,0 +1,136 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListMap__
+#define __java_util_concurrent_ConcurrentSkipListMap__
+
+#pragma interface
+
+#include <java/util/AbstractMap.h>
+
+class java::util::concurrent::ConcurrentSkipListMap : public ::java::util::AbstractMap
+{
+
+public: // actually package-private
+ virtual void initialize();
+private:
+ jboolean casHead(::java::util::concurrent::ConcurrentSkipListMap$HeadIndex *, ::java::util::concurrent::ConcurrentSkipListMap$HeadIndex *);
+ ::java::lang::Comparable * comparable(::java::lang::Object *);
+public: // actually package-private
+ virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean inHalfOpenRange(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean inOpenRange(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+private:
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * findPredecessor(::java::lang::Comparable *);
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * findNode(::java::lang::Comparable *);
+ ::java::lang::Object * doGet(::java::lang::Object *);
+ ::java::lang::Object * getUsingFindNode(::java::lang::Comparable *);
+ ::java::lang::Object * doPut(::java::lang::Object *, ::java::lang::Object *, jboolean);
+ jint randomLevel();
+ void insertIndex(::java::util::concurrent::ConcurrentSkipListMap$Node *, jint);
+ void addIndex(::java::util::concurrent::ConcurrentSkipListMap$Index *, ::java::util::concurrent::ConcurrentSkipListMap$HeadIndex *, jint);
+public: // actually package-private
+ virtual ::java::lang::Object * doRemove(::java::lang::Object *, ::java::lang::Object *);
+private:
+ void tryReduceLevel();
+public: // actually package-private
+ virtual ::java::util::concurrent::ConcurrentSkipListMap$Node * findFirst();
+ virtual ::java::util::Map$Entry * doRemoveFirstEntry();
+private:
+ void clearIndexToFirst();
+public: // actually package-private
+ virtual ::java::util::concurrent::ConcurrentSkipListMap$Node * findLast();
+private:
+ ::java::util::concurrent::ConcurrentSkipListMap$Node * findPredecessorOfLast();
+public: // actually package-private
+ virtual ::java::util::Map$Entry * doRemoveLastEntry();
+ virtual ::java::util::concurrent::ConcurrentSkipListMap$Node * findNear(::java::lang::Object *, jint);
+ virtual ::java::util::AbstractMap$SimpleImmutableEntry * getNear(::java::lang::Object *, jint);
+public:
+ ConcurrentSkipListMap();
+ ConcurrentSkipListMap(::java::util::Comparator *);
+ ConcurrentSkipListMap(::java::util::Map *);
+ ConcurrentSkipListMap(::java::util::SortedMap *);
+ virtual ::java::util::concurrent::ConcurrentSkipListMap * ConcurrentSkipListMap$clone();
+private:
+ void buildFromSorted(::java::util::SortedMap *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public:
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual void clear();
+ virtual ::java::util::NavigableSet * ConcurrentSkipListMap$keySet();
+ virtual ::java::util::NavigableSet * navigableKeySet();
+ virtual ::java::util::Collection * values();
+ virtual ::java::util::Set * entrySet();
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$descendingMap();
+ virtual ::java::util::NavigableSet * descendingKeySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * putIfAbsent(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean replace(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * replace(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::lang::Object * firstKey();
+ virtual ::java::lang::Object * lastKey();
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$headMap(::java::lang::Object *, jboolean);
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$tailMap(::java::lang::Object *, jboolean);
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$subMap(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$headMap(::java::lang::Object *);
+ virtual ::java::util::concurrent::ConcurrentNavigableMap * ConcurrentSkipListMap$tailMap(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * lowerEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * lowerKey(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * floorEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * floorKey(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * ceilingEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * ceilingKey(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * higherEntry(::java::lang::Object *);
+ virtual ::java::lang::Object * higherKey(::java::lang::Object *);
+ virtual ::java::util::Map$Entry * firstEntry();
+ virtual ::java::util::Map$Entry * lastEntry();
+ virtual ::java::util::Map$Entry * pollFirstEntry();
+ virtual ::java::util::Map$Entry * pollLastEntry();
+public: // actually package-private
+ virtual ::java::util::Iterator * keyIterator();
+ virtual ::java::util::Iterator * valueIterator();
+ virtual ::java::util::Iterator * entryIterator();
+ static ::java::util::List * toList(::java::util::Collection *);
+public:
+ virtual ::java::util::SortedMap * subMap(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::NavigableMap * subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ virtual ::java::lang::Object * clone();
+ virtual ::java::util::SortedMap * tailMap(::java::lang::Object *);
+ virtual ::java::util::NavigableMap * tailMap(::java::lang::Object *, jboolean);
+ virtual ::java::util::SortedMap * headMap(::java::lang::Object *);
+ virtual ::java::util::NavigableMap * headMap(::java::lang::Object *, jboolean);
+ virtual ::java::util::Set * keySet();
+ virtual ::java::util::NavigableMap * descendingMap();
+public: // actually package-private
+ static ::java::lang::Object * access$9();
+private:
+ static const jlong serialVersionUID = -8627078645895051609LL;
+ static ::java::util::Random * seedGenerator;
+ static ::java::lang::Object * BASE_HEADER;
+ ::java::util::concurrent::ConcurrentSkipListMap$HeadIndex * volatile __attribute__((aligned(__alignof__( ::java::util::AbstractMap)))) head;
+ ::java::util::Comparator * comparator__;
+ jint randomSeed;
+ ::java::util::concurrent::ConcurrentSkipListMap$KeySet * keySet__;
+ ::java::util::concurrent::ConcurrentSkipListMap$EntrySet * entrySet__;
+ ::java::util::concurrent::ConcurrentSkipListMap$Values * values__;
+ ::java::util::concurrent::ConcurrentNavigableMap * descendingMap__;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * headUpdater;
+ static const jint EQ = 1;
+ static const jint LT = 2;
+ static const jint GT = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListMap__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListSet.h b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListSet.h
new file mode 100644
index 000000000..65ea1a9a9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ConcurrentSkipListSet.h
@@ -0,0 +1,75 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ConcurrentSkipListSet__
+#define __java_util_concurrent_ConcurrentSkipListSet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::ConcurrentSkipListSet : public ::java::util::AbstractSet
+{
+
+public:
+ ConcurrentSkipListSet();
+ ConcurrentSkipListSet(::java::util::Comparator *);
+ ConcurrentSkipListSet(::java::util::Collection *);
+ ConcurrentSkipListSet(::java::util::SortedSet *);
+public: // actually package-private
+ ConcurrentSkipListSet(::java::util::concurrent::ConcurrentNavigableMap *);
+public:
+ virtual ::java::util::concurrent::ConcurrentSkipListSet * ConcurrentSkipListSet$clone();
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual void clear();
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::util::Iterator * descendingIterator();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual ::java::lang::Object * lower(::java::lang::Object *);
+ virtual ::java::lang::Object * floor(::java::lang::Object *);
+ virtual ::java::lang::Object * ceiling(::java::lang::Object *);
+ virtual ::java::lang::Object * higher(::java::lang::Object *);
+ virtual ::java::lang::Object * pollFirst();
+ virtual ::java::lang::Object * pollLast();
+ virtual ::java::util::Comparator * comparator();
+ virtual ::java::lang::Object * first();
+ virtual ::java::lang::Object * last();
+ virtual ::java::util::NavigableSet * subSet(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean);
+ virtual ::java::util::NavigableSet * headSet(::java::lang::Object *, jboolean);
+ virtual ::java::util::NavigableSet * tailSet(::java::lang::Object *, jboolean);
+ virtual ::java::util::NavigableSet * ConcurrentSkipListSet$subSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::NavigableSet * ConcurrentSkipListSet$headSet(::java::lang::Object *);
+ virtual ::java::util::NavigableSet * ConcurrentSkipListSet$tailSet(::java::lang::Object *);
+ virtual ::java::util::NavigableSet * descendingSet();
+private:
+ void setMap(::java::util::concurrent::ConcurrentNavigableMap *);
+public:
+ virtual ::java::lang::Object * clone();
+ virtual ::java::util::SortedSet * subSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::util::SortedSet * tailSet(::java::lang::Object *);
+ virtual ::java::util::SortedSet * headSet(::java::lang::Object *);
+private:
+ static const jlong serialVersionUID = -2479143111061671589LL;
+ ::java::util::concurrent::ConcurrentNavigableMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) m;
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong mapOffset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ConcurrentSkipListSet__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h
new file mode 100644
index 000000000..207ce148b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$1__
+#define __java_util_concurrent_CopyOnWriteArrayList$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::CopyOnWriteArrayList$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CopyOnWriteArrayList$1(::java::util::concurrent::CopyOnWriteArrayList$SubList *, jint);
+public:
+ virtual jboolean hasNext();
+ virtual jboolean hasPrevious();
+ virtual ::java::lang::Object * next();
+ virtual ::java::lang::Object * previous();
+ virtual jint nextIndex();
+ virtual jint previousIndex();
+ virtual void remove();
+ virtual void set(::java::lang::Object *);
+ virtual void add(::java::lang::Object *);
+private:
+ ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
+ jint position;
+public: // actually package-private
+ ::java::util::concurrent::CopyOnWriteArrayList$SubList * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$1__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h
new file mode 100644
index 000000000..7e5ba9319
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$2__
+#define __java_util_concurrent_CopyOnWriteArrayList$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CopyOnWriteArrayList$2(::java::util::concurrent::CopyOnWriteArrayList *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iteratorData;
+ jint currentElement;
+ ::java::util::concurrent::CopyOnWriteArrayList * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$2__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h
new file mode 100644
index 000000000..b0cec8e53
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$3__
+#define __java_util_concurrent_CopyOnWriteArrayList$3__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList$3 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ CopyOnWriteArrayList$3(::java::util::concurrent::CopyOnWriteArrayList *, jint);
+public:
+ virtual void add(::java::lang::Object *);
+ virtual jboolean hasNext();
+ virtual jboolean hasPrevious();
+ virtual ::java::lang::Object * next();
+ virtual jint nextIndex();
+ virtual ::java::lang::Object * previous();
+ virtual jint previousIndex();
+ virtual void remove();
+ virtual void set(::java::lang::Object *);
+public: // actually package-private
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iteratorData;
+ jint currentElement;
+ ::java::util::concurrent::CopyOnWriteArrayList * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$3__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h
new file mode 100644
index 000000000..66adf0209
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__
+#define __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__
+
+#pragma interface
+
+#include <java/util/concurrent/CopyOnWriteArrayList$SubList.h>
+
+class java::util::concurrent::CopyOnWriteArrayList$RandomAccessSubList : public ::java::util::concurrent::CopyOnWriteArrayList$SubList
+{
+
+public: // actually package-private
+ CopyOnWriteArrayList$RandomAccessSubList(::java::util::concurrent::CopyOnWriteArrayList *, jint, jint);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h
new file mode 100644
index 000000000..de285a9f8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$SubList__
+#define __java_util_concurrent_CopyOnWriteArrayList$SubList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList$SubList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+ CopyOnWriteArrayList$SubList(::java::util::concurrent::CopyOnWriteArrayList *, jint, jint);
+ virtual void checkMod();
+private:
+ void checkBoundsInclusive(jint);
+ void checkBoundsExclusive(jint);
+public:
+ virtual jint size();
+ virtual void clear();
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * get(jint);
+ virtual void add(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(jint);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+public: // actually package-private
+ ::java::util::concurrent::CopyOnWriteArrayList * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) backingList;
+ jint offset;
+ jint size__;
+ JArray< ::java::lang::Object * > * data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$SubList__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList.h
new file mode 100644
index 000000000..95eec88d9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArrayList.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList__
+#define __java_util_concurrent_CopyOnWriteArrayList__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList : public ::java::lang::Object
+{
+
+public:
+ CopyOnWriteArrayList();
+ CopyOnWriteArrayList(::java::util::Collection *);
+ CopyOnWriteArrayList(JArray< ::java::lang::Object * > *);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jint indexOf(::java::lang::Object *);
+ virtual jint indexOf(::java::lang::Object *, jint);
+ virtual jint lastIndexOf(::java::lang::Object *);
+ virtual jint lastIndexOf(::java::lang::Object *, jint);
+ virtual ::java::lang::Object * clone();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::Object * get(jint);
+ virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual void add(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * remove(jint);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual void clear();
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual jboolean addAll(jint, ::java::util::Collection *);
+ virtual jboolean addIfAbsent(::java::lang::Object *);
+ virtual jint addAllAbsent(::java::util::Collection *);
+ virtual ::java::lang::String * toString();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::util::ListIterator * listIterator();
+ virtual ::java::util::ListIterator * listIterator(jint);
+ virtual ::java::util::List * subList(jint, jint);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ static jboolean equals(::java::lang::Object *, ::java::lang::Object *);
+ virtual JArray< ::java::lang::Object * > * getArray();
+ static JArray< ::java::lang::Object * > * access$0(::java::util::concurrent::CopyOnWriteArrayList *);
+ static void access$1(::java::util::concurrent::CopyOnWriteArrayList *, JArray< ::java::lang::Object * > *);
+private:
+ static const jlong serialVersionUID = 8673264195747942595LL;
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArraySet.h b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArraySet.h
new file mode 100644
index 000000000..9fb8c8396
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CopyOnWriteArraySet.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArraySet__
+#define __java_util_concurrent_CopyOnWriteArraySet__
+
+#pragma interface
+
+#include <java/util/AbstractSet.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArraySet : public ::java::util::AbstractSet
+{
+
+public:
+ CopyOnWriteArraySet();
+ CopyOnWriteArraySet(::java::util::Collection *);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual void clear();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean addAll(::java::util::Collection *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual ::java::util::Iterator * iterator();
+ virtual jboolean equals(::java::lang::Object *);
+private:
+ static jboolean eq(::java::lang::Object *, ::java::lang::Object *);
+ static const jlong serialVersionUID = 5457747651344034263LL;
+ ::java::util::concurrent::CopyOnWriteArrayList * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) al;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArraySet__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CountDownLatch$Sync.h b/gcc-4.8/libjava/java/util/concurrent/CountDownLatch$Sync.h
new file mode 100644
index 000000000..ee8e75126
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CountDownLatch$Sync.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CountDownLatch$Sync__
+#define __java_util_concurrent_CountDownLatch$Sync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractQueuedSynchronizer.h>
+
+class java::util::concurrent::CountDownLatch$Sync : public ::java::util::concurrent::locks::AbstractQueuedSynchronizer
+{
+
+public: // actually package-private
+ CountDownLatch$Sync(jint);
+ jint getCount();
+public:
+ jint tryAcquireShared(jint);
+ jboolean tryReleaseShared(jint);
+private:
+ static const jlong serialVersionUID = 4982264981922014374LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CountDownLatch$Sync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CountDownLatch.h b/gcc-4.8/libjava/java/util/concurrent/CountDownLatch.h
new file mode 100644
index 000000000..68609d313
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CountDownLatch.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CountDownLatch__
+#define __java_util_concurrent_CountDownLatch__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::CountDownLatch : public ::java::lang::Object
+{
+
+public:
+ CountDownLatch(jint);
+ virtual void await();
+ virtual jboolean await(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void countDown();
+ virtual jlong getCount();
+ virtual ::java::lang::String * toString();
+private:
+ ::java::util::concurrent::CountDownLatch$Sync * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CountDownLatch__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CyclicBarrier$Generation.h b/gcc-4.8/libjava/java/util/concurrent/CyclicBarrier$Generation.h
new file mode 100644
index 000000000..c3d7e4ab1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CyclicBarrier$Generation.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CyclicBarrier$Generation__
+#define __java_util_concurrent_CyclicBarrier$Generation__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::CyclicBarrier$Generation : public ::java::lang::Object
+{
+
+ CyclicBarrier$Generation();
+public: // actually package-private
+ CyclicBarrier$Generation(::java::util::concurrent::CyclicBarrier$Generation *);
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) broken;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CyclicBarrier$Generation__
diff --git a/gcc-4.8/libjava/java/util/concurrent/CyclicBarrier.h b/gcc-4.8/libjava/java/util/concurrent/CyclicBarrier.h
new file mode 100644
index 000000000..c6c4b3e4f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/CyclicBarrier.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CyclicBarrier__
+#define __java_util_concurrent_CyclicBarrier__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::CyclicBarrier : public ::java::lang::Object
+{
+
+ void nextGeneration();
+ void breakBarrier();
+ jint dowait(jboolean, jlong);
+public:
+ CyclicBarrier(jint, ::java::lang::Runnable *);
+ CyclicBarrier(jint);
+ virtual jint getParties();
+ virtual jint await();
+ virtual jint await(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean isBroken();
+ virtual void reset();
+ virtual jint getNumberWaiting();
+private:
+ ::java::util::concurrent::locks::ReentrantLock * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lock;
+ ::java::util::concurrent::locks::Condition * trip;
+ jint parties;
+ ::java::lang::Runnable * barrierCommand;
+ ::java::util::concurrent::CyclicBarrier$Generation * generation;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CyclicBarrier__
diff --git a/gcc-4.8/libjava/java/util/concurrent/DelayQueue$Itr.h b/gcc-4.8/libjava/java/util/concurrent/DelayQueue$Itr.h
new file mode 100644
index 000000000..cdcc1bf20
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/DelayQueue$Itr.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_DelayQueue$Itr__
+#define __java_util_concurrent_DelayQueue$Itr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::DelayQueue$Itr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ DelayQueue$Itr(::java::util::concurrent::DelayQueue *, JArray< ::java::lang::Object * > *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::util::concurrent::Delayed * DelayQueue$Itr$next();
+ virtual void remove();
+ virtual ::java::lang::Object * next();
+public: // actually package-private
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) array;
+ jint cursor;
+ jint lastRet;
+ ::java::util::concurrent::DelayQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_DelayQueue$Itr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/DelayQueue.h b/gcc-4.8/libjava/java/util/concurrent/DelayQueue.h
new file mode 100644
index 000000000..b97f32248
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/DelayQueue.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_DelayQueue__
+#define __java_util_concurrent_DelayQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::DelayQueue : public ::java::util::AbstractQueue
+{
+
+public:
+ DelayQueue();
+ DelayQueue(::java::util::Collection *);
+ virtual jboolean DelayQueue$add(::java::util::concurrent::Delayed *);
+ virtual jboolean DelayQueue$offer(::java::util::concurrent::Delayed *);
+ virtual void DelayQueue$put(::java::util::concurrent::Delayed *);
+ virtual jboolean DelayQueue$offer(::java::util::concurrent::Delayed *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::Delayed * DelayQueue$poll();
+ virtual ::java::util::concurrent::Delayed * DelayQueue$take();
+ virtual ::java::util::concurrent::Delayed * DelayQueue$poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::Delayed * DelayQueue$peek();
+ virtual jint size();
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+ virtual void clear();
+ virtual jint remainingCapacity();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * take();
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * peek();
+ virtual jboolean add(::java::lang::Object *);
+ virtual void put(::java::lang::Object *);
+public: // actually package-private
+ static ::java::util::concurrent::locks::ReentrantLock * access$8(::java::util::concurrent::DelayQueue *);
+ static ::java::util::PriorityQueue * access$9(::java::util::concurrent::DelayQueue *);
+private:
+ ::java::util::concurrent::locks::ReentrantLock * __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) lock;
+ ::java::util::concurrent::locks::Condition * available;
+ ::java::util::PriorityQueue * q;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_DelayQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Delayed.h b/gcc-4.8/libjava/java/util/concurrent/Delayed.h
new file mode 100644
index 000000000..2a8d4e5d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Delayed.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Delayed__
+#define __java_util_concurrent_Delayed__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Delayed : public ::java::lang::Object
+{
+
+public:
+ virtual jlong getDelay(::java::util::concurrent::TimeUnit *) = 0;
+ virtual jint compareTo(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_Delayed__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Exchanger$Node.h b/gcc-4.8/libjava/java/util/concurrent/Exchanger$Node.h
new file mode 100644
index 000000000..4bd3890ea
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Exchanger$Node.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Exchanger$Node__
+#define __java_util_concurrent_Exchanger$Node__
+
+#pragma interface
+
+#include <java/util/concurrent/atomic/AtomicReference.h>
+
+class java::util::concurrent::Exchanger$Node : public ::java::util::concurrent::atomic::AtomicReference
+{
+
+public:
+ Exchanger$Node(::java::lang::Object *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicReference)))) item;
+ ::java::lang::Thread * volatile waiter;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Exchanger$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Exchanger$Slot.h b/gcc-4.8/libjava/java/util/concurrent/Exchanger$Slot.h
new file mode 100644
index 000000000..4d1d41654
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Exchanger$Slot.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Exchanger$Slot__
+#define __java_util_concurrent_Exchanger$Slot__
+
+#pragma interface
+
+#include <java/util/concurrent/atomic/AtomicReference.h>
+
+class java::util::concurrent::Exchanger$Slot : public ::java::util::concurrent::atomic::AtomicReference
+{
+
+ Exchanger$Slot();
+public: // actually package-private
+ Exchanger$Slot(::java::util::concurrent::Exchanger$Slot *);
+ jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicReference)))) q0;
+ jlong q1;
+ jlong q2;
+ jlong q3;
+ jlong q4;
+ jlong q5;
+ jlong q6;
+ jlong q7;
+ jlong q8;
+ jlong q9;
+ jlong qa;
+ jlong qb;
+ jlong qc;
+ jlong qd;
+ jlong qe;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Exchanger$Slot__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Exchanger.h b/gcc-4.8/libjava/java/util/concurrent/Exchanger.h
new file mode 100644
index 000000000..5a0993e26
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Exchanger.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Exchanger__
+#define __java_util_concurrent_Exchanger__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::Exchanger : public ::java::lang::Object
+{
+
+ ::java::lang::Object * doExchange(::java::lang::Object *, jboolean, jlong);
+ jint hashIndex();
+ void createSlot(jint);
+ static jboolean tryCancel(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *);
+ static ::java::lang::Object * spinWait(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *);
+ static ::java::lang::Object * await(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *);
+ ::java::lang::Object * awaitNanos(::java::util::concurrent::Exchanger$Node *, ::java::util::concurrent::Exchanger$Slot *, jlong);
+ ::java::lang::Object * scanOnTimeout(::java::util::concurrent::Exchanger$Node *);
+public:
+ Exchanger();
+ virtual ::java::lang::Object * exchange(::java::lang::Object *);
+ virtual ::java::lang::Object * exchange(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+private:
+ static jint NCPU;
+ static const jint CAPACITY = 32;
+ static jint FULL;
+ static jint SPINS;
+ static jint TIMED_SPINS;
+ static ::java::lang::Object * CANCEL;
+ static ::java::lang::Object * NULL_ITEM;
+ JArray< ::java::util::concurrent::Exchanger$Slot * > * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) arena;
+ ::java::util::concurrent::atomic::AtomicInteger * max;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Exchanger__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ExecutionException.h b/gcc-4.8/libjava/java/util/concurrent/ExecutionException.h
new file mode 100644
index 000000000..3f210c7df
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ExecutionException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ExecutionException__
+#define __java_util_concurrent_ExecutionException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::concurrent::ExecutionException : public ::java::lang::Exception
+{
+
+public: // actually protected
+ ExecutionException();
+ ExecutionException(::java::lang::String *);
+public:
+ ExecutionException(::java::lang::String *, ::java::lang::Throwable *);
+ ExecutionException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = 7830266012832686185LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ExecutionException__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executor.h b/gcc-4.8/libjava/java/util/concurrent/Executor.h
new file mode 100644
index 000000000..2e59bc466
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executor.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executor__
+#define __java_util_concurrent_Executor__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executor : public ::java::lang::Object
+{
+
+public:
+ virtual void execute(::java::lang::Runnable *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_Executor__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h b/gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h
new file mode 100644
index 000000000..806cecfe2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ExecutorCompletionService$QueueingFuture__
+#define __java_util_concurrent_ExecutorCompletionService$QueueingFuture__
+
+#pragma interface
+
+#include <java/util/concurrent/FutureTask.h>
+
+class java::util::concurrent::ExecutorCompletionService$QueueingFuture : public ::java::util::concurrent::FutureTask
+{
+
+public: // actually package-private
+ ExecutorCompletionService$QueueingFuture(::java::util::concurrent::ExecutorCompletionService *, ::java::util::concurrent::RunnableFuture *);
+public: // actually protected
+ virtual void done();
+private:
+ ::java::util::concurrent::Future * __attribute__((aligned(__alignof__( ::java::util::concurrent::FutureTask)))) task;
+public: // actually package-private
+ ::java::util::concurrent::ExecutorCompletionService * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ExecutorCompletionService$QueueingFuture__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService.h b/gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService.h
new file mode 100644
index 000000000..922e2d98e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ExecutorCompletionService.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ExecutorCompletionService__
+#define __java_util_concurrent_ExecutorCompletionService__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ExecutorCompletionService : public ::java::lang::Object
+{
+
+ ::java::util::concurrent::RunnableFuture * newTaskFor(::java::util::concurrent::Callable *);
+ ::java::util::concurrent::RunnableFuture * newTaskFor(::java::lang::Runnable *, ::java::lang::Object *);
+public:
+ ExecutorCompletionService(::java::util::concurrent::Executor *);
+ ExecutorCompletionService(::java::util::concurrent::Executor *, ::java::util::concurrent::BlockingQueue *);
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *);
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *);
+ virtual ::java::util::concurrent::Future * take();
+ virtual ::java::util::concurrent::Future * poll();
+ virtual ::java::util::concurrent::Future * poll(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ static ::java::util::concurrent::BlockingQueue * access$0(::java::util::concurrent::ExecutorCompletionService *);
+private:
+ ::java::util::concurrent::Executor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) executor;
+ ::java::util::concurrent::AbstractExecutorService * aes;
+ ::java::util::concurrent::BlockingQueue * completionQueue;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ExecutorCompletionService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ExecutorService.h b/gcc-4.8/libjava/java/util/concurrent/ExecutorService.h
new file mode 100644
index 000000000..3c2431495
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ExecutorService.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ExecutorService__
+#define __java_util_concurrent_ExecutorService__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ExecutorService : public ::java::lang::Object
+{
+
+public:
+ virtual void shutdown() = 0;
+ virtual ::java::util::List * shutdownNow() = 0;
+ virtual jboolean isShutdown() = 0;
+ virtual jboolean isTerminated() = 0;
+ virtual jboolean awaitTermination(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *) = 0;
+ virtual ::java::util::List * invokeAll(::java::util::Collection *) = 0;
+ virtual ::java::util::List * invokeAll(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *) = 0;
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual void execute(::java::lang::Runnable *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_ExecutorService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$1.h b/gcc-4.8/libjava/java/util/concurrent/Executors$1.h
new file mode 100644
index 000000000..9830f9f39
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$1.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$1__
+#define __java_util_concurrent_Executors$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executors$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$1(::java::util::concurrent::Executors$PrivilegedCallable *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::util::concurrent::Executors$PrivilegedCallable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$1__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$2.h b/gcc-4.8/libjava/java/util/concurrent/Executors$2.h
new file mode 100644
index 000000000..2a9c2e096
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$2.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$2__
+#define __java_util_concurrent_Executors$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executors$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$2(::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$2__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$3.h b/gcc-4.8/libjava/java/util/concurrent/Executors$3.h
new file mode 100644
index 000000000..d8f9cd780
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$3.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$3__
+#define __java_util_concurrent_Executors$3__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executors$3 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$3(::java::util::concurrent::Executors$PrivilegedThreadFactory *, ::java::lang::Runnable *);
+public:
+ virtual void run();
+public: // actually package-private
+ static ::java::util::concurrent::Executors$PrivilegedThreadFactory * access$0(::java::util::concurrent::Executors$3 *);
+ ::java::util::concurrent::Executors$PrivilegedThreadFactory * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
+private:
+ ::java::lang::Runnable * val$r;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$3__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$4.h b/gcc-4.8/libjava/java/util/concurrent/Executors$4.h
new file mode 100644
index 000000000..e38ca3f40
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$4.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$4__
+#define __java_util_concurrent_Executors$4__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executors$4 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$4(::java::util::concurrent::Executors$3 *, ::java::lang::Runnable *);
+public:
+ virtual ::java::lang::Object * run();
+public: // actually package-private
+ ::java::util::concurrent::Executors$3 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$2;
+private:
+ ::java::lang::Runnable * val$r;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$4__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$5.h b/gcc-4.8/libjava/java/util/concurrent/Executors$5.h
new file mode 100644
index 000000000..e69ed2f36
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$5.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$5__
+#define __java_util_concurrent_Executors$5__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivilegedAction;
+ }
+ }
+}
+
+class java::util::concurrent::Executors$5 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$5(::java::security::PrivilegedAction *);
+public:
+ virtual ::java::lang::Object * call();
+private:
+ ::java::security::PrivilegedAction * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$action;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$5__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$6.h b/gcc-4.8/libjava/java/util/concurrent/Executors$6.h
new file mode 100644
index 000000000..26291e25d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$6.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$6__
+#define __java_util_concurrent_Executors$6__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivilegedExceptionAction;
+ }
+ }
+}
+
+class java::util::concurrent::Executors$6 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$6(::java::security::PrivilegedExceptionAction *);
+public:
+ virtual ::java::lang::Object * call();
+private:
+ ::java::security::PrivilegedExceptionAction * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$action;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$6__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$DefaultThreadFactory.h b/gcc-4.8/libjava/java/util/concurrent/Executors$DefaultThreadFactory.h
new file mode 100644
index 000000000..7a2d8a757
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$DefaultThreadFactory.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$DefaultThreadFactory__
+#define __java_util_concurrent_Executors$DefaultThreadFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executors$DefaultThreadFactory : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$DefaultThreadFactory();
+public:
+ virtual ::java::lang::Thread * newThread(::java::lang::Runnable *);
+public: // actually package-private
+ static ::java::util::concurrent::atomic::AtomicInteger * poolNumber;
+ ::java::lang::ThreadGroup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) group;
+ ::java::util::concurrent::atomic::AtomicInteger * threadNumber;
+ ::java::lang::String * namePrefix;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$DefaultThreadFactory__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedExecutorService.h b/gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedExecutorService.h
new file mode 100644
index 000000000..6bca4b1f2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedExecutorService.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$DelegatedExecutorService__
+#define __java_util_concurrent_Executors$DelegatedExecutorService__
+
+#pragma interface
+
+#include <java/util/concurrent/AbstractExecutorService.h>
+
+class java::util::concurrent::Executors$DelegatedExecutorService : public ::java::util::concurrent::AbstractExecutorService
+{
+
+public: // actually package-private
+ Executors$DelegatedExecutorService(::java::util::concurrent::ExecutorService *);
+public:
+ virtual void execute(::java::lang::Runnable *);
+ virtual void shutdown();
+ virtual ::java::util::List * shutdownNow();
+ virtual jboolean isShutdown();
+ virtual jboolean isTerminated();
+ virtual jboolean awaitTermination(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *);
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *);
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *);
+ virtual ::java::util::List * invokeAll(::java::util::Collection *);
+ virtual ::java::util::List * invokeAll(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *);
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *);
+private:
+ ::java::util::concurrent::ExecutorService * __attribute__((aligned(__alignof__( ::java::util::concurrent::AbstractExecutorService)))) e;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$DelegatedExecutorService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h b/gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h
new file mode 100644
index 000000000..a7efdb071
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$DelegatedScheduledExecutorService__
+#define __java_util_concurrent_Executors$DelegatedScheduledExecutorService__
+
+#pragma interface
+
+#include <java/util/concurrent/Executors$DelegatedExecutorService.h>
+
+class java::util::concurrent::Executors$DelegatedScheduledExecutorService : public ::java::util::concurrent::Executors$DelegatedExecutorService
+{
+
+public: // actually package-private
+ Executors$DelegatedScheduledExecutorService(::java::util::concurrent::ScheduledExecutorService *);
+public:
+ virtual ::java::util::concurrent::ScheduledFuture * schedule(::java::lang::Runnable *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::ScheduledFuture * schedule(::java::util::concurrent::Callable *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::ScheduledFuture * scheduleAtFixedRate(::java::lang::Runnable *, jlong, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::ScheduledFuture * scheduleWithFixedDelay(::java::lang::Runnable *, jlong, jlong, ::java::util::concurrent::TimeUnit *);
+private:
+ ::java::util::concurrent::ScheduledExecutorService * __attribute__((aligned(__alignof__( ::java::util::concurrent::Executors$DelegatedExecutorService)))) e;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$DelegatedScheduledExecutorService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h b/gcc-4.8/libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h
new file mode 100644
index 000000000..fd4f2bd76
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$FinalizableDelegatedExecutorService__
+#define __java_util_concurrent_Executors$FinalizableDelegatedExecutorService__
+
+#pragma interface
+
+#include <java/util/concurrent/Executors$DelegatedExecutorService.h>
+
+class java::util::concurrent::Executors$FinalizableDelegatedExecutorService : public ::java::util::concurrent::Executors$DelegatedExecutorService
+{
+
+public: // actually package-private
+ Executors$FinalizableDelegatedExecutorService(::java::util::concurrent::ExecutorService *);
+public: // actually protected
+ virtual void finalize();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$FinalizableDelegatedExecutorService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallable.h b/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallable.h
new file mode 100644
index 000000000..09609857d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallable.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$PrivilegedCallable__
+#define __java_util_concurrent_Executors$PrivilegedCallable__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlContext;
+ }
+ }
+}
+
+class java::util::concurrent::Executors$PrivilegedCallable : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$PrivilegedCallable(::java::util::concurrent::Callable *);
+public:
+ ::java::lang::Object * call();
+public: // actually package-private
+ static ::java::util::concurrent::Callable * access$0(::java::util::concurrent::Executors$PrivilegedCallable *);
+ static void access$1(::java::util::concurrent::Executors$PrivilegedCallable *, ::java::lang::Object *);
+ static void access$2(::java::util::concurrent::Executors$PrivilegedCallable *, ::java::lang::Exception *);
+private:
+ ::java::security::AccessControlContext * __attribute__((aligned(__alignof__( ::java::lang::Object)))) acc;
+ ::java::util::concurrent::Callable * task;
+ ::java::lang::Object * result;
+ ::java::lang::Exception * exception;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$PrivilegedCallable__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h b/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h
new file mode 100644
index 000000000..452f6ef25
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$PrivilegedCallableUsingCurrentClassLoader__
+#define __java_util_concurrent_Executors$PrivilegedCallableUsingCurrentClassLoader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlContext;
+ }
+ }
+}
+
+class java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$PrivilegedCallableUsingCurrentClassLoader(::java::util::concurrent::Callable *);
+public:
+ ::java::lang::Object * call();
+public: // actually package-private
+ static ::java::lang::ClassLoader * access$0(::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader *);
+ static ::java::util::concurrent::Callable * access$1(::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader *);
+ static void access$2(::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader *, ::java::lang::Object *);
+ static void access$3(::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader *, ::java::lang::Exception *);
+private:
+ ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ccl;
+ ::java::security::AccessControlContext * acc;
+ ::java::util::concurrent::Callable * task;
+ ::java::lang::Object * result;
+ ::java::lang::Exception * exception;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$PrivilegedCallableUsingCurrentClassLoader__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h b/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h
new file mode 100644
index 000000000..0258eea5e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$PrivilegedThreadFactory__
+#define __java_util_concurrent_Executors$PrivilegedThreadFactory__
+
+#pragma interface
+
+#include <java/util/concurrent/Executors$DefaultThreadFactory.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class AccessControlContext;
+ }
+ }
+}
+
+class java::util::concurrent::Executors$PrivilegedThreadFactory : public ::java::util::concurrent::Executors$DefaultThreadFactory
+{
+
+public: // actually package-private
+ Executors$PrivilegedThreadFactory();
+public:
+ virtual ::java::lang::Thread * newThread(::java::lang::Runnable *);
+public: // actually package-private
+ static ::java::lang::ClassLoader * access$0(::java::util::concurrent::Executors$PrivilegedThreadFactory *);
+ static ::java::security::AccessControlContext * access$1(::java::util::concurrent::Executors$PrivilegedThreadFactory *);
+private:
+ ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::util::concurrent::Executors$DefaultThreadFactory)))) ccl;
+ ::java::security::AccessControlContext * acc;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$PrivilegedThreadFactory__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors$RunnableAdapter.h b/gcc-4.8/libjava/java/util/concurrent/Executors$RunnableAdapter.h
new file mode 100644
index 000000000..5d75fe835
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors$RunnableAdapter.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors$RunnableAdapter__
+#define __java_util_concurrent_Executors$RunnableAdapter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Executors$RunnableAdapter : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Executors$RunnableAdapter(::java::lang::Runnable *, ::java::lang::Object *);
+public:
+ ::java::lang::Object * call();
+public: // actually package-private
+ ::java::lang::Runnable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) task;
+ ::java::lang::Object * result;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors$RunnableAdapter__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Executors.h b/gcc-4.8/libjava/java/util/concurrent/Executors.h
new file mode 100644
index 000000000..8e6a428a1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Executors.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Executors__
+#define __java_util_concurrent_Executors__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class PrivilegedAction;
+ class PrivilegedExceptionAction;
+ }
+ }
+}
+
+class java::util::concurrent::Executors : public ::java::lang::Object
+{
+
+public:
+ static ::java::util::concurrent::ExecutorService * newFixedThreadPool(jint);
+ static ::java::util::concurrent::ExecutorService * newFixedThreadPool(jint, ::java::util::concurrent::ThreadFactory *);
+ static ::java::util::concurrent::ExecutorService * newSingleThreadExecutor();
+ static ::java::util::concurrent::ExecutorService * newSingleThreadExecutor(::java::util::concurrent::ThreadFactory *);
+ static ::java::util::concurrent::ExecutorService * newCachedThreadPool();
+ static ::java::util::concurrent::ExecutorService * newCachedThreadPool(::java::util::concurrent::ThreadFactory *);
+ static ::java::util::concurrent::ScheduledExecutorService * newSingleThreadScheduledExecutor();
+ static ::java::util::concurrent::ScheduledExecutorService * newSingleThreadScheduledExecutor(::java::util::concurrent::ThreadFactory *);
+ static ::java::util::concurrent::ScheduledExecutorService * newScheduledThreadPool(jint);
+ static ::java::util::concurrent::ScheduledExecutorService * newScheduledThreadPool(jint, ::java::util::concurrent::ThreadFactory *);
+ static ::java::util::concurrent::ExecutorService * unconfigurableExecutorService(::java::util::concurrent::ExecutorService *);
+ static ::java::util::concurrent::ScheduledExecutorService * unconfigurableScheduledExecutorService(::java::util::concurrent::ScheduledExecutorService *);
+ static ::java::util::concurrent::ThreadFactory * defaultThreadFactory();
+ static ::java::util::concurrent::ThreadFactory * privilegedThreadFactory();
+ static ::java::util::concurrent::Callable * callable(::java::lang::Runnable *, ::java::lang::Object *);
+ static ::java::util::concurrent::Callable * callable(::java::lang::Runnable *);
+ static ::java::util::concurrent::Callable * callable(::java::security::PrivilegedAction *);
+ static ::java::util::concurrent::Callable * callable(::java::security::PrivilegedExceptionAction *);
+ static ::java::util::concurrent::Callable * privilegedCallable(::java::util::concurrent::Callable *);
+ static ::java::util::concurrent::Callable * privilegedCallableUsingCurrentClassLoader(::java::util::concurrent::Callable *);
+private:
+ Executors();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Executors__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Future.h b/gcc-4.8/libjava/java/util/concurrent/Future.h
new file mode 100644
index 000000000..9f70627a7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Future.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Future__
+#define __java_util_concurrent_Future__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Future : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean cancel(jboolean) = 0;
+ virtual jboolean isCancelled() = 0;
+ virtual jboolean isDone() = 0;
+ virtual ::java::lang::Object * get() = 0;
+ virtual ::java::lang::Object * get(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_Future__
diff --git a/gcc-4.8/libjava/java/util/concurrent/FutureTask$Sync.h b/gcc-4.8/libjava/java/util/concurrent/FutureTask$Sync.h
new file mode 100644
index 000000000..edaa1cad7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/FutureTask$Sync.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_FutureTask$Sync__
+#define __java_util_concurrent_FutureTask$Sync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractQueuedSynchronizer.h>
+
+class java::util::concurrent::FutureTask$Sync : public ::java::util::concurrent::locks::AbstractQueuedSynchronizer
+{
+
+public: // actually package-private
+ FutureTask$Sync(::java::util::concurrent::FutureTask *, ::java::util::concurrent::Callable *);
+private:
+ jboolean ranOrCancelled(jint);
+public: // actually protected
+ jint tryAcquireShared(jint);
+ jboolean tryReleaseShared(jint);
+public: // actually package-private
+ jboolean innerIsCancelled();
+ jboolean innerIsDone();
+ ::java::lang::Object * innerGet();
+ ::java::lang::Object * innerGet(jlong);
+ void innerSet(::java::lang::Object *);
+ void innerSetException(::java::lang::Throwable *);
+ jboolean innerCancel(jboolean);
+ void innerRun();
+ jboolean innerRunAndReset();
+private:
+ static const jlong serialVersionUID = -7828117401763700385LL;
+ static const jint RUNNING = 1;
+ static const jint RAN = 2;
+ static const jint CANCELLED = 4;
+ ::java::util::concurrent::Callable * __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractQueuedSynchronizer)))) callable;
+ ::java::lang::Object * result;
+ ::java::lang::Throwable * exception;
+ ::java::lang::Thread * volatile runner;
+public: // actually package-private
+ ::java::util::concurrent::FutureTask * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_FutureTask$Sync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/FutureTask.h b/gcc-4.8/libjava/java/util/concurrent/FutureTask.h
new file mode 100644
index 000000000..a86215f43
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/FutureTask.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_FutureTask__
+#define __java_util_concurrent_FutureTask__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::FutureTask : public ::java::lang::Object
+{
+
+public:
+ FutureTask(::java::util::concurrent::Callable *);
+ FutureTask(::java::lang::Runnable *, ::java::lang::Object *);
+ virtual jboolean isCancelled();
+ virtual jboolean isDone();
+ virtual jboolean cancel(jboolean);
+ virtual ::java::lang::Object * get();
+ virtual ::java::lang::Object * get(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually protected
+ virtual void done();
+ virtual void set(::java::lang::Object *);
+ virtual void setException(::java::lang::Throwable *);
+public:
+ virtual void run();
+public: // actually protected
+ virtual jboolean runAndReset();
+private:
+ ::java::util::concurrent::FutureTask$Sync * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_FutureTask__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h
new file mode 100644
index 000000000..2aeec8a97
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingDeque$AbstractItr__
+#define __java_util_concurrent_LinkedBlockingDeque$AbstractItr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::LinkedBlockingDeque$AbstractItr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedBlockingDeque$AbstractItr(::java::util::concurrent::LinkedBlockingDeque *);
+ virtual void advance() = 0;
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ ::java::util::concurrent::LinkedBlockingDeque$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__;
+ ::java::lang::Object * nextItem;
+private:
+ ::java::util::concurrent::LinkedBlockingDeque$Node * lastRet;
+public: // actually package-private
+ ::java::util::concurrent::LinkedBlockingDeque * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingDeque$AbstractItr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h
new file mode 100644
index 000000000..a18b4d979
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingDeque$DescendingItr__
+#define __java_util_concurrent_LinkedBlockingDeque$DescendingItr__
+
+#pragma interface
+
+#include <java/util/concurrent/LinkedBlockingDeque$AbstractItr.h>
+
+class java::util::concurrent::LinkedBlockingDeque$DescendingItr : public ::java::util::concurrent::LinkedBlockingDeque$AbstractItr
+{
+
+ LinkedBlockingDeque$DescendingItr(::java::util::concurrent::LinkedBlockingDeque *);
+public: // actually package-private
+ virtual void advance();
+ LinkedBlockingDeque$DescendingItr(::java::util::concurrent::LinkedBlockingDeque *, ::java::util::concurrent::LinkedBlockingDeque$DescendingItr *);
+ ::java::util::concurrent::LinkedBlockingDeque * __attribute__((aligned(__alignof__( ::java::util::concurrent::LinkedBlockingDeque$AbstractItr)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingDeque$DescendingItr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h
new file mode 100644
index 000000000..ad17e7a5e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingDeque$Itr__
+#define __java_util_concurrent_LinkedBlockingDeque$Itr__
+
+#pragma interface
+
+#include <java/util/concurrent/LinkedBlockingDeque$AbstractItr.h>
+
+class java::util::concurrent::LinkedBlockingDeque$Itr : public ::java::util::concurrent::LinkedBlockingDeque$AbstractItr
+{
+
+ LinkedBlockingDeque$Itr(::java::util::concurrent::LinkedBlockingDeque *);
+public: // actually package-private
+ virtual void advance();
+ LinkedBlockingDeque$Itr(::java::util::concurrent::LinkedBlockingDeque *, ::java::util::concurrent::LinkedBlockingDeque$Itr *);
+ ::java::util::concurrent::LinkedBlockingDeque * __attribute__((aligned(__alignof__( ::java::util::concurrent::LinkedBlockingDeque$AbstractItr)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingDeque$Itr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Node.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Node.h
new file mode 100644
index 000000000..423279f47
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque$Node.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingDeque$Node__
+#define __java_util_concurrent_LinkedBlockingDeque$Node__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::LinkedBlockingDeque$Node : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedBlockingDeque$Node(::java::lang::Object *, ::java::util::concurrent::LinkedBlockingDeque$Node *, ::java::util::concurrent::LinkedBlockingDeque$Node *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) item;
+ ::java::util::concurrent::LinkedBlockingDeque$Node * prev;
+ ::java::util::concurrent::LinkedBlockingDeque$Node * next;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingDeque$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque.h
new file mode 100644
index 000000000..43d3adf4a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingDeque.h
@@ -0,0 +1,96 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingDeque__
+#define __java_util_concurrent_LinkedBlockingDeque__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::LinkedBlockingDeque : public ::java::util::AbstractQueue
+{
+
+public:
+ LinkedBlockingDeque();
+ LinkedBlockingDeque(jint);
+ LinkedBlockingDeque(::java::util::Collection *);
+private:
+ jboolean linkFirst(::java::lang::Object *);
+ jboolean linkLast(::java::lang::Object *);
+ ::java::lang::Object * unlinkFirst();
+ ::java::lang::Object * unlinkLast();
+ void unlink(::java::util::concurrent::LinkedBlockingDeque$Node *);
+public:
+ virtual void addFirst(::java::lang::Object *);
+ virtual void addLast(::java::lang::Object *);
+ virtual jboolean offerFirst(::java::lang::Object *);
+ virtual jboolean offerLast(::java::lang::Object *);
+ virtual void putFirst(::java::lang::Object *);
+ virtual void putLast(::java::lang::Object *);
+ virtual jboolean offerFirst(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean offerLast(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * removeFirst();
+ virtual ::java::lang::Object * removeLast();
+ virtual ::java::lang::Object * pollFirst();
+ virtual ::java::lang::Object * pollLast();
+ virtual ::java::lang::Object * takeFirst();
+ virtual ::java::lang::Object * takeLast();
+ virtual ::java::lang::Object * pollFirst(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * pollLast(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * getFirst();
+ virtual ::java::lang::Object * getLast();
+ virtual ::java::lang::Object * peekFirst();
+ virtual ::java::lang::Object * peekLast();
+ virtual jboolean removeFirstOccurrence(::java::lang::Object *);
+ virtual jboolean removeLastOccurrence(::java::lang::Object *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual void put(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * remove();
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * take();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * element();
+ virtual ::java::lang::Object * peek();
+ virtual jint remainingCapacity();
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+ virtual void push(::java::lang::Object *);
+ virtual ::java::lang::Object * pop();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jint size();
+ virtual jboolean contains(::java::lang::Object *);
+public: // actually package-private
+ virtual jboolean removeNode(::java::util::concurrent::LinkedBlockingDeque$Node *);
+public:
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+ virtual void clear();
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::util::Iterator * descendingIterator();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ static ::java::util::concurrent::locks::ReentrantLock * access$0(::java::util::concurrent::LinkedBlockingDeque *);
+ static ::java::util::concurrent::LinkedBlockingDeque$Node * access$1(::java::util::concurrent::LinkedBlockingDeque *);
+ static ::java::util::concurrent::LinkedBlockingDeque$Node * access$2(::java::util::concurrent::LinkedBlockingDeque *);
+private:
+ static const jlong serialVersionUID = -387911632671998426LL;
+ ::java::util::concurrent::LinkedBlockingDeque$Node * __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) first;
+ ::java::util::concurrent::LinkedBlockingDeque$Node * last;
+ jint count;
+ jint capacity;
+ ::java::util::concurrent::locks::ReentrantLock * lock;
+ ::java::util::concurrent::locks::Condition * notEmpty;
+ ::java::util::concurrent::locks::Condition * notFull;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingDeque__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h
new file mode 100644
index 000000000..e7e0e526d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingQueue$Itr__
+#define __java_util_concurrent_LinkedBlockingQueue$Itr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::LinkedBlockingQueue$Itr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedBlockingQueue$Itr(::java::util::concurrent::LinkedBlockingQueue *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+private:
+ ::java::util::concurrent::LinkedBlockingQueue$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) current;
+ ::java::util::concurrent::LinkedBlockingQueue$Node * lastRet;
+ ::java::lang::Object * currentElement;
+public: // actually package-private
+ ::java::util::concurrent::LinkedBlockingQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingQueue$Itr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Node.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Node.h
new file mode 100644
index 000000000..1cf8cda9d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue$Node.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingQueue$Node__
+#define __java_util_concurrent_LinkedBlockingQueue$Node__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::LinkedBlockingQueue$Node : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LinkedBlockingQueue$Node(::java::lang::Object *);
+ ::java::lang::Object * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) item;
+ ::java::util::concurrent::LinkedBlockingQueue$Node * next;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingQueue$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue.h b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue.h
new file mode 100644
index 000000000..42028ec38
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/LinkedBlockingQueue.h
@@ -0,0 +1,71 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_LinkedBlockingQueue__
+#define __java_util_concurrent_LinkedBlockingQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::LinkedBlockingQueue : public ::java::util::AbstractQueue
+{
+
+ void signalNotEmpty();
+ void signalNotFull();
+ void insert(::java::lang::Object *);
+ ::java::lang::Object * extract();
+ void fullyLock();
+ void fullyUnlock();
+public:
+ LinkedBlockingQueue();
+ LinkedBlockingQueue(jint);
+ LinkedBlockingQueue(::java::util::Collection *);
+ virtual jint size();
+ virtual jint remainingCapacity();
+ virtual void put(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * take();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * peek();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::lang::String * toString();
+ virtual void clear();
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+ virtual ::java::util::Iterator * iterator();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ static ::java::util::concurrent::locks::ReentrantLock * access$0(::java::util::concurrent::LinkedBlockingQueue *);
+ static ::java::util::concurrent::locks::ReentrantLock * access$1(::java::util::concurrent::LinkedBlockingQueue *);
+ static ::java::util::concurrent::LinkedBlockingQueue$Node * access$2(::java::util::concurrent::LinkedBlockingQueue *);
+ static ::java::util::concurrent::LinkedBlockingQueue$Node * access$3(::java::util::concurrent::LinkedBlockingQueue *);
+ static void access$4(::java::util::concurrent::LinkedBlockingQueue *, ::java::util::concurrent::LinkedBlockingQueue$Node *);
+ static ::java::util::concurrent::atomic::AtomicInteger * access$5(::java::util::concurrent::LinkedBlockingQueue *);
+ static jint access$6(::java::util::concurrent::LinkedBlockingQueue *);
+ static ::java::util::concurrent::locks::Condition * access$7(::java::util::concurrent::LinkedBlockingQueue *);
+private:
+ static const jlong serialVersionUID = -6903933977591709194LL;
+ jint __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) capacity;
+ ::java::util::concurrent::atomic::AtomicInteger * count;
+ ::java::util::concurrent::LinkedBlockingQueue$Node * head;
+ ::java::util::concurrent::LinkedBlockingQueue$Node * last;
+ ::java::util::concurrent::locks::ReentrantLock * takeLock;
+ ::java::util::concurrent::locks::Condition * notEmpty;
+ ::java::util::concurrent::locks::ReentrantLock * putLock;
+ ::java::util::concurrent::locks::Condition * notFull;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_LinkedBlockingQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h b/gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h
new file mode 100644
index 000000000..c64407182
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_PriorityBlockingQueue$Itr__
+#define __java_util_concurrent_PriorityBlockingQueue$Itr__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::PriorityBlockingQueue$Itr : public ::java::lang::Object
+{
+
+public: // actually package-private
+ PriorityBlockingQueue$Itr(::java::util::concurrent::PriorityBlockingQueue *, JArray< ::java::lang::Object * > *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+public: // actually package-private
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) array;
+ jint cursor;
+ jint lastRet;
+ ::java::util::concurrent::PriorityBlockingQueue * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_PriorityBlockingQueue$Itr__
diff --git a/gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue.h b/gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue.h
new file mode 100644
index 000000000..ad5d8bb40
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/PriorityBlockingQueue.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_PriorityBlockingQueue__
+#define __java_util_concurrent_PriorityBlockingQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::PriorityBlockingQueue : public ::java::util::AbstractQueue
+{
+
+public:
+ PriorityBlockingQueue();
+ PriorityBlockingQueue(jint);
+ PriorityBlockingQueue(jint, ::java::util::Comparator *);
+ PriorityBlockingQueue(::java::util::Collection *);
+ virtual jboolean add(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual void put(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * take();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * peek();
+ virtual ::java::util::Comparator * comparator();
+ virtual jint size();
+ virtual jint remainingCapacity();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean contains(::java::lang::Object *);
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual ::java::lang::String * toString();
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+ virtual void clear();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::util::Iterator * iterator();
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+public: // actually package-private
+ static ::java::util::concurrent::locks::ReentrantLock * access$0(::java::util::concurrent::PriorityBlockingQueue *);
+ static ::java::util::PriorityQueue * access$1(::java::util::concurrent::PriorityBlockingQueue *);
+private:
+ static const jlong serialVersionUID = 5595510919245408276LL;
+ ::java::util::PriorityQueue * __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) q;
+ ::java::util::concurrent::locks::ReentrantLock * lock;
+ ::java::util::concurrent::locks::Condition * notEmpty;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_PriorityBlockingQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/RejectedExecutionException.h b/gcc-4.8/libjava/java/util/concurrent/RejectedExecutionException.h
new file mode 100644
index 000000000..4606d2d94
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/RejectedExecutionException.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_RejectedExecutionException__
+#define __java_util_concurrent_RejectedExecutionException__
+
+#pragma interface
+
+#include <java/lang/RuntimeException.h>
+
+class java::util::concurrent::RejectedExecutionException : public ::java::lang::RuntimeException
+{
+
+public:
+ RejectedExecutionException();
+ RejectedExecutionException(::java::lang::String *);
+ RejectedExecutionException(::java::lang::String *, ::java::lang::Throwable *);
+ RejectedExecutionException(::java::lang::Throwable *);
+private:
+ static const jlong serialVersionUID = -375805702767069545LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_RejectedExecutionException__
diff --git a/gcc-4.8/libjava/java/util/concurrent/RejectedExecutionHandler.h b/gcc-4.8/libjava/java/util/concurrent/RejectedExecutionHandler.h
new file mode 100644
index 000000000..8e1ac4f3f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/RejectedExecutionHandler.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_RejectedExecutionHandler__
+#define __java_util_concurrent_RejectedExecutionHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::RejectedExecutionHandler : public ::java::lang::Object
+{
+
+public:
+ virtual void rejectedExecution(::java::lang::Runnable *, ::java::util::concurrent::ThreadPoolExecutor *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_RejectedExecutionHandler__
diff --git a/gcc-4.8/libjava/java/util/concurrent/RunnableFuture.h b/gcc-4.8/libjava/java/util/concurrent/RunnableFuture.h
new file mode 100644
index 000000000..281dccc83
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/RunnableFuture.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_RunnableFuture__
+#define __java_util_concurrent_RunnableFuture__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::RunnableFuture : public ::java::lang::Object
+{
+
+public:
+ virtual void run() = 0;
+ virtual jboolean cancel(jboolean) = 0;
+ virtual jboolean isCancelled() = 0;
+ virtual jboolean isDone() = 0;
+ virtual ::java::lang::Object * get() = 0;
+ virtual ::java::lang::Object * get(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_RunnableFuture__
diff --git a/gcc-4.8/libjava/java/util/concurrent/RunnableScheduledFuture.h b/gcc-4.8/libjava/java/util/concurrent/RunnableScheduledFuture.h
new file mode 100644
index 000000000..0846d65c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/RunnableScheduledFuture.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_RunnableScheduledFuture__
+#define __java_util_concurrent_RunnableScheduledFuture__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::RunnableScheduledFuture : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean isPeriodic() = 0;
+ virtual void run() = 0;
+ virtual jboolean cancel(jboolean) = 0;
+ virtual jboolean isCancelled() = 0;
+ virtual jboolean isDone() = 0;
+ virtual ::java::lang::Object * get() = 0;
+ virtual ::java::lang::Object * get(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual jlong getDelay(::java::util::concurrent::TimeUnit *) = 0;
+ virtual jint compareTo(::java::lang::Object *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_RunnableScheduledFuture__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ScheduledExecutorService.h b/gcc-4.8/libjava/java/util/concurrent/ScheduledExecutorService.h
new file mode 100644
index 000000000..9041e395b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ScheduledExecutorService.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ScheduledExecutorService__
+#define __java_util_concurrent_ScheduledExecutorService__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ScheduledExecutorService : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::concurrent::ScheduledFuture * schedule(::java::lang::Runnable *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::util::concurrent::ScheduledFuture * schedule(::java::util::concurrent::Callable *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::util::concurrent::ScheduledFuture * scheduleAtFixedRate(::java::lang::Runnable *, jlong, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::util::concurrent::ScheduledFuture * scheduleWithFixedDelay(::java::lang::Runnable *, jlong, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual void shutdown() = 0;
+ virtual ::java::util::List * shutdownNow() = 0;
+ virtual jboolean isShutdown() = 0;
+ virtual jboolean isTerminated() = 0;
+ virtual jboolean awaitTermination(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *) = 0;
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *) = 0;
+ virtual ::java::util::List * invokeAll(::java::util::Collection *) = 0;
+ virtual ::java::util::List * invokeAll(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *) = 0;
+ virtual ::java::lang::Object * invokeAny(::java::util::Collection *, jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual void execute(::java::lang::Runnable *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_ScheduledExecutorService__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ScheduledFuture.h b/gcc-4.8/libjava/java/util/concurrent/ScheduledFuture.h
new file mode 100644
index 000000000..4cbf3b0fb
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ScheduledFuture.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ScheduledFuture__
+#define __java_util_concurrent_ScheduledFuture__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ScheduledFuture : public ::java::lang::Object
+{
+
+public:
+ virtual jlong getDelay(::java::util::concurrent::TimeUnit *) = 0;
+ virtual jint compareTo(::java::lang::Object *) = 0;
+ virtual jboolean cancel(jboolean) = 0;
+ virtual jboolean isCancelled() = 0;
+ virtual jboolean isDone() = 0;
+ virtual ::java::lang::Object * get() = 0;
+ virtual ::java::lang::Object * get(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_ScheduledFuture__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h
new file mode 100644
index 000000000..4991c96ca
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ScheduledThreadPoolExecutor$1__
+#define __java_util_concurrent_ScheduledThreadPoolExecutor$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ScheduledThreadPoolExecutor$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ScheduledThreadPoolExecutor$1(::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue *);
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$1$next();
+ virtual void remove();
+ virtual ::java::lang::Object * next();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) it;
+public: // actually package-private
+ ::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ScheduledThreadPoolExecutor$1__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h
new file mode 100644
index 000000000..26fac6254
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ScheduledThreadPoolExecutor$DelayedWorkQueue__
+#define __java_util_concurrent_ScheduledThreadPoolExecutor$DelayedWorkQueue__
+
+#pragma interface
+
+#include <java/util/AbstractCollection.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue : public ::java::util::AbstractCollection
+{
+
+ ScheduledThreadPoolExecutor$DelayedWorkQueue();
+public:
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$DelayedWorkQueue$poll();
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$DelayedWorkQueue$peek();
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$DelayedWorkQueue$take();
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$DelayedWorkQueue$poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean ScheduledThreadPoolExecutor$DelayedWorkQueue$add(::java::lang::Runnable *);
+ virtual jboolean ScheduledThreadPoolExecutor$DelayedWorkQueue$offer(::java::lang::Runnable *);
+ virtual void ScheduledThreadPoolExecutor$DelayedWorkQueue$put(::java::lang::Runnable *);
+ virtual jboolean ScheduledThreadPoolExecutor$DelayedWorkQueue$offer(::java::lang::Runnable *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$DelayedWorkQueue$remove();
+ virtual ::java::lang::Runnable * ScheduledThreadPoolExecutor$DelayedWorkQueue$element();
+ virtual void clear();
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+ virtual jint remainingCapacity();
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual ::java::util::Iterator * iterator();
+ virtual ::java::lang::Object * element();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * poll();
+ virtual ::java::lang::Object * take();
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * peek();
+ virtual jboolean add(::java::lang::Object *);
+ virtual ::java::lang::Object * remove();
+ virtual void put(::java::lang::Object *);
+public: // actually package-private
+ static ::java::util::concurrent::DelayQueue * access$10(::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue *);
+ ScheduledThreadPoolExecutor$DelayedWorkQueue(::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue *);
+private:
+ ::java::util::concurrent::DelayQueue * __attribute__((aligned(__alignof__( ::java::util::AbstractCollection)))) dq;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ScheduledThreadPoolExecutor$DelayedWorkQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h
new file mode 100644
index 000000000..ba9ad31a4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ScheduledThreadPoolExecutor$ScheduledFutureTask__
+#define __java_util_concurrent_ScheduledThreadPoolExecutor$ScheduledFutureTask__
+
+#pragma interface
+
+#include <java/util/concurrent/FutureTask.h>
+
+class java::util::concurrent::ScheduledThreadPoolExecutor$ScheduledFutureTask : public ::java::util::concurrent::FutureTask
+{
+
+public: // actually package-private
+ ScheduledThreadPoolExecutor$ScheduledFutureTask(::java::util::concurrent::ScheduledThreadPoolExecutor *, ::java::lang::Runnable *, ::java::lang::Object *, jlong);
+ ScheduledThreadPoolExecutor$ScheduledFutureTask(::java::util::concurrent::ScheduledThreadPoolExecutor *, ::java::lang::Runnable *, ::java::lang::Object *, jlong, jlong);
+ ScheduledThreadPoolExecutor$ScheduledFutureTask(::java::util::concurrent::ScheduledThreadPoolExecutor *, ::java::util::concurrent::Callable *, jlong);
+public:
+ virtual jlong getDelay(::java::util::concurrent::TimeUnit *);
+ virtual jint ScheduledThreadPoolExecutor$ScheduledFutureTask$compareTo(::java::util::concurrent::Delayed *);
+ virtual jboolean isPeriodic();
+private:
+ void runPeriodic();
+public:
+ virtual void run();
+ virtual jint compareTo(::java::lang::Object *);
+public: // actually package-private
+ static jboolean access$1(::java::util::concurrent::ScheduledThreadPoolExecutor$ScheduledFutureTask *);
+ static void access$2(::java::util::concurrent::ScheduledThreadPoolExecutor$ScheduledFutureTask *);
+private:
+ jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::FutureTask)))) sequenceNumber;
+ jlong time;
+ jlong period;
+public: // actually package-private
+ ::java::util::concurrent::ScheduledThreadPoolExecutor * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ScheduledThreadPoolExecutor$ScheduledFutureTask__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h
new file mode 100644
index 000000000..8e651b36a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ScheduledThreadPoolExecutor__
+#define __java_util_concurrent_ScheduledThreadPoolExecutor__
+
+#pragma interface
+
+#include <java/util/concurrent/ThreadPoolExecutor.h>
+
+class java::util::concurrent::ScheduledThreadPoolExecutor : public ::java::util::concurrent::ThreadPoolExecutor
+{
+
+public: // actually package-private
+ virtual jlong now();
+private:
+ void delayedExecute(::java::lang::Runnable *);
+ void cancelUnwantedTasks();
+public:
+ virtual jboolean remove(::java::lang::Runnable *);
+public: // actually protected
+ virtual ::java::util::concurrent::RunnableScheduledFuture * decorateTask(::java::lang::Runnable *, ::java::util::concurrent::RunnableScheduledFuture *);
+ virtual ::java::util::concurrent::RunnableScheduledFuture * decorateTask(::java::util::concurrent::Callable *, ::java::util::concurrent::RunnableScheduledFuture *);
+public:
+ ScheduledThreadPoolExecutor(jint);
+ ScheduledThreadPoolExecutor(jint, ::java::util::concurrent::ThreadFactory *);
+ ScheduledThreadPoolExecutor(jint, ::java::util::concurrent::RejectedExecutionHandler *);
+ ScheduledThreadPoolExecutor(jint, ::java::util::concurrent::ThreadFactory *, ::java::util::concurrent::RejectedExecutionHandler *);
+ virtual ::java::util::concurrent::ScheduledFuture * schedule(::java::lang::Runnable *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::ScheduledFuture * schedule(::java::util::concurrent::Callable *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::ScheduledFuture * scheduleAtFixedRate(::java::lang::Runnable *, jlong, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::util::concurrent::ScheduledFuture * scheduleWithFixedDelay(::java::lang::Runnable *, jlong, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void execute(::java::lang::Runnable *);
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *);
+ virtual ::java::util::concurrent::Future * submit(::java::lang::Runnable *, ::java::lang::Object *);
+ virtual ::java::util::concurrent::Future * submit(::java::util::concurrent::Callable *);
+ virtual void setContinueExistingPeriodicTasksAfterShutdownPolicy(jboolean);
+ virtual jboolean getContinueExistingPeriodicTasksAfterShutdownPolicy();
+ virtual void setExecuteExistingDelayedTasksAfterShutdownPolicy(jboolean);
+ virtual jboolean getExecuteExistingDelayedTasksAfterShutdownPolicy();
+ virtual void shutdown();
+ virtual ::java::util::List * shutdownNow();
+ virtual ::java::util::concurrent::BlockingQueue * getQueue();
+public: // actually package-private
+ static ::java::util::concurrent::atomic::AtomicLong * access$0();
+ static ::java::util::concurrent::BlockingQueue * access$1(::java::util::concurrent::ScheduledThreadPoolExecutor *);
+private:
+ jboolean volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::ThreadPoolExecutor)))) continueExistingPeriodicTasksAfterShutdown;
+ jboolean volatile executeExistingDelayedTasksAfterShutdown;
+ static ::java::util::concurrent::atomic::AtomicLong * sequencer;
+ static jlong NANO_ORIGIN;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ScheduledThreadPoolExecutor__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Semaphore$FairSync.h b/gcc-4.8/libjava/java/util/concurrent/Semaphore$FairSync.h
new file mode 100644
index 000000000..ac323695b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Semaphore$FairSync.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Semaphore$FairSync__
+#define __java_util_concurrent_Semaphore$FairSync__
+
+#pragma interface
+
+#include <java/util/concurrent/Semaphore$Sync.h>
+
+class java::util::concurrent::Semaphore$FairSync : public ::java::util::concurrent::Semaphore$Sync
+{
+
+public: // actually package-private
+ Semaphore$FairSync(jint);
+public: // actually protected
+ jint tryAcquireShared(jint);
+private:
+ static const jlong serialVersionUID = 2014338818796000944LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Semaphore$FairSync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Semaphore$NonfairSync.h b/gcc-4.8/libjava/java/util/concurrent/Semaphore$NonfairSync.h
new file mode 100644
index 000000000..2a03f1ac2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Semaphore$NonfairSync.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Semaphore$NonfairSync__
+#define __java_util_concurrent_Semaphore$NonfairSync__
+
+#pragma interface
+
+#include <java/util/concurrent/Semaphore$Sync.h>
+
+class java::util::concurrent::Semaphore$NonfairSync : public ::java::util::concurrent::Semaphore$Sync
+{
+
+public: // actually package-private
+ Semaphore$NonfairSync(jint);
+public: // actually protected
+ jint tryAcquireShared(jint);
+private:
+ static const jlong serialVersionUID = -2694183684443567898LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Semaphore$NonfairSync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Semaphore$Sync.h b/gcc-4.8/libjava/java/util/concurrent/Semaphore$Sync.h
new file mode 100644
index 000000000..98464b2e5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Semaphore$Sync.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Semaphore$Sync__
+#define __java_util_concurrent_Semaphore$Sync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractQueuedSynchronizer.h>
+
+class java::util::concurrent::Semaphore$Sync : public ::java::util::concurrent::locks::AbstractQueuedSynchronizer
+{
+
+public: // actually package-private
+ Semaphore$Sync(jint);
+ virtual jint getPermits();
+ virtual jint nonfairTryAcquireShared(jint);
+public: // actually protected
+ virtual jboolean tryReleaseShared(jint);
+public: // actually package-private
+ virtual void reducePermits(jint);
+ virtual jint drainPermits();
+private:
+ static const jlong serialVersionUID = 1192457210091910933LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Semaphore$Sync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/Semaphore.h b/gcc-4.8/libjava/java/util/concurrent/Semaphore.h
new file mode 100644
index 000000000..41755ddcd
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/Semaphore.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_Semaphore__
+#define __java_util_concurrent_Semaphore__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::Semaphore : public ::java::lang::Object
+{
+
+public:
+ Semaphore(jint);
+ Semaphore(jint, jboolean);
+ virtual void acquire();
+ virtual void acquireUninterruptibly();
+ virtual jboolean tryAcquire();
+ virtual jboolean tryAcquire(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void release();
+ virtual void acquire(jint);
+ virtual void acquireUninterruptibly(jint);
+ virtual jboolean tryAcquire(jint);
+ virtual jboolean tryAcquire(jint, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void release(jint);
+ virtual jint availablePermits();
+ virtual jint drainPermits();
+public: // actually protected
+ virtual void reducePermits(jint);
+public:
+ virtual jboolean isFair();
+ virtual jboolean hasQueuedThreads();
+ virtual jint getQueueLength();
+public: // actually protected
+ virtual ::java::util::Collection * getQueuedThreads();
+public:
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -3222578661600680210LL;
+ ::java::util::concurrent::Semaphore$Sync * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_Semaphore__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h
new file mode 100644
index 000000000..793fb9a10
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$EmptyIterator__
+#define __java_util_concurrent_SynchronousQueue$EmptyIterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::SynchronousQueue$EmptyIterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SynchronousQueue$EmptyIterator();
+public:
+ virtual jboolean hasNext();
+ virtual ::java::lang::Object * next();
+ virtual void remove();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$EmptyIterator__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h
new file mode 100644
index 000000000..ba636900d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$FifoWaitQueue__
+#define __java_util_concurrent_SynchronousQueue$FifoWaitQueue__
+
+#pragma interface
+
+#include <java/util/concurrent/SynchronousQueue$WaitQueue.h>
+
+class java::util::concurrent::SynchronousQueue$FifoWaitQueue : public ::java::util::concurrent::SynchronousQueue$WaitQueue
+{
+
+public: // actually package-private
+ SynchronousQueue$FifoWaitQueue();
+private:
+ static const jlong serialVersionUID = -3623113410248163686LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$FifoWaitQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h
new file mode 100644
index 000000000..dedfaca8c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$LifoWaitQueue__
+#define __java_util_concurrent_SynchronousQueue$LifoWaitQueue__
+
+#pragma interface
+
+#include <java/util/concurrent/SynchronousQueue$WaitQueue.h>
+
+class java::util::concurrent::SynchronousQueue$LifoWaitQueue : public ::java::util::concurrent::SynchronousQueue$WaitQueue
+{
+
+public: // actually package-private
+ SynchronousQueue$LifoWaitQueue();
+private:
+ static const jlong serialVersionUID = -3633113410248163686LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$LifoWaitQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h
new file mode 100644
index 000000000..105c64e66
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$TransferQueue$QNode__
+#define __java_util_concurrent_SynchronousQueue$TransferQueue$QNode__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::SynchronousQueue$TransferQueue$QNode : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SynchronousQueue$TransferQueue$QNode(::java::lang::Object *, jboolean);
+ jboolean casNext(::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *, ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *);
+ jboolean casItem(::java::lang::Object *, ::java::lang::Object *);
+ void tryCancel(::java::lang::Object *);
+ jboolean isCancelled();
+ jboolean isOffList();
+ ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) next;
+ ::java::lang::Object * volatile item;
+ ::java::lang::Thread * volatile waiter;
+ jboolean isData;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * nextUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * itemUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$TransferQueue$QNode__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h
new file mode 100644
index 000000000..921c36377
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$TransferQueue__
+#define __java_util_concurrent_SynchronousQueue$TransferQueue__
+
+#pragma interface
+
+#include <java/util/concurrent/SynchronousQueue$Transferer.h>
+
+class java::util::concurrent::SynchronousQueue$TransferQueue : public ::java::util::concurrent::SynchronousQueue$Transferer
+{
+
+public: // actually package-private
+ SynchronousQueue$TransferQueue();
+ void advanceHead(::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *, ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *);
+ void advanceTail(::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *, ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *);
+ jboolean casCleanMe(::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *, ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *);
+ ::java::lang::Object * transfer(::java::lang::Object *, jboolean, jlong);
+ ::java::lang::Object * awaitFulfill(::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *, ::java::lang::Object *, jboolean, jlong);
+ void clean(::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *, ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode *);
+ ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::SynchronousQueue$Transferer)))) head;
+ ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * volatile tail;
+ ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * volatile cleanMe;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * headUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * tailUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * cleanMeUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$TransferQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h
new file mode 100644
index 000000000..48e22f2a6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$TransferStack$SNode__
+#define __java_util_concurrent_SynchronousQueue$TransferStack$SNode__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::SynchronousQueue$TransferStack$SNode : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SynchronousQueue$TransferStack$SNode(::java::lang::Object *);
+ jboolean casNext(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *, ::java::util::concurrent::SynchronousQueue$TransferStack$SNode *);
+ jboolean tryMatch(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *);
+ void tryCancel();
+ jboolean isCancelled();
+ ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) next;
+ ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * volatile match;
+ ::java::lang::Thread * volatile waiter;
+ ::java::lang::Object * item;
+ jint mode;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * nextUpdater;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * matchUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$TransferStack$SNode__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack.h
new file mode 100644
index 000000000..5722c419b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$TransferStack.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$TransferStack__
+#define __java_util_concurrent_SynchronousQueue$TransferStack__
+
+#pragma interface
+
+#include <java/util/concurrent/SynchronousQueue$Transferer.h>
+
+class java::util::concurrent::SynchronousQueue$TransferStack : public ::java::util::concurrent::SynchronousQueue$Transferer
+{
+
+public: // actually package-private
+ SynchronousQueue$TransferStack();
+ static jboolean isFulfilling(jint);
+ jboolean casHead(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *, ::java::util::concurrent::SynchronousQueue$TransferStack$SNode *);
+ static ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * snode(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *, ::java::lang::Object *, ::java::util::concurrent::SynchronousQueue$TransferStack$SNode *, jint);
+ ::java::lang::Object * transfer(::java::lang::Object *, jboolean, jlong);
+ ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * awaitFulfill(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *, jboolean, jlong);
+ jboolean shouldSpin(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *);
+ void clean(::java::util::concurrent::SynchronousQueue$TransferStack$SNode *);
+ static const jint REQUEST = 0;
+ static const jint DATA = 1;
+ static const jint FULFILLING = 2;
+ ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::SynchronousQueue$Transferer)))) head;
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * headUpdater;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$TransferStack__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$Transferer.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$Transferer.h
new file mode 100644
index 000000000..1b135af58
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$Transferer.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$Transferer__
+#define __java_util_concurrent_SynchronousQueue$Transferer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::SynchronousQueue$Transferer : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SynchronousQueue$Transferer();
+ virtual ::java::lang::Object * transfer(::java::lang::Object *, jboolean, jlong) = 0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$Transferer__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h
new file mode 100644
index 000000000..36f384d32
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue$WaitQueue__
+#define __java_util_concurrent_SynchronousQueue$WaitQueue__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::SynchronousQueue$WaitQueue : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SynchronousQueue$WaitQueue();
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue$WaitQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue.h b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue.h
new file mode 100644
index 000000000..7606ddcfe
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/SynchronousQueue.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_SynchronousQueue__
+#define __java_util_concurrent_SynchronousQueue__
+
+#pragma interface
+
+#include <java/util/AbstractQueue.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::SynchronousQueue : public ::java::util::AbstractQueue
+{
+
+public:
+ SynchronousQueue();
+ SynchronousQueue(jboolean);
+ virtual void put(::java::lang::Object *);
+ virtual jboolean offer(::java::lang::Object *, jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jboolean offer(::java::lang::Object *);
+ virtual ::java::lang::Object * take();
+ virtual ::java::lang::Object * poll(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual ::java::lang::Object * poll();
+ virtual jboolean isEmpty();
+ virtual jint size();
+ virtual jint remainingCapacity();
+ virtual void clear();
+ virtual jboolean contains(::java::lang::Object *);
+ virtual jboolean remove(::java::lang::Object *);
+ virtual jboolean containsAll(::java::util::Collection *);
+ virtual jboolean removeAll(::java::util::Collection *);
+ virtual jboolean retainAll(::java::util::Collection *);
+ virtual ::java::lang::Object * peek();
+ virtual ::java::util::Iterator * iterator();
+ virtual JArray< ::java::lang::Object * > * toArray();
+ virtual JArray< ::java::lang::Object * > * toArray(JArray< ::java::lang::Object * > *);
+ virtual jint drainTo(::java::util::Collection *);
+ virtual jint drainTo(::java::util::Collection *, jint);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -3223113410248163686LL;
+public: // actually package-private
+ static jint NCPUS;
+ static jint maxTimedSpins;
+ static jint maxUntimedSpins;
+ static const jlong spinForTimeoutThreshold = 1000LL;
+private:
+ ::java::util::concurrent::SynchronousQueue$Transferer * volatile __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) transferer;
+ ::java::util::concurrent::locks::ReentrantLock * qlock;
+ ::java::util::concurrent::SynchronousQueue$WaitQueue * waitingProducers;
+ ::java::util::concurrent::SynchronousQueue$WaitQueue * waitingConsumers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_SynchronousQueue__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadFactory.h b/gcc-4.8/libjava/java/util/concurrent/ThreadFactory.h
new file mode 100644
index 000000000..c1037df60
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadFactory.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadFactory__
+#define __java_util_concurrent_ThreadFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ThreadFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::Thread * newThread(::java::lang::Runnable *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_ThreadFactory__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h
new file mode 100644
index 000000000..9f61c798b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadPoolExecutor$AbortPolicy__
+#define __java_util_concurrent_ThreadPoolExecutor$AbortPolicy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ThreadPoolExecutor$AbortPolicy : public ::java::lang::Object
+{
+
+public:
+ ThreadPoolExecutor$AbortPolicy();
+ virtual void rejectedExecution(::java::lang::Runnable *, ::java::util::concurrent::ThreadPoolExecutor *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ThreadPoolExecutor$AbortPolicy__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h
new file mode 100644
index 000000000..169a9c3b9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadPoolExecutor$CallerRunsPolicy__
+#define __java_util_concurrent_ThreadPoolExecutor$CallerRunsPolicy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ThreadPoolExecutor$CallerRunsPolicy : public ::java::lang::Object
+{
+
+public:
+ ThreadPoolExecutor$CallerRunsPolicy();
+ virtual void rejectedExecution(::java::lang::Runnable *, ::java::util::concurrent::ThreadPoolExecutor *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ThreadPoolExecutor$CallerRunsPolicy__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h
new file mode 100644
index 000000000..77b8e0535
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadPoolExecutor$DiscardOldestPolicy__
+#define __java_util_concurrent_ThreadPoolExecutor$DiscardOldestPolicy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ThreadPoolExecutor$DiscardOldestPolicy : public ::java::lang::Object
+{
+
+public:
+ ThreadPoolExecutor$DiscardOldestPolicy();
+ virtual void rejectedExecution(::java::lang::Runnable *, ::java::util::concurrent::ThreadPoolExecutor *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ThreadPoolExecutor$DiscardOldestPolicy__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h
new file mode 100644
index 000000000..771f828c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadPoolExecutor$DiscardPolicy__
+#define __java_util_concurrent_ThreadPoolExecutor$DiscardPolicy__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ThreadPoolExecutor$DiscardPolicy : public ::java::lang::Object
+{
+
+public:
+ ThreadPoolExecutor$DiscardPolicy();
+ virtual void rejectedExecution(::java::lang::Runnable *, ::java::util::concurrent::ThreadPoolExecutor *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ThreadPoolExecutor$DiscardPolicy__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h
new file mode 100644
index 000000000..a1b5dc3fe
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadPoolExecutor$Worker__
+#define __java_util_concurrent_ThreadPoolExecutor$Worker__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::ThreadPoolExecutor$Worker : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ThreadPoolExecutor$Worker(::java::util::concurrent::ThreadPoolExecutor *, ::java::lang::Runnable *);
+ virtual jboolean isActive();
+ virtual void interruptIfIdle();
+ virtual void interruptNow();
+private:
+ void runTask(::java::lang::Runnable *);
+public:
+ virtual void run();
+private:
+ ::java::util::concurrent::locks::ReentrantLock * __attribute__((aligned(__alignof__( ::java::lang::Object)))) runLock;
+ ::java::lang::Runnable * firstTask;
+public: // actually package-private
+ jlong volatile completedTasks;
+ ::java::lang::Thread * thread;
+ ::java::util::concurrent::ThreadPoolExecutor * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ThreadPoolExecutor$Worker__
diff --git a/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor.h b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor.h
new file mode 100644
index 000000000..b69b1f655
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/ThreadPoolExecutor.h
@@ -0,0 +1,97 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_ThreadPoolExecutor__
+#define __java_util_concurrent_ThreadPoolExecutor__
+
+#pragma interface
+
+#include <java/util/concurrent/AbstractExecutorService.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::ThreadPoolExecutor : public ::java::util::concurrent::AbstractExecutorService
+{
+
+public: // actually package-private
+ virtual void reject(::java::lang::Runnable *);
+private:
+ ::java::lang::Thread * addThread(::java::lang::Runnable *);
+ jboolean addIfUnderCorePoolSize(::java::lang::Runnable *);
+ jint addIfUnderMaximumPoolSize(::java::lang::Runnable *);
+public: // actually package-private
+ virtual ::java::lang::Runnable * getTask();
+ virtual void interruptIdleWorkers();
+ virtual void workerDone(::java::util::concurrent::ThreadPoolExecutor$Worker *);
+public:
+ ThreadPoolExecutor(jint, jint, jlong, ::java::util::concurrent::TimeUnit *, ::java::util::concurrent::BlockingQueue *);
+ ThreadPoolExecutor(jint, jint, jlong, ::java::util::concurrent::TimeUnit *, ::java::util::concurrent::BlockingQueue *, ::java::util::concurrent::ThreadFactory *);
+ ThreadPoolExecutor(jint, jint, jlong, ::java::util::concurrent::TimeUnit *, ::java::util::concurrent::BlockingQueue *, ::java::util::concurrent::RejectedExecutionHandler *);
+ ThreadPoolExecutor(jint, jint, jlong, ::java::util::concurrent::TimeUnit *, ::java::util::concurrent::BlockingQueue *, ::java::util::concurrent::ThreadFactory *, ::java::util::concurrent::RejectedExecutionHandler *);
+ virtual void execute(::java::lang::Runnable *);
+ virtual void shutdown();
+ virtual ::java::util::List * shutdownNow();
+ virtual jboolean isShutdown();
+ virtual jboolean isTerminating();
+ virtual jboolean isTerminated();
+ virtual jboolean awaitTermination(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual void setThreadFactory(::java::util::concurrent::ThreadFactory *);
+ virtual ::java::util::concurrent::ThreadFactory * getThreadFactory();
+ virtual void setRejectedExecutionHandler(::java::util::concurrent::RejectedExecutionHandler *);
+ virtual ::java::util::concurrent::RejectedExecutionHandler * getRejectedExecutionHandler();
+ virtual ::java::util::concurrent::BlockingQueue * getQueue();
+ virtual jboolean remove(::java::lang::Runnable *);
+ virtual void purge();
+ virtual void setCorePoolSize(jint);
+ virtual jint getCorePoolSize();
+ virtual jboolean prestartCoreThread();
+ virtual jint prestartAllCoreThreads();
+ virtual jboolean allowsCoreThreadTimeOut();
+ virtual void allowCoreThreadTimeOut(jboolean);
+ virtual void setMaximumPoolSize(jint);
+ virtual jint getMaximumPoolSize();
+ virtual void setKeepAliveTime(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jlong getKeepAliveTime(::java::util::concurrent::TimeUnit *);
+ virtual jint getPoolSize();
+ virtual jint getActiveCount();
+ virtual jint getLargestPoolSize();
+ virtual jlong getTaskCount();
+ virtual jlong getCompletedTaskCount();
+public: // actually protected
+ virtual void beforeExecute(::java::lang::Thread *, ::java::lang::Runnable *);
+ virtual void afterExecute(::java::lang::Runnable *, ::java::lang::Throwable *);
+ virtual void terminated();
+private:
+ static JArray< ::java::lang::Runnable * > * EMPTY_RUNNABLE_ARRAY;
+ static ::java::lang::RuntimePermission * shutdownPerm;
+ ::java::util::concurrent::BlockingQueue * __attribute__((aligned(__alignof__( ::java::util::concurrent::AbstractExecutorService)))) workQueue;
+ ::java::util::concurrent::locks::ReentrantLock * mainLock;
+ ::java::util::concurrent::locks::Condition * termination;
+ ::java::util::HashSet * workers;
+ jlong volatile keepAliveTime;
+ jboolean volatile allowCoreThreadTimeOut__;
+ jint volatile corePoolSize;
+ jint volatile maximumPoolSize;
+ jint volatile poolSize;
+public: // actually package-private
+ jint volatile runState;
+ static const jint RUNNING = 0;
+ static const jint SHUTDOWN = 1;
+ static const jint STOP = 2;
+ static const jint TERMINATED = 3;
+private:
+ ::java::util::concurrent::RejectedExecutionHandler * volatile handler;
+ ::java::util::concurrent::ThreadFactory * volatile threadFactory;
+ jint largestPoolSize;
+ jlong completedTaskCount;
+ static ::java::util::concurrent::RejectedExecutionHandler * defaultHandler;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_ThreadPoolExecutor__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$1.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$1.h
new file mode 100644
index 000000000..8d3121d2e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$1.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$1__
+#define __java_util_concurrent_TimeUnit$1__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$1 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$1(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$1__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$2.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$2.h
new file mode 100644
index 000000000..dff67ed15
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$2.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$2__
+#define __java_util_concurrent_TimeUnit$2__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$2 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$2(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$2__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$3.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$3.h
new file mode 100644
index 000000000..f587ef899
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$3.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$3__
+#define __java_util_concurrent_TimeUnit$3__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$3 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$3(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$3__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$4.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$4.h
new file mode 100644
index 000000000..9a3bf8e2a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$4.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$4__
+#define __java_util_concurrent_TimeUnit$4__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$4 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$4(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$4__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$5.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$5.h
new file mode 100644
index 000000000..342b88eaf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$5.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$5__
+#define __java_util_concurrent_TimeUnit$5__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$5 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$5(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$5__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$6.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$6.h
new file mode 100644
index 000000000..3fad9aa60
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$6.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$6__
+#define __java_util_concurrent_TimeUnit$6__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$6 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$6(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$6__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit$7.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$7.h
new file mode 100644
index 000000000..8fc3ec0b4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit$7.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit$7__
+#define __java_util_concurrent_TimeUnit$7__
+
+#pragma interface
+
+#include <java/util/concurrent/TimeUnit.h>
+
+class java::util::concurrent::TimeUnit$7 : public ::java::util::concurrent::TimeUnit
+{
+
+public: // actually package-private
+ TimeUnit$7(::java::lang::String *, jint);
+public:
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit$7__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeUnit.h b/gcc-4.8/libjava/java/util/concurrent/TimeUnit.h
new file mode 100644
index 000000000..fa6d497f6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeUnit.h
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeUnit__
+#define __java_util_concurrent_TimeUnit__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::TimeUnit : public ::java::lang::Enum
+{
+
+ TimeUnit(::java::lang::String *, jint);
+public: // actually package-private
+ static jlong x(jlong, jlong, jlong);
+public:
+ virtual jlong convert(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual jlong toNanos(jlong);
+ virtual jlong toMicros(jlong);
+ virtual jlong toMillis(jlong);
+ virtual jlong toSeconds(jlong);
+ virtual jlong toMinutes(jlong);
+ virtual jlong toHours(jlong);
+ virtual jlong toDays(jlong);
+public: // actually package-private
+ virtual jint excessNanos(jlong, jlong) = 0;
+public:
+ virtual void timedWait(::java::lang::Object *, jlong);
+ virtual void timedJoin(::java::lang::Thread *, jlong);
+ virtual void sleep(jlong);
+ static JArray< ::java::util::concurrent::TimeUnit * > * values();
+ static ::java::util::concurrent::TimeUnit * valueOf(::java::lang::String *);
+public: // actually package-private
+ TimeUnit(::java::lang::String *, jint, ::java::util::concurrent::TimeUnit *);
+public:
+ static ::java::util::concurrent::TimeUnit * NANOSECONDS;
+ static ::java::util::concurrent::TimeUnit * MICROSECONDS;
+ static ::java::util::concurrent::TimeUnit * MILLISECONDS;
+ static ::java::util::concurrent::TimeUnit * SECONDS;
+ static ::java::util::concurrent::TimeUnit * MINUTES;
+ static ::java::util::concurrent::TimeUnit * HOURS;
+ static ::java::util::concurrent::TimeUnit * DAYS;
+public: // actually package-private
+ static const jlong C0 = 1LL;
+ static const jlong C1 = 1000LL;
+ static const jlong C2 = 1000000LL;
+ static const jlong C3 = 1000000000LL;
+ static const jlong C4 = 60000000000LL;
+ static const jlong C5 = 3600000000000LL;
+ static const jlong C6 = 86400000000000LL;
+ static const jlong MAX = 9223372036854775807LL;
+private:
+ static JArray< ::java::util::concurrent::TimeUnit * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeUnit__
diff --git a/gcc-4.8/libjava/java/util/concurrent/TimeoutException.h b/gcc-4.8/libjava/java/util/concurrent/TimeoutException.h
new file mode 100644
index 000000000..6ce42b180
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/TimeoutException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_TimeoutException__
+#define __java_util_concurrent_TimeoutException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::concurrent::TimeoutException : public ::java::lang::Exception
+{
+
+public:
+ TimeoutException();
+ TimeoutException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 1900926677490660714LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_TimeoutException__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicBoolean.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicBoolean.h
new file mode 100644
index 000000000..60d22a952
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicBoolean.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicBoolean__
+#define __java_util_concurrent_atomic_AtomicBoolean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicBoolean : public ::java::lang::Object
+{
+
+public:
+ AtomicBoolean(jboolean);
+ AtomicBoolean();
+ virtual jboolean get();
+ virtual jboolean compareAndSet(jboolean, jboolean);
+ virtual jboolean weakCompareAndSet(jboolean, jboolean);
+ virtual void set(jboolean);
+ virtual void lazySet(jboolean);
+ virtual jboolean getAndSet(jboolean);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 4654671469794556979LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong valueOffset;
+ jint volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicBoolean__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicInteger.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicInteger.h
new file mode 100644
index 000000000..136a578b5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicInteger.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicInteger__
+#define __java_util_concurrent_atomic_AtomicInteger__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicInteger : public ::java::lang::Number
+{
+
+public:
+ AtomicInteger(jint);
+ AtomicInteger();
+ virtual jint get();
+ virtual void set(jint);
+ virtual void lazySet(jint);
+ virtual jint getAndSet(jint);
+ virtual jboolean compareAndSet(jint, jint);
+ virtual jboolean weakCompareAndSet(jint, jint);
+ virtual jint getAndIncrement();
+ virtual jint getAndDecrement();
+ virtual jint getAndAdd(jint);
+ virtual jint incrementAndGet();
+ virtual jint decrementAndGet();
+ virtual jint addAndGet(jint);
+ virtual ::java::lang::String * toString();
+ virtual jint intValue();
+ virtual jlong longValue();
+ virtual jfloat floatValue();
+ virtual jdouble doubleValue();
+private:
+ static const jlong serialVersionUID = 6214790243416807050LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong valueOffset;
+ jint volatile __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicInteger__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerArray.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerArray.h
new file mode 100644
index 000000000..f8db2173f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerArray.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicIntegerArray__
+#define __java_util_concurrent_atomic_AtomicIntegerArray__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicIntegerArray : public ::java::lang::Object
+{
+
+ jlong rawIndex(jint);
+public:
+ AtomicIntegerArray(jint);
+ AtomicIntegerArray(JArray< jint > *);
+ virtual jint length();
+ virtual jint get(jint);
+ virtual void set(jint, jint);
+ virtual void lazySet(jint, jint);
+ virtual jint getAndSet(jint, jint);
+ virtual jboolean compareAndSet(jint, jint, jint);
+ virtual jboolean weakCompareAndSet(jint, jint, jint);
+ virtual jint getAndIncrement(jint);
+ virtual jint getAndDecrement(jint);
+ virtual jint getAndAdd(jint, jint);
+ virtual jint incrementAndGet(jint);
+ virtual jint decrementAndGet(jint);
+ virtual jint addAndGet(jint, jint);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 2862133569453604235LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jint base;
+ static jint scale;
+ JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) array;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicIntegerArray__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h
new file mode 100644
index 000000000..ba2b7a5dc
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl__
+#define __java_util_concurrent_atomic_AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl__
+
+#pragma interface
+
+#include <java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl : public ::java::util::concurrent::atomic::AtomicIntegerFieldUpdater
+{
+
+public: // actually package-private
+ AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl(::java::lang::Class *, ::java::lang::String *);
+private:
+ void fullCheck(::java::lang::Object *);
+public:
+ virtual jboolean compareAndSet(::java::lang::Object *, jint, jint);
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, jint, jint);
+ virtual void set(::java::lang::Object *, jint);
+ virtual void lazySet(::java::lang::Object *, jint);
+ virtual jint get(::java::lang::Object *);
+private:
+ void ensureProtectedAccess(::java::lang::Object *);
+ static ::sun::misc::Unsafe * unsafe;
+ jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicIntegerFieldUpdater)))) offset;
+ ::java::lang::Class * tclass;
+ ::java::lang::Class * cclass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h
new file mode 100644
index 000000000..e72055006
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicIntegerFieldUpdater__
+#define __java_util_concurrent_atomic_AtomicIntegerFieldUpdater__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::atomic::AtomicIntegerFieldUpdater : public ::java::lang::Object
+{
+
+public:
+ static ::java::util::concurrent::atomic::AtomicIntegerFieldUpdater * newUpdater(::java::lang::Class *, ::java::lang::String *);
+public: // actually protected
+ AtomicIntegerFieldUpdater();
+public:
+ virtual jboolean compareAndSet(::java::lang::Object *, jint, jint) = 0;
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, jint, jint) = 0;
+ virtual void set(::java::lang::Object *, jint) = 0;
+ virtual void lazySet(::java::lang::Object *, jint) = 0;
+ virtual jint get(::java::lang::Object *) = 0;
+ virtual jint getAndSet(::java::lang::Object *, jint);
+ virtual jint getAndIncrement(::java::lang::Object *);
+ virtual jint getAndDecrement(::java::lang::Object *);
+ virtual jint getAndAdd(::java::lang::Object *, jint);
+ virtual jint incrementAndGet(::java::lang::Object *);
+ virtual jint decrementAndGet(::java::lang::Object *);
+ virtual jint addAndGet(::java::lang::Object *, jint);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicIntegerFieldUpdater__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLong.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLong.h
new file mode 100644
index 000000000..0d0c3b00f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLong.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicLong__
+#define __java_util_concurrent_atomic_AtomicLong__
+
+#pragma interface
+
+#include <java/lang/Number.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicLong : public ::java::lang::Number
+{
+
+ static jboolean VMSupportsCS8();
+public:
+ AtomicLong(jlong);
+ AtomicLong();
+ virtual jlong get();
+ virtual void set(jlong);
+ virtual void lazySet(jlong);
+ virtual jlong getAndSet(jlong);
+ virtual jboolean compareAndSet(jlong, jlong);
+ virtual jboolean weakCompareAndSet(jlong, jlong);
+ virtual jlong getAndIncrement();
+ virtual jlong getAndDecrement();
+ virtual jlong getAndAdd(jlong);
+ virtual jlong incrementAndGet();
+ virtual jlong decrementAndGet();
+ virtual jlong addAndGet(jlong);
+ virtual ::java::lang::String * toString();
+ virtual jint intValue();
+ virtual jlong longValue();
+ virtual jfloat floatValue();
+ virtual jdouble doubleValue();
+private:
+ static const jlong serialVersionUID = 1927816293512124184LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong valueOffset;
+public: // actually package-private
+ static jboolean VM_SUPPORTS_LONG_CAS;
+private:
+ jlong volatile __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicLong__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongArray.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongArray.h
new file mode 100644
index 000000000..797c60943
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongArray.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicLongArray__
+#define __java_util_concurrent_atomic_AtomicLongArray__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicLongArray : public ::java::lang::Object
+{
+
+ jlong rawIndex(jint);
+public:
+ AtomicLongArray(jint);
+ AtomicLongArray(JArray< jlong > *);
+ virtual jint length();
+ virtual jlong get(jint);
+ virtual void set(jint, jlong);
+ virtual void lazySet(jint, jlong);
+ virtual jlong getAndSet(jint, jlong);
+ virtual jboolean compareAndSet(jint, jlong, jlong);
+ virtual jboolean weakCompareAndSet(jint, jlong, jlong);
+ virtual jlong getAndIncrement(jint);
+ virtual jlong getAndDecrement(jint);
+ virtual jlong getAndAdd(jint, jlong);
+ virtual jlong incrementAndGet(jint);
+ virtual jlong decrementAndGet(jint);
+ virtual jlong addAndGet(jint, jlong);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -2308431214976778248LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jint base;
+ static jint scale;
+ JArray< jlong > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) array;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicLongArray__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h
new file mode 100644
index 000000000..465b5333e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicLongFieldUpdater$CASUpdater__
+#define __java_util_concurrent_atomic_AtomicLongFieldUpdater$CASUpdater__
+
+#pragma interface
+
+#include <java/util/concurrent/atomic/AtomicLongFieldUpdater.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicLongFieldUpdater$CASUpdater : public ::java::util::concurrent::atomic::AtomicLongFieldUpdater
+{
+
+public: // actually package-private
+ AtomicLongFieldUpdater$CASUpdater(::java::lang::Class *, ::java::lang::String *);
+private:
+ void fullCheck(::java::lang::Object *);
+public:
+ virtual jboolean compareAndSet(::java::lang::Object *, jlong, jlong);
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, jlong, jlong);
+ virtual void set(::java::lang::Object *, jlong);
+ virtual void lazySet(::java::lang::Object *, jlong);
+ virtual jlong get(::java::lang::Object *);
+private:
+ void ensureProtectedAccess(::java::lang::Object *);
+ static ::sun::misc::Unsafe * unsafe;
+ jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicLongFieldUpdater)))) offset;
+ ::java::lang::Class * tclass;
+ ::java::lang::Class * cclass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicLongFieldUpdater$CASUpdater__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h
new file mode 100644
index 000000000..f13fb1817
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicLongFieldUpdater$LockedUpdater__
+#define __java_util_concurrent_atomic_AtomicLongFieldUpdater$LockedUpdater__
+
+#pragma interface
+
+#include <java/util/concurrent/atomic/AtomicLongFieldUpdater.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicLongFieldUpdater$LockedUpdater : public ::java::util::concurrent::atomic::AtomicLongFieldUpdater
+{
+
+public: // actually package-private
+ AtomicLongFieldUpdater$LockedUpdater(::java::lang::Class *, ::java::lang::String *);
+private:
+ void fullCheck(::java::lang::Object *);
+public:
+ virtual jboolean compareAndSet(::java::lang::Object *, jlong, jlong);
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, jlong, jlong);
+ virtual void set(::java::lang::Object *, jlong);
+ virtual void lazySet(::java::lang::Object *, jlong);
+ virtual jlong get(::java::lang::Object *);
+private:
+ void ensureProtectedAccess(::java::lang::Object *);
+ static ::sun::misc::Unsafe * unsafe;
+ jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicLongFieldUpdater)))) offset;
+ ::java::lang::Class * tclass;
+ ::java::lang::Class * cclass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicLongFieldUpdater$LockedUpdater__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h
new file mode 100644
index 000000000..4fb8137d1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicLongFieldUpdater__
+#define __java_util_concurrent_atomic_AtomicLongFieldUpdater__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::atomic::AtomicLongFieldUpdater : public ::java::lang::Object
+{
+
+public:
+ static ::java::util::concurrent::atomic::AtomicLongFieldUpdater * newUpdater(::java::lang::Class *, ::java::lang::String *);
+public: // actually protected
+ AtomicLongFieldUpdater();
+public:
+ virtual jboolean compareAndSet(::java::lang::Object *, jlong, jlong) = 0;
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, jlong, jlong) = 0;
+ virtual void set(::java::lang::Object *, jlong) = 0;
+ virtual void lazySet(::java::lang::Object *, jlong) = 0;
+ virtual jlong get(::java::lang::Object *) = 0;
+ virtual jlong getAndSet(::java::lang::Object *, jlong);
+ virtual jlong getAndIncrement(::java::lang::Object *);
+ virtual jlong getAndDecrement(::java::lang::Object *);
+ virtual jlong getAndAdd(::java::lang::Object *, jlong);
+ virtual jlong incrementAndGet(::java::lang::Object *);
+ virtual jlong decrementAndGet(::java::lang::Object *);
+ virtual jlong addAndGet(::java::lang::Object *, jlong);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicLongFieldUpdater__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h
new file mode 100644
index 000000000..499b73b52
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicMarkableReference$ReferenceBooleanPair__
+#define __java_util_concurrent_atomic_AtomicMarkableReference$ReferenceBooleanPair__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::atomic::AtomicMarkableReference$ReferenceBooleanPair : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AtomicMarkableReference$ReferenceBooleanPair(::java::lang::Object *, jboolean);
+ static ::java::lang::Object * access$0(::java::util::concurrent::atomic::AtomicMarkableReference$ReferenceBooleanPair *);
+ static jboolean access$1(::java::util::concurrent::atomic::AtomicMarkableReference$ReferenceBooleanPair *);
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) reference;
+ jboolean bit;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicMarkableReference$ReferenceBooleanPair__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference.h
new file mode 100644
index 000000000..fe97809c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicMarkableReference.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicMarkableReference__
+#define __java_util_concurrent_atomic_AtomicMarkableReference__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::atomic::AtomicMarkableReference : public ::java::lang::Object
+{
+
+public:
+ AtomicMarkableReference(::java::lang::Object *, jboolean);
+ virtual ::java::lang::Object * getReference();
+ virtual jboolean isMarked();
+ virtual ::java::lang::Object * get(JArray< jboolean > *);
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, ::java::lang::Object *, jboolean, jboolean);
+ virtual jboolean compareAndSet(::java::lang::Object *, ::java::lang::Object *, jboolean, jboolean);
+ virtual void set(::java::lang::Object *, jboolean);
+ virtual jboolean attemptMark(::java::lang::Object *, jboolean);
+private:
+ ::java::util::concurrent::atomic::AtomicReference * __attribute__((aligned(__alignof__( ::java::lang::Object)))) atomicRef;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicMarkableReference__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReference.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReference.h
new file mode 100644
index 000000000..363fca6ea
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReference.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicReference__
+#define __java_util_concurrent_atomic_AtomicReference__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicReference : public ::java::lang::Object
+{
+
+public:
+ AtomicReference(::java::lang::Object *);
+ AtomicReference();
+ virtual ::java::lang::Object * get();
+ virtual void set(::java::lang::Object *);
+ virtual void lazySet(::java::lang::Object *);
+ virtual jboolean compareAndSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::Object * getAndSet(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -1848883965231344442LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong valueOffset;
+ ::java::lang::Object * volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicReference__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceArray.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceArray.h
new file mode 100644
index 000000000..4715f0cba
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceArray.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicReferenceArray__
+#define __java_util_concurrent_atomic_AtomicReferenceArray__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicReferenceArray : public ::java::lang::Object
+{
+
+ jlong rawIndex(jint);
+public:
+ AtomicReferenceArray(jint);
+ AtomicReferenceArray(JArray< ::java::lang::Object * > *);
+ virtual jint length();
+ virtual ::java::lang::Object * get(jint);
+ virtual void set(jint, ::java::lang::Object *);
+ virtual void lazySet(jint, ::java::lang::Object *);
+ virtual ::java::lang::Object * getAndSet(jint, ::java::lang::Object *);
+ virtual jboolean compareAndSet(jint, ::java::lang::Object *, ::java::lang::Object *);
+ virtual jboolean weakCompareAndSet(jint, ::java::lang::Object *, ::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -6209656149925076980LL;
+ static ::sun::misc::Unsafe * unsafe;
+ static jint base;
+ static jint scale;
+ JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) array;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicReferenceArray__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h
new file mode 100644
index 000000000..e74a4507e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl__
+#define __java_util_concurrent_atomic_AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl__
+
+#pragma interface
+
+#include <java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::atomic::AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl : public ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater
+{
+
+public: // actually package-private
+ AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl(::java::lang::Class *, ::java::lang::Class *, ::java::lang::String *);
+ void targetCheck(::java::lang::Object *);
+ void updateCheck(::java::lang::Object *, ::java::lang::Object *);
+public:
+ jboolean compareAndSet(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+ jboolean weakCompareAndSet(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *);
+ void set(::java::lang::Object *, ::java::lang::Object *);
+ void lazySet(::java::lang::Object *, ::java::lang::Object *);
+ ::java::lang::Object * get(::java::lang::Object *);
+private:
+ void ensureProtectedAccess(::java::lang::Object *);
+ static ::sun::misc::Unsafe * unsafe;
+ jlong __attribute__((aligned(__alignof__( ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater)))) offset;
+ ::java::lang::Class * tclass;
+ ::java::lang::Class * vclass;
+ ::java::lang::Class * cclass;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h
new file mode 100644
index 000000000..d7e91e977
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicReferenceFieldUpdater__
+#define __java_util_concurrent_atomic_AtomicReferenceFieldUpdater__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::atomic::AtomicReferenceFieldUpdater : public ::java::lang::Object
+{
+
+public:
+ static ::java::util::concurrent::atomic::AtomicReferenceFieldUpdater * newUpdater(::java::lang::Class *, ::java::lang::Class *, ::java::lang::String *);
+public: // actually protected
+ AtomicReferenceFieldUpdater();
+public:
+ virtual jboolean compareAndSet(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual void set(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual void lazySet(::java::lang::Object *, ::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * get(::java::lang::Object *) = 0;
+ virtual ::java::lang::Object * getAndSet(::java::lang::Object *, ::java::lang::Object *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicReferenceFieldUpdater__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h
new file mode 100644
index 000000000..d76e45b1d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicStampedReference$ReferenceIntegerPair__
+#define __java_util_concurrent_atomic_AtomicStampedReference$ReferenceIntegerPair__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::atomic::AtomicStampedReference$ReferenceIntegerPair : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AtomicStampedReference$ReferenceIntegerPair(::java::lang::Object *, jint);
+ static ::java::lang::Object * access$0(::java::util::concurrent::atomic::AtomicStampedReference$ReferenceIntegerPair *);
+ static jint access$1(::java::util::concurrent::atomic::AtomicStampedReference$ReferenceIntegerPair *);
+private:
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) reference;
+ jint integer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicStampedReference$ReferenceIntegerPair__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference.h b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference.h
new file mode 100644
index 000000000..8e1169299
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/AtomicStampedReference.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_atomic_AtomicStampedReference__
+#define __java_util_concurrent_atomic_AtomicStampedReference__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::atomic::AtomicStampedReference : public ::java::lang::Object
+{
+
+public:
+ AtomicStampedReference(::java::lang::Object *, jint);
+ virtual ::java::lang::Object * getReference();
+ virtual jint getStamp();
+ virtual ::java::lang::Object * get(JArray< jint > *);
+ virtual jboolean weakCompareAndSet(::java::lang::Object *, ::java::lang::Object *, jint, jint);
+ virtual jboolean compareAndSet(::java::lang::Object *, ::java::lang::Object *, jint, jint);
+ virtual void set(::java::lang::Object *, jint);
+ virtual jboolean attemptStamp(::java::lang::Object *, jint);
+private:
+ ::java::util::concurrent::atomic::AtomicReference * __attribute__((aligned(__alignof__( ::java::lang::Object)))) atomicRef;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_atomic_AtomicStampedReference__
diff --git a/gcc-4.8/libjava/java/util/concurrent/atomic/natAtomicLong.cc b/gcc-4.8/libjava/java/util/concurrent/atomic/natAtomicLong.cc
new file mode 100644
index 000000000..3f78c8aa6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/atomic/natAtomicLong.cc
@@ -0,0 +1,12 @@
+#include <config.h>
+
+#include <java/util/concurrent/atomic/AtomicLong.h>
+#include <gcj/cni.h>
+#include <java/lang/UnsupportedOperationException.h>
+
+jboolean
+java::util::concurrent::atomic::AtomicLong::VMSupportsCS8 ()
+{
+ // FIXME
+ return false;
+}
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h
new file mode 100644
index 000000000..8a14257c9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractOwnableSynchronizer__
+#define __java_util_concurrent_locks_AbstractOwnableSynchronizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::AbstractOwnableSynchronizer : public ::java::lang::Object
+{
+
+public: // actually protected
+ AbstractOwnableSynchronizer();
+ virtual void setExclusiveOwnerThread(::java::lang::Thread *);
+ virtual ::java::lang::Thread * getExclusiveOwnerThread();
+private:
+ static const jlong serialVersionUID = 3737899427754241961LL;
+ ::java::lang::Thread * __attribute__((aligned(__alignof__( ::java::lang::Object)))) exclusiveOwnerThread;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractOwnableSynchronizer__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h
new file mode 100644
index 000000000..123ab81b5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractQueuedLongSynchronizer$ConditionObject__
+#define __java_util_concurrent_locks_AbstractQueuedLongSynchronizer$ConditionObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject : public ::java::lang::Object
+{
+
+public:
+ AbstractQueuedLongSynchronizer$ConditionObject(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer *);
+private:
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * addConditionWaiter();
+ void doSignal(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ void doSignalAll(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ jboolean isOnConditionQueue(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ void unlinkCancelledWaiter(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+public:
+ virtual void signal();
+ virtual void signalAll();
+ virtual void awaitUninterruptibly();
+private:
+ jint checkInterruptWhileWaiting(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ void reportInterruptAfterWait(jint);
+public:
+ virtual void await();
+ virtual jlong awaitNanos(jlong);
+ virtual jboolean awaitUntil(::java::util::Date *);
+ virtual jboolean await(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jboolean isOwnedBy(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer *);
+public: // actually protected
+ virtual jboolean hasWaiters();
+ virtual jint getWaitQueueLength();
+ virtual ::java::util::Collection * getWaitingThreads();
+private:
+ static const jlong serialVersionUID = 1173984872572414699LL;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) firstWaiter;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * lastWaiter;
+ static const jint REINTERRUPT = 1;
+ static const jint THROW_IE = -1;
+public: // actually package-private
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractQueuedLongSynchronizer$ConditionObject__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h
new file mode 100644
index 000000000..097692062
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractQueuedLongSynchronizer$Node__
+#define __java_util_concurrent_locks_AbstractQueuedLongSynchronizer$Node__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node : public ::java::lang::Object
+{
+
+public: // actually package-private
+ jboolean isShared();
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * predecessor();
+ AbstractQueuedLongSynchronizer$Node();
+ AbstractQueuedLongSynchronizer$Node(::java::lang::Thread *, ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ AbstractQueuedLongSynchronizer$Node(::java::lang::Thread *, jint);
+ static const jint CANCELLED = 1;
+ static const jint SIGNAL = -1;
+ static const jint CONDITION = -2;
+ static ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * SHARED;
+ static ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * EXCLUSIVE;
+ jint volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) waitStatus;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * volatile prev;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * volatile next;
+ ::java::lang::Thread * volatile thread;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * nextWaiter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractQueuedLongSynchronizer$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h
new file mode 100644
index 000000000..41f1f7cba
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h
@@ -0,0 +1,115 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractQueuedLongSynchronizer__
+#define __java_util_concurrent_locks_AbstractQueuedLongSynchronizer__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractOwnableSynchronizer.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::locks::AbstractQueuedLongSynchronizer : public ::java::util::concurrent::locks::AbstractOwnableSynchronizer
+{
+
+public: // actually protected
+ AbstractQueuedLongSynchronizer();
+ virtual jlong getState();
+ virtual void setState(jlong);
+ virtual jboolean compareAndSetState(jlong, jlong);
+private:
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * enq(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * addWaiter(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ void setHead(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ void unparkSuccessor(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ void setHeadAndPropagate(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, jlong);
+ void cancelAcquire(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ static jboolean shouldParkAfterFailedAcquire(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ static void selfInterrupt();
+ jboolean parkAndCheckInterrupt();
+public: // actually package-private
+ virtual jboolean acquireQueued(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, jlong);
+private:
+ void doAcquireInterruptibly(jlong);
+ jboolean doAcquireNanos(jlong, jlong);
+ void doAcquireShared(jlong);
+ void doAcquireSharedInterruptibly(jlong);
+ jboolean doAcquireSharedNanos(jlong, jlong);
+public: // actually protected
+ virtual jboolean tryAcquire(jlong);
+ virtual jboolean tryRelease(jlong);
+ virtual jlong tryAcquireShared(jlong);
+ virtual jboolean tryReleaseShared(jlong);
+ virtual jboolean isHeldExclusively();
+public:
+ virtual void acquire(jlong);
+ virtual void acquireInterruptibly(jlong);
+ virtual jboolean tryAcquireNanos(jlong, jlong);
+ virtual jboolean release(jlong);
+ virtual void acquireShared(jlong);
+ virtual void acquireSharedInterruptibly(jlong);
+ virtual jboolean tryAcquireSharedNanos(jlong, jlong);
+ virtual jboolean releaseShared(jlong);
+ virtual jboolean hasQueuedThreads();
+ virtual jboolean hasContended();
+ virtual ::java::lang::Thread * getFirstQueuedThread();
+private:
+ ::java::lang::Thread * fullGetFirstQueuedThread();
+public:
+ virtual jboolean isQueued(::java::lang::Thread *);
+public: // actually package-private
+ virtual jboolean apparentlyFirstQueuedIsExclusive();
+ virtual jboolean isFirst(::java::lang::Thread *);
+ virtual jboolean fullIsFirst(::java::lang::Thread *);
+public:
+ virtual jint getQueueLength();
+ virtual ::java::util::Collection * getQueuedThreads();
+ virtual ::java::util::Collection * getExclusiveQueuedThreads();
+ virtual ::java::util::Collection * getSharedQueuedThreads();
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ virtual jboolean isOnSyncQueue(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+private:
+ jboolean findNodeFromTail(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+public: // actually package-private
+ virtual jboolean transferForSignal(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ virtual jboolean transferAfterCancelledWait(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ virtual jlong fullyRelease(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+public:
+ virtual jboolean owns(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *);
+ virtual jboolean hasWaiters(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *);
+ virtual jint getWaitQueueLength(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *);
+ virtual ::java::util::Collection * getWaitingThreads(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$ConditionObject *);
+private:
+ jboolean compareAndSetHead(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ jboolean compareAndSetTail(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *);
+ static jboolean compareAndSetWaitStatus(::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node *, jint, jint);
+public: // actually package-private
+ static void access$0();
+private:
+ static const jlong serialVersionUID = 7373984972572414692LL;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractOwnableSynchronizer)))) head;
+ ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * volatile tail;
+ jlong volatile state;
+public: // actually package-private
+ static const jlong spinForTimeoutThreshold = 1000LL;
+private:
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong stateOffset;
+ static jlong headOffset;
+ static jlong tailOffset;
+ static jlong waitStatusOffset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractQueuedLongSynchronizer__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h
new file mode 100644
index 000000000..67ca64f6e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractQueuedSynchronizer$ConditionObject__
+#define __java_util_concurrent_locks_AbstractQueuedSynchronizer$ConditionObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject : public ::java::lang::Object
+{
+
+public:
+ AbstractQueuedSynchronizer$ConditionObject(::java::util::concurrent::locks::AbstractQueuedSynchronizer *);
+private:
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * addConditionWaiter();
+ void doSignal(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ void doSignalAll(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ jboolean isOnConditionQueue(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ void unlinkCancelledWaiter(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+public:
+ virtual void signal();
+ virtual void signalAll();
+ virtual void awaitUninterruptibly();
+private:
+ jint checkInterruptWhileWaiting(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ void reportInterruptAfterWait(jint);
+public:
+ virtual void await();
+ virtual jlong awaitNanos(jlong);
+ virtual jboolean awaitUntil(::java::util::Date *);
+ virtual jboolean await(jlong, ::java::util::concurrent::TimeUnit *);
+public: // actually package-private
+ virtual jboolean isOwnedBy(::java::util::concurrent::locks::AbstractQueuedSynchronizer *);
+public: // actually protected
+ virtual jboolean hasWaiters();
+ virtual jint getWaitQueueLength();
+ virtual ::java::util::Collection * getWaitingThreads();
+private:
+ static const jlong serialVersionUID = 1173984872572414699LL;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) firstWaiter;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * lastWaiter;
+ static const jint REINTERRUPT = 1;
+ static const jint THROW_IE = -1;
+public: // actually package-private
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractQueuedSynchronizer$ConditionObject__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h
new file mode 100644
index 000000000..cc4955057
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractQueuedSynchronizer$Node__
+#define __java_util_concurrent_locks_AbstractQueuedSynchronizer$Node__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::AbstractQueuedSynchronizer$Node : public ::java::lang::Object
+{
+
+public: // actually package-private
+ jboolean isShared();
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * predecessor();
+ AbstractQueuedSynchronizer$Node();
+ AbstractQueuedSynchronizer$Node(::java::lang::Thread *, ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ AbstractQueuedSynchronizer$Node(::java::lang::Thread *, jint);
+ static const jint CANCELLED = 1;
+ static const jint SIGNAL = -1;
+ static const jint CONDITION = -2;
+ static ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * SHARED;
+ static ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * EXCLUSIVE;
+ jint volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) waitStatus;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * volatile prev;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * volatile next;
+ ::java::lang::Thread * volatile thread;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * nextWaiter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractQueuedSynchronizer$Node__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h
new file mode 100644
index 000000000..e50fcef61
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h
@@ -0,0 +1,115 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_AbstractQueuedSynchronizer__
+#define __java_util_concurrent_locks_AbstractQueuedSynchronizer__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractOwnableSynchronizer.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::locks::AbstractQueuedSynchronizer : public ::java::util::concurrent::locks::AbstractOwnableSynchronizer
+{
+
+public: // actually protected
+ AbstractQueuedSynchronizer();
+ virtual jint getState();
+ virtual void setState(jint);
+ virtual jboolean compareAndSetState(jint, jint);
+private:
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * enq(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * addWaiter(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ void setHead(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ void unparkSuccessor(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ void setHeadAndPropagate(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint);
+ void cancelAcquire(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ static jboolean shouldParkAfterFailedAcquire(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ static void selfInterrupt();
+ jboolean parkAndCheckInterrupt();
+public: // actually package-private
+ virtual jboolean acquireQueued(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint);
+private:
+ void doAcquireInterruptibly(jint);
+ jboolean doAcquireNanos(jint, jlong);
+ void doAcquireShared(jint);
+ void doAcquireSharedInterruptibly(jint);
+ jboolean doAcquireSharedNanos(jint, jlong);
+public: // actually protected
+ virtual jboolean tryAcquire(jint);
+ virtual jboolean tryRelease(jint);
+ virtual jint tryAcquireShared(jint);
+ virtual jboolean tryReleaseShared(jint);
+ virtual jboolean isHeldExclusively();
+public:
+ virtual void acquire(jint);
+ virtual void acquireInterruptibly(jint);
+ virtual jboolean tryAcquireNanos(jint, jlong);
+ virtual jboolean release(jint);
+ virtual void acquireShared(jint);
+ virtual void acquireSharedInterruptibly(jint);
+ virtual jboolean tryAcquireSharedNanos(jint, jlong);
+ virtual jboolean releaseShared(jint);
+ virtual jboolean hasQueuedThreads();
+ virtual jboolean hasContended();
+ virtual ::java::lang::Thread * getFirstQueuedThread();
+private:
+ ::java::lang::Thread * fullGetFirstQueuedThread();
+public:
+ virtual jboolean isQueued(::java::lang::Thread *);
+public: // actually package-private
+ virtual jboolean apparentlyFirstQueuedIsExclusive();
+ virtual jboolean isFirst(::java::lang::Thread *);
+ virtual jboolean fullIsFirst(::java::lang::Thread *);
+public:
+ virtual jint getQueueLength();
+ virtual ::java::util::Collection * getQueuedThreads();
+ virtual ::java::util::Collection * getExclusiveQueuedThreads();
+ virtual ::java::util::Collection * getSharedQueuedThreads();
+ virtual ::java::lang::String * toString();
+public: // actually package-private
+ virtual jboolean isOnSyncQueue(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+private:
+ jboolean findNodeFromTail(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+public: // actually package-private
+ virtual jboolean transferForSignal(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ virtual jboolean transferAfterCancelledWait(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ virtual jint fullyRelease(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+public:
+ virtual jboolean owns(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
+ virtual jboolean hasWaiters(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
+ virtual jint getWaitQueueLength(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
+ virtual ::java::util::Collection * getWaitingThreads(::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject *);
+private:
+ jboolean compareAndSetHead(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ jboolean compareAndSetTail(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *);
+ static jboolean compareAndSetWaitStatus(::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node *, jint, jint);
+public: // actually package-private
+ static void access$0();
+private:
+ static const jlong serialVersionUID = 7373984972572414691LL;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * volatile __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractOwnableSynchronizer)))) head;
+ ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * volatile tail;
+ jint volatile state;
+public: // actually package-private
+ static const jlong spinForTimeoutThreshold = 1000LL;
+private:
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong stateOffset;
+ static jlong headOffset;
+ static jlong tailOffset;
+ static jlong waitStatusOffset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_AbstractQueuedSynchronizer__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/Condition.h b/gcc-4.8/libjava/java/util/concurrent/locks/Condition.h
new file mode 100644
index 000000000..141a4e919
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/Condition.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_Condition__
+#define __java_util_concurrent_locks_Condition__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::Condition : public ::java::lang::Object
+{
+
+public:
+ virtual void await() = 0;
+ virtual void awaitUninterruptibly() = 0;
+ virtual jlong awaitNanos(jlong) = 0;
+ virtual jboolean await(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual jboolean awaitUntil(::java::util::Date *) = 0;
+ virtual void signal() = 0;
+ virtual void signalAll() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_locks_Condition__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/Lock.h b/gcc-4.8/libjava/java/util/concurrent/locks/Lock.h
new file mode 100644
index 000000000..b00f601e7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/Lock.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_Lock__
+#define __java_util_concurrent_locks_Lock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::Lock : public ::java::lang::Object
+{
+
+public:
+ virtual void lock() = 0;
+ virtual void lockInterruptibly() = 0;
+ virtual jboolean tryLock() = 0;
+ virtual jboolean tryLock(jlong, ::java::util::concurrent::TimeUnit *) = 0;
+ virtual void unlock() = 0;
+ virtual ::java::util::concurrent::locks::Condition * newCondition() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_locks_Lock__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/LockSupport.h b/gcc-4.8/libjava/java/util/concurrent/locks/LockSupport.h
new file mode 100644
index 000000000..15ef7306f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/LockSupport.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_LockSupport__
+#define __java_util_concurrent_locks_LockSupport__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace sun
+ {
+ namespace misc
+ {
+ class Unsafe;
+ }
+ }
+}
+
+class java::util::concurrent::locks::LockSupport : public ::java::lang::Object
+{
+
+ LockSupport();
+ static void setBlocker(::java::lang::Thread *, ::java::lang::Object *);
+public:
+ static void unpark(::java::lang::Thread *);
+ static void park(::java::lang::Object *);
+ static void parkNanos(::java::lang::Object *, jlong);
+ static void parkUntil(::java::lang::Object *, jlong);
+ static ::java::lang::Object * getBlocker(::java::lang::Thread *);
+ static void park();
+ static void parkNanos(jlong);
+ static void parkUntil(jlong);
+private:
+ static ::sun::misc::Unsafe * unsafe;
+ static jlong parkBlockerOffset;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_LockSupport__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReadWriteLock.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReadWriteLock.h
new file mode 100644
index 000000000..1f4ae2e72
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReadWriteLock.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReadWriteLock__
+#define __java_util_concurrent_locks_ReadWriteLock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::ReadWriteLock : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::concurrent::locks::Lock * readLock() = 0;
+ virtual ::java::util::concurrent::locks::Lock * writeLock() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_concurrent_locks_ReadWriteLock__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h
new file mode 100644
index 000000000..d4268afcd
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantLock$FairSync__
+#define __java_util_concurrent_locks_ReentrantLock$FairSync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/ReentrantLock$Sync.h>
+
+class java::util::concurrent::locks::ReentrantLock$FairSync : public ::java::util::concurrent::locks::ReentrantLock$Sync
+{
+
+public: // actually package-private
+ ReentrantLock$FairSync();
+ void lock();
+public: // actually protected
+ jboolean tryAcquire(jint);
+private:
+ static const jlong serialVersionUID = -3000897897090466540LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantLock$FairSync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h
new file mode 100644
index 000000000..743a0bd75
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantLock$NonfairSync__
+#define __java_util_concurrent_locks_ReentrantLock$NonfairSync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/ReentrantLock$Sync.h>
+
+class java::util::concurrent::locks::ReentrantLock$NonfairSync : public ::java::util::concurrent::locks::ReentrantLock$Sync
+{
+
+public: // actually package-private
+ ReentrantLock$NonfairSync();
+ void lock();
+public: // actually protected
+ jboolean tryAcquire(jint);
+private:
+ static const jlong serialVersionUID = 7316153563782823691LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantLock$NonfairSync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$Sync.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$Sync.h
new file mode 100644
index 000000000..b3656d0df
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock$Sync.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantLock$Sync__
+#define __java_util_concurrent_locks_ReentrantLock$Sync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractQueuedSynchronizer.h>
+
+class java::util::concurrent::locks::ReentrantLock$Sync : public ::java::util::concurrent::locks::AbstractQueuedSynchronizer
+{
+
+public: // actually package-private
+ ReentrantLock$Sync();
+ virtual void lock() = 0;
+ virtual jboolean nonfairTryAcquire(jint);
+public: // actually protected
+ virtual jboolean tryRelease(jint);
+ virtual jboolean isHeldExclusively();
+public: // actually package-private
+ virtual ::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject * newCondition();
+ virtual ::java::lang::Thread * getOwner();
+ virtual jint getHoldCount();
+ virtual jboolean isLocked();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ static const jlong serialVersionUID = -5179523762034025860LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantLock$Sync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock.h
new file mode 100644
index 000000000..5cac4b27f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantLock.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantLock__
+#define __java_util_concurrent_locks_ReentrantLock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::ReentrantLock : public ::java::lang::Object
+{
+
+public:
+ ReentrantLock();
+ ReentrantLock(jboolean);
+ virtual void lock();
+ virtual void lockInterruptibly();
+ virtual jboolean tryLock();
+ virtual jboolean tryLock(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void unlock();
+ virtual ::java::util::concurrent::locks::Condition * newCondition();
+ virtual jint getHoldCount();
+ virtual jboolean isHeldByCurrentThread();
+ virtual jboolean isLocked();
+ virtual jboolean isFair();
+public: // actually protected
+ virtual ::java::lang::Thread * getOwner();
+public:
+ virtual jboolean hasQueuedThreads();
+ virtual jboolean hasQueuedThread(::java::lang::Thread *);
+ virtual jint getQueueLength();
+public: // actually protected
+ virtual ::java::util::Collection * getQueuedThreads();
+public:
+ virtual jboolean hasWaiters(::java::util::concurrent::locks::Condition *);
+ virtual jint getWaitQueueLength(::java::util::concurrent::locks::Condition *);
+public: // actually protected
+ virtual ::java::util::Collection * getWaitingThreads(::java::util::concurrent::locks::Condition *);
+public:
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 7373984872572414699LL;
+ ::java::util::concurrent::locks::ReentrantLock$Sync * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantLock__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h
new file mode 100644
index 000000000..05090b5b1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$FairSync__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$FairSync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$FairSync : public ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync
+{
+
+public: // actually package-private
+ ReentrantReadWriteLock$FairSync();
+ jboolean writerShouldBlock(::java::lang::Thread *);
+ jboolean readerShouldBlock(::java::lang::Thread *);
+private:
+ static const jlong serialVersionUID = -2274990926593161451LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$FairSync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h
new file mode 100644
index 000000000..29a565ae4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$NonfairSync__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$NonfairSync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$NonfairSync : public ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync
+{
+
+public: // actually package-private
+ ReentrantReadWriteLock$NonfairSync();
+ jboolean writerShouldBlock(::java::lang::Thread *);
+ jboolean readerShouldBlock(::java::lang::Thread *);
+private:
+ static const jlong serialVersionUID = -8159625535654395037LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$NonfairSync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h
new file mode 100644
index 000000000..0f48a6cb8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h
@@ -0,0 +1,31 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$ReadLock__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$ReadLock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$ReadLock : public ::java::lang::Object
+{
+
+public: // actually protected
+ ReentrantReadWriteLock$ReadLock(::java::util::concurrent::locks::ReentrantReadWriteLock *);
+public:
+ virtual void lock();
+ virtual void lockInterruptibly();
+ virtual jboolean tryLock();
+ virtual jboolean tryLock(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void unlock();
+ virtual ::java::util::concurrent::locks::Condition * newCondition();
+ virtual ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = -5992448646407690164LL;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$ReadLock__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h
new file mode 100644
index 000000000..4813f0d8f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$Sync$HoldCounter__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$Sync$HoldCounter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$Sync$HoldCounter : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ReentrantReadWriteLock$Sync$HoldCounter();
+ jint tryDecrement();
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ jlong tid;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$Sync$HoldCounter__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h
new file mode 100644
index 000000000..10f87c922
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter__
+
+#pragma interface
+
+#include <java/lang/ThreadLocal.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter : public ::java::lang::ThreadLocal
+{
+
+public: // actually package-private
+ ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter();
+public:
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync$HoldCounter * ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter$initialValue();
+ ::java::lang::Object * initialValue();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h
new file mode 100644
index 000000000..d1d43078f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$Sync__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$Sync__
+
+#pragma interface
+
+#include <java/util/concurrent/locks/AbstractQueuedSynchronizer.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$Sync : public ::java::util::concurrent::locks::AbstractQueuedSynchronizer
+{
+
+public: // actually package-private
+ static jint sharedCount(jint);
+ static jint exclusiveCount(jint);
+ ReentrantReadWriteLock$Sync();
+ virtual jboolean readerShouldBlock(::java::lang::Thread *) = 0;
+ virtual jboolean writerShouldBlock(::java::lang::Thread *) = 0;
+public: // actually protected
+ virtual jboolean tryRelease(jint);
+ virtual jboolean tryAcquire(jint);
+ virtual jboolean tryReleaseShared(jint);
+ virtual jint tryAcquireShared(jint);
+public: // actually package-private
+ virtual jint fullTryAcquireShared(::java::lang::Thread *);
+ virtual jboolean tryWriteLock();
+ virtual jboolean tryReadLock();
+public: // actually protected
+ virtual jboolean isHeldExclusively();
+public: // actually package-private
+ virtual ::java::util::concurrent::locks::AbstractQueuedSynchronizer$ConditionObject * newCondition();
+ virtual ::java::lang::Thread * getOwner();
+ virtual jint getReadLockCount();
+ virtual jboolean isWriteLocked();
+ virtual jint getWriteHoldCount();
+ virtual jint getReadHoldCount();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ virtual jint getCount();
+private:
+ static const jlong serialVersionUID = 6317671515068378041LL;
+public: // actually package-private
+ static const jint SHARED_SHIFT = 16;
+ static const jint SHARED_UNIT = 65536;
+ static const jint MAX_COUNT = 65535;
+ static const jint EXCLUSIVE_MASK = 65535;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter * __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractQueuedSynchronizer)))) readHolds;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync$HoldCounter * cachedHoldCounter;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$Sync__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h
new file mode 100644
index 000000000..4e57d53c6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock$WriteLock__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock$WriteLock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock$WriteLock : public ::java::lang::Object
+{
+
+public: // actually protected
+ ReentrantReadWriteLock$WriteLock(::java::util::concurrent::locks::ReentrantReadWriteLock *);
+public:
+ virtual void lock();
+ virtual void lockInterruptibly();
+ virtual jboolean tryLock();
+ virtual jboolean tryLock(jlong, ::java::util::concurrent::TimeUnit *);
+ virtual void unlock();
+ virtual ::java::util::concurrent::locks::Condition * newCondition();
+ virtual ::java::lang::String * toString();
+ virtual jboolean isHeldByCurrentThread();
+ virtual jint getHoldCount();
+private:
+ static const jlong serialVersionUID = -4992448646407690164LL;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock$WriteLock__
diff --git a/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h
new file mode 100644
index 000000000..e7da50a75
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_locks_ReentrantReadWriteLock__
+#define __java_util_concurrent_locks_ReentrantReadWriteLock__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::locks::ReentrantReadWriteLock : public ::java::lang::Object
+{
+
+public:
+ ReentrantReadWriteLock();
+ ReentrantReadWriteLock(jboolean);
+ virtual ::java::util::concurrent::locks::ReentrantReadWriteLock$WriteLock * ReentrantReadWriteLock$writeLock();
+ virtual ::java::util::concurrent::locks::ReentrantReadWriteLock$ReadLock * ReentrantReadWriteLock$readLock();
+ virtual jboolean isFair();
+public: // actually protected
+ virtual ::java::lang::Thread * getOwner();
+public:
+ virtual jint getReadLockCount();
+ virtual jboolean isWriteLocked();
+ virtual jboolean isWriteLockedByCurrentThread();
+ virtual jint getWriteHoldCount();
+ virtual jint getReadHoldCount();
+public: // actually protected
+ virtual ::java::util::Collection * getQueuedWriterThreads();
+ virtual ::java::util::Collection * getQueuedReaderThreads();
+public:
+ virtual jboolean hasQueuedThreads();
+ virtual jboolean hasQueuedThread(::java::lang::Thread *);
+ virtual jint getQueueLength();
+public: // actually protected
+ virtual ::java::util::Collection * getQueuedThreads();
+public:
+ virtual jboolean hasWaiters(::java::util::concurrent::locks::Condition *);
+ virtual jint getWaitQueueLength(::java::util::concurrent::locks::Condition *);
+public: // actually protected
+ virtual ::java::util::Collection * getWaitingThreads(::java::util::concurrent::locks::Condition *);
+public:
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::concurrent::locks::Lock * readLock();
+ virtual ::java::util::concurrent::locks::Lock * writeLock();
+public: // actually package-private
+ static ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync * access$2(::java::util::concurrent::locks::ReentrantReadWriteLock *);
+private:
+ static const jlong serialVersionUID = -6992448646407690164LL;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$ReadLock * __attribute__((aligned(__alignof__( ::java::lang::Object)))) readerLock;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$WriteLock * writerLock;
+ ::java::util::concurrent::locks::ReentrantReadWriteLock$Sync * sync;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_locks_ReentrantReadWriteLock__
diff --git a/gcc-4.8/libjava/java/util/jar/Attributes$Name.h b/gcc-4.8/libjava/java/util/jar/Attributes$Name.h
new file mode 100644
index 000000000..867bcea77
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/Attributes$Name.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_Attributes$Name__
+#define __java_util_jar_Attributes$Name__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::jar::Attributes$Name : public ::java::lang::Object
+{
+
+public:
+ Attributes$Name(::java::lang::String *);
+ virtual jint hashCode();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
+ static ::java::util::jar::Attributes$Name * MANIFEST_VERSION;
+ static ::java::util::jar::Attributes$Name * SIGNATURE_VERSION;
+ static ::java::util::jar::Attributes$Name * CLASS_PATH;
+ static ::java::util::jar::Attributes$Name * MAIN_CLASS;
+ static ::java::util::jar::Attributes$Name * EXTENSION_LIST;
+ static ::java::util::jar::Attributes$Name * EXTENSION_NAME;
+ static ::java::util::jar::Attributes$Name * EXTENSION_INSTALLATION;
+ static ::java::util::jar::Attributes$Name * IMPLEMENTATION_TITLE;
+ static ::java::util::jar::Attributes$Name * IMPLEMENTATION_VERSION;
+ static ::java::util::jar::Attributes$Name * IMPLEMENTATION_VENDOR;
+ static ::java::util::jar::Attributes$Name * IMPLEMENTATION_VENDOR_ID;
+ static ::java::util::jar::Attributes$Name * IMPLEMENTATION_URL;
+ static ::java::util::jar::Attributes$Name * SPECIFICATION_TITLE;
+ static ::java::util::jar::Attributes$Name * SPECIFICATION_VERSION;
+ static ::java::util::jar::Attributes$Name * SPECIFICATION_VENDOR;
+ static ::java::util::jar::Attributes$Name * SEALED;
+ static ::java::util::jar::Attributes$Name * CONTENT_TYPE;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::lang::String * origName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_Attributes$Name__
diff --git a/gcc-4.8/libjava/java/util/jar/Attributes.h b/gcc-4.8/libjava/java/util/jar/Attributes.h
new file mode 100644
index 000000000..628be03df
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/Attributes.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_Attributes__
+#define __java_util_jar_Attributes__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::jar::Attributes : public ::java::lang::Object
+{
+
+public:
+ Attributes();
+ Attributes(jint);
+ Attributes(::java::util::jar::Attributes *);
+ virtual ::java::lang::String * getValue(::java::lang::String *);
+ virtual ::java::lang::String * getValue(::java::util::jar::Attributes$Name *);
+ virtual ::java::lang::String * putValue(::java::lang::String *, ::java::lang::String *);
+private:
+ ::java::lang::String * putValue(::java::util::jar::Attributes$Name *, ::java::lang::String *);
+public:
+ virtual ::java::lang::Object * clone();
+ virtual void clear();
+ virtual jboolean containsKey(::java::lang::Object *);
+ virtual jboolean containsValue(::java::lang::Object *);
+ virtual ::java::util::Set * entrySet();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::Object * get(::java::lang::Object *);
+ virtual jint hashCode();
+ virtual jboolean isEmpty();
+ virtual ::java::util::Set * keySet();
+ virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *);
+ virtual void putAll(::java::util::Map *);
+ virtual ::java::lang::Object * remove(::java::lang::Object *);
+ virtual jint size();
+ virtual ::java::util::Collection * values();
+public: // actually protected
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) map;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_Attributes__
diff --git a/gcc-4.8/libjava/java/util/jar/JarEntry.h b/gcc-4.8/libjava/java/util/jar/JarEntry.h
new file mode 100644
index 000000000..c95ab9486
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarEntry.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarEntry__
+#define __java_util_jar_JarEntry__
+
+#pragma interface
+
+#include <java/util/zip/ZipEntry.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::util::jar::JarEntry : public ::java::util::zip::ZipEntry
+{
+
+public:
+ JarEntry(::java::lang::String *);
+ JarEntry(::java::util::zip::ZipEntry *);
+ JarEntry(::java::util::jar::JarEntry *);
+ virtual ::java::util::jar::Attributes * getAttributes();
+ virtual JArray< ::java::security::cert::Certificate * > * getCertificates();
+public: // actually package-private
+ ::java::util::jar::Attributes * __attribute__((aligned(__alignof__( ::java::util::zip::ZipEntry)))) attr;
+ ::java::util::jar::JarFile * jarfile;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarEntry__
diff --git a/gcc-4.8/libjava/java/util/jar/JarException.h b/gcc-4.8/libjava/java/util/jar/JarException.h
new file mode 100644
index 000000000..4ea6da37b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarException__
+#define __java_util_jar_JarException__
+
+#pragma interface
+
+#include <java/util/zip/ZipException.h>
+
+class java::util::jar::JarException : public ::java::util::zip::ZipException
+{
+
+public:
+ JarException();
+ JarException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 7159778400963954473LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarException__
diff --git a/gcc-4.8/libjava/java/util/jar/JarFile$EntryInputStream.h b/gcc-4.8/libjava/java/util/jar/JarFile$EntryInputStream.h
new file mode 100644
index 000000000..cf68dbf45
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarFile$EntryInputStream.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarFile$EntryInputStream__
+#define __java_util_jar_JarFile$EntryInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class MessageDigest;
+ }
+ }
+}
+
+class java::util::jar::JarFile$EntryInputStream : public ::java::io::FilterInputStream
+{
+
+public: // actually package-private
+ JarFile$EntryInputStream(::java::util::zip::ZipEntry *, ::java::io::InputStream *, ::java::util::jar::JarFile *);
+public:
+ virtual jboolean markSupported();
+ virtual void mark(jint);
+ virtual void reset();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jint read(JArray< jbyte > *);
+ virtual jlong skip(jlong);
+private:
+ void eof();
+ ::java::util::jar::JarFile * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) jarfile;
+ jlong length;
+ jlong pos;
+ ::java::util::zip::ZipEntry * entry;
+ JArray< JArray< jbyte > * > * hashes;
+ JArray< ::java::security::MessageDigest * > * md;
+ jboolean checked;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarFile$EntryInputStream__
diff --git a/gcc-4.8/libjava/java/util/jar/JarFile$JarEnumeration.h b/gcc-4.8/libjava/java/util/jar/JarFile$JarEnumeration.h
new file mode 100644
index 000000000..60aea6996
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarFile$JarEnumeration.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarFile$JarEnumeration__
+#define __java_util_jar_JarFile$JarEnumeration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::jar::JarFile$JarEnumeration : public ::java::lang::Object
+{
+
+public: // actually package-private
+ JarFile$JarEnumeration(::java::util::Enumeration *, ::java::util::jar::JarFile *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::util::jar::JarEntry * JarFile$JarEnumeration$nextElement();
+ virtual ::java::lang::Object * nextElement();
+private:
+ ::java::util::Enumeration * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries;
+ ::java::util::jar::JarFile * jarfile;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarFile$JarEnumeration__
diff --git a/gcc-4.8/libjava/java/util/jar/JarFile.h b/gcc-4.8/libjava/java/util/jar/JarFile.h
new file mode 100644
index 000000000..081be76bf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarFile.h
@@ -0,0 +1,103 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarFile__
+#define __java_util_jar_JarFile__
+
+#pragma interface
+
+#include <java/util/zip/ZipFile.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace security
+ {
+ class OID;
+ namespace pkcs
+ {
+ class SignerInfo;
+ }
+ namespace provider
+ {
+ class Gnu;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace security
+ {
+ namespace cert
+ {
+ class Certificate;
+ }
+ }
+ }
+}
+
+class java::util::jar::JarFile : public ::java::util::zip::ZipFile
+{
+
+public: // actually package-private
+ static void debug(::java::lang::Object *);
+public:
+ JarFile(::java::lang::String *);
+ JarFile(::java::lang::String *, jboolean);
+ JarFile(::java::io::File *);
+ JarFile(::java::io::File *, jboolean);
+ JarFile(::java::io::File *, jboolean, jint);
+private:
+ void verify();
+ ::java::util::jar::Manifest * readManifest();
+public:
+ virtual ::java::util::Enumeration * entries();
+ virtual ::java::util::zip::ZipEntry * getEntry(::java::lang::String *);
+ virtual ::java::io::InputStream * getInputStream(::java::util::zip::ZipEntry *);
+ virtual ::java::util::jar::JarEntry * getJarEntry(::java::lang::String *);
+ virtual ::java::util::jar::Manifest * getManifest();
+public: // actually package-private
+ virtual void readSignatures();
+private:
+ void verify(JArray< ::java::security::cert::Certificate * > *, ::gnu::java::security::pkcs::SignerInfo *, ::java::lang::String *, ::java::util::Set *);
+ jboolean verifyHashes(::java::lang::String *, ::java::util::jar::Attributes *, ::java::util::HashMap *);
+public:
+ static ::java::lang::String * MANIFEST_NAME;
+private:
+ static ::java::lang::String * META_INF;
+ static ::java::lang::String * PKCS7_DSA_SUFFIX;
+ static ::java::lang::String * PKCS7_RSA_SUFFIX;
+ static ::java::lang::String * DIGEST_KEY_SUFFIX;
+ static ::java::lang::String * SF_SUFFIX;
+public: // actually package-private
+ static ::gnu::java::security::provider::Gnu * provider;
+private:
+ static ::gnu::java::security::OID * MD2_OID;
+ static ::gnu::java::security::OID * MD4_OID;
+ static ::gnu::java::security::OID * MD5_OID;
+ static ::gnu::java::security::OID * SHA1_OID;
+ static ::gnu::java::security::OID * DSA_ENCRYPTION_OID;
+ static ::gnu::java::security::OID * RSA_ENCRYPTION_OID;
+ ::java::util::jar::Manifest * __attribute__((aligned(__alignof__( ::java::util::zip::ZipFile)))) manifest;
+public: // actually package-private
+ jboolean verify__;
+private:
+ jboolean manifestRead;
+public: // actually package-private
+ jboolean signaturesRead;
+ ::java::util::HashMap * verified;
+ ::java::util::HashMap * entryCerts;
+private:
+ ::java::util::HashMap * digestAlgorithms;
+public: // actually package-private
+ static jboolean DEBUG;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarFile__
diff --git a/gcc-4.8/libjava/java/util/jar/JarInputStream.h b/gcc-4.8/libjava/java/util/jar/JarInputStream.h
new file mode 100644
index 000000000..7e4441d7e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarInputStream.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarInputStream__
+#define __java_util_jar_JarInputStream__
+
+#pragma interface
+
+#include <java/util/zip/ZipInputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::jar::JarInputStream : public ::java::util::zip::ZipInputStream
+{
+
+public:
+ JarInputStream(::java::io::InputStream *);
+ JarInputStream(::java::io::InputStream *, jboolean);
+private:
+ void readManifest(jboolean);
+public: // actually protected
+ virtual ::java::util::zip::ZipEntry * createZipEntry(::java::lang::String *);
+public:
+ virtual ::java::util::jar::Manifest * getManifest();
+ virtual ::java::util::zip::ZipEntry * getNextEntry();
+ virtual ::java::util::jar::JarEntry * getNextJarEntry();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+private:
+ ::java::util::jar::Manifest * __attribute__((aligned(__alignof__( ::java::util::zip::ZipInputStream)))) manifest;
+ ::java::util::jar::JarEntry * firstEntry;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarInputStream__
diff --git a/gcc-4.8/libjava/java/util/jar/JarOutputStream.h b/gcc-4.8/libjava/java/util/jar/JarOutputStream.h
new file mode 100644
index 000000000..184f307c5
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/JarOutputStream.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_JarOutputStream__
+#define __java_util_jar_JarOutputStream__
+
+#pragma interface
+
+#include <java/util/zip/ZipOutputStream.h>
+
+class java::util::jar::JarOutputStream : public ::java::util::zip::ZipOutputStream
+{
+
+public:
+ JarOutputStream(::java::io::OutputStream *);
+ JarOutputStream(::java::io::OutputStream *, ::java::util::jar::Manifest *);
+private:
+ void writeManifest(::java::util::jar::Manifest *);
+public:
+ virtual void putNextEntry(::java::util::zip::ZipEntry *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_JarOutputStream__
diff --git a/gcc-4.8/libjava/java/util/jar/Manifest.h b/gcc-4.8/libjava/java/util/jar/Manifest.h
new file mode 100644
index 000000000..b0f2e9932
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/jar/Manifest.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_jar_Manifest__
+#define __java_util_jar_Manifest__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::jar::Manifest : public ::java::lang::Object
+{
+
+public:
+ Manifest();
+ Manifest(::java::io::InputStream *);
+ Manifest(::java::util::jar::Manifest *);
+ virtual ::java::util::jar::Attributes * getMainAttributes();
+ virtual ::java::util::Map * getEntries();
+ virtual ::java::util::jar::Attributes * getAttributes(::java::lang::String *);
+ virtual void clear();
+ virtual void read(::java::io::InputStream *);
+ virtual void write(::java::io::OutputStream *);
+ virtual ::java::lang::Object * clone();
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+private:
+ ::java::util::jar::Attributes * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mainAttr;
+ ::java::util::Map * entries;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_jar_Manifest__
diff --git a/gcc-4.8/libjava/java/util/logging/ConsoleHandler.h b/gcc-4.8/libjava/java/util/logging/ConsoleHandler.h
new file mode 100644
index 000000000..0d1bbe02d
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/ConsoleHandler.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_ConsoleHandler__
+#define __java_util_logging_ConsoleHandler__
+
+#pragma interface
+
+#include <java/util/logging/StreamHandler.h>
+
+class java::util::logging::ConsoleHandler : public ::java::util::logging::StreamHandler
+{
+
+public:
+ ConsoleHandler();
+ virtual void close();
+ virtual void publish(::java::util::logging::LogRecord *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_ConsoleHandler__
diff --git a/gcc-4.8/libjava/java/util/logging/ErrorManager.h b/gcc-4.8/libjava/java/util/logging/ErrorManager.h
new file mode 100644
index 000000000..58d48c9e2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/ErrorManager.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_ErrorManager__
+#define __java_util_logging_ErrorManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::ErrorManager : public ::java::lang::Object
+{
+
+public:
+ ErrorManager();
+ virtual void error(::java::lang::String *, ::java::lang::Exception *, jint);
+ static const jint GENERIC_FAILURE = 0;
+ static const jint WRITE_FAILURE = 1;
+ static const jint FLUSH_FAILURE = 2;
+ static const jint CLOSE_FAILURE = 3;
+ static const jint OPEN_FAILURE = 4;
+ static const jint FORMAT_FAILURE = 5;
+private:
+ jboolean volatile __attribute__((aligned(__alignof__( ::java::lang::Object)))) everUsed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_ErrorManager__
diff --git a/gcc-4.8/libjava/java/util/logging/FileHandler$ostr.h b/gcc-4.8/libjava/java/util/logging/FileHandler$ostr.h
new file mode 100644
index 000000000..e34a3db87
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/FileHandler$ostr.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_FileHandler$ostr__
+#define __java_util_logging_FileHandler$ostr__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::logging::FileHandler$ostr : public ::java::io::FilterOutputStream
+{
+
+ FileHandler$ostr(::java::util::logging::FileHandler *, ::java::io::OutputStream *);
+public:
+ void write(jint);
+ void write(JArray< jbyte > *);
+ void write(JArray< jbyte > *, jint, jint);
+public: // actually package-private
+ FileHandler$ostr(::java::util::logging::FileHandler *, ::java::io::OutputStream *, ::java::util::logging::FileHandler$ostr *);
+ ::java::util::logging::FileHandler * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_FileHandler$ostr__
diff --git a/gcc-4.8/libjava/java/util/logging/FileHandler.h b/gcc-4.8/libjava/java/util/logging/FileHandler.h
new file mode 100644
index 000000000..16feec2b2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/FileHandler.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_FileHandler__
+#define __java_util_logging_FileHandler__
+
+#pragma interface
+
+#include <java/util/logging/StreamHandler.h>
+
+class java::util::logging::FileHandler : public ::java::util::logging::StreamHandler
+{
+
+public:
+ FileHandler();
+ FileHandler(::java::lang::String *);
+ FileHandler(::java::lang::String *, jboolean);
+ FileHandler(::java::lang::String *, jint, jint);
+ FileHandler(::java::lang::String *, jint, jint, jboolean);
+private:
+ ::java::io::OutputStream * createFileStream(::java::lang::String *, jint, jint, jboolean, jint);
+ static ::java::lang::String * replaceFileNameEscapes(::java::lang::String *, jint, jint, jint);
+public:
+ virtual void publish(::java::util::logging::LogRecord *);
+private:
+ void rotate();
+ static jboolean has(::java::lang::String *, jchar);
+ static ::java::lang::String * PROPERTY_PREFIX;
+ static ::java::lang::String * PATTERN_KEY;
+ static ::java::lang::String * DEFAULT_PATTERN;
+ static ::java::lang::String * LIMIT_KEY;
+ static const jint DEFAULT_LIMIT = 0;
+ static ::java::lang::String * COUNT_KEY;
+ static const jint DEFAULT_COUNT = 1;
+ static ::java::lang::String * APPEND_KEY;
+ static const jboolean DEFAULT_APPEND = 0;
+ jint __attribute__((aligned(__alignof__( ::java::util::logging::StreamHandler)))) limit;
+ jint count;
+ ::java::lang::String * pattern;
+ jboolean append;
+public: // actually package-private
+ jlong written;
+private:
+ ::java::util::LinkedList * logFiles;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_FileHandler__
diff --git a/gcc-4.8/libjava/java/util/logging/Filter.h b/gcc-4.8/libjava/java/util/logging/Filter.h
new file mode 100644
index 000000000..23b8ca6a1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Filter.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_Filter__
+#define __java_util_logging_Filter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::Filter : public ::java::lang::Object
+{
+
+public:
+ virtual jboolean isLoggable(::java::util::logging::LogRecord *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_logging_Filter__
diff --git a/gcc-4.8/libjava/java/util/logging/Formatter.h b/gcc-4.8/libjava/java/util/logging/Formatter.h
new file mode 100644
index 000000000..def22454c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Formatter.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_Formatter__
+#define __java_util_logging_Formatter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::Formatter : public ::java::lang::Object
+{
+
+public: // actually protected
+ Formatter();
+public:
+ virtual ::java::lang::String * format(::java::util::logging::LogRecord *) = 0;
+ virtual ::java::lang::String * getHead(::java::util::logging::Handler *);
+ virtual ::java::lang::String * getTail(::java::util::logging::Handler *);
+ virtual ::java::lang::String * formatMessage(::java::util::logging::LogRecord *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_Formatter__
diff --git a/gcc-4.8/libjava/java/util/logging/Handler.h b/gcc-4.8/libjava/java/util/logging/Handler.h
new file mode 100644
index 000000000..2c722be60
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Handler.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_Handler__
+#define __java_util_logging_Handler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::Handler : public ::java::lang::Object
+{
+
+public: // actually protected
+ Handler();
+public:
+ virtual void publish(::java::util::logging::LogRecord *) = 0;
+ virtual void flush() = 0;
+ virtual void close() = 0;
+ virtual ::java::util::logging::Formatter * getFormatter();
+ virtual void setFormatter(::java::util::logging::Formatter *);
+ virtual ::java::lang::String * getEncoding();
+ virtual void setEncoding(::java::lang::String *);
+ virtual ::java::util::logging::Filter * getFilter();
+ virtual void setFilter(::java::util::logging::Filter *);
+ virtual ::java::util::logging::ErrorManager * getErrorManager();
+ virtual void setErrorManager(::java::util::logging::ErrorManager *);
+public: // actually protected
+ virtual void reportError(::java::lang::String *, ::java::lang::Exception *, jint);
+public:
+ virtual ::java::util::logging::Level * getLevel();
+ virtual void setLevel(::java::util::logging::Level *);
+ virtual jboolean isLoggable(::java::util::logging::LogRecord *);
+public: // actually package-private
+ ::java::util::logging::Formatter * __attribute__((aligned(__alignof__( ::java::lang::Object)))) formatter;
+ ::java::util::logging::Filter * filter;
+ ::java::util::logging::Level * level;
+ ::java::util::logging::ErrorManager * errorManager;
+ ::java::lang::String * encoding;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_Handler__
diff --git a/gcc-4.8/libjava/java/util/logging/Level.h b/gcc-4.8/libjava/java/util/logging/Level.h
new file mode 100644
index 000000000..34f516093
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Level.h
@@ -0,0 +1,53 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_Level__
+#define __java_util_logging_Level__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::logging::Level : public ::java::lang::Object
+{
+
+public: // actually protected
+ Level(::java::lang::String *, jint);
+ Level(::java::lang::String *, jint, ::java::lang::String *);
+private:
+ ::java::lang::Object * readResolve();
+public:
+ virtual ::java::lang::String * getResourceBundleName();
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::String * getLocalizedName();
+ virtual ::java::lang::String * toString();
+ virtual jint intValue();
+ static ::java::util::logging::Level * parse(::java::lang::String *);
+ virtual jboolean equals(::java::lang::Object *);
+ virtual jint hashCode();
+public: // actually package-private
+ virtual jboolean isStandardLevel();
+public:
+ static ::java::util::logging::Level * OFF;
+ static ::java::util::logging::Level * SEVERE;
+ static ::java::util::logging::Level * WARNING;
+ static ::java::util::logging::Level * INFO;
+ static ::java::util::logging::Level * CONFIG;
+ static ::java::util::logging::Level * FINE;
+ static ::java::util::logging::Level * FINER;
+ static ::java::util::logging::Level * FINEST;
+ static ::java::util::logging::Level * ALL;
+private:
+ static JArray< ::java::util::logging::Level * > * knownLevels;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ jint value;
+ ::java::lang::String * resourceBundleName;
+public: // actually package-private
+ static const jlong serialVersionUID = -8176160795706313070LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_Level__
diff --git a/gcc-4.8/libjava/java/util/logging/LogManager$1.h b/gcc-4.8/libjava/java/util/logging/LogManager$1.h
new file mode 100644
index 000000000..0d1ed2152
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/LogManager$1.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_LogManager$1__
+#define __java_util_logging_LogManager$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::LogManager$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ LogManager$1();
+public:
+ virtual ::java::lang::String * getLoggerLevel(::java::lang::String *);
+ virtual ::java::util::List * getLoggerNames();
+ virtual ::java::lang::String * getParentLoggerName(::java::lang::String *);
+ virtual void setLoggerLevel(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_LogManager$1__
diff --git a/gcc-4.8/libjava/java/util/logging/LogManager.h b/gcc-4.8/libjava/java/util/logging/LogManager.h
new file mode 100644
index 000000000..f552d65d7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/LogManager.h
@@ -0,0 +1,77 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_LogManager__
+#define __java_util_logging_LogManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace beans
+ {
+ class PropertyChangeListener;
+ class PropertyChangeSupport;
+ }
+ }
+}
+
+class java::util::logging::LogManager : public ::java::lang::Object
+{
+
+public: // actually protected
+ LogManager();
+public:
+ static ::java::util::logging::LogManager * getLogManager();
+private:
+ static ::java::util::logging::LogManager * makeLogManager();
+ static void initLogManager();
+public:
+ virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *);
+ virtual jboolean addLogger(::java::util::logging::Logger *);
+private:
+ ::java::util::logging::Logger * findAncestor(::java::util::logging::Logger *);
+public:
+ virtual ::java::util::logging::Logger * getLogger(::java::lang::String *);
+ virtual ::java::util::Enumeration * getLoggerNames();
+ virtual void reset();
+ virtual void readConfiguration();
+ virtual void readConfiguration(::java::io::InputStream *);
+ virtual ::java::lang::String * getProperty(::java::lang::String *);
+public: // actually package-private
+ static jint getIntProperty(::java::lang::String *, jint);
+ static jint getIntPropertyClamped(::java::lang::String *, jint, jint, jint);
+ static jboolean getBooleanProperty(::java::lang::String *, jboolean);
+ static ::java::util::logging::Level * getLevelProperty(::java::lang::String *, ::java::util::logging::Level *);
+ static ::java::lang::Class * getClassProperty(::java::lang::String *, ::java::lang::Class *);
+ static ::java::lang::Object * getInstanceProperty(::java::lang::String *, ::java::lang::Class *, ::java::lang::Class *);
+public:
+ virtual void checkAccess();
+private:
+ static ::java::lang::Object * createInstance(::java::lang::String *, ::java::lang::Class *, ::java::lang::String *);
+ static void warn(::java::lang::String *, ::java::lang::String *, ::java::lang::Throwable *);
+ static void warn(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ static void warn(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::Throwable *);
+ static void warn(::java::lang::String *, ::java::lang::Throwable *);
+ static ::java::lang::Class * locateClass(::java::lang::String *);
+public:
+ static ::java::util::logging::LoggingMXBean * getLoggingMXBean();
+ static ::java::lang::String * LOGGING_MXBEAN_NAME;
+private:
+ static ::java::util::logging::LogManager * logManager;
+ static ::java::util::logging::LoggingMXBean * loggingBean;
+ ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loggers;
+ ::java::util::Properties * properties;
+ ::java::beans::PropertyChangeSupport * pcs;
+ static ::java::lang::String * MANAGER_PROPERTY;
+ static ::java::lang::String * CONFIG_PROPERTY;
+ static ::java::util::logging::LoggingPermission * controlPermission;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_LogManager__
diff --git a/gcc-4.8/libjava/java/util/logging/LogManager.java b/gcc-4.8/libjava/java/util/logging/LogManager.java
new file mode 100644
index 000000000..811310c70
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/LogManager.java
@@ -0,0 +1,991 @@
+/* LogManager.java -- a class for maintaining Loggers and managing
+ configuration properties
+ Copyright (C) 2002, 2005, 2006, 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.util.logging;
+
+import gnu.classpath.SystemProperties;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.ref.WeakReference;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+/**
+ * The <code>LogManager</code> maintains a hierarchical namespace
+ * of Logger objects and manages properties for configuring the logging
+ * framework. There exists only one single <code>LogManager</code>
+ * per virtual machine. This instance can be retrieved using the
+ * static method {@link #getLogManager()}.
+ *
+ * <p><strong>Configuration Process:</strong> The global LogManager
+ * object is created and configured when the class
+ * <code>java.util.logging.LogManager</code> is initialized.
+ * The configuration process includes the subsequent steps:
+ *
+ * <ul>
+ * <li>If the system property <code>java.util.logging.manager</code>
+ * is set to the name of a subclass of
+ * <code>java.util.logging.LogManager</code>, an instance of
+ * that subclass is created and becomes the global LogManager.
+ * Otherwise, a new instance of LogManager is created.</li>
+ * <li>The <code>LogManager</code> constructor tries to create
+ * a new instance of the class specified by the system
+ * property <code>java.util.logging.config.class</code>.
+ * Typically, the constructor of this class will call
+ * <code>LogManager.getLogManager().readConfiguration(java.io.InputStream)</code>
+ * for configuring the logging framework.
+ * The configuration process stops at this point if
+ * the system property <code>java.util.logging.config.class</code>
+ * is set (irrespective of whether the class constructor
+ * could be called or an exception was thrown).</li>
+ *
+ * <li>If the system property <code>java.util.logging.config.class</code>
+ * is <em>not</em> set, the configuration parameters are read in from
+ * a file and passed to
+ * {@link #readConfiguration(java.io.InputStream)}.
+ * The name and location of this file are specified by the system
+ * property <code>java.util.logging.config.file</code>.</li>
+ * <li>If the system property <code>java.util.logging.config.file</code>
+ * is not set, however, the contents of the URL
+ * "{gnu.classpath.home.url}/logging.properties" are passed to
+ * {@link #readConfiguration(java.io.InputStream)}.
+ * Here, "{gnu.classpath.home.url}" stands for the value of
+ * the system property <code>gnu.classpath.home.url</code>.</li>
+ * </ul>
+ *
+ * <p>The <code>LogManager</code> has a level of <code>INFO</code> by
+ * default, and this will be inherited by <code>Logger</code>s unless they
+ * override it either by properties or programmatically.
+ *
+ * @author Sascha Brawer (brawer@acm.org)
+ */
+public class LogManager
+{
+ /**
+ * The object name for the logging management bean.
+ * @since 1.5
+ */
+ public static final String LOGGING_MXBEAN_NAME
+ = "java.util.logging:type=Logging";
+
+ /**
+ * The singleton LogManager instance.
+ */
+ private static LogManager logManager;
+
+ /**
+ * The singleton logging bean.
+ */
+ private static LoggingMXBean loggingBean;
+
+ /**
+ * The registered named loggers; maps the name of a Logger to
+ * a WeakReference to it.
+ */
+ private Map<String, WeakReference<Logger>> loggers;
+
+ /**
+ * The properties for the logging framework which have been
+ * read in last.
+ */
+ private Properties properties;
+
+ /**
+ * A delegate object that provides support for handling
+ * PropertyChangeEvents. The API specification does not
+ * mention which bean should be the source in the distributed
+ * PropertyChangeEvents, but Mauve test code has determined that
+ * the Sun J2SE 1.4 reference implementation uses the LogManager
+ * class object. This is somewhat strange, as the class object
+ * is not the bean with which listeners have to register, but
+ * there is no reason for the GNU Classpath implementation to
+ * behave differently from the reference implementation in
+ * this case.
+ */
+ private final PropertyChangeSupport pcs = new PropertyChangeSupport( /* source bean */
+ LogManager.class);
+
+ protected LogManager()
+ {
+ loggers = new HashMap();
+ }
+
+ /**
+ * Returns the globally shared LogManager instance.
+ */
+ public static synchronized LogManager getLogManager()
+ {
+ if (logManager == null)
+ {
+ logManager = makeLogManager();
+ initLogManager();
+ }
+ return logManager;
+ }
+
+ private static final String MANAGER_PROPERTY = "java.util.logging.manager";
+
+ private static LogManager makeLogManager()
+ {
+ String managerClassName = SystemProperties.getProperty(MANAGER_PROPERTY);
+ LogManager manager = (LogManager) createInstance
+ (managerClassName, LogManager.class, MANAGER_PROPERTY);
+ if (manager == null)
+ manager = new LogManager();
+ return manager;
+ }
+
+ private static final String CONFIG_PROPERTY = "java.util.logging.config.class";
+
+ private static void initLogManager()
+ {
+ LogManager manager = getLogManager();
+ Logger.root.setLevel(Level.INFO);
+ manager.addLogger(Logger.root);
+
+ /* The Javadoc description of the class explains
+ * what is going on here.
+ */
+ Object configurator = createInstance(System.getProperty(CONFIG_PROPERTY),
+ /* must be instance of */ Object.class,
+ CONFIG_PROPERTY);
+
+ try
+ {
+ if (configurator == null)
+ manager.readConfiguration();
+ }
+ catch (IOException ex)
+ {
+ /* FIXME: Is it ok to ignore exceptions here? */
+ }
+ }
+
+ /**
+ * Registers a listener which will be notified when the
+ * logging properties are re-read.
+ */
+ public synchronized void addPropertyChangeListener(PropertyChangeListener listener)
+ {
+ /* do not register null. */
+ listener.getClass();
+
+ pcs.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Unregisters a listener.
+ *
+ * If <code>listener</code> has not been registered previously,
+ * nothing happens. Also, no exception is thrown if
+ * <code>listener</code> is <code>null</code>.
+ */
+ public synchronized void removePropertyChangeListener(PropertyChangeListener listener)
+ {
+ if (listener != null)
+ pcs.removePropertyChangeListener(listener);
+ }
+
+ /**
+ * Adds a named logger. If a logger with the same name has
+ * already been registered, the method returns <code>false</code>
+ * without adding the logger.
+ *
+ * <p>The <code>LogManager</code> only keeps weak references
+ * to registered loggers. Therefore, names can become available
+ * after automatic garbage collection.
+ *
+ * @param logger the logger to be added.
+ *
+ * @return <code>true</code>if <code>logger</code> was added,
+ * <code>false</code> otherwise.
+ *
+ * @throws NullPointerException if <code>name</code> is
+ * <code>null</code>.
+ */
+ public synchronized boolean addLogger(Logger logger)
+ {
+ /* To developers thinking about to remove the 'synchronized'
+ * declaration from this method: Please read the comment
+ * in java.util.logging.Logger.getLogger(String, String)
+ * and make sure that whatever you change wrt. synchronization
+ * does not endanger thread-safety of Logger.getLogger.
+ * The current implementation of Logger.getLogger assumes
+ * that LogManager does its synchronization on the globally
+ * shared instance of LogManager.
+ */
+ String name;
+ WeakReference ref;
+
+ /* This will throw a NullPointerException if logger is null,
+ * as required by the API specification.
+ */
+ name = logger.getName();
+
+ ref = loggers.get(name);
+ if (ref != null)
+ {
+ if (ref.get() != null)
+ return false;
+
+ /* There has been a logger under this name in the past,
+ * but it has been garbage collected.
+ */
+ loggers.remove(ref);
+ }
+
+ /* Adding a named logger requires a security permission. */
+ if ((name != null) && ! name.equals(""))
+ checkAccess();
+
+ Logger parent = findAncestor(logger);
+ loggers.put(name, new WeakReference<Logger>(logger));
+ if (parent != logger.getParent())
+ logger.setParent(parent);
+
+ // The level of the newly added logger must be specified.
+ // The easiest case is if there is a level for exactly this logger
+ // in the properties. If no such level exists the level needs to be
+ // searched along the hirachy. So if there is a new logger 'foo.blah.blub'
+ // and an existing parent logger 'foo' the properties 'foo.blah.blub.level'
+ // and 'foo.blah.level' need to be checked. If both do not exist in the
+ // properties the level of the new logger is set to 'null' (i.e. it uses the
+ // level of its parent 'foo').
+ Level logLevel = logger.getLevel();
+ String searchName = name;
+ String parentName = parent != null ? parent.getName() : "";
+ while (logLevel == null && ! searchName.equals(parentName))
+ {
+ logLevel = getLevelProperty(searchName + ".level", logLevel);
+ int index = searchName.lastIndexOf('.');
+ if(index > -1)
+ searchName = searchName.substring(0,index);
+ else
+ searchName = "";
+ }
+ logger.setLevel(logLevel);
+
+ /* It can happen that existing loggers should be children of
+ * the newly added logger. For example, assume that there
+ * already exist loggers under the names "", "foo", and "foo.bar.baz".
+ * When adding "foo.bar", the logger "foo.bar.baz" should change
+ * its parent to "foo.bar".
+ */
+ for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();)
+ {
+ Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next()))
+ .get();
+ if ((possChild == null) || (possChild == logger)
+ || (possChild.getParent() != parent))
+ continue;
+
+ if (! possChild.getName().startsWith(name))
+ continue;
+
+ if (possChild.getName().charAt(name.length()) != '.')
+ continue;
+
+ possChild.setParent(logger);
+ }
+
+ return true;
+ }
+
+ /**
+ * Finds the closest ancestor for a logger among the currently
+ * registered ones. For example, if the currently registered
+ * loggers have the names "", "foo", and "foo.bar", the result for
+ * "foo.bar.baz" will be the logger whose name is "foo.bar".
+ *
+ * @param child a logger for whose name no logger has been
+ * registered.
+ *
+ * @return the closest ancestor for <code>child</code>,
+ * or <code>null</code> if <code>child</code>
+ * is the root logger.
+ *
+ * @throws NullPointerException if <code>child</code>
+ * is <code>null</code>.
+ */
+ private synchronized Logger findAncestor(Logger child)
+ {
+ String childName = child.getName();
+ int childNameLength = childName.length();
+ Logger best = Logger.root;
+ int bestNameLength = 0;
+
+ Logger cand;
+ int candNameLength;
+
+ if (child == Logger.root)
+ return null;
+
+ for (String candName : loggers.keySet())
+ {
+ candNameLength = candName.length();
+
+ if (candNameLength > bestNameLength
+ && childNameLength > candNameLength
+ && childName.startsWith(candName)
+ && childName.charAt(candNameLength) == '.')
+ {
+ cand = loggers.get(candName).get();
+ if ((cand == null) || (cand == child))
+ continue;
+
+ bestNameLength = candName.length();
+ best = cand;
+ }
+ }
+
+ return best;
+ }
+
+ /**
+ * Returns a Logger given its name.
+ *
+ * @param name the name of the logger.
+ *
+ * @return a named Logger, or <code>null</code> if there is no
+ * logger with that name.
+ *
+ * @throw java.lang.NullPointerException if <code>name</code>
+ * is <code>null</code>.
+ */
+ public synchronized Logger getLogger(String name)
+ {
+ WeakReference<Logger> ref;
+
+ /* Throw a NullPointerException if name is null. */
+ name.getClass();
+
+ ref = loggers.get(name);
+ if (ref != null)
+ return ref.get();
+ else
+ return null;
+ }
+
+ /**
+ * Returns an Enumeration of currently registered Logger names.
+ * Since other threads can register loggers at any time, the
+ * result could be different any time this method is called.
+ *
+ * @return an Enumeration with the names of the currently
+ * registered Loggers.
+ */
+ public synchronized Enumeration<String> getLoggerNames()
+ {
+ return Collections.enumeration(loggers.keySet());
+ }
+
+ /**
+ * Resets the logging configuration by removing all handlers for
+ * registered named loggers and setting their level to <code>null</code>.
+ * The level of the root logger will be set to <code>Level.INFO</code>.
+ *
+ * @throws SecurityException if a security manager exists and
+ * the caller is not granted the permission to control
+ * the logging infrastructure.
+ */
+ public synchronized void reset() throws SecurityException
+ {
+ /* Throw a SecurityException if the caller does not have the
+ * permission to control the logging infrastructure.
+ */
+ checkAccess();
+
+ properties = new Properties();
+
+ Iterator<WeakReference<Logger>> iter = loggers.values().iterator();
+ while (iter.hasNext())
+ {
+ WeakReference<Logger> ref;
+ Logger logger;
+
+ ref = iter.next();
+ if (ref != null)
+ {
+ logger = ref.get();
+
+ if (logger == null)
+ iter.remove();
+ else if (logger != Logger.root)
+ {
+ logger.resetLogger();
+ logger.setLevel(null);
+ }
+ }
+ }
+
+ Logger.root.setLevel(Level.INFO);
+ Logger.root.resetLogger();
+ }
+
+ /**
+ * Configures the logging framework by reading a configuration file.
+ * The name and location of this file are specified by the system
+ * property <code>java.util.logging.config.file</code>. If this
+ * property is not set, the URL
+ * "{gnu.classpath.home.url}/logging.properties" is taken, where
+ * "{gnu.classpath.home.url}" stands for the value of the system
+ * property <code>gnu.classpath.home.url</code>.
+ *
+ * <p>The task of configuring the framework is then delegated to
+ * {@link #readConfiguration(java.io.InputStream)}, which will
+ * notify registered listeners after having read the properties.
+ *
+ * @throws SecurityException if a security manager exists and
+ * the caller is not granted the permission to control
+ * the logging infrastructure, or if the caller is
+ * not granted the permission to read the configuration
+ * file.
+ *
+ * @throws IOException if there is a problem reading in the
+ * configuration file.
+ */
+ public synchronized void readConfiguration()
+ throws IOException, SecurityException
+ {
+ String path;
+ InputStream inputStream;
+
+ path = System.getProperty("java.util.logging.config.file");
+ if ((path == null) || (path.length() == 0))
+ {
+ String url = (System.getProperty("gnu.classpath.home.url")
+ + "/logging.properties");
+ try
+ {
+ inputStream = new URL(url).openStream();
+ }
+ catch (Exception e)
+ {
+ inputStream=null;
+ }
+
+ // If no config file could be found use a default configuration.
+ if(inputStream == null)
+ {
+ String defaultConfig = "handlers = java.util.logging.ConsoleHandler \n"
+ + ".level=INFO \n";
+ inputStream = new ByteArrayInputStream(defaultConfig.getBytes());
+ }
+ }
+ else
+ inputStream = new java.io.FileInputStream(path);
+
+ try
+ {
+ readConfiguration(inputStream);
+ }
+ finally
+ {
+ // Close the stream in order to save
+ // resources such as file descriptors.
+ inputStream.close();
+ }
+ }
+
+ public synchronized void readConfiguration(InputStream inputStream)
+ throws IOException, SecurityException
+ {
+ Properties newProperties;
+ Enumeration keys;
+
+ checkAccess();
+ newProperties = new Properties();
+ newProperties.load(inputStream);
+ reset();
+ this.properties = newProperties;
+ keys = newProperties.propertyNames();
+
+ while (keys.hasMoreElements())
+ {
+ String key = ((String) keys.nextElement()).trim();
+ String value = newProperties.getProperty(key);
+
+ if (value == null)
+ continue;
+
+ value = value.trim();
+
+ if ("handlers".equals(key))
+ {
+ // In Java 5 and earlier this was specified to be
+ // whitespace-separated, but in reality it also accepted
+ // commas (tomcat relied on this), and in Java 6 the
+ // documentation was updated to fit the implementation.
+ StringTokenizer tokenizer = new StringTokenizer(value,
+ " \t\n\r\f,");
+ while (tokenizer.hasMoreTokens())
+ {
+ String handlerName = tokenizer.nextToken();
+ Handler handler = (Handler)
+ createInstance(handlerName, Handler.class, key);
+ // Tomcat also relies on the implementation ignoring
+ // items in 'handlers' which are not class names.
+ if (handler != null)
+ Logger.root.addHandler(handler);
+ }
+ }
+
+ if (key.endsWith(".level"))
+ {
+ String loggerName = key.substring(0, key.length() - 6);
+ Logger logger = getLogger(loggerName);
+
+ if (logger == null)
+ {
+ logger = Logger.getLogger(loggerName);
+ addLogger(logger);
+ }
+ Level level = null;
+ try
+ {
+ level = Level.parse(value);
+ }
+ catch (IllegalArgumentException e)
+ {
+ warn("bad level \'" + value + "\'", e);
+ }
+ if (level != null)
+ {
+ logger.setLevel(level);
+ }
+ continue;
+ }
+ }
+
+ /* The API specification does not talk about the
+ * property name that is distributed with the
+ * PropertyChangeEvent. With test code, it could
+ * be determined that the Sun J2SE 1.4 reference
+ * implementation uses null for the property name.
+ */
+ pcs.firePropertyChange(null, null, null);
+ }
+
+ /**
+ * Returns the value of a configuration property as a String.
+ */
+ public synchronized String getProperty(String name)
+ {
+ if (properties != null)
+ return properties.getProperty(name);
+ else
+ return null;
+ }
+
+ /**
+ * Returns the value of a configuration property as an integer.
+ * This function is a helper used by the Classpath implementation
+ * of java.util.logging, it is <em>not</em> specified in the
+ * logging API.
+ *
+ * @param name the name of the configuration property.
+ *
+ * @param defaultValue the value that will be returned if the
+ * property is not defined, or if its value is not an integer
+ * number.
+ */
+ static int getIntProperty(String name, int defaultValue)
+ {
+ try
+ {
+ return Integer.parseInt(getLogManager().getProperty(name));
+ }
+ catch (Exception ex)
+ {
+ return defaultValue;
+ }
+ }
+
+ /**
+ * Returns the value of a configuration property as an integer,
+ * provided it is inside the acceptable range.
+ * This function is a helper used by the Classpath implementation
+ * of java.util.logging, it is <em>not</em> specified in the
+ * logging API.
+ *
+ * @param name the name of the configuration property.
+ *
+ * @param minValue the lowest acceptable value.
+ *
+ * @param maxValue the highest acceptable value.
+ *
+ * @param defaultValue the value that will be returned if the
+ * property is not defined, or if its value is not an integer
+ * number, or if it is less than the minimum value,
+ * or if it is greater than the maximum value.
+ */
+ static int getIntPropertyClamped(String name, int defaultValue,
+ int minValue, int maxValue)
+ {
+ int val = getIntProperty(name, defaultValue);
+ if ((val < minValue) || (val > maxValue))
+ val = defaultValue;
+ return val;
+ }
+
+ /**
+ * Returns the value of a configuration property as a boolean.
+ * This function is a helper used by the Classpath implementation
+ * of java.util.logging, it is <em>not</em> specified in the
+ * logging API.
+ *
+ * @param name the name of the configuration property.
+ *
+ * @param defaultValue the value that will be returned if the
+ * property is not defined, or if its value is neither
+ * <code>"true"</code> nor <code>"false"</code>.
+ */
+ static boolean getBooleanProperty(String name, boolean defaultValue)
+ {
+ try
+ {
+ return (Boolean.valueOf(getLogManager().getProperty(name))).booleanValue();
+ }
+ catch (Exception ex)
+ {
+ return defaultValue;
+ }
+ }
+
+ /**
+ * Returns the value of a configuration property as a Level.
+ * This function is a helper used by the Classpath implementation
+ * of java.util.logging, it is <em>not</em> specified in the
+ * logging API.
+ *
+ * @param propertyName the name of the configuration property.
+ *
+ * @param defaultValue the value that will be returned if the
+ * property is not defined, or if
+ * {@link Level#parse(java.lang.String)} does not like
+ * the property value.
+ */
+ static Level getLevelProperty(String propertyName, Level defaultValue)
+ {
+ try
+ {
+ String value = getLogManager().getProperty(propertyName);
+ if (value != null)
+ return Level.parse(getLogManager().getProperty(propertyName));
+ else
+ return defaultValue;
+ }
+ catch (Exception ex)
+ {
+ return defaultValue;
+ }
+ }
+
+ /**
+ * Returns the value of a configuration property as a Class.
+ * This function is a helper used by the Classpath implementation
+ * of java.util.logging, it is <em>not</em> specified in the
+ * logging API.
+ *
+ * @param propertyName the name of the configuration property.
+ *
+ * @param defaultValue the value that will be returned if the
+ * property is not defined, or if it does not specify
+ * the name of a loadable class.
+ */
+ static final Class getClassProperty(String propertyName, Class defaultValue)
+ {
+ String propertyValue = logManager.getProperty(propertyName);
+
+ if (propertyValue != null)
+ try
+ {
+ return locateClass(propertyValue);
+ }
+ catch (ClassNotFoundException e)
+ {
+ warn(propertyName + " = " + propertyValue, e);
+ }
+
+ return defaultValue;
+ }
+
+ static final Object getInstanceProperty(String propertyName, Class ofClass,
+ Class defaultClass)
+ {
+ Class klass = getClassProperty(propertyName, defaultClass);
+ if (klass == null)
+ return null;
+
+ try
+ {
+ Object obj = klass.newInstance();
+ if (ofClass.isInstance(obj))
+ return obj;
+ }
+ catch (InstantiationException e)
+ {
+ warn(propertyName + " = " + klass.getName(), e);
+ }
+ catch (IllegalAccessException e)
+ {
+ warn(propertyName + " = " + klass.getName(), e);
+ }
+
+ if (defaultClass == null)
+ return null;
+
+ try
+ {
+ return defaultClass.newInstance();
+ }
+ catch (java.lang.InstantiationException ex)
+ {
+ throw new RuntimeException(ex.getMessage());
+ }
+ catch (java.lang.IllegalAccessException ex)
+ {
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+ /**
+ * An instance of <code>LoggingPermission("control")</code>
+ * that is shared between calls to <code>checkAccess()</code>.
+ */
+ private static final LoggingPermission controlPermission = new LoggingPermission("control",
+ null);
+
+ /**
+ * Checks whether the current security context allows changing
+ * the configuration of the logging framework. For the security
+ * context to be trusted, it has to be granted
+ * a LoggingPermission("control").
+ *
+ * @throws SecurityException if a security manager exists and
+ * the caller is not granted the permission to control
+ * the logging infrastructure.
+ */
+ public void checkAccess() throws SecurityException
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkPermission(controlPermission);
+ }
+
+ /**
+ * Creates a new instance of a class specified by name and verifies
+ * that it is an instance (or subclass of) a given type.
+ *
+ * @param className the name of the class of which a new instance
+ * should be created.
+ *
+ * @param type the object created must be an instance of
+ * <code>type</code> or any subclass of <code>type</code>
+ *
+ * @param property the system property to reference in error
+ * messages
+ *
+ * @return the new instance, or <code>null</code> if
+ * <code>className</code> is <code>null</code>, if no class
+ * with that name could be found, if there was an error
+ * loading that class, or if the constructor of the class
+ * has thrown an exception.
+ */
+ private static final Object createInstance(String className, Class type,
+ String property)
+ {
+ Class klass = null;
+
+ if ((className == null) || (className.length() == 0))
+ return null;
+
+ try
+ {
+ klass = locateClass(className);
+ if (type.isAssignableFrom(klass))
+ return klass.newInstance();
+ warn(property, className, "not an instance of " + type.getName());
+ }
+ catch (ClassNotFoundException e)
+ {
+ warn(property, className, "class not found", e);
+ }
+ catch (IllegalAccessException e)
+ {
+ warn(property, className, "illegal access", e);
+ }
+ catch (InstantiationException e)
+ {
+ warn(property, className, e);
+ }
+ catch (java.lang.LinkageError e)
+ {
+ warn(property, className, "linkage error", e);
+ }
+
+ return null;
+ }
+
+ private static final void warn(String property, String klass, Throwable t)
+ {
+ warn(property, klass, null, t);
+ }
+
+ private static final void warn(String property, String klass, String msg)
+ {
+ warn(property, klass, msg, null);
+ }
+
+ private static final void warn(String property, String klass, String msg,
+ Throwable t)
+ {
+ warn("error instantiating '" + klass + "' referenced by " + property +
+ (msg == null ? "" : ", " + msg), t);
+ }
+
+ /**
+ * All debug warnings go through this method.
+ */
+
+ private static final void warn(String msg, Throwable t)
+ {
+ System.err.println("WARNING: " + msg);
+ if (t != null)
+ t.printStackTrace(System.err);
+ }
+
+ /**
+ * Locates a class by first checking the system class loader and
+ * then checking the context class loader.
+ *
+ * @param name the fully qualified name of the Class to locate
+ * @return Class the located Class
+ */
+
+ private static Class locateClass(String name) throws ClassNotFoundException
+ {
+ // GCJ LOCAL
+ // Unfortunately this can be called during bootstrap when
+ // Thread.currentThread() will return null.
+ // See bug #27658
+ Thread t = Thread.currentThread();
+ ClassLoader loader = (t == null) ? null : t.getContextClassLoader();
+ try
+ {
+ return Class.forName(name, true, loader);
+ }
+ catch (ClassNotFoundException e)
+ {
+ loader = ClassLoader.getSystemClassLoader();
+ return Class.forName(name, true, loader);
+ }
+ }
+
+ /**
+ * Return the logging bean. There is a single logging bean per
+ * VM instance.
+ * @since 1.5
+ */
+ public static synchronized LoggingMXBean getLoggingMXBean()
+ {
+ if (loggingBean == null)
+ {
+ loggingBean = new LoggingMXBean()
+ {
+ public String getLoggerLevel(String logger)
+ {
+ LogManager mgr = getLogManager();
+ Logger l = mgr.getLogger(logger);
+ if (l == null)
+ return null;
+ Level lev = l.getLevel();
+ if (lev == null)
+ return "";
+ return lev.getName();
+ }
+
+ public List getLoggerNames()
+ {
+ LogManager mgr = getLogManager();
+ // This is inefficient, but perhaps better for maintenance.
+ return Collections.list(mgr.getLoggerNames());
+ }
+
+ public String getParentLoggerName(String logger)
+ {
+ LogManager mgr = getLogManager();
+ Logger l = mgr.getLogger(logger);
+ if (l == null)
+ return null;
+ l = l.getParent();
+ if (l == null)
+ return "";
+ return l.getName();
+ }
+
+ public void setLoggerLevel(String logger, String level)
+ {
+ LogManager mgr = getLogManager();
+ Logger l = mgr.getLogger(logger);
+ if (l == null)
+ throw new IllegalArgumentException("no logger named " + logger);
+ Level newLevel;
+ if (level == null)
+ newLevel = null;
+ else
+ newLevel = Level.parse(level);
+ l.setLevel(newLevel);
+ }
+ };
+ }
+ return loggingBean;
+ }
+}
diff --git a/gcc-4.8/libjava/java/util/logging/LogRecord.h b/gcc-4.8/libjava/java/util/logging/LogRecord.h
new file mode 100644
index 000000000..445415909
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/LogRecord.h
@@ -0,0 +1,70 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_LogRecord__
+#define __java_util_logging_LogRecord__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::logging::LogRecord : public ::java::lang::Object
+{
+
+public:
+ LogRecord(::java::util::logging::Level *, ::java::lang::String *);
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+public:
+ virtual ::java::lang::String * getLoggerName();
+ virtual void setLoggerName(::java::lang::String *);
+ virtual ::java::util::ResourceBundle * getResourceBundle();
+ virtual void setResourceBundle(::java::util::ResourceBundle *);
+ virtual ::java::lang::String * getResourceBundleName();
+ virtual void setResourceBundleName(::java::lang::String *);
+ virtual ::java::util::logging::Level * getLevel();
+ virtual void setLevel(::java::util::logging::Level *);
+private:
+ static jlong allocateSeqNum();
+public:
+ virtual jlong getSequenceNumber();
+ virtual void setSequenceNumber(jlong);
+ virtual ::java::lang::String * getSourceClassName();
+ virtual void setSourceClassName(::java::lang::String *);
+ virtual ::java::lang::String * getSourceMethodName();
+ virtual void setSourceMethodName(::java::lang::String *);
+ virtual ::java::lang::String * getMessage();
+ virtual void setMessage(::java::lang::String *);
+ virtual JArray< ::java::lang::Object * > * getParameters();
+ virtual void setParameters(JArray< ::java::lang::Object * > *);
+ virtual jint getThreadID();
+ virtual void setThreadID(jint);
+ virtual jlong getMillis();
+ virtual void setMillis(jlong);
+ virtual ::java::lang::Throwable * getThrown();
+ virtual void setThrown(::java::lang::Throwable *);
+private:
+ ::java::util::logging::Level * __attribute__((aligned(__alignof__( ::java::lang::Object)))) level;
+ jlong sequenceNumber;
+ ::java::lang::String * sourceClassName;
+ ::java::lang::String * sourceMethodName;
+ ::java::lang::String * message;
+ jint threadID;
+ jlong millis;
+ ::java::lang::Throwable * thrown;
+ ::java::lang::String * loggerName;
+ ::java::lang::String * resourceBundleName;
+ JArray< ::java::lang::Object * > * parameters;
+ ::java::util::ResourceBundle * bundle;
+public: // actually package-private
+ static const jlong serialVersionUID = 5372048053134512534LL;
+private:
+ static jlong lastSeqNum;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_LogRecord__
diff --git a/gcc-4.8/libjava/java/util/logging/Logger$1.h b/gcc-4.8/libjava/java/util/logging/Logger$1.h
new file mode 100644
index 000000000..69189e73b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Logger$1.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_Logger$1__
+#define __java_util_logging_Logger$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::Logger$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Logger$1();
+public:
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_Logger$1__
diff --git a/gcc-4.8/libjava/java/util/logging/Logger.h b/gcc-4.8/libjava/java/util/logging/Logger.h
new file mode 100644
index 000000000..c73a8d3c8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Logger.h
@@ -0,0 +1,90 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_Logger__
+#define __java_util_logging_Logger__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::logging::Logger : public ::java::lang::Object
+{
+
+public: // actually protected
+ Logger(::java::lang::String *, ::java::lang::String *);
+public:
+ static ::java::util::logging::Logger * getLogger(::java::lang::String *);
+ static ::java::util::logging::Logger * getLogger(::java::lang::String *, ::java::lang::String *);
+ static ::java::util::logging::Logger * getAnonymousLogger();
+ static ::java::util::logging::Logger * getAnonymousLogger(::java::lang::String *);
+ virtual ::java::lang::String * getResourceBundleName();
+ virtual ::java::util::ResourceBundle * getResourceBundle();
+ virtual ::java::util::logging::Level * getLevel();
+ virtual jboolean isLoggable(::java::util::logging::Level *);
+ virtual void setLevel(::java::util::logging::Level *);
+ virtual ::java::util::logging::Filter * getFilter();
+ virtual void setFilter(::java::util::logging::Filter *);
+ virtual ::java::lang::String * getName();
+ virtual void log(::java::util::logging::LogRecord *);
+ virtual void log(::java::util::logging::Level *, ::java::lang::String *);
+ virtual void log(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::Object *);
+ virtual void log(::java::util::logging::Level *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual void log(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::Throwable *);
+ virtual void logp(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ virtual void logp(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::Object *);
+private:
+ ::java::util::ResourceBundle * findResourceBundle();
+ void logImpl(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+public:
+ virtual void logp(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual void logp(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::Throwable *);
+ virtual void logrb(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ virtual void logrb(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::Object *);
+ virtual void logrb(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual void logrb(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::Throwable *);
+ virtual void entering(::java::lang::String *, ::java::lang::String *);
+ virtual void entering(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *);
+ virtual void entering(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
+ virtual void exiting(::java::lang::String *, ::java::lang::String *);
+ virtual void exiting(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *);
+ virtual void throwing(::java::lang::String *, ::java::lang::String *, ::java::lang::Throwable *);
+ virtual void severe(::java::lang::String *);
+ virtual void warning(::java::lang::String *);
+ virtual void info(::java::lang::String *);
+ virtual void config(::java::lang::String *);
+ virtual void fine(::java::lang::String *);
+ virtual void finer(::java::lang::String *);
+ virtual void finest(::java::lang::String *);
+ virtual void addHandler(::java::util::logging::Handler *);
+ virtual void removeHandler(::java::util::logging::Handler *);
+ virtual JArray< ::java::util::logging::Handler * > * getHandlers();
+ virtual jboolean getUseParentHandlers();
+ virtual void setUseParentHandlers(jboolean);
+ virtual ::java::util::logging::Logger * getParent();
+ virtual void setParent(::java::util::logging::Logger *);
+private:
+ ::java::lang::StackTraceElement * getCallerStackFrame();
+public: // actually package-private
+ virtual void resetLogger();
+ static ::java::util::logging::Logger * root;
+public:
+ static ::java::util::logging::Logger * global;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::lang::String * resourceBundleName;
+ ::java::util::ResourceBundle * resourceBundle;
+ ::java::util::logging::Filter * filter;
+ ::java::util::List * handlerList;
+ JArray< ::java::util::logging::Handler * > * handlers;
+ jboolean anonymous;
+ jboolean useParentHandlers;
+ ::java::util::logging::Level * level;
+ ::java::util::logging::Logger * parent;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_Logger__
diff --git a/gcc-4.8/libjava/java/util/logging/Logger.java b/gcc-4.8/libjava/java/util/logging/Logger.java
new file mode 100644
index 000000000..04f24d354
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/Logger.java
@@ -0,0 +1,1206 @@
+/* Logger.java -- a class for logging messages
+ Copyright (C) 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.util.logging;
+
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * A Logger is used for logging information about events. Usually, there
+ * is a seprate logger for each subsystem or component, although there
+ * is a shared instance for components that make only occasional use of
+ * the logging framework.
+ *
+ * <p>It is common to name a logger after the name of a corresponding
+ * Java package. Loggers are organized into a hierarchical namespace;
+ * for example, the logger <code>"org.gnu.foo"</code> is the
+ * <em>parent</em> of logger <code>"org.gnu.foo.bar"</code>.
+ *
+ * <p>A logger for a named subsystem can be obtained through {@link
+ * java.util.logging.Logger#getLogger(java.lang.String)}. However,
+ * only code which has been granted the permission to control the
+ * logging infrastructure will be allowed to customize that logger.
+ * Untrusted code can obtain a private, anonymous logger through
+ * {@link #getAnonymousLogger()} if it wants to perform any
+ * modifications to the logger.
+ *
+ * <p>FIXME: Write more documentation.
+ *
+ * @author Sascha Brawer (brawer@acm.org)
+ */
+public class Logger
+{
+
+ static final Logger root = new Logger("", null);
+
+ /**
+ * A logger provided to applications that make only occasional use
+ * of the logging framework, typically early prototypes. Serious
+ * products are supposed to create and use their own Loggers, so
+ * they can be controlled individually.
+ */
+ public static final Logger global;
+
+ static
+ {
+ // Our class might be initialized from an unprivileged context
+ global = (Logger) AccessController.doPrivileged
+ (new PrivilegedAction()
+ {
+ public Object run()
+ {
+ return getLogger("global");
+ }
+ });
+ }
+
+
+ /**
+ * The name of the Logger, or <code>null</code> if the logger is
+ * anonymous.
+ *
+ * <p>A previous version of the GNU Classpath implementation granted
+ * untrusted code the permission to control any logger whose name
+ * was null. However, test code revealed that the Sun J2SE 1.4
+ * reference implementation enforces the security control for any
+ * logger that was not created through getAnonymousLogger, even if
+ * it has a null name. Therefore, a separate flag {@link
+ * Logger#anonymous} was introduced.
+ */
+ private final String name;
+
+
+ /**
+ * The name of the resource bundle used for localization.
+ *
+ * <p>This variable cannot be declared as <code>final</code>
+ * because its value can change as a result of calling
+ * getLogger(String,String).
+ */
+ private String resourceBundleName;
+
+
+ /**
+ * The resource bundle used for localization.
+ *
+ * <p>This variable cannot be declared as <code>final</code>
+ * because its value can change as a result of calling
+ * getLogger(String,String).
+ */
+ private ResourceBundle resourceBundle;
+
+ private Filter filter;
+
+ private final List handlerList = new java.util.ArrayList(4);
+ private Handler[] handlers = new Handler[0];
+
+ /**
+ * Indicates whether or not this logger is anonymous. While
+ * a LoggingPermission is required for any modifications to
+ * a normal logger, untrusted code can obtain an anonymous logger
+ * and modify it according to its needs.
+ *
+ * <p>A previous version of the GNU Classpath implementation
+ * granted access to every logger whose name was null.
+ * However, test code revealed that the Sun J2SE 1.4 reference
+ * implementation enforces the security control for any logger
+ * that was not created through getAnonymousLogger, even
+ * if it has a null name.
+ */
+ private boolean anonymous;
+
+
+ private boolean useParentHandlers;
+
+ private Level level;
+
+ private Logger parent;
+
+ /**
+ * Constructs a Logger for a subsystem. Most applications do not
+ * need to create new Loggers explicitly; instead, they should call
+ * the static factory methods
+ * {@link #getLogger(java.lang.String,java.lang.String) getLogger}
+ * (with ResourceBundle for localization) or
+ * {@link #getLogger(java.lang.String) getLogger} (without
+ * ResourceBundle), respectively.
+ *
+ * @param name the name for the logger, for example "java.awt"
+ * or "com.foo.bar". The name should be based on
+ * the name of the package issuing log records
+ * and consist of dot-separated Java identifiers.
+ *
+ * @param resourceBundleName the name of a resource bundle
+ * for localizing messages, or <code>null</code>
+ * to indicate that messages do not need to be localized.
+ *
+ * @throws java.util.MissingResourceException if
+ * <code>resourceBundleName</code> is not <code>null</code>
+ * and no such bundle could be located.
+ */
+ protected Logger(String name, String resourceBundleName)
+ throws MissingResourceException
+ {
+ this.name = name;
+ this.resourceBundleName = resourceBundleName;
+
+ if (resourceBundleName == null)
+ resourceBundle = null;
+ else
+ resourceBundle = ResourceBundle.getBundle(resourceBundleName);
+
+ level = null;
+
+ /* This is null when the root logger is being constructed,
+ * and the root logger afterwards.
+ */
+ parent = root;
+
+ useParentHandlers = (parent != null);
+ }
+
+
+
+ /**
+ * Finds a registered logger for a subsystem, or creates one in
+ * case no logger has been registered yet.
+ *
+ * @param name the name for the logger, for example "java.awt"
+ * or "com.foo.bar". The name should be based on
+ * the name of the package issuing log records
+ * and consist of dot-separated Java identifiers.
+ *
+ * @throws IllegalArgumentException if a logger for the subsystem
+ * identified by <code>name</code> has already been created,
+ * but uses a a resource bundle for localizing messages.
+ *
+ * @throws NullPointerException if <code>name</code> is
+ * <code>null</code>.
+ *
+ * @return a logger for the subsystem specified by <code>name</code>
+ * that does not localize messages.
+ */
+ public static Logger getLogger(String name)
+ {
+ return getLogger(name, null);
+ }
+
+
+ /**
+ * Finds a registered logger for a subsystem, or creates one in case
+ * no logger has been registered yet.
+ *
+ * <p>If a logger with the specified name has already been
+ * registered, the behavior depends on the resource bundle that is
+ * currently associated with the existing logger.
+ *
+ * <ul><li>If the existing logger uses the same resource bundle as
+ * specified by <code>resourceBundleName</code>, the existing logger
+ * is returned.</li>
+ *
+ * <li>If the existing logger currently does not localize messages,
+ * the existing logger is modified to use the bundle specified by
+ * <code>resourceBundleName</code>. The existing logger is then
+ * returned. Therefore, all subsystems currently using this logger
+ * will produce localized messages from now on.</li>
+ *
+ * <li>If the existing logger already has an associated resource
+ * bundle, but a different one than specified by
+ * <code>resourceBundleName</code>, an
+ * <code>IllegalArgumentException</code> is thrown.</li></ul>
+ *
+ * @param name the name for the logger, for example "java.awt"
+ * or "org.gnu.foo". The name should be based on
+ * the name of the package issuing log records
+ * and consist of dot-separated Java identifiers.
+ *
+ * @param resourceBundleName the name of a resource bundle
+ * for localizing messages, or <code>null</code>
+ * to indicate that messages do not need to be localized.
+ *
+ * @return a logger for the subsystem specified by <code>name</code>.
+ *
+ * @throws java.util.MissingResourceException if
+ * <code>resourceBundleName</code> is not <code>null</code>
+ * and no such bundle could be located.
+ *
+ * @throws IllegalArgumentException if a logger for the subsystem
+ * identified by <code>name</code> has already been created,
+ * but uses a different resource bundle for localizing
+ * messages.
+ *
+ * @throws NullPointerException if <code>name</code> is
+ * <code>null</code>.
+ */
+ public static Logger getLogger(String name, String resourceBundleName)
+ {
+ LogManager lm = LogManager.getLogManager();
+ Logger result;
+
+ if (name == null)
+ throw new NullPointerException();
+
+ /* Without synchronized(lm), it could happen that another thread
+ * would create a logger between our calls to getLogger and
+ * addLogger. While addLogger would indicate this by returning
+ * false, we could not be sure that this other logger was still
+ * existing when we called getLogger a second time in order
+ * to retrieve it -- note that LogManager is only allowed to
+ * keep weak references to registered loggers, so Loggers
+ * can be garbage collected at any time in general, and between
+ * our call to addLogger and our second call go getLogger
+ * in particular.
+ *
+ * Of course, we assume here that LogManager.addLogger etc.
+ * are synchronizing on the global LogManager object. There
+ * is a comment in the implementation of LogManager.addLogger
+ * referring to this comment here, so that any change in
+ * the synchronization of LogManager will be reflected here.
+ */
+ synchronized (lm)
+ {
+ result = lm.getLogger(name);
+ if (result == null)
+ {
+ boolean couldBeAdded;
+
+ result = new Logger(name, resourceBundleName);
+ couldBeAdded = lm.addLogger(result);
+ if (!couldBeAdded)
+ throw new IllegalStateException("cannot register new logger");
+ }
+ else
+ {
+ /* The logger already exists. Make sure it uses
+ * the same resource bundle for localizing messages.
+ */
+ String existingBundleName = result.getResourceBundleName();
+
+ /* The Sun J2SE 1.4 reference implementation will return the
+ * registered logger object, even if it does not have a resource
+ * bundle associated with it. However, it seems to change the
+ * resourceBundle of the registered logger to the bundle
+ * whose name was passed to getLogger.
+ */
+ if ((existingBundleName == null) && (resourceBundleName != null))
+ {
+ /* If ResourceBundle.getBundle throws an exception, the
+ * existing logger will be unchanged. This would be
+ * different if the assignment to resourceBundleName
+ * came first.
+ */
+ result.resourceBundle = ResourceBundle.getBundle(resourceBundleName);
+ result.resourceBundleName = resourceBundleName;
+ return result;
+ }
+
+ if ((existingBundleName != resourceBundleName)
+ && ((existingBundleName == null)
+ || !existingBundleName.equals(resourceBundleName)))
+ {
+ throw new IllegalArgumentException();
+ }
+ }
+ }
+
+ return result;
+ }
+
+
+ /**
+ * Creates a new, unnamed logger. Unnamed loggers are not
+ * registered in the namespace of the LogManager, and no special
+ * security permission is required for changing their state.
+ * Therefore, untrusted applets are able to modify their private
+ * logger instance obtained through this method.
+ *
+ * <p>The parent of the newly created logger will the the root
+ * logger, from which the level threshold and the handlers are
+ * inherited.
+ */
+ public static Logger getAnonymousLogger()
+ {
+ return getAnonymousLogger(null);
+ }
+
+
+ /**
+ * Creates a new, unnamed logger. Unnamed loggers are not
+ * registered in the namespace of the LogManager, and no special
+ * security permission is required for changing their state.
+ * Therefore, untrusted applets are able to modify their private
+ * logger instance obtained through this method.
+ *
+ * <p>The parent of the newly created logger will the the root
+ * logger, from which the level threshold and the handlers are
+ * inherited.
+ *
+ * @param resourceBundleName the name of a resource bundle
+ * for localizing messages, or <code>null</code>
+ * to indicate that messages do not need to be localized.
+ *
+ * @throws java.util.MissingResourceException if
+ * <code>resourceBundleName</code> is not <code>null</code>
+ * and no such bundle could be located.
+ */
+ public static Logger getAnonymousLogger(String resourceBundleName)
+ throws MissingResourceException
+ {
+ Logger result;
+
+ result = new Logger(null, resourceBundleName);
+ result.anonymous = true;
+ return result;
+ }
+
+
+ /**
+ * Returns the name of the resource bundle that is being used for
+ * localizing messages.
+ *
+ * @return the name of the resource bundle used for localizing messages,
+ * or <code>null</code> if the parent's resource bundle
+ * is used for this purpose.
+ */
+ public synchronized String getResourceBundleName()
+ {
+ return resourceBundleName;
+ }
+
+
+ /**
+ * Returns the resource bundle that is being used for localizing
+ * messages.
+ *
+ * @return the resource bundle used for localizing messages,
+ * or <code>null</code> if the parent's resource bundle
+ * is used for this purpose.
+ */
+ public synchronized ResourceBundle getResourceBundle()
+ {
+ return resourceBundle;
+ }
+
+
+ /**
+ * Returns the severity level threshold for this <code>Handler</code>.
+ * All log records with a lower severity level will be discarded;
+ * a log record of the same or a higher level will be published
+ * unless an installed <code>Filter</code> decides to discard it.
+ *
+ * @return the severity level below which all log messages will be
+ * discarded, or <code>null</code> if the logger inherits
+ * the threshold from its parent.
+ */
+ public synchronized Level getLevel()
+ {
+ return level;
+ }
+
+
+ /**
+ * Returns whether or not a message of the specified level
+ * would be logged by this logger.
+ *
+ * @throws NullPointerException if <code>level</code>
+ * is <code>null</code>.
+ */
+ public synchronized boolean isLoggable(Level level)
+ {
+ if (this.level != null)
+ return this.level.intValue() <= level.intValue();
+
+ if (parent != null)
+ return parent.isLoggable(level);
+ else
+ return false;
+ }
+
+
+ /**
+ * Sets the severity level threshold for this <code>Handler</code>.
+ * All log records with a lower severity level will be discarded
+ * immediately. A log record of the same or a higher level will be
+ * published unless an installed <code>Filter</code> decides to
+ * discard it.
+ *
+ * @param level the severity level below which all log messages
+ * will be discarded, or <code>null</code> to
+ * indicate that the logger should inherit the
+ * threshold from its parent.
+ *
+ * @throws SecurityException if this logger is not anonymous, a
+ * security manager exists, and the caller is not granted
+ * the permission to control the logging infrastructure by
+ * having LoggingPermission("control"). Untrusted code can
+ * obtain an anonymous logger through the static factory method
+ * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+ */
+ public synchronized void setLevel(Level level)
+ {
+ /* An application is allowed to control an anonymous logger
+ * without having the permission to control the logging
+ * infrastructure.
+ */
+ if (!anonymous)
+ LogManager.getLogManager().checkAccess();
+
+ this.level = level;
+ }
+
+
+ public synchronized Filter getFilter()
+ {
+ return filter;
+ }
+
+
+ /**
+ * @throws SecurityException if this logger is not anonymous, a
+ * security manager exists, and the caller is not granted
+ * the permission to control the logging infrastructure by
+ * having LoggingPermission("control"). Untrusted code can
+ * obtain an anonymous logger through the static factory method
+ * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+ */
+ public synchronized void setFilter(Filter filter)
+ throws SecurityException
+ {
+ /* An application is allowed to control an anonymous logger
+ * without having the permission to control the logging
+ * infrastructure.
+ */
+ if (!anonymous)
+ LogManager.getLogManager().checkAccess();
+
+ this.filter = filter;
+ }
+
+
+
+
+ /**
+ * Returns the name of this logger.
+ *
+ * @return the name of this logger, or <code>null</code> if
+ * the logger is anonymous.
+ */
+ public String getName()
+ {
+ /* Note that the name of a logger cannot be changed during
+ * its lifetime, so no synchronization is needed.
+ */
+ return name;
+ }
+
+
+ /**
+ * Passes a record to registered handlers, provided the record
+ * is considered as loggable both by {@link #isLoggable(Level)}
+ * and a possibly installed custom {@link #setFilter(Filter) filter}.
+ *
+ * <p>If the logger has been configured to use parent handlers,
+ * the record will be forwarded to the parent of this logger
+ * in addition to being processed by the handlers registered with
+ * this logger.
+ *
+ * <p>The other logging methods in this class are convenience methods
+ * that merely create a new LogRecord and pass it to this method.
+ * Therefore, subclasses usually just need to override this single
+ * method for customizing the logging behavior.
+ *
+ * @param record the log record to be inspected and possibly forwarded.
+ */
+ public synchronized void log(LogRecord record)
+ {
+ if (!isLoggable(record.getLevel()))
+ return;
+
+ if ((filter != null) && !filter.isLoggable(record))
+ return;
+
+ /* If no logger name has been set for the log record,
+ * use the name of this logger.
+ */
+ if (record.getLoggerName() == null)
+ record.setLoggerName(name);
+
+ /* Avoid that some other thread is changing the logger hierarchy
+ * while we are traversing it.
+ */
+ synchronized (LogManager.getLogManager())
+ {
+ Logger curLogger = this;
+
+ do
+ {
+ /* The Sun J2SE 1.4 reference implementation seems to call the
+ * filter only for the logger whose log method is called,
+ * never for any of its parents. Also, parent loggers publish
+ * log record whatever their level might be. This is pretty
+ * weird, but GNU Classpath tries to be as compatible as
+ * possible to the reference implementation.
+ */
+ for (int i = 0; i < curLogger.handlers.length; i++)
+ curLogger.handlers[i].publish(record);
+
+ if (curLogger.getUseParentHandlers() == false)
+ break;
+
+ curLogger = curLogger.getParent();
+ }
+ while (parent != null);
+ }
+ }
+
+
+ public void log(Level level, String message)
+ {
+ if (isLoggable(level))
+ log(level, message, (Object[]) null);
+ }
+
+
+ public synchronized void log(Level level,
+ String message,
+ Object param)
+ {
+ if (isLoggable(level))
+ {
+ StackTraceElement caller = getCallerStackFrame();
+ logp(level,
+ caller != null ? caller.getClassName() : "<unknown>",
+ caller != null ? caller.getMethodName() : "<unknown>",
+ message,
+ param);
+ }
+ }
+
+
+ public synchronized void log(Level level,
+ String message,
+ Object[] params)
+ {
+ if (isLoggable(level))
+ {
+ StackTraceElement caller = getCallerStackFrame();
+ logp(level,
+ caller != null ? caller.getClassName() : "<unknown>",
+ caller != null ? caller.getMethodName() : "<unknown>",
+ message,
+ params);
+ }
+ }
+
+
+ public synchronized void log(Level level,
+ String message,
+ Throwable thrown)
+ {
+ if (isLoggable(level))
+ {
+ StackTraceElement caller = getCallerStackFrame();
+ logp(level,
+ caller != null ? caller.getClassName() : "<unknown>",
+ caller != null ? caller.getMethodName() : "<unknown>",
+ message,
+ thrown);
+ }
+ }
+
+
+ public synchronized void logp(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String message)
+ {
+ logp(level, sourceClass, sourceMethod, message,
+ (Object[]) null);
+ }
+
+
+ public synchronized void logp(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String message,
+ Object param)
+ {
+ logp(level, sourceClass, sourceMethod, message,
+ new Object[] { param });
+ }
+
+
+ private synchronized ResourceBundle findResourceBundle()
+ {
+ if (resourceBundle != null)
+ return resourceBundle;
+
+ if (parent != null)
+ return parent.findResourceBundle();
+
+ return null;
+ }
+
+
+ private synchronized void logImpl(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String message,
+ Object[] params)
+ {
+ LogRecord rec = new LogRecord(level, message);
+
+ rec.setResourceBundle(findResourceBundle());
+ rec.setSourceClassName(sourceClass);
+ rec.setSourceMethodName(sourceMethod);
+ rec.setParameters(params);
+
+ log(rec);
+ }
+
+
+ public synchronized void logp(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String message,
+ Object[] params)
+ {
+ logImpl(level, sourceClass, sourceMethod, message, params);
+ }
+
+
+ public synchronized void logp(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String message,
+ Throwable thrown)
+ {
+ LogRecord rec = new LogRecord(level, message);
+
+ rec.setResourceBundle(resourceBundle);
+ rec.setSourceClassName(sourceClass);
+ rec.setSourceMethodName(sourceMethod);
+ rec.setThrown(thrown);
+
+ log(rec);
+ }
+
+
+ public synchronized void logrb(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String bundleName,
+ String message)
+ {
+ logrb(level, sourceClass, sourceMethod, bundleName,
+ message, (Object[]) null);
+ }
+
+
+ public synchronized void logrb(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String bundleName,
+ String message,
+ Object param)
+ {
+ logrb(level, sourceClass, sourceMethod, bundleName,
+ message, new Object[] { param });
+ }
+
+
+ public synchronized void logrb(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String bundleName,
+ String message,
+ Object[] params)
+ {
+ LogRecord rec = new LogRecord(level, message);
+
+ rec.setResourceBundleName(bundleName);
+ rec.setSourceClassName(sourceClass);
+ rec.setSourceMethodName(sourceMethod);
+ rec.setParameters(params);
+
+ log(rec);
+ }
+
+
+ public synchronized void logrb(Level level,
+ String sourceClass,
+ String sourceMethod,
+ String bundleName,
+ String message,
+ Throwable thrown)
+ {
+ LogRecord rec = new LogRecord(level, message);
+
+ rec.setResourceBundleName(bundleName);
+ rec.setSourceClassName(sourceClass);
+ rec.setSourceMethodName(sourceMethod);
+ rec.setThrown(thrown);
+
+ log(rec);
+ }
+
+
+ public synchronized void entering(String sourceClass,
+ String sourceMethod)
+ {
+ if (isLoggable(Level.FINER))
+ logp(Level.FINER, sourceClass, sourceMethod, "ENTRY");
+ }
+
+
+ public synchronized void entering(String sourceClass,
+ String sourceMethod,
+ Object param)
+ {
+ if (isLoggable(Level.FINER))
+ logp(Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", param);
+ }
+
+
+ public synchronized void entering(String sourceClass,
+ String sourceMethod,
+ Object[] params)
+ {
+ if (isLoggable(Level.FINER))
+ {
+ StringBuffer buf = new StringBuffer(80);
+ buf.append("ENTRY");
+ for (int i = 0; i < params.length; i++)
+ {
+ buf.append(" {");
+ buf.append(i);
+ buf.append('}');
+ }
+
+ logp(Level.FINER, sourceClass, sourceMethod, buf.toString(), params);
+ }
+ }
+
+
+ public synchronized void exiting(String sourceClass,
+ String sourceMethod)
+ {
+ if (isLoggable(Level.FINER))
+ logp(Level.FINER, sourceClass, sourceMethod, "RETURN");
+ }
+
+
+ public synchronized void exiting(String sourceClass,
+ String sourceMethod,
+ Object result)
+ {
+ if (isLoggable(Level.FINER))
+ logp(Level.FINER, sourceClass, sourceMethod, "RETURN {0}", result);
+ }
+
+
+ public synchronized void throwing(String sourceClass,
+ String sourceMethod,
+ Throwable thrown)
+ {
+ if (isLoggable(Level.FINER))
+ logp(Level.FINER, sourceClass, sourceMethod, "THROW", thrown);
+ }
+
+
+ /**
+ * Logs a message with severity level SEVERE, indicating a serious
+ * failure that prevents normal program execution. Messages at this
+ * level should be understandable to an inexperienced, non-technical
+ * end user. Ideally, they explain in simple words what actions the
+ * user can take in order to resolve the problem.
+ *
+ * @see Level#SEVERE
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource
+ * bundle. While it is possible to pass
+ * <code>null</code>, this is not recommended, since
+ * a logging message without text is unlikely to be
+ * helpful.
+ */
+ public synchronized void severe(String message)
+ {
+ if (isLoggable(Level.SEVERE))
+ log(Level.SEVERE, message);
+ }
+
+
+ /**
+ * Logs a message with severity level WARNING, indicating a
+ * potential problem that does not prevent normal program execution.
+ * Messages at this level should be understandable to an
+ * inexperienced, non-technical end user. Ideally, they explain in
+ * simple words what actions the user can take in order to resolve
+ * the problem.
+ *
+ * @see Level#WARNING
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource
+ * bundle. While it is possible to pass
+ * <code>null</code>, this is not recommended, since
+ * a logging message without text is unlikely to be
+ * helpful.
+ */
+ public synchronized void warning(String message)
+ {
+ if (isLoggable(Level.WARNING))
+ log(Level.WARNING, message);
+ }
+
+
+ /**
+ * Logs a message with severity level INFO. {@link Level#INFO} is
+ * intended for purely informational messages that do not indicate
+ * error or warning situations. In the default logging
+ * configuration, INFO messages will be written to the system
+ * console. For this reason, the INFO level should be used only for
+ * messages that are important to end users and system
+ * administrators. Messages at this level should be understandable
+ * to an inexperienced, non-technical user.
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource
+ * bundle. While it is possible to pass
+ * <code>null</code>, this is not recommended, since
+ * a logging message without text is unlikely to be
+ * helpful.
+ */
+ public synchronized void info(String message)
+ {
+ if (isLoggable(Level.INFO))
+ log(Level.INFO, message);
+ }
+
+
+ /**
+ * Logs a message with severity level CONFIG. {@link Level#CONFIG} is
+ * intended for static configuration messages, for example about the
+ * windowing environment, the operating system version, etc.
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource bundle. While
+ * it is possible to pass <code>null</code>, this is not
+ * recommended, since a logging message without text is unlikely
+ * to be helpful.
+ */
+ public synchronized void config(String message)
+ {
+ if (isLoggable(Level.CONFIG))
+ log(Level.CONFIG, message);
+ }
+
+
+ /**
+ * Logs a message with severity level FINE. {@link Level#FINE} is
+ * intended for messages that are relevant for developers using
+ * the component generating log messages. Examples include minor,
+ * recoverable failures, or possible inefficiencies.
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource
+ * bundle. While it is possible to pass
+ * <code>null</code>, this is not recommended, since
+ * a logging message without text is unlikely to be
+ * helpful.
+ */
+ public synchronized void fine(String message)
+ {
+ if (isLoggable(Level.FINE))
+ log(Level.FINE, message);
+ }
+
+
+ /**
+ * Logs a message with severity level FINER. {@link Level#FINER} is
+ * intended for rather detailed tracing, for example entering a
+ * method, returning from a method, or throwing an exception.
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource
+ * bundle. While it is possible to pass
+ * <code>null</code>, this is not recommended, since
+ * a logging message without text is unlikely to be
+ * helpful.
+ */
+ public synchronized void finer(String message)
+ {
+ if (isLoggable(Level.FINER))
+ log(Level.FINER, message);
+ }
+
+
+ /**
+ * Logs a message with severity level FINEST. {@link Level#FINEST}
+ * is intended for highly detailed tracing, for example reaching a
+ * certain point inside the body of a method.
+ *
+ * @param message the message text, also used as look-up key if the
+ * logger is localizing messages with a resource
+ * bundle. While it is possible to pass
+ * <code>null</code>, this is not recommended, since
+ * a logging message without text is unlikely to be
+ * helpful.
+ */
+ public synchronized void finest(String message)
+ {
+ if (isLoggable(Level.FINEST))
+ log(Level.FINEST, message);
+ }
+
+
+ /**
+ * Adds a handler to the set of handlers that get notified
+ * when a log record is to be published.
+ *
+ * @param handler the handler to be added.
+ *
+ * @throws NullPointerException if <code>handler</code>
+ * is <code>null</code>.
+ *
+ * @throws SecurityException if this logger is not anonymous, a
+ * security manager exists, and the caller is not granted
+ * the permission to control the logging infrastructure by
+ * having LoggingPermission("control"). Untrusted code can
+ * obtain an anonymous logger through the static factory method
+ * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+ */
+ public synchronized void addHandler(Handler handler)
+ throws SecurityException
+ {
+ if (handler == null)
+ throw new NullPointerException();
+
+ /* An application is allowed to control an anonymous logger
+ * without having the permission to control the logging
+ * infrastructure.
+ */
+ if (!anonymous)
+ LogManager.getLogManager().checkAccess();
+
+ if (!handlerList.contains(handler))
+ {
+ handlerList.add(handler);
+ handlers = getHandlers();
+ }
+ }
+
+
+ /**
+ * Removes a handler from the set of handlers that get notified
+ * when a log record is to be published.
+ *
+ * @param handler the handler to be removed.
+ *
+ * @throws SecurityException if this logger is not anonymous, a
+ * security manager exists, and the caller is not granted the
+ * permission to control the logging infrastructure by having
+ * LoggingPermission("control"). Untrusted code can obtain an
+ * anonymous logger through the static factory method {@link
+ * #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+ *
+ * @throws NullPointerException if <code>handler</code>
+ * is <code>null</code>.
+ */
+ public synchronized void removeHandler(Handler handler)
+ throws SecurityException
+ {
+ /* An application is allowed to control an anonymous logger
+ * without having the permission to control the logging
+ * infrastructure.
+ */
+ if (!anonymous)
+ LogManager.getLogManager().checkAccess();
+
+ if (handler == null)
+ throw new NullPointerException();
+
+ handlerList.remove(handler);
+ handlers = getHandlers();
+ }
+
+
+ /**
+ * Returns the handlers currently registered for this Logger.
+ * When a log record has been deemed as being loggable,
+ * it will be passed to all registered handlers for
+ * publication. In addition, if the logger uses parent handlers
+ * (see {@link #getUseParentHandlers() getUseParentHandlers}
+ * and {@link #setUseParentHandlers(boolean) setUseParentHandlers},
+ * the log record will be passed to the parent's handlers.
+ */
+ public synchronized Handler[] getHandlers()
+ {
+ /* We cannot return our internal handlers array
+ * because we do not have any guarantee that the
+ * caller would not change the array entries.
+ */
+ return (Handler[]) handlerList.toArray(new Handler[handlerList.size()]);
+ }
+
+
+ /**
+ * Returns whether or not this Logger forwards log records to
+ * handlers registered for its parent loggers.
+ *
+ * @return <code>false</code> if this Logger sends log records
+ * merely to Handlers registered with itself;
+ * <code>true</code> if this Logger sends log records
+ * not only to Handlers registered with itself, but also
+ * to those Handlers registered with parent loggers.
+ */
+ public synchronized boolean getUseParentHandlers()
+ {
+ return useParentHandlers;
+ }
+
+
+ /**
+ * Sets whether or not this Logger forwards log records to
+ * handlers registered for its parent loggers.
+ *
+ * @param useParentHandlers <code>false</code> to let this
+ * Logger send log records merely to Handlers registered
+ * with itself; <code>true</code> to let this Logger
+ * send log records not only to Handlers registered
+ * with itself, but also to those Handlers registered with
+ * parent loggers.
+ *
+ * @throws SecurityException if this logger is not anonymous, a
+ * security manager exists, and the caller is not granted
+ * the permission to control the logging infrastructure by
+ * having LoggingPermission("control"). Untrusted code can
+ * obtain an anonymous logger through the static factory method
+ * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+ *
+ */
+ public synchronized void setUseParentHandlers(boolean useParentHandlers)
+ {
+ /* An application is allowed to control an anonymous logger
+ * without having the permission to control the logging
+ * infrastructure.
+ */
+ if (!anonymous)
+ LogManager.getLogManager().checkAccess();
+
+ this.useParentHandlers = useParentHandlers;
+ }
+
+
+ /**
+ * Returns the parent of this logger. By default, the parent is
+ * assigned by the LogManager by inspecting the logger's name.
+ *
+ * @return the parent of this logger (as detemined by the LogManager
+ * by inspecting logger names), the root logger if no other
+ * logger has a name which is a prefix of this logger's name, or
+ * <code>null</code> for the root logger.
+ */
+ public synchronized Logger getParent()
+ {
+ return parent;
+ }
+
+
+ /**
+ * Sets the parent of this logger. Usually, applications do not
+ * call this method directly. Instead, the LogManager will ensure
+ * that the tree of loggers reflects the hierarchical logger
+ * namespace. Basically, this method should not be public at all,
+ * but the GNU implementation follows the API specification.
+ *
+ * @throws NullPointerException if <code>parent</code> is
+ * <code>null</code>.
+ *
+ * @throws SecurityException if this logger is not anonymous, a
+ * security manager exists, and the caller is not granted
+ * the permission to control the logging infrastructure by
+ * having LoggingPermission("control"). Untrusted code can
+ * obtain an anonymous logger through the static factory method
+ * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+ */
+ public synchronized void setParent(Logger parent)
+ {
+ if (parent == null)
+ throw new NullPointerException();
+
+ if (this == root)
+ throw new IllegalArgumentException(
+ "the root logger can only have a null parent");
+
+ /* An application is allowed to control an anonymous logger
+ * without having the permission to control the logging
+ * infrastructure.
+ */
+ if (!anonymous)
+ LogManager.getLogManager().checkAccess();
+
+ this.parent = parent;
+ }
+
+ /**
+ * Gets the StackTraceElement of the first class that is not this class.
+ * That should be the initial caller of a logging method.
+ * @return caller of the initial logging method or null if unknown.
+ */
+ private native StackTraceElement getCallerStackFrame();
+
+ /**
+ * Reset and close handlers attached to this logger. This function is package
+ * private because it must only be avaiable to the LogManager.
+ */
+ void resetLogger()
+ {
+ for (int i = 0; i < handlers.length; i++)
+ {
+ handlers[i].close();
+ handlerList.remove(handlers[i]);
+ }
+ handlers = getHandlers();
+ }
+}
diff --git a/gcc-4.8/libjava/java/util/logging/LoggingMXBean.h b/gcc-4.8/libjava/java/util/logging/LoggingMXBean.h
new file mode 100644
index 000000000..4bac932e4
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/LoggingMXBean.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_LoggingMXBean__
+#define __java_util_logging_LoggingMXBean__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::logging::LoggingMXBean : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::lang::String * getLoggerLevel(::java::lang::String *) = 0;
+ virtual ::java::util::List * getLoggerNames() = 0;
+ virtual ::java::lang::String * getParentLoggerName(::java::lang::String *) = 0;
+ virtual void setLoggerLevel(::java::lang::String *, ::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_logging_LoggingMXBean__
diff --git a/gcc-4.8/libjava/java/util/logging/LoggingPermission.h b/gcc-4.8/libjava/java/util/logging/LoggingPermission.h
new file mode 100644
index 000000000..a3b803ac2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/LoggingPermission.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_LoggingPermission__
+#define __java_util_logging_LoggingPermission__
+
+#pragma interface
+
+#include <java/security/BasicPermission.h>
+
+class java::util::logging::LoggingPermission : public ::java::security::BasicPermission
+{
+
+public:
+ LoggingPermission(::java::lang::String *, ::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 63564341580231582LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_LoggingPermission__
diff --git a/gcc-4.8/libjava/java/util/logging/MemoryHandler.h b/gcc-4.8/libjava/java/util/logging/MemoryHandler.h
new file mode 100644
index 000000000..4ce638af9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/MemoryHandler.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_MemoryHandler__
+#define __java_util_logging_MemoryHandler__
+
+#pragma interface
+
+#include <java/util/logging/Handler.h>
+#include <gcj/array.h>
+
+
+class java::util::logging::MemoryHandler : public ::java::util::logging::Handler
+{
+
+public:
+ MemoryHandler();
+ MemoryHandler(::java::util::logging::Handler *, jint, ::java::util::logging::Level *);
+ virtual void publish(::java::util::logging::LogRecord *);
+ virtual void push();
+ virtual void flush();
+ virtual void close();
+ virtual ::java::util::logging::Level * getPushLevel();
+ virtual void setPushLevel(::java::util::logging::Level *);
+private:
+ JArray< ::java::util::logging::LogRecord * > * __attribute__((aligned(__alignof__( ::java::util::logging::Handler)))) buffer;
+ jint position;
+ jint numPublished;
+ ::java::util::logging::Level * pushLevel;
+ ::java::util::logging::Handler * target;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_MemoryHandler__
diff --git a/gcc-4.8/libjava/java/util/logging/SimpleFormatter.h b/gcc-4.8/libjava/java/util/logging/SimpleFormatter.h
new file mode 100644
index 000000000..6afece719
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/SimpleFormatter.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_SimpleFormatter__
+#define __java_util_logging_SimpleFormatter__
+
+#pragma interface
+
+#include <java/util/logging/Formatter.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace text
+ {
+ class DateFormat;
+ }
+ }
+}
+
+class java::util::logging::SimpleFormatter : public ::java::util::logging::Formatter
+{
+
+public:
+ SimpleFormatter();
+ virtual ::java::lang::String * format(::java::util::logging::LogRecord *);
+private:
+ ::java::text::DateFormat * __attribute__((aligned(__alignof__( ::java::util::logging::Formatter)))) dateFormat;
+public: // actually package-private
+ static ::java::lang::String * lineSep;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_SimpleFormatter__
diff --git a/gcc-4.8/libjava/java/util/logging/SocketHandler.h b/gcc-4.8/libjava/java/util/logging/SocketHandler.h
new file mode 100644
index 000000000..8286f1352
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/SocketHandler.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_SocketHandler__
+#define __java_util_logging_SocketHandler__
+
+#pragma interface
+
+#include <java/util/logging/StreamHandler.h>
+
+class java::util::logging::SocketHandler : public ::java::util::logging::StreamHandler
+{
+
+public:
+ SocketHandler();
+ SocketHandler(::java::lang::String *, jint);
+private:
+ static jint getPortNumber();
+ static ::java::io::OutputStream * createSocket(::java::lang::String *, jint);
+public:
+ virtual void publish(::java::util::logging::LogRecord *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_SocketHandler__
diff --git a/gcc-4.8/libjava/java/util/logging/StreamHandler.h b/gcc-4.8/libjava/java/util/logging/StreamHandler.h
new file mode 100644
index 000000000..11dca983f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/StreamHandler.h
@@ -0,0 +1,43 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_StreamHandler__
+#define __java_util_logging_StreamHandler__
+
+#pragma interface
+
+#include <java/util/logging/Handler.h>
+
+class java::util::logging::StreamHandler : public ::java::util::logging::Handler
+{
+
+public:
+ StreamHandler();
+ StreamHandler(::java::io::OutputStream *, ::java::util::logging::Formatter *);
+public: // actually package-private
+ StreamHandler(::java::io::OutputStream *, ::java::lang::String *, ::java::util::logging::Level *, ::java::util::logging::Formatter *, ::java::lang::Class *);
+private:
+ void checkOpen();
+ void checkFresh();
+ void changeWriter(::java::io::OutputStream *, ::java::lang::String *);
+public:
+ virtual void setEncoding(::java::lang::String *);
+public: // actually protected
+ virtual void setOutputStream(::java::io::OutputStream *);
+public:
+ virtual void publish(::java::util::logging::LogRecord *);
+ virtual jboolean isLoggable(::java::util::logging::LogRecord *);
+ virtual void flush();
+ virtual void close();
+private:
+ ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::java::util::logging::Handler)))) out;
+ ::java::io::Writer * writer;
+ jint streamState;
+ static const jint STATE_FRESH = 0;
+ static const jint STATE_PUBLISHED = 1;
+ static const jint STATE_CLOSED = 2;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_StreamHandler__
diff --git a/gcc-4.8/libjava/java/util/logging/XMLFormatter.h b/gcc-4.8/libjava/java/util/logging/XMLFormatter.h
new file mode 100644
index 000000000..a5de35435
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/XMLFormatter.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_logging_XMLFormatter__
+#define __java_util_logging_XMLFormatter__
+
+#pragma interface
+
+#include <java/util/logging/Formatter.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+ namespace java
+ {
+ namespace text
+ {
+ class SimpleDateFormat;
+ }
+ }
+}
+
+class java::util::logging::XMLFormatter : public ::java::util::logging::Formatter
+{
+
+public:
+ XMLFormatter();
+private:
+ static void appendTag(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *, ::java::lang::String *);
+ static void appendTag(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *, jlong);
+public:
+ virtual ::java::lang::String * format(::java::util::logging::LogRecord *);
+ virtual ::java::lang::String * getHead(::java::util::logging::Handler *);
+ virtual ::java::lang::String * getTail(::java::util::logging::Handler *);
+private:
+ static ::java::lang::String * lineSep;
+ ::java::text::SimpleDateFormat * __attribute__((aligned(__alignof__( ::java::util::logging::Formatter)))) iso8601;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_logging_XMLFormatter__
diff --git a/gcc-4.8/libjava/java/util/logging/natLogger.cc b/gcc-4.8/libjava/java/util/logging/natLogger.cc
new file mode 100644
index 000000000..5c68b1722
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/logging/natLogger.cc
@@ -0,0 +1,49 @@
+// natLogger.cc - Native part of Logger class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
+
+ This Logger is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the Logger "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <string.h>
+
+#pragma implementation "Logger.h"
+
+#include <gcj/cni.h>
+#include <jvm.h>
+#include <java-stack.h>
+
+#include <java/lang/Object.h>
+#include <java/lang/Class.h>
+#include <java/util/logging/Logger.h>
+#include <java/lang/StackTraceElement.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+
+using namespace java::util::logging;
+
+java::lang::StackTraceElement*
+java::util::logging::Logger::getCallerStackFrame ()
+{
+ jclass klass = NULL;
+ _Jv_Method *meth = NULL;
+ _Jv_StackTrace::GetCallerInfo (&Logger::class$, &klass, &meth);
+
+ jstring meth_name = NULL;
+ jstring klass_name = NULL;
+ if (klass != NULL)
+ klass_name = klass->getName();
+ if (meth != NULL)
+ meth_name = _Jv_NewStringUtf8Const (meth->name);
+
+ java::lang::StackTraceElement *e
+ = new java::lang::StackTraceElement
+ (JvNewStringUTF (""), 0, klass_name, meth_name, false);
+
+ return e;
+}
diff --git a/gcc-4.8/libjava/java/util/natVMTimeZone.cc b/gcc-4.8/libjava/java/util/natVMTimeZone.cc
new file mode 100644
index 000000000..d45ebf978
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/natVMTimeZone.cc
@@ -0,0 +1,145 @@
+// natVMTimeZone.cc -- Native side of VMTimeZone class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/util/VMTimeZone.h>
+#include <java/lang/Character.h>
+#include <java/lang/Integer.h>
+
+#include <stdio.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
+#include <string.h>
+
+/**
+ * This method returns a time zone id string which is in the form
+ * (standard zone name) or (standard zone name)(GMT offset) or
+ * (standard zone name)(GMT offset)(daylight time zone name). The
+ * GMT offset can be in seconds, or where it is evenly divisible by
+ * 3600, then it can be in hours. The offset must be the time to
+ * add to the local time to get GMT. If a offset is given and the
+ * time zone observes daylight saving then the (daylight time zone
+ * name) must also be given (otherwise it is assumed the time zone
+ * does not observe any daylight savings).
+ * <p>
+ * The result of this method is given to getDefaultTimeZone(String)
+ * which tries to map the time zone id to a known TimeZone. See
+ * that method on how the returned String is mapped to a real
+ * TimeZone object.
+ */
+jstring
+java::util::VMTimeZone::getSystemTimeZoneId()
+{
+ struct tm tim;
+#if !defined(HAVE_LOCALTIME_R) || !defined(_POSIX_PTHREAD_SEMANTICS)
+ struct tm *lt_tim;
+#endif
+#ifdef HAVE_TM_ZONE
+ int month;
+#endif
+ time_t current_time;
+ long tzoffset;
+ const char *tz1, *tz2;
+ char *tzid;
+
+ time(&current_time);
+#if defined(HAVE_LOCALTIME_R) && defined(_POSIX_PTHREAD_SEMANTICS)
+ localtime_r(&current_time, &tim);
+#else
+ /* Fall back on non-thread safe localtime. */
+ lt_tim = localtime(&current_time);
+ memcpy(&tim, lt_tim, sizeof (struct tm));
+#endif
+ mktime(&tim);
+
+#ifdef HAVE_TM_ZONE
+ /* We will cycle through the months to make sure we hit dst. */
+ month = tim.tm_mon;
+ tz1 = tz2 = NULL;
+ while (tz1 == NULL || tz2 == NULL)
+ {
+ if (tim.tm_isdst > 0)
+ tz2 = tim.tm_zone;
+ else if (tz1 == NULL)
+ {
+ tz1 = tim.tm_zone;
+ month = tim.tm_mon;
+ }
+
+ if (tz1 == NULL || tz2 == NULL)
+ {
+ tim.tm_mon++;
+ tim.tm_mon %= 12;
+ }
+
+ if (tim.tm_mon == month && tz2 == NULL)
+ tz2 = "";
+ else
+ mktime(&tim);
+ }
+ /* We want to make sure the tm struct we use later on is not dst. */
+ tim.tm_mon = month;
+ mktime(&tim);
+#elif defined (HAVE_TZNAME)
+ /* If dst is never used, tzname[1] is the empty string. */
+ tzset();
+ tz1 = tzname[0];
+ tz2 = tzname[1];
+#else
+ /* Some targets have no concept of timezones. Assume GMT without dst. */
+ tz1 = "GMT";
+ tz2 = "";
+#endif
+
+#ifdef STRUCT_TM_HAS_GMTOFF
+ /* tm_gmtoff is the number of seconds that you must add to GMT to get
+ local time, we need the number of seconds to add to the local time
+ to get GMT. */
+ tzoffset = -1L * tim.tm_gmtoff;
+#elif HAVE_UNDERSCORE_TIMEZONE
+ tzoffset = _timezone;
+#elif HAVE_TIMEZONE
+ /* timezone is secs WEST of UTC. */
+ tzoffset = timezone;
+#else
+ /* FIXME: there must be another global if neither tm_gmtoff nor timezone
+ is available, esp. if tzname is valid.
+ Richard Earnshaw <rearnsha@arm.com> has suggested using difftime to
+ calculate between gmtime and localtime (and accounting for possible
+ daylight savings time) as an alternative. */
+ tzoffset = 0L;
+#endif
+
+ if ((tzoffset % 3600) == 0)
+ tzoffset = tzoffset / 3600;
+
+ tzid = (char*) _Jv_Malloc (strlen(tz1) + strlen(tz2) + 6);
+ sprintf(tzid, "%s%ld%s", tz1, tzoffset, tz2);
+ jstring retval = JvNewStringUTF (tzid);
+ _Jv_Free (tzid);
+
+ return retval;
+}
diff --git a/gcc-4.8/libjava/java/util/prefs/AbstractPreferences$1.h b/gcc-4.8/libjava/java/util/prefs/AbstractPreferences$1.h
new file mode 100644
index 000000000..8e3bb1221
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/AbstractPreferences$1.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_AbstractPreferences$1__
+#define __java_util_prefs_AbstractPreferences$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::prefs::AbstractPreferences$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractPreferences$1(::java::util::prefs::AbstractPreferences *, ::java::util::prefs::PreferenceChangeListener *, ::java::util::prefs::PreferenceChangeEvent *);
+public:
+ virtual void run();
+public: // actually package-private
+ ::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ ::java::util::prefs::PreferenceChangeListener * val$listener;
+ ::java::util::prefs::PreferenceChangeEvent * val$event;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_AbstractPreferences$1__
diff --git a/gcc-4.8/libjava/java/util/prefs/AbstractPreferences$2.h b/gcc-4.8/libjava/java/util/prefs/AbstractPreferences$2.h
new file mode 100644
index 000000000..7729ccfdb
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/AbstractPreferences$2.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_AbstractPreferences$2__
+#define __java_util_prefs_AbstractPreferences$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::prefs::AbstractPreferences$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractPreferences$2(::java::util::prefs::AbstractPreferences *, jboolean, ::java::util::prefs::NodeChangeListener *, ::java::util::prefs::NodeChangeEvent *);
+public:
+ virtual void run();
+public: // actually package-private
+ ::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
+private:
+ jboolean val$added;
+ ::java::util::prefs::NodeChangeListener * val$listener;
+ ::java::util::prefs::NodeChangeEvent * val$event;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_AbstractPreferences$2__
diff --git a/gcc-4.8/libjava/java/util/prefs/AbstractPreferences.h b/gcc-4.8/libjava/java/util/prefs/AbstractPreferences.h
new file mode 100644
index 000000000..a4e3a028a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/AbstractPreferences.h
@@ -0,0 +1,106 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_AbstractPreferences__
+#define __java_util_prefs_AbstractPreferences__
+
+#pragma interface
+
+#include <java/util/prefs/Preferences.h>
+#include <gcj/array.h>
+
+
+class java::util::prefs::AbstractPreferences : public ::java::util::prefs::Preferences
+{
+
+public: // actually protected
+ AbstractPreferences(::java::util::prefs::AbstractPreferences *, ::java::lang::String *);
+public:
+ virtual ::java::lang::String * absolutePath();
+private:
+ ::java::lang::String * path();
+public:
+ virtual jboolean isUserNode();
+ virtual ::java::lang::String * name();
+ virtual ::java::lang::String * toString();
+public: // actually protected
+ virtual JArray< ::java::util::prefs::AbstractPreferences * > * cachedChildren();
+public:
+ virtual JArray< ::java::lang::String * > * childrenNames();
+ virtual ::java::util::prefs::Preferences * node(::java::lang::String *);
+private:
+ ::java::util::prefs::Preferences * getNode(::java::lang::String *);
+public:
+ virtual jboolean nodeExists(::java::lang::String *);
+private:
+ jboolean existsNode(::java::lang::String *);
+public: // actually protected
+ virtual ::java::util::prefs::AbstractPreferences * getChild(::java::lang::String *);
+ virtual jboolean isRemoved();
+public:
+ virtual ::java::util::prefs::Preferences * parent();
+ virtual void exportNode(::java::io::OutputStream *);
+ virtual void exportSubtree(::java::io::OutputStream *);
+ virtual JArray< ::java::lang::String * > * keys();
+ virtual ::java::lang::String * get(::java::lang::String *, ::java::lang::String *);
+ virtual jboolean getBoolean(::java::lang::String *, jboolean);
+ virtual JArray< jbyte > * getByteArray(::java::lang::String *, JArray< jbyte > *);
+private:
+ static JArray< jbyte > * decode64(::java::lang::String *);
+public:
+ virtual jdouble getDouble(::java::lang::String *, jdouble);
+ virtual jfloat getFloat(::java::lang::String *, jfloat);
+ virtual jint getInt(::java::lang::String *, jint);
+ virtual jlong getLong(::java::lang::String *, jlong);
+ virtual void put(::java::lang::String *, ::java::lang::String *);
+ virtual void putBoolean(::java::lang::String *, jboolean);
+ virtual void putByteArray(::java::lang::String *, JArray< jbyte > *);
+private:
+ static ::java::lang::String * encode64(JArray< jbyte > *);
+public:
+ virtual void putDouble(::java::lang::String *, jdouble);
+ virtual void putFloat(::java::lang::String *, jfloat);
+ virtual void putInt(::java::lang::String *, jint);
+ virtual void putLong(::java::lang::String *, jlong);
+ virtual void remove(::java::lang::String *);
+ virtual void clear();
+ virtual void flush();
+ virtual void sync();
+private:
+ void flushNode(jboolean);
+public:
+ virtual void removeNode();
+private:
+ void purge();
+public:
+ virtual void addNodeChangeListener(::java::util::prefs::NodeChangeListener *);
+ virtual void addPreferenceChangeListener(::java::util::prefs::PreferenceChangeListener *);
+ virtual void removeNodeChangeListener(::java::util::prefs::NodeChangeListener *);
+ virtual void removePreferenceChangeListener(::java::util::prefs::PreferenceChangeListener *);
+private:
+ void fire(::java::util::prefs::PreferenceChangeEvent *);
+ void fire(::java::util::prefs::NodeChangeEvent *, jboolean);
+public: // actually protected
+ virtual JArray< ::java::lang::String * > * childrenNamesSpi() = 0;
+ virtual ::java::util::prefs::AbstractPreferences * childSpi(::java::lang::String *) = 0;
+ virtual JArray< ::java::lang::String * > * keysSpi() = 0;
+ virtual ::java::lang::String * getSpi(::java::lang::String *) = 0;
+ virtual void putSpi(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual void removeSpi(::java::lang::String *) = 0;
+ virtual void flushSpi() = 0;
+ virtual void syncSpi() = 0;
+ virtual void removeNodeSpi() = 0;
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::prefs::Preferences)))) lock;
+ jboolean newNode;
+private:
+ ::java::util::prefs::AbstractPreferences * parent__;
+ ::java::lang::String * name__;
+ jboolean removed;
+ ::java::util::HashMap * childCache;
+ ::java::util::ArrayList * nodeListeners;
+ ::java::util::ArrayList * preferenceListeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_AbstractPreferences__
diff --git a/gcc-4.8/libjava/java/util/prefs/BackingStoreException.h b/gcc-4.8/libjava/java/util/prefs/BackingStoreException.h
new file mode 100644
index 000000000..a68513852
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/BackingStoreException.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_BackingStoreException__
+#define __java_util_prefs_BackingStoreException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::prefs::BackingStoreException : public ::java::lang::Exception
+{
+
+public:
+ BackingStoreException(::java::lang::String *);
+ BackingStoreException(::java::lang::Throwable *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ static const jlong serialVersionUID = 859796500401108469LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_BackingStoreException__
diff --git a/gcc-4.8/libjava/java/util/prefs/InvalidPreferencesFormatException.h b/gcc-4.8/libjava/java/util/prefs/InvalidPreferencesFormatException.h
new file mode 100644
index 000000000..dd81f5dc0
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/InvalidPreferencesFormatException.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_InvalidPreferencesFormatException__
+#define __java_util_prefs_InvalidPreferencesFormatException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::prefs::InvalidPreferencesFormatException : public ::java::lang::Exception
+{
+
+public:
+ InvalidPreferencesFormatException(::java::lang::String *);
+ InvalidPreferencesFormatException(::java::lang::Throwable *);
+ InvalidPreferencesFormatException(::java::lang::String *, ::java::lang::Throwable *);
+private:
+ void writeObject(::java::io::ObjectOutputStream *);
+ void readObject(::java::io::ObjectInputStream *);
+public: // actually package-private
+ static const jlong serialVersionUID = -791715184232119669LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_InvalidPreferencesFormatException__
diff --git a/gcc-4.8/libjava/java/util/prefs/NodeChangeEvent.h b/gcc-4.8/libjava/java/util/prefs/NodeChangeEvent.h
new file mode 100644
index 000000000..7a51b708b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/NodeChangeEvent.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_NodeChangeEvent__
+#define __java_util_prefs_NodeChangeEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+
+class java::util::prefs::NodeChangeEvent : public ::java::util::EventObject
+{
+
+public:
+ NodeChangeEvent(::java::util::prefs::Preferences *, ::java::util::prefs::Preferences *);
+ virtual ::java::util::prefs::Preferences * getParent();
+ virtual ::java::util::prefs::Preferences * getChild();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = 8068949086596572957LL;
+ ::java::util::prefs::Preferences * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) child;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_NodeChangeEvent__
diff --git a/gcc-4.8/libjava/java/util/prefs/NodeChangeListener.h b/gcc-4.8/libjava/java/util/prefs/NodeChangeListener.h
new file mode 100644
index 000000000..2ad05d6e1
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/NodeChangeListener.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_NodeChangeListener__
+#define __java_util_prefs_NodeChangeListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::prefs::NodeChangeListener : public ::java::lang::Object
+{
+
+public:
+ virtual void childAdded(::java::util::prefs::NodeChangeEvent *) = 0;
+ virtual void childRemoved(::java::util::prefs::NodeChangeEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_prefs_NodeChangeListener__
diff --git a/gcc-4.8/libjava/java/util/prefs/PreferenceChangeEvent.h b/gcc-4.8/libjava/java/util/prefs/PreferenceChangeEvent.h
new file mode 100644
index 000000000..790a957d2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/PreferenceChangeEvent.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_PreferenceChangeEvent__
+#define __java_util_prefs_PreferenceChangeEvent__
+
+#pragma interface
+
+#include <java/util/EventObject.h>
+
+class java::util::prefs::PreferenceChangeEvent : public ::java::util::EventObject
+{
+
+public:
+ PreferenceChangeEvent(::java::util::prefs::Preferences *, ::java::lang::String *, ::java::lang::String *);
+ virtual ::java::util::prefs::Preferences * getNode();
+ virtual ::java::lang::String * getKey();
+ virtual ::java::lang::String * getNewValue();
+private:
+ void readObject(::java::io::ObjectInputStream *);
+ void writeObject(::java::io::ObjectOutputStream *);
+ static const jlong serialVersionUID = 793724513368024975LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) key;
+ ::java::lang::String * newValue;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_PreferenceChangeEvent__
diff --git a/gcc-4.8/libjava/java/util/prefs/PreferenceChangeListener.h b/gcc-4.8/libjava/java/util/prefs/PreferenceChangeListener.h
new file mode 100644
index 000000000..d450a31b7
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/PreferenceChangeListener.h
@@ -0,0 +1,19 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_PreferenceChangeListener__
+#define __java_util_prefs_PreferenceChangeListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::prefs::PreferenceChangeListener : public ::java::lang::Object
+{
+
+public:
+ virtual void preferenceChange(::java::util::prefs::PreferenceChangeEvent *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_prefs_PreferenceChangeListener__
diff --git a/gcc-4.8/libjava/java/util/prefs/Preferences$1.h b/gcc-4.8/libjava/java/util/prefs/Preferences$1.h
new file mode 100644
index 000000000..1d61c4f1e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/Preferences$1.h
@@ -0,0 +1,22 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_Preferences$1__
+#define __java_util_prefs_Preferences$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::prefs::Preferences$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Preferences$1();
+public:
+ virtual ::java::util::prefs::PreferencesFactory * Preferences$1$run();
+ virtual ::java::lang::Object * run();
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_Preferences$1__
diff --git a/gcc-4.8/libjava/java/util/prefs/Preferences.h b/gcc-4.8/libjava/java/util/prefs/Preferences.h
new file mode 100644
index 000000000..b19a03445
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/Preferences.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_Preferences__
+#define __java_util_prefs_Preferences__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ }
+ }
+}
+
+class java::util::prefs::Preferences : public ::java::lang::Object
+{
+
+public: // actually protected
+ Preferences();
+public:
+ static ::java::util::prefs::Preferences * systemRoot();
+ static ::java::util::prefs::Preferences * userRoot();
+private:
+ static ::java::util::prefs::PreferencesFactory * getFactory();
+public:
+ static ::java::util::prefs::Preferences * systemNodeForPackage(::java::lang::Class *);
+ static ::java::util::prefs::Preferences * userNodeForPackage(::java::lang::Class *);
+private:
+ static ::java::util::prefs::Preferences * nodeForPackage(::java::lang::Class *, ::java::util::prefs::Preferences *);
+public:
+ static void importPreferences(::java::io::InputStream *);
+ virtual ::java::lang::String * absolutePath() = 0;
+ virtual jboolean isUserNode() = 0;
+ virtual ::java::lang::String * name() = 0;
+ virtual ::java::lang::String * toString() = 0;
+ virtual JArray< ::java::lang::String * > * childrenNames() = 0;
+ virtual ::java::util::prefs::Preferences * node(::java::lang::String *) = 0;
+ virtual jboolean nodeExists(::java::lang::String *) = 0;
+ virtual ::java::util::prefs::Preferences * parent() = 0;
+ virtual void exportNode(::java::io::OutputStream *) = 0;
+ virtual void exportSubtree(::java::io::OutputStream *) = 0;
+ virtual JArray< ::java::lang::String * > * keys() = 0;
+ virtual ::java::lang::String * get(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual jboolean getBoolean(::java::lang::String *, jboolean) = 0;
+ virtual JArray< jbyte > * getByteArray(::java::lang::String *, JArray< jbyte > *) = 0;
+ virtual jdouble getDouble(::java::lang::String *, jdouble) = 0;
+ virtual jfloat getFloat(::java::lang::String *, jfloat) = 0;
+ virtual jint getInt(::java::lang::String *, jint) = 0;
+ virtual jlong getLong(::java::lang::String *, jlong) = 0;
+ virtual void put(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual void putBoolean(::java::lang::String *, jboolean) = 0;
+ virtual void putByteArray(::java::lang::String *, JArray< jbyte > *) = 0;
+ virtual void putDouble(::java::lang::String *, jdouble) = 0;
+ virtual void putFloat(::java::lang::String *, jfloat) = 0;
+ virtual void putInt(::java::lang::String *, jint) = 0;
+ virtual void putLong(::java::lang::String *, jlong) = 0;
+ virtual void remove(::java::lang::String *) = 0;
+ virtual void clear() = 0;
+ virtual void flush() = 0;
+ virtual void sync() = 0;
+ virtual void removeNode() = 0;
+ virtual void addNodeChangeListener(::java::util::prefs::NodeChangeListener *) = 0;
+ virtual void addPreferenceChangeListener(::java::util::prefs::PreferenceChangeListener *) = 0;
+ virtual void removeNodeChangeListener(::java::util::prefs::NodeChangeListener *) = 0;
+ virtual void removePreferenceChangeListener(::java::util::prefs::PreferenceChangeListener *) = 0;
+private:
+ static ::java::lang::String * defaultFactoryClass;
+ static ::java::security::Permission * prefsPermission;
+ static ::java::util::prefs::PreferencesFactory * factory;
+public:
+ static const jint MAX_NAME_LENGTH = 80;
+ static const jint MAX_KEY_LENGTH = 80;
+ static const jint MAX_VALUE_LENGTH = 8192;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_prefs_Preferences__
diff --git a/gcc-4.8/libjava/java/util/prefs/PreferencesFactory.h b/gcc-4.8/libjava/java/util/prefs/PreferencesFactory.h
new file mode 100644
index 000000000..40207d480
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/prefs/PreferencesFactory.h
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_prefs_PreferencesFactory__
+#define __java_util_prefs_PreferencesFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::prefs::PreferencesFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::util::prefs::Preferences * systemRoot() = 0;
+ virtual ::java::util::prefs::Preferences * userRoot() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_prefs_PreferencesFactory__
diff --git a/gcc-4.8/libjava/java/util/regex/MatchResult.h b/gcc-4.8/libjava/java/util/regex/MatchResult.h
new file mode 100644
index 000000000..6b6acf8ab
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/regex/MatchResult.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_regex_MatchResult__
+#define __java_util_regex_MatchResult__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::regex::MatchResult : public ::java::lang::Object
+{
+
+public:
+ virtual jint end() = 0;
+ virtual jint end(jint) = 0;
+ virtual ::java::lang::String * group() = 0;
+ virtual ::java::lang::String * group(jint) = 0;
+ virtual jint groupCount() = 0;
+ virtual jint start() = 0;
+ virtual jint start(jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_regex_MatchResult__
diff --git a/gcc-4.8/libjava/java/util/regex/Matcher.h b/gcc-4.8/libjava/java/util/regex/Matcher.h
new file mode 100644
index 000000000..b3944b08f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/regex/Matcher.h
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_regex_Matcher__
+#define __java_util_regex_Matcher__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace util
+ {
+ namespace regex
+ {
+ class CharIndexed;
+ class REMatch;
+ }
+ }
+ }
+ }
+}
+
+class java::util::regex::Matcher : public ::java::lang::Object
+{
+
+public: // actually package-private
+ Matcher(::java::util::regex::Pattern *, ::java::lang::CharSequence *);
+public:
+ ::java::util::regex::Matcher * usePattern(::java::util::regex::Pattern *);
+ ::java::util::regex::Matcher * appendReplacement(::java::lang::StringBuffer *, ::java::lang::String *);
+ ::java::lang::StringBuffer * appendTail(::java::lang::StringBuffer *);
+ jint end();
+ jint end(jint);
+ jboolean find();
+ jboolean find(jint);
+ ::java::lang::String * group();
+ ::java::lang::String * group(jint);
+ ::java::lang::String * replaceFirst(::java::lang::String *);
+ ::java::lang::String * replaceAll(::java::lang::String *);
+ jint groupCount();
+ jboolean lookingAt();
+ jboolean matches();
+ ::java::util::regex::Pattern * pattern();
+ ::java::util::regex::Matcher * reset();
+ ::java::util::regex::Matcher * reset(::java::lang::CharSequence *);
+ jint start();
+ jint start(jint);
+ jboolean hitEnd();
+ ::java::lang::String * toString();
+private:
+ void assertMatchOp();
+public:
+ ::java::util::regex::Matcher * region(jint, jint);
+ jint regionStart();
+ jint regionEnd();
+ jboolean hasTransparentBounds();
+ ::java::util::regex::Matcher * useTransparentBounds(jboolean);
+ jboolean hasAnchoringBounds();
+ ::java::util::regex::Matcher * useAnchoringBounds(jboolean);
+ ::java::util::regex::MatchResult * toMatchResult();
+ static ::java::lang::String * quoteReplacement(::java::lang::String *);
+private:
+ ::java::util::regex::Pattern * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pattern__;
+ ::java::lang::CharSequence * input;
+ ::gnu::java::util::regex::CharIndexed * inputCharIndexed;
+ jint position;
+ jint appendPosition;
+ ::gnu::java::util::regex::REMatch * match;
+ jint regionStart__;
+ jint regionEnd__;
+ jboolean transparentBounds;
+ jint anchoringBounds;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_regex_Matcher__
diff --git a/gcc-4.8/libjava/java/util/regex/Pattern.h b/gcc-4.8/libjava/java/util/regex/Pattern.h
new file mode 100644
index 000000000..5536aec82
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/regex/Pattern.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_regex_Pattern__
+#define __java_util_regex_Pattern__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace util
+ {
+ namespace regex
+ {
+ class RE;
+ }
+ }
+ }
+ }
+}
+
+class java::util::regex::Pattern : public ::java::lang::Object
+{
+
+ Pattern(::java::lang::String *, jint);
+public: // actually package-private
+ ::gnu::java::util::regex::RE * getRE();
+public:
+ static ::java::util::regex::Pattern * compile(::java::lang::String *);
+ static ::java::util::regex::Pattern * compile(::java::lang::String *, jint);
+ jint flags();
+ static jboolean matches(::java::lang::String *, ::java::lang::CharSequence *);
+ ::java::util::regex::Matcher * matcher(::java::lang::CharSequence *);
+ JArray< ::java::lang::String * > * split(::java::lang::CharSequence *);
+ JArray< ::java::lang::String * > * split(::java::lang::CharSequence *, jint);
+ ::java::lang::String * pattern();
+ static ::java::lang::String * quote(::java::lang::String *);
+ ::java::lang::String * toString();
+private:
+ static const jlong serialVersionUID = 5073258162644648461LL;
+public:
+ static const jint CANON_EQ = 128;
+ static const jint CASE_INSENSITIVE = 2;
+ static const jint COMMENTS = 4;
+ static const jint DOTALL = 32;
+ static const jint MULTILINE = 8;
+ static const jint UNICODE_CASE = 64;
+ static const jint UNIX_LINES = 1;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) regex;
+ jint flags__;
+ ::gnu::java::util::regex::RE * re;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_regex_Pattern__
diff --git a/gcc-4.8/libjava/java/util/regex/PatternSyntaxException.h b/gcc-4.8/libjava/java/util/regex/PatternSyntaxException.h
new file mode 100644
index 000000000..670549a6a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/regex/PatternSyntaxException.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_regex_PatternSyntaxException__
+#define __java_util_regex_PatternSyntaxException__
+
+#pragma interface
+
+#include <java/lang/IllegalArgumentException.h>
+
+class java::util::regex::PatternSyntaxException : public ::java::lang::IllegalArgumentException
+{
+
+public:
+ PatternSyntaxException(::java::lang::String *, ::java::lang::String *, jint);
+ virtual ::java::lang::String * getDescription();
+ virtual ::java::lang::String * getPattern();
+ virtual jint getIndex();
+ virtual ::java::lang::String * getMessage();
+private:
+ static const jlong serialVersionUID = -3864639126226059218LL;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::IllegalArgumentException)))) desc;
+ ::java::lang::String * pattern;
+ jint index;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_regex_PatternSyntaxException__
diff --git a/gcc-4.8/libjava/java/util/spi/CurrencyNameProvider.h b/gcc-4.8/libjava/java/util/spi/CurrencyNameProvider.h
new file mode 100644
index 000000000..1375c1574
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/spi/CurrencyNameProvider.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_spi_CurrencyNameProvider__
+#define __java_util_spi_CurrencyNameProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+
+class java::util::spi::CurrencyNameProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ CurrencyNameProvider();
+public:
+ virtual ::java::lang::String * getSymbol(::java::lang::String *, ::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_spi_CurrencyNameProvider__
diff --git a/gcc-4.8/libjava/java/util/spi/LocaleNameProvider.h b/gcc-4.8/libjava/java/util/spi/LocaleNameProvider.h
new file mode 100644
index 000000000..d4194c529
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/spi/LocaleNameProvider.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_spi_LocaleNameProvider__
+#define __java_util_spi_LocaleNameProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+
+class java::util::spi::LocaleNameProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ LocaleNameProvider();
+public:
+ virtual ::java::lang::String * getDisplayCountry(::java::lang::String *, ::java::util::Locale *) = 0;
+ virtual ::java::lang::String * getDisplayLanguage(::java::lang::String *, ::java::util::Locale *) = 0;
+ virtual ::java::lang::String * getDisplayVariant(::java::lang::String *, ::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_spi_LocaleNameProvider__
diff --git a/gcc-4.8/libjava/java/util/spi/LocaleServiceProvider.h b/gcc-4.8/libjava/java/util/spi/LocaleServiceProvider.h
new file mode 100644
index 000000000..69cc23170
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/spi/LocaleServiceProvider.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_spi_LocaleServiceProvider__
+#define __java_util_spi_LocaleServiceProvider__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::spi::LocaleServiceProvider : public ::java::lang::Object
+{
+
+public: // actually protected
+ LocaleServiceProvider();
+public:
+ virtual JArray< ::java::util::Locale * > * getAvailableLocales() = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_spi_LocaleServiceProvider__
diff --git a/gcc-4.8/libjava/java/util/spi/TimeZoneNameProvider.h b/gcc-4.8/libjava/java/util/spi/TimeZoneNameProvider.h
new file mode 100644
index 000000000..8e4309312
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/spi/TimeZoneNameProvider.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_spi_TimeZoneNameProvider__
+#define __java_util_spi_TimeZoneNameProvider__
+
+#pragma interface
+
+#include <java/util/spi/LocaleServiceProvider.h>
+
+class java::util::spi::TimeZoneNameProvider : public ::java::util::spi::LocaleServiceProvider
+{
+
+public: // actually protected
+ TimeZoneNameProvider();
+public:
+ virtual ::java::lang::String * getDisplayName(::java::lang::String *, jboolean, jint, ::java::util::Locale *) = 0;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_spi_TimeZoneNameProvider__
diff --git a/gcc-4.8/libjava/java/util/zip/Adler32.h b/gcc-4.8/libjava/java/util/zip/Adler32.h
new file mode 100644
index 000000000..ebd8e33cf
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/Adler32.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_Adler32__
+#define __java_util_zip_Adler32__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::Adler32 : public ::java::lang::Object
+{
+
+public:
+ Adler32();
+ virtual void reset();
+ virtual void update(jint);
+ virtual void update(JArray< jbyte > *);
+ virtual void update(JArray< jbyte > *, jint, jint);
+ virtual jlong getValue();
+private:
+ static const jint BASE = 65521;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) checksum;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_Adler32__
diff --git a/gcc-4.8/libjava/java/util/zip/CRC32.h b/gcc-4.8/libjava/java/util/zip/CRC32.h
new file mode 100644
index 000000000..af515fc99
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/CRC32.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_CRC32__
+#define __java_util_zip_CRC32__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::CRC32 : public ::java::lang::Object
+{
+
+public:
+ CRC32();
+private:
+ static JArray< jint > * make_crc_table();
+public:
+ virtual jlong getValue();
+ virtual void reset();
+ virtual void update(jint);
+ virtual void update(JArray< jbyte > *, jint, jint);
+ virtual void update(JArray< jbyte > *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) crc;
+ static JArray< jint > * crc_table;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_CRC32__
diff --git a/gcc-4.8/libjava/java/util/zip/CheckedInputStream.h b/gcc-4.8/libjava/java/util/zip/CheckedInputStream.h
new file mode 100644
index 000000000..d9e80abe9
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/CheckedInputStream.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_CheckedInputStream__
+#define __java_util_zip_CheckedInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::CheckedInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ CheckedInputStream(::java::io::InputStream *, ::java::util::zip::Checksum *);
+ virtual ::java::util::zip::Checksum * getChecksum();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jlong skip(jlong);
+private:
+ ::java::util::zip::Checksum * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) sum;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_CheckedInputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/CheckedOutputStream.h b/gcc-4.8/libjava/java/util/zip/CheckedOutputStream.h
new file mode 100644
index 000000000..5cf53c9f2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/CheckedOutputStream.h
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_CheckedOutputStream__
+#define __java_util_zip_CheckedOutputStream__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::CheckedOutputStream : public ::java::io::FilterOutputStream
+{
+
+public:
+ CheckedOutputStream(::java::io::OutputStream *, ::java::util::zip::Checksum *);
+ virtual ::java::util::zip::Checksum * getChecksum();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+private:
+ ::java::util::zip::Checksum * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) sum;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_CheckedOutputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/Checksum.h b/gcc-4.8/libjava/java/util/zip/Checksum.h
new file mode 100644
index 000000000..66ab907c8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/Checksum.h
@@ -0,0 +1,24 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_Checksum__
+#define __java_util_zip_Checksum__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::Checksum : public ::java::lang::Object
+{
+
+public:
+ virtual jlong getValue() = 0;
+ virtual void reset() = 0;
+ virtual void update(jint) = 0;
+ virtual void update(JArray< jbyte > *, jint, jint) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_zip_Checksum__
diff --git a/gcc-4.8/libjava/java/util/zip/DataFormatException.h b/gcc-4.8/libjava/java/util/zip/DataFormatException.h
new file mode 100644
index 000000000..5ebfbcf4b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/DataFormatException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_DataFormatException__
+#define __java_util_zip_DataFormatException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+
+class java::util::zip::DataFormatException : public ::java::lang::Exception
+{
+
+public:
+ DataFormatException();
+ DataFormatException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 2219632870893641452LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_DataFormatException__
diff --git a/gcc-4.8/libjava/java/util/zip/Deflater.h b/gcc-4.8/libjava/java/util/zip/Deflater.h
new file mode 100644
index 000000000..61d21899f
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/Deflater.h
@@ -0,0 +1,76 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_Deflater__
+#define __java_util_zip_Deflater__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+}
+
+class java::util::zip::Deflater : public ::java::lang::Object
+{
+
+public:
+ Deflater();
+ Deflater(jint);
+ Deflater(jint, jboolean);
+private:
+ void init(jint, jboolean);
+ void update();
+public:
+ virtual void reset();
+ virtual void end();
+ virtual jint getAdler();
+ virtual jint getTotalIn();
+ virtual jlong getBytesRead();
+ virtual jint getTotalOut();
+ virtual jlong getBytesWritten();
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual void finish();
+ virtual jboolean finished();
+ virtual jboolean needsInput();
+ virtual void setInput(JArray< jbyte > *);
+ virtual void setInput(JArray< jbyte > *, jint, jint);
+ virtual void setLevel(jint);
+ virtual void setStrategy(jint);
+ virtual jint deflate(JArray< jbyte > *);
+ virtual jint deflate(JArray< jbyte > *, jint, jint);
+ virtual void setDictionary(JArray< jbyte > *);
+ virtual void setDictionary(JArray< jbyte > *, jint, jint);
+public: // actually package-private
+ virtual void flush();
+public:
+ static const jint BEST_COMPRESSION = 9;
+ static const jint BEST_SPEED = 1;
+ static const jint DEFAULT_COMPRESSION = -1;
+ static const jint NO_COMPRESSION = 0;
+ static const jint DEFAULT_STRATEGY = 0;
+ static const jint FILTERED = 1;
+ static const jint HUFFMAN_ONLY = 2;
+ static const jint DEFLATED = 8;
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) level;
+ jint strategy;
+ ::gnu::gcj::RawData * zstream;
+ jboolean is_finished;
+ jint flush_flag;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_Deflater__
diff --git a/gcc-4.8/libjava/java/util/zip/Deflater.java b/gcc-4.8/libjava/java/util/zip/Deflater.java
new file mode 100644
index 000000000..47383ab4b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/Deflater.java
@@ -0,0 +1,354 @@
+/* Deflater.java - Compress a data stream
+ Copyright (C) 1999, 2000, 2001, 2004, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.util.zip;
+
+import gnu.gcj.RawData;
+
+/**
+ * This is the Deflater class. The deflater class compresses input
+ * with the deflate algorithm described in RFC 1951. It has several
+ * compression levels and three different strategies described below.
+ *
+ * This class is <i>not</i> thread safe. This is inherent in the API, due
+ * to the split of deflate and setInput.
+ *
+ * @author Jochen Hoenicke
+ * @author Tom Tromey
+ */
+public class Deflater
+{
+ /**
+ * The best and slowest compression level. This tries to find very
+ * long and distant string repetitions.
+ */
+ public static final int BEST_COMPRESSION = 9;
+ /**
+ * The worst but fastest compression level.
+ */
+ public static final int BEST_SPEED = 1;
+ /**
+ * The default compression level.
+ */
+ public static final int DEFAULT_COMPRESSION = -1;
+ /**
+ * This level won't compress at all but output uncompressed blocks.
+ */
+ public static final int NO_COMPRESSION = 0;
+
+ /**
+ * The default strategy.
+ */
+ public static final int DEFAULT_STRATEGY = 0;
+ /**
+ * This strategy will only allow longer string repetitions. It is
+ * useful for random data with a small character set.
+ */
+ public static final int FILTERED = 1;
+
+ /**
+ * This strategy will not look for string repetitions at all. It
+ * only encodes with Huffman trees (which means, that more common
+ * characters get a smaller encoding.
+ */
+ public static final int HUFFMAN_ONLY = 2;
+
+ /**
+ * The compression method. This is the only method supported so far.
+ * There is no need to use this constant at all.
+ */
+ public static final int DEFLATED = 8;
+
+ /** Compression level. */
+ private int level;
+
+ /** Compression strategy. */
+ private int strategy;
+
+ /** The zlib stream. */
+ private RawData zstream;
+
+ /** True if finished. */
+ private boolean is_finished;
+
+ /** `Flush' flag to pass to next call to deflate. */
+ private int flush_flag;
+
+ /**
+ * Creates a new deflater with default compression level.
+ */
+ public Deflater()
+ {
+ this(DEFAULT_COMPRESSION, false);
+ }
+
+ /**
+ * Creates a new deflater with given compression level.
+ * @param lvl the compression level, a value between NO_COMPRESSION
+ * and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
+ * @exception IllegalArgumentException if lvl is out of range.
+ */
+ public Deflater(int lvl)
+ {
+ this(lvl, false);
+ }
+
+ /**
+ * Creates a new deflater with given compression level.
+ * @param lvl the compression level, a value between NO_COMPRESSION
+ * and BEST_COMPRESSION.
+ * @param nowrap true, iff we should suppress the deflate header at the
+ * beginning and the adler checksum at the end of the output. This is
+ * useful for the GZIP format.
+ * @exception IllegalArgumentException if lvl is out of range.
+ */
+ public Deflater(int lvl, boolean noHeader)
+ {
+ this.strategy = DEFAULT_STRATEGY;
+ init(lvl, noHeader);
+ setLevel(lvl);
+ }
+
+ private native void init(int level, boolean noHeader);
+
+ private native void update();
+
+ /**
+ * Resets the deflater. The deflater acts afterwards as if it was
+ * just created with the same compression level and strategy as it
+ * had before.
+ */
+ public native void reset();
+
+ /**
+ * Frees all objects allocated by the compressor. There's no
+ * reason to call this, since you can just rely on garbage
+ * collection. Exists only for compatibility against Sun's JDK,
+ * where the compressor allocates native memory.
+ * If you call any method (even reset) afterwards the behaviour is
+ * <i>undefined</i>.
+ * @deprecated Just clear all references to deflater instead.
+ */
+ public native void end();
+
+ /**
+ * Gets the current adler checksum of the data that was processed so
+ * far.
+ */
+ public native int getAdler();
+
+ /**
+ * Gets the number of input bytes processed so far.
+ */
+ @Deprecated
+ public int getTotalIn()
+ {
+ return (int) getBytesRead();
+ }
+
+ /**
+ * Gets the number of input bytes processed so far.
+ * @since 1.5
+ */
+ public native long getBytesRead();
+
+ /**
+ * Gets the number of output bytes so far.
+ */
+ @Deprecated
+ public int getTotalOut()
+ {
+ return (int) getBytesWritten();
+ }
+
+ /**
+ * Gets the number of output bytes so far.
+ * @since 1.5
+ */
+ public native long getBytesWritten();
+
+ /**
+ * Finalizes this object.
+ */
+ protected void finalize()
+ {
+ end();
+ }
+
+ /**
+ * Finishes the deflater with the current input block. It is an error
+ * to give more input after this method was called. This method must
+ * be called to force all bytes to be flushed.
+ */
+ public native void finish();
+
+ /**
+ * Returns true iff the stream was finished and no more output bytes
+ * are available.
+ */
+ public synchronized boolean finished()
+ {
+ return is_finished;
+ }
+
+ /**
+ * Returns true, if the input buffer is empty.
+ * You should then call setInput(). <br>
+ *
+ * <em>NOTE</em>: This method can also return true when the stream
+ * was finished.
+ */
+ public native boolean needsInput();
+
+ /**
+ * Sets the data which should be compressed next. This should be only
+ * called when needsInput indicates that more input is needed.
+ * If you call setInput when needsInput() returns false, the
+ * previous input that is still pending will be thrown away.
+ * The given byte array should not be changed, before needsInput() returns
+ * true again.
+ * This call is equivalent to <code>setInput(input, 0, input.length)</code>.
+ * @param input the buffer containing the input data.
+ * @exception IllegalStateException if the buffer was finished() or ended().
+ */
+ public void setInput(byte[] input)
+ {
+ setInput(input, 0, input.length);
+ }
+
+ /**
+ * Sets the data which should be compressed next. This should be
+ * only called when needsInput indicates that more input is needed.
+ * The given byte array should not be changed, before needsInput() returns
+ * true again.
+ * @param input the buffer containing the input data.
+ * @param off the start of the data.
+ * @param len the length of the data.
+ * @exception IllegalStateException if the buffer was finished() or ended()
+ * or if previous input is still pending.
+ */
+ public native void setInput(byte[] input, int off, int len);
+
+ /**
+ * Sets the compression level. There is no guarantee of the exact
+ * position of the change, but if you call this when needsInput is
+ * true the change of compression level will occur somewhere near
+ * before the end of the so far given input.
+ * @param lvl the new compression level.
+ */
+ public synchronized void setLevel(int lvl)
+ {
+ if (lvl != -1 && (lvl < 0 || lvl > 9))
+ throw new IllegalArgumentException();
+ level = (lvl == -1) ? 6 : lvl;
+ update();
+ }
+
+ /**
+ * Sets the compression strategy. Strategy is one of
+ * DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact
+ * position where the strategy is changed, the same as for
+ * setLevel() applies.
+ * @param stgy the new compression strategy.
+ */
+ public synchronized void setStrategy(int stgy)
+ {
+ if (stgy != DEFAULT_STRATEGY && stgy != FILTERED
+ && stgy != HUFFMAN_ONLY)
+ throw new IllegalArgumentException();
+ strategy = stgy;
+ update();
+ }
+
+ /**
+ * Deflates the current input block to the given array. It returns
+ * the number of bytes compressed, or 0 if either
+ * needsInput() or finished() returns true or length is zero.
+ * @param output the buffer where to write the compressed data.
+ */
+ public int deflate(byte[] output)
+ {
+ return deflate(output, 0, output.length);
+ }
+
+ /**
+ * Deflates the current input block to the given array. It returns
+ * the number of bytes compressed, or 0 if either
+ * needsInput() or finished() returns true or length is zero.
+ * @param output the buffer where to write the compressed data.
+ * @param offset the offset into the output array.
+ * @param length the maximum number of bytes that may be written.
+ * @exception IllegalStateException if end() was called.
+ * @exception IndexOutOfBoundsException if offset and/or length
+ * don't match the array length.
+ */
+ public native int deflate(byte[] output, int off, int len);
+
+ /**
+ * Sets the dictionary which should be used in the deflate process.
+ * This call is equivalent to <code>setDictionary(dict, 0,
+ * dict.length)</code>.
+ * @param dict the dictionary.
+ * @exception IllegalStateException if setInput () or deflate ()
+ * were already called or another dictionary was already set.
+ */
+ public void setDictionary(byte[] dict)
+ {
+ setDictionary(dict, 0, dict.length);
+ }
+
+ /**
+ * Sets the dictionary which should be used in the deflate process.
+ * The dictionary should be a byte array containing strings that are
+ * likely to occur in the data which should be compressed. The
+ * dictionary is not stored in the compressed output, only a
+ * checksum. To decompress the output you need to supply the same
+ * dictionary again.
+ * @param dict the dictionary.
+ * @param offset an offset into the dictionary.
+ * @param length the length of the dictionary.
+ * @exception IllegalStateException if setInput () or deflate () were
+ * already called or another dictionary was already set.
+ */
+ public native void setDictionary(byte[] buf, int off, int len);
+
+ // Classpath's compression library supports flushing, but we
+ // don't. So this is a no-op here.
+ void flush()
+ {
+ }
+}
diff --git a/gcc-4.8/libjava/java/util/zip/DeflaterOutputStream.h b/gcc-4.8/libjava/java/util/zip/DeflaterOutputStream.h
new file mode 100644
index 000000000..307f364ad
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/DeflaterOutputStream.h
@@ -0,0 +1,34 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_DeflaterOutputStream__
+#define __java_util_zip_DeflaterOutputStream__
+
+#pragma interface
+
+#include <java/io/FilterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::DeflaterOutputStream : public ::java::io::FilterOutputStream
+{
+
+public: // actually protected
+ virtual void deflate();
+public:
+ DeflaterOutputStream(::java::io::OutputStream *);
+ DeflaterOutputStream(::java::io::OutputStream *, ::java::util::zip::Deflater *);
+ DeflaterOutputStream(::java::io::OutputStream *, ::java::util::zip::Deflater *, jint);
+ virtual void flush();
+ virtual void finish();
+ virtual void close();
+ virtual void write(jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+public: // actually protected
+ JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) buf;
+ ::java::util::zip::Deflater * def;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_DeflaterOutputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/GZIPInputStream.h b/gcc-4.8/libjava/java/util/zip/GZIPInputStream.h
new file mode 100644
index 000000000..20777faba
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/GZIPInputStream.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_GZIPInputStream__
+#define __java_util_zip_GZIPInputStream__
+
+#pragma interface
+
+#include <java/util/zip/InflaterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::GZIPInputStream : public ::java::util::zip::InflaterInputStream
+{
+
+public:
+ GZIPInputStream(::java::io::InputStream *);
+ GZIPInputStream(::java::io::InputStream *, jint);
+ virtual void close();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+private:
+ void readHeader();
+ void readFooter();
+public:
+ static const jint GZIP_MAGIC = 35615;
+public: // actually package-private
+ static const jint FTEXT = 1;
+ static const jint FHCRC = 2;
+ static const jint FEXTRA = 4;
+ static const jint FNAME = 8;
+ static const jint FCOMMENT = 16;
+public: // actually protected
+ ::java::util::zip::CRC32 * __attribute__((aligned(__alignof__( ::java::util::zip::InflaterInputStream)))) crc;
+ jboolean eos;
+private:
+ jboolean readGZIPHeader;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_GZIPInputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/GZIPOutputStream.h b/gcc-4.8/libjava/java/util/zip/GZIPOutputStream.h
new file mode 100644
index 000000000..1680d8964
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/GZIPOutputStream.h
@@ -0,0 +1,28 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_GZIPOutputStream__
+#define __java_util_zip_GZIPOutputStream__
+
+#pragma interface
+
+#include <java/util/zip/DeflaterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::GZIPOutputStream : public ::java::util::zip::DeflaterOutputStream
+{
+
+public:
+ GZIPOutputStream(::java::io::OutputStream *);
+ GZIPOutputStream(::java::io::OutputStream *, jint);
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void close();
+ virtual void finish();
+public: // actually protected
+ ::java::util::zip::CRC32 * __attribute__((aligned(__alignof__( ::java::util::zip::DeflaterOutputStream)))) crc;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_GZIPOutputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/Inflater.h b/gcc-4.8/libjava/java/util/zip/Inflater.h
new file mode 100644
index 000000000..25ebdc6d6
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/Inflater.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_Inflater__
+#define __java_util_zip_Inflater__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
+}
+
+class java::util::zip::Inflater : public ::java::lang::Object
+{
+
+public:
+ Inflater();
+ Inflater(jboolean);
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual void end();
+ virtual jboolean finished();
+ virtual jint getAdler();
+ virtual jint getRemaining();
+ virtual jint getTotalIn();
+ virtual jint getTotalOut();
+ virtual jint inflate(JArray< jbyte > *);
+ virtual jint inflate(JArray< jbyte > *, jint, jint);
+private:
+ void init(jboolean);
+public:
+ virtual jboolean needsDictionary();
+ virtual jboolean needsInput();
+ virtual void reset();
+ virtual void setDictionary(JArray< jbyte > *);
+ virtual void setDictionary(JArray< jbyte > *, jint, jint);
+ virtual void setInput(JArray< jbyte > *);
+ virtual void setInput(JArray< jbyte > *, jint, jint);
+private:
+ ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) zstream;
+ jboolean is_finished;
+ jboolean dict_needed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_Inflater__
diff --git a/gcc-4.8/libjava/java/util/zip/Inflater.java b/gcc-4.8/libjava/java/util/zip/Inflater.java
new file mode 100644
index 000000000..c51cde802
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/Inflater.java
@@ -0,0 +1,269 @@
+/* Inflater.java - Decompress a data stream
+ Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.util.zip;
+
+import gnu.gcj.RawData;
+
+/* Written using on-line Java Platform 1.2 API Specification
+ * and JCL book.
+ * Believed complete and correct.
+ */
+
+/**
+ * Inflater is used to decompress data that has been compressed according
+ * to the "deflate" standard described in rfc1950.
+ *
+ * The usage is as following. First you have to set some input with
+ * <code>setInput()</code>, then inflate() it. If inflate doesn't
+ * inflate any bytes there may be three reasons:
+ * <ul>
+ * <li>needsInput() returns true because the input buffer is empty.
+ * You have to provide more input with <code>setInput()</code>.
+ * NOTE: needsInput() also returns true when, the stream is finished.
+ * </li>
+ * <li>needsDictionary() returns true, you have to provide a preset
+ * dictionary with <code>setDictionary()</code>.</li>
+ * <li>finished() returns true, the inflater has finished.</li>
+ * </ul>
+ * Once the first output byte is produced, a dictionary will not be
+ * needed at a later stage.
+ *
+ * @author John Leuner, Jochen Hoenicke
+ * @author Tom Tromey
+ * @date May 17, 1999
+ * @since JDK 1.1
+ */
+public class Inflater
+{
+ // The zlib stream.
+ private RawData zstream;
+
+ // True if finished.
+ private boolean is_finished;
+
+ // True if dictionary needed.
+ private boolean dict_needed;
+
+ /**
+ * Creates a new inflater.
+ */
+ public Inflater ()
+ {
+ this (false);
+ }
+
+ /**
+ * Creates a new inflater.
+ * @param nowrap true if no header and checksum field appears in the
+ * stream. This is used for GZIPed input. For compatibility with
+ * Sun JDK you should provide one byte of input more than needed in
+ * this case.
+ */
+ public Inflater (boolean noHeader)
+ {
+ init (noHeader);
+ }
+
+ /**
+ * Finalizes this object.
+ */
+ protected void finalize ()
+ {
+ end ();
+ }
+
+ /**
+ * Frees all objects allocated by the inflater. There's no reason
+ * to call this, since you can just rely on garbage collection (even
+ * for the Sun implementation). Exists only for compatibility
+ * with Sun's JDK, where the compressor allocates native memory.
+ * If you call any method (even reset) afterwards the behaviour is
+ * <i>undefined</i>.
+ * @deprecated Just clear all references to inflater instead.
+ */
+ public native void end ();
+
+ /**
+ * Returns true, if the inflater has finished. This means, that no
+ * input is needed and no output can be produced.
+ */
+ public synchronized boolean finished ()
+ {
+ return is_finished;
+ }
+
+ /**
+ * Gets the adler checksum. This is either the checksum of all
+ * uncompressed bytes returned by inflate(), or if needsDictionary()
+ * returns true (and thus no output was yet produced) this is the
+ * adler checksum of the expected dictionary.
+ * @returns the adler checksum.
+ */
+ public native int getAdler ();
+
+ /**
+ * Gets the number of unprocessed input. Useful, if the end of the
+ * stream is reached and you want to further process the bytes after
+ * the deflate stream.
+ * @return the number of bytes of the input which were not processed.
+ */
+ public native int getRemaining ();
+
+ /**
+ * Gets the total number of processed compressed input bytes.
+ * @return the total number of bytes of processed input bytes.
+ */
+ public native int getTotalIn ();
+
+ /**
+ * Gets the total number of output bytes returned by inflate().
+ * @return the total number of output bytes.
+ */
+ public native int getTotalOut ();
+
+ /**
+ * Inflates the compressed stream to the output buffer. If this
+ * returns 0, you should check, whether needsDictionary(),
+ * needsInput() or finished() returns true, to determine why no
+ * further output is produced.
+ * @param buffer the output buffer.
+ * @return the number of bytes written to the buffer, 0 if no further
+ * output can be produced.
+ * @exception DataFormatException if deflated stream is invalid.
+ * @exception IllegalArgumentException if buf has length 0.
+ */
+ public int inflate (byte[] buf) throws DataFormatException
+ {
+ return inflate (buf, 0, buf.length);
+ }
+
+ /**
+ * Inflates the compressed stream to the output buffer. If this
+ * returns 0, you should check, whether needsDictionary(),
+ * needsInput() or finished() returns true, to determine why no
+ * further output is produced.
+ * @param buffer the output buffer.
+ * @param off the offset into buffer where the output should start.
+ * @param len the maximum length of the output.
+ * @return the number of bytes written to the buffer, 0 if no further
+ * output can be produced.
+ * @exception DataFormatException if deflated stream is invalid.
+ * @exception IndexOutOfBoundsException if the off and/or len are wrong.
+ */
+ public native int inflate (byte[] buf, int off, int len)
+ throws DataFormatException;
+
+ private native void init (boolean noHeader);
+
+ /**
+ * Returns true, if a preset dictionary is needed to inflate the input.
+ */
+ public synchronized boolean needsDictionary ()
+ {
+ return dict_needed;
+ }
+
+ /**
+ * Returns true, if the input buffer is empty.
+ * You should then call setInput(). <br>
+ *
+ * <em>NOTE</em>: This method also returns true when the stream is finished.
+ */
+ public synchronized boolean needsInput ()
+ {
+ return getRemaining () == 0;
+ }
+
+ /**
+ * Resets the inflater so that a new stream can be decompressed. All
+ * pending input and output will be discarded.
+ */
+ public native void reset ();
+
+ /**
+ * Sets the preset dictionary. This should only be called, if
+ * needsDictionary() returns true and it should set the same
+ * dictionary, that was used for deflating. The getAdler()
+ * function returns the checksum of the dictionary needed.
+ * @param buffer the dictionary.
+ * @exception IllegalStateException if no dictionary is needed.
+ * @exception IllegalArgumentException if the dictionary checksum is
+ * wrong.
+ */
+ public void setDictionary (byte[] buf)
+ {
+ setDictionary (buf, 0, buf.length);
+ }
+
+ /**
+ * Sets the preset dictionary. This should only be called, if
+ * needsDictionary() returns true and it should set the same
+ * dictionary, that was used for deflating. The getAdler()
+ * function returns the checksum of the dictionary needed.
+ * @param buffer the dictionary.
+ * @param off the offset into buffer where the dictionary starts.
+ * @param len the length of the dictionary.
+ * @exception IllegalStateException if no dictionary is needed.
+ * @exception IllegalArgumentException if the dictionary checksum is
+ * wrong.
+ * @exception IndexOutOfBoundsException if the off and/or len are wrong.
+ */
+ public native void setDictionary (byte[] buf, int off, int len);
+
+ /**
+ * Sets the input. This should only be called, if needsInput()
+ * returns true.
+ * @param buffer the input.
+ * @exception IllegalStateException if no input is needed.
+ */
+ public void setInput (byte[] buf)
+ {
+ setInput (buf, 0, buf.length);
+ }
+
+ /**
+ * Sets the input. This should only be called, if needsInput()
+ * returns true.
+ * @param buffer the input.
+ * @param off the offset into buffer where the input starts.
+ * @param len the length of the input.
+ * @exception IllegalStateException if no input is needed.
+ * @exception IndexOutOfBoundsException if the off and/or len are wrong.
+ */
+ public native void setInput (byte[] buf, int off, int len);
+}
diff --git a/gcc-4.8/libjava/java/util/zip/InflaterInputStream.h b/gcc-4.8/libjava/java/util/zip/InflaterInputStream.h
new file mode 100644
index 000000000..b576c3646
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/InflaterInputStream.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_InflaterInputStream__
+#define __java_util_zip_InflaterInputStream__
+
+#pragma interface
+
+#include <java/io/FilterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::InflaterInputStream : public ::java::io::FilterInputStream
+{
+
+public:
+ InflaterInputStream(::java::io::InputStream *);
+ InflaterInputStream(::java::io::InputStream *, ::java::util::zip::Inflater *);
+ InflaterInputStream(::java::io::InputStream *, ::java::util::zip::Inflater *, jint);
+ virtual jint available();
+ virtual void close();
+public: // actually protected
+ virtual void fill();
+public:
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual jlong skip(jlong);
+ virtual jboolean markSupported();
+ virtual void mark(jint);
+ virtual void reset();
+public: // actually protected
+ ::java::util::zip::Inflater * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) inf;
+ JArray< jbyte > * buf;
+ jint len;
+private:
+ JArray< jbyte > * onebytebuffer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_InflaterInputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipConstants.h b/gcc-4.8/libjava/java/util/zip/ZipConstants.h
new file mode 100644
index 000000000..3cf795d7b
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipConstants.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipConstants__
+#define __java_util_zip_ZipConstants__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::zip::ZipConstants : public ::java::lang::Object
+{
+
+public:
+ static const jint LOCHDR = 30;
+ static const jlong LOCSIG = 67324752LL;
+ static const jint LOCVER = 4;
+ static const jint LOCFLG = 6;
+ static const jint LOCHOW = 8;
+ static const jint LOCTIM = 10;
+ static const jint LOCCRC = 14;
+ static const jint LOCSIZ = 18;
+ static const jint LOCLEN = 22;
+ static const jint LOCNAM = 26;
+ static const jint LOCEXT = 28;
+ static const jlong EXTSIG = 134695760LL;
+ static const jint EXTHDR = 16;
+ static const jint EXTCRC = 4;
+ static const jint EXTSIZ = 8;
+ static const jint EXTLEN = 12;
+ static const jlong CENSIG = 33639248LL;
+ static const jint CENHDR = 46;
+ static const jint CENVEM = 4;
+ static const jint CENVER = 6;
+ static const jint CENFLG = 8;
+ static const jint CENHOW = 10;
+ static const jint CENTIM = 12;
+ static const jint CENCRC = 16;
+ static const jint CENSIZ = 20;
+ static const jint CENLEN = 24;
+ static const jint CENNAM = 28;
+ static const jint CENEXT = 30;
+ static const jint CENCOM = 32;
+ static const jint CENDSK = 34;
+ static const jint CENATT = 36;
+ static const jint CENATX = 38;
+ static const jint CENOFF = 42;
+ static const jlong ENDSIG = 101010256LL;
+ static const jint ENDHDR = 22;
+ static const jint ENDSUB = 8;
+ static const jint ENDTOT = 10;
+ static const jint ENDSIZ = 12;
+ static const jint ENDOFF = 16;
+ static const jint ENDCOM = 20;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __java_util_zip_ZipConstants__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipEntry.h b/gcc-4.8/libjava/java/util/zip/ZipEntry.h
new file mode 100644
index 000000000..47cb903a8
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipEntry.h
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipEntry__
+#define __java_util_zip_ZipEntry__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::ZipEntry : public ::java::lang::Object
+{
+
+public:
+ ZipEntry(::java::lang::String *);
+ ZipEntry(::java::util::zip::ZipEntry *);
+public: // actually package-private
+ ZipEntry(::java::util::zip::ZipEntry *, ::java::lang::String *);
+ virtual void setDOSTime(jint);
+ virtual jint getDOSTime();
+public:
+ virtual ::java::lang::Object * clone();
+ virtual ::java::lang::String * getName();
+ virtual void setTime(jlong);
+ virtual jlong getTime();
+ virtual void setSize(jlong);
+ virtual jlong getSize();
+ virtual void setCompressedSize(jlong);
+ virtual jlong getCompressedSize();
+ virtual void setCrc(jlong);
+ virtual jlong getCrc();
+ virtual void setMethod(jint);
+ virtual jint getMethod();
+ virtual void setExtra(JArray< jbyte > *);
+private:
+ void parseExtra();
+public:
+ virtual JArray< jbyte > * getExtra();
+ virtual void setComment(::java::lang::String *);
+ virtual ::java::lang::String * getComment();
+ virtual jboolean isDirectory();
+ virtual ::java::lang::String * toString();
+ virtual jint hashCode();
+private:
+ static const jbyte KNOWN_SIZE = 1;
+ static const jbyte KNOWN_CSIZE = 2;
+ static const jbyte KNOWN_CRC = 4;
+ static const jbyte KNOWN_TIME = 8;
+ static const jbyte KNOWN_DOSTIME = 16;
+ static const jbyte KNOWN_EXTRA = 32;
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ jint size;
+ jlong compressedSize;
+ jint crc;
+ ::java::lang::String * comment;
+ jbyte method;
+ jbyte known;
+ jint dostime;
+ jlong time;
+ JArray< jbyte > * extra;
+public: // actually package-private
+ jint flags;
+ jint offset;
+public:
+ static const jint STORED = 0;
+ static const jint DEFLATED = 8;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipEntry__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipException.h b/gcc-4.8/libjava/java/util/zip/ZipException.h
new file mode 100644
index 000000000..3a7b1fc5e
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipException.h
@@ -0,0 +1,23 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipException__
+#define __java_util_zip_ZipException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+
+class java::util::zip::ZipException : public ::java::io::IOException
+{
+
+public:
+ ZipException();
+ ZipException(::java::lang::String *);
+private:
+ static const jlong serialVersionUID = 8000196834066748623LL;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipException__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipFile$1.h b/gcc-4.8/libjava/java/util/zip/ZipFile$1.h
new file mode 100644
index 000000000..d181256c2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipFile$1.h
@@ -0,0 +1,26 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipFile$1__
+#define __java_util_zip_ZipFile$1__
+
+#pragma interface
+
+#include <java/util/zip/InflaterInputStream.h>
+
+class java::util::zip::ZipFile$1 : public ::java::util::zip::InflaterInputStream
+{
+
+public: // actually package-private
+ ZipFile$1(::java::util::zip::ZipFile *, ::java::io::InputStream *, ::java::util::zip::Inflater *, jint);
+public:
+ virtual jint available();
+public: // actually package-private
+ ::java::util::zip::ZipFile * __attribute__((aligned(__alignof__( ::java::util::zip::InflaterInputStream)))) this$0;
+private:
+ jint val$sz;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipFile$1__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipFile$PartialInputStream.h b/gcc-4.8/libjava/java/util/zip/ZipFile$PartialInputStream.h
new file mode 100644
index 000000000..f258f9f0c
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipFile$PartialInputStream.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipFile$PartialInputStream__
+#define __java_util_zip_ZipFile$PartialInputStream__
+
+#pragma interface
+
+#include <java/io/InputStream.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ namespace charset
+ {
+ class Charset;
+ class CharsetDecoder;
+ }
+ }
+ }
+}
+
+class java::util::zip::ZipFile$PartialInputStream : public ::java::io::InputStream
+{
+
+public:
+ ZipFile$PartialInputStream(::java::io::RandomAccessFile *, jint);
+public: // actually package-private
+ void setLength(jlong);
+private:
+ void fillBuffer();
+public:
+ jint available();
+ jint read();
+ jint read(JArray< jbyte > *, jint, jint);
+ jlong skip(jlong);
+public: // actually package-private
+ void seek(jlong);
+ void readFully(JArray< jbyte > *);
+ void readFully(JArray< jbyte > *, jint, jint);
+ jint readLeShort();
+ jint readLeInt();
+private:
+ ::java::lang::String * decodeChars(JArray< jbyte > *, jint, jint);
+public: // actually package-private
+ ::java::lang::String * readString(jint);
+public:
+ void addDummyByte();
+private:
+ static ::java::nio::charset::Charset * UTF8CHARSET;
+ ::java::nio::charset::CharsetDecoder * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) utf8Decoder;
+ ::java::io::RandomAccessFile * raf;
+ JArray< jbyte > * buffer;
+ jlong bufferOffset;
+ jint pos;
+ jlong end;
+ jint dummyByteCount;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipFile$PartialInputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h b/gcc-4.8/libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h
new file mode 100644
index 000000000..f041ae04a
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h
@@ -0,0 +1,25 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipFile$ZipEntryEnumeration__
+#define __java_util_zip_ZipFile$ZipEntryEnumeration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::zip::ZipFile$ZipEntryEnumeration : public ::java::lang::Object
+{
+
+public:
+ ZipFile$ZipEntryEnumeration(::java::util::Iterator *);
+ virtual jboolean hasMoreElements();
+ virtual ::java::util::zip::ZipEntry * ZipFile$ZipEntryEnumeration$nextElement();
+ virtual ::java::lang::Object * nextElement();
+private:
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) elements;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipFile$ZipEntryEnumeration__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipFile.h b/gcc-4.8/libjava/java/util/zip/ZipFile.h
new file mode 100644
index 000000000..7c0f69ca2
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipFile.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipFile__
+#define __java_util_zip_ZipFile__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::zip::ZipFile : public ::java::lang::Object
+{
+
+ ::java::io::RandomAccessFile * openFile(::java::lang::String *, ::java::io::File *);
+public:
+ ZipFile(::java::lang::String *);
+ ZipFile(::java::io::File *);
+ ZipFile(::java::io::File *, jint);
+private:
+ void checkZipFile();
+ void checkClosed();
+ void readEntries();
+public:
+ virtual void close();
+public: // actually protected
+ virtual void finalize();
+public:
+ virtual ::java::util::Enumeration * entries();
+private:
+ ::java::util::LinkedHashMap * getEntries();
+public:
+ virtual ::java::util::zip::ZipEntry * getEntry(::java::lang::String *);
+ virtual ::java::io::InputStream * getInputStream(::java::util::zip::ZipEntry *);
+ virtual ::java::lang::String * getName();
+ virtual jint size();
+ static const jint OPEN_READ = 1;
+ static const jint OPEN_DELETE = 4;
+public: // actually package-private
+ static const jint ENDNRD = 4;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
+ ::java::io::RandomAccessFile * raf;
+ ::java::util::LinkedHashMap * entries__;
+ jboolean closed;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipFile__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipInputStream.h b/gcc-4.8/libjava/java/util/zip/ZipInputStream.h
new file mode 100644
index 000000000..4a8439506
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipInputStream.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipInputStream__
+#define __java_util_zip_ZipInputStream__
+
+#pragma interface
+
+#include <java/util/zip/InflaterInputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::ZipInputStream : public ::java::util::zip::InflaterInputStream
+{
+
+public:
+ ZipInputStream(::java::io::InputStream *);
+private:
+ void fillBuf();
+ jint readBuf(JArray< jbyte > *, jint, jint);
+ void readFully(JArray< jbyte > *);
+ jint readLeByte();
+ jint readLeShort();
+ jint readLeInt();
+public:
+ virtual ::java::util::zip::ZipEntry * getNextEntry();
+private:
+ void readDataDescr();
+public:
+ virtual void closeEntry();
+ virtual jint available();
+ virtual jint read();
+ virtual jint read(JArray< jbyte > *, jint, jint);
+ virtual void close();
+public: // actually protected
+ virtual ::java::util::zip::ZipEntry * createZipEntry(::java::lang::String *);
+private:
+ ::java::util::zip::CRC32 * __attribute__((aligned(__alignof__( ::java::util::zip::InflaterInputStream)))) crc;
+ ::java::util::zip::ZipEntry * entry;
+ jint csize;
+ jint size;
+ jint method;
+ jint flags;
+ jint avail;
+ jboolean entryAtEOF;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipInputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/ZipOutputStream.h b/gcc-4.8/libjava/java/util/zip/ZipOutputStream.h
new file mode 100644
index 000000000..0de152efc
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/ZipOutputStream.h
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_zip_ZipOutputStream__
+#define __java_util_zip_ZipOutputStream__
+
+#pragma interface
+
+#include <java/util/zip/DeflaterOutputStream.h>
+#include <gcj/array.h>
+
+
+class java::util::zip::ZipOutputStream : public ::java::util::zip::DeflaterOutputStream
+{
+
+public:
+ ZipOutputStream(::java::io::OutputStream *);
+ virtual void setComment(::java::lang::String *);
+ virtual void setMethod(jint);
+ virtual void setLevel(jint);
+private:
+ void writeLeShort(jint);
+ void writeLeInt(jint);
+ void writeLeInt(jlong);
+public:
+ virtual void putNextEntry(::java::util::zip::ZipEntry *);
+ virtual void closeEntry();
+ virtual void write(JArray< jbyte > *, jint, jint);
+ virtual void finish();
+private:
+ ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::util::zip::DeflaterOutputStream)))) entries;
+ ::java::util::zip::CRC32 * crc;
+ ::java::util::zip::ZipEntry * curEntry;
+ jint curMethod;
+ jint size;
+ jint offset;
+ JArray< jbyte > * zipComment;
+ jint defaultMethod;
+ static const jint ZIP_STORED_VERSION = 10;
+ static const jint ZIP_DEFLATED_VERSION = 20;
+public:
+ static const jint STORED = 0;
+ static const jint DEFLATED = 8;
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_zip_ZipOutputStream__
diff --git a/gcc-4.8/libjava/java/util/zip/natDeflater.cc b/gcc-4.8/libjava/java/util/zip/natDeflater.cc
new file mode 100644
index 000000000..9ff172109
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/natDeflater.cc
@@ -0,0 +1,216 @@
+// natDeflater.cc - Implementation of Deflater native methods.
+
+/* Copyright (C) 1999, 2002, 2006 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// Written by Tom Tromey <tromey@cygnus.com>
+
+#include <config.h>
+
+#include <zlib.h>
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/util/zip/Deflater.h>
+#include <java/util/zip/DataFormatException.h>
+
+#include <java/lang/InternalError.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+
+extern void *_Jv_ZMalloc (void *, uInt nitems, uInt size);
+extern void _Jv_ZFree (void *, void *addr);
+
+
+
+jint
+java::util::zip::Deflater::deflate (jbyteArray buf, jint off, jint len)
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ if (! buf)
+ throw new java::lang::NullPointerException;
+ if (off < 0 || len < 0 || off + len > buf->length)
+ throw new java::lang::ArrayIndexOutOfBoundsException;
+
+ if (len == 0)
+ return 0;
+
+ s->next_out = (Bytef *) (elements (buf) + off);
+ s->avail_out = len;
+
+ switch (::deflate (s, flush_flag))
+ {
+ case Z_STREAM_END:
+ is_finished = true;
+ if (s->avail_out == (unsigned int) len)
+ return -1;
+ break;
+
+ case Z_STREAM_ERROR:
+ case Z_BUF_ERROR:
+ // FIXME?
+ throw new java::lang::InternalError;
+ break;
+
+ case Z_OK:
+ break;
+ }
+
+ return len - s->avail_out;
+}
+
+void
+java::util::zip::Deflater::end ()
+{
+ JvSynchronize sync (this);
+ // Just ignore errors.
+ deflateEnd ((z_streamp) zstream);
+ _Jv_Free (zstream);
+ zstream = NULL;
+}
+
+void
+java::util::zip::Deflater::finish ()
+{
+ JvSynchronize sync (this);
+ flush_flag = Z_FINISH;
+}
+
+jint
+java::util::zip::Deflater::getAdler ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->adler;
+}
+
+jlong
+java::util::zip::Deflater::getBytesRead ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->total_in;
+}
+
+jlong
+java::util::zip::Deflater::getBytesWritten ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->total_out;
+}
+
+jboolean
+java::util::zip::Deflater::needsInput ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->avail_in == 0;
+}
+
+void
+java::util::zip::Deflater::reset ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ // Just ignore errors.
+ deflateReset (s);
+ s->avail_in = 0;
+ flush_flag = 0;
+ is_finished = false;
+}
+
+void
+java::util::zip::Deflater::setDictionary (jbyteArray buf, jint off, jint len)
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ if (! buf)
+ throw new java::lang::NullPointerException;
+ if (off < 0 || len < 0 || off + len > buf->length)
+ throw new java::lang::ArrayIndexOutOfBoundsException;
+
+ // Ignore errors.
+ deflateSetDictionary (s, (Bytef *) (elements (buf) + off), len);
+}
+
+void
+java::util::zip::Deflater::setInput (jbyteArray buf, jint off, jint len)
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ if (! buf)
+ throw new java::lang::NullPointerException;
+ if (off < 0 || len < 0 || off + len > buf->length)
+ throw new java::lang::ArrayIndexOutOfBoundsException;
+
+ s->next_in = (Bytef *) (elements (buf) + off);
+ s->avail_in = len;
+}
+
+void
+java::util::zip::Deflater::update ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ int strat = Z_DEFAULT_STRATEGY;
+ switch (strategy)
+ {
+ case DEFAULT_STRATEGY:
+ strat = Z_DEFAULT_STRATEGY;
+ break;
+ case FILTERED:
+ strat = Z_FILTERED;
+ break;
+ case HUFFMAN_ONLY:
+ strat = Z_HUFFMAN_ONLY;
+ break;
+ default:
+ JvFail ("unexpected strategy");
+ }
+
+ // Ignore errors.
+ deflateParams (s, level, strat);
+}
+
+void
+java::util::zip::Deflater::init (jint level, jboolean no_header)
+{
+ z_stream_s *stream = (z_stream_s *) _Jv_Malloc (sizeof (z_stream_s));
+ stream->next_in = Z_NULL;
+ stream->avail_in = 0;
+ stream->zalloc = _Jv_ZMalloc;
+ stream->zfree = _Jv_ZFree;
+ stream->opaque = NULL;
+
+ // Handle NO_HEADER using undocumented zlib feature.
+ int wbits = MAX_WBITS;
+ if (no_header)
+ wbits = - wbits;
+
+#define DEFAULT_MEM_LEVEL 8
+ if (deflateInit2 (stream, level, Z_DEFLATED, wbits,
+ DEFAULT_MEM_LEVEL, Z_DEFAULT_STRATEGY) != Z_OK)
+ {
+ jstring msg = NULL;
+ if (stream->msg != NULL)
+ msg = JvNewStringLatin1 (stream->msg);
+ throw new java::lang::InternalError (msg);
+ }
+
+ zstream = reinterpret_cast<gnu::gcj::RawData *> (stream);
+ is_finished = false;
+ flush_flag = 0;
+}
diff --git a/gcc-4.8/libjava/java/util/zip/natInflater.cc b/gcc-4.8/libjava/java/util/zip/natInflater.cc
new file mode 100644
index 000000000..69de6c335
--- /dev/null
+++ b/gcc-4.8/libjava/java/util/zip/natInflater.cc
@@ -0,0 +1,214 @@
+// natInflater.cc - Implementation of Inflater native methods.
+
+/* Copyright (C) 1999, 2002 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+// Written by Tom Tromey <tromey@cygnus.com>
+
+#include <config.h>
+
+#include <zlib.h>
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/util/zip/Inflater.h>
+#include <java/util/zip/DataFormatException.h>
+
+#include <java/lang/InternalError.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+#include <java/lang/OutOfMemoryError.h>
+
+
+
+// A couple of helper functions used to interface with zlib's
+// allocation.
+
+void *
+_Jv_ZMalloc (void *, uInt nitems, uInt size)
+{
+ return _Jv_Malloc (nitems * size);
+}
+
+void
+_Jv_ZFree (void *, void *addr)
+{
+ _Jv_Free (addr);
+}
+
+
+
+void
+java::util::zip::Inflater::end ()
+{
+ JvSynchronize sync (this);
+ // Just ignore errors.
+ inflateEnd ((z_streamp) zstream);
+ _Jv_Free (zstream);
+ zstream = NULL;
+}
+
+jint
+java::util::zip::Inflater::getAdler ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->adler;
+}
+
+jint
+java::util::zip::Inflater::getRemaining ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->avail_in;
+}
+
+jint
+java::util::zip::Inflater::getTotalIn ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->total_in;
+}
+
+jint
+java::util::zip::Inflater::getTotalOut ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ return s->total_out;
+}
+
+jint
+java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len)
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ if (! buf)
+ throw new java::lang::NullPointerException;
+ if (off < 0 || len < 0 || off + len > buf->length)
+ throw new java::lang::ArrayIndexOutOfBoundsException;
+
+ if (len == 0)
+ return 0;
+
+ s->next_out = (Bytef *) (elements (buf) + off);
+ s->avail_out = len;
+
+ switch (::inflate (s, Z_SYNC_FLUSH))
+ {
+ case Z_BUF_ERROR:
+ /* Using the no_header option, zlib requires an extra padding byte at the
+ end of the stream in order to successfully complete decompression (see
+ zlib/contrib/minizip/unzip.c). We don't do this, so can end up with a
+ Z_BUF_ERROR at the end of a stream when zlib has completed inflation
+ and there's no more input. Thats not a problem. */
+ if (s->avail_in != 0)
+ throw new java::lang::InternalError;
+ // Fall through.
+
+ case Z_STREAM_END:
+ is_finished = true;
+ if (s->avail_out == (unsigned int) len)
+ return -1;
+ break;
+
+ case Z_NEED_DICT:
+ dict_needed = true;
+ break;
+
+ case Z_DATA_ERROR:
+ throw new java::util::zip::DataFormatException
+ (s->msg == NULL ? NULL : JvNewStringLatin1 (s->msg));
+ break;
+
+ case Z_MEM_ERROR:
+ throw new java::lang::OutOfMemoryError;
+ break;
+
+ case Z_OK:
+ break;
+ }
+
+ return len - s->avail_out;
+}
+
+void
+java::util::zip::Inflater::reset ()
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+ // Just ignore errors.
+ inflateReset (s);
+ s->avail_in = 0;
+ is_finished = false;
+ dict_needed = false;
+}
+
+void
+java::util::zip::Inflater::setDictionary (jbyteArray buf, jint off, jint len)
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ if (! buf)
+ throw new java::lang::NullPointerException;
+ if (off < 0 || len < 0 || off + len > buf->length)
+ throw new java::lang::ArrayIndexOutOfBoundsException;
+
+ // Ignore errors.
+ inflateSetDictionary (s, (Bytef *) (elements (buf) + off), len);
+ dict_needed = false;
+}
+
+void
+java::util::zip::Inflater::setInput (jbyteArray buf, jint off, jint len)
+{
+ JvSynchronize sync (this);
+ z_streamp s = (z_streamp) zstream;
+
+ if (! buf)
+ throw new java::lang::NullPointerException;
+ if (off < 0 || len < 0 || off + len > buf->length)
+ throw new java::lang::ArrayIndexOutOfBoundsException;
+
+ s->next_in = (Bytef *) (elements (buf) + off);
+ s->avail_in = len;
+}
+
+void
+java::util::zip::Inflater::init (jboolean no_header)
+{
+ z_stream_s *stream = (z_stream_s *) _Jv_Malloc (sizeof (z_stream_s));
+ stream->next_in = Z_NULL;
+ stream->avail_in = 0;
+ stream->zalloc = _Jv_ZMalloc;
+ stream->zfree = _Jv_ZFree;
+ stream->opaque = NULL;
+
+ // Handle NO_HEADER using undocumented zlib feature.
+ int wbits = MAX_WBITS;
+ if (no_header)
+ wbits = - wbits;
+
+ if (inflateInit2 (stream, wbits) != Z_OK)
+ {
+ jstring msg = NULL;
+ if (stream->msg != NULL)
+ msg = JvNewStringLatin1 (stream->msg);
+ throw new java::lang::InternalError (msg);
+ }
+
+ zstream = reinterpret_cast<gnu::gcj::RawData *> (stream);
+ is_finished = false;
+ dict_needed = false;
+}