diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /libjava/java | |
download | cbb-gcc-4.6.4-15d2061ac0796199866debe9ac87130894b0cdd3.tar.bz2 cbb-gcc-4.6.4-15d2061ac0796199866debe9ac87130894b0cdd3.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'libjava/java')
1810 files changed, 125533 insertions, 0 deletions
diff --git a/libjava/java/applet/Applet$AccessibleApplet.h b/libjava/java/applet/Applet$AccessibleApplet.h new file mode 100644 index 000000000..6819ecb1d --- /dev/null +++ b/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/libjava/java/applet/Applet$URLAudioClip.h b/libjava/java/applet/Applet$URLAudioClip.h new file mode 100644 index 000000000..67449e40a --- /dev/null +++ b/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/libjava/java/applet/Applet.h b/libjava/java/applet/Applet.h new file mode 100644 index 000000000..8d8417374 --- /dev/null +++ b/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/libjava/java/applet/AppletContext.h b/libjava/java/applet/AppletContext.h new file mode 100644 index 000000000..a69369fe7 --- /dev/null +++ b/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/libjava/java/applet/AppletStub.h b/libjava/java/applet/AppletStub.h new file mode 100644 index 000000000..085746547 --- /dev/null +++ b/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/libjava/java/applet/AudioClip.h b/libjava/java/applet/AudioClip.h new file mode 100644 index 000000000..2ee517d4d --- /dev/null +++ b/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/libjava/java/awt/AWTError.h b/libjava/java/awt/AWTError.h new file mode 100644 index 000000000..bcfbd634c --- /dev/null +++ b/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/libjava/java/awt/AWTEvent.h b/libjava/java/awt/AWTEvent.h new file mode 100644 index 000000000..94d090a9f --- /dev/null +++ b/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/libjava/java/awt/AWTEventMulticaster.h b/libjava/java/awt/AWTEventMulticaster.h new file mode 100644 index 000000000..cb5d0243a --- /dev/null +++ b/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/libjava/java/awt/AWTException.h b/libjava/java/awt/AWTException.h new file mode 100644 index 000000000..fdda1bde2 --- /dev/null +++ b/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/libjava/java/awt/AWTKeyStroke$1.h b/libjava/java/awt/AWTKeyStroke$1.h new file mode 100644 index 000000000..15805dad8 --- /dev/null +++ b/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/libjava/java/awt/AWTKeyStroke$2.h b/libjava/java/awt/AWTKeyStroke$2.h new file mode 100644 index 000000000..0117323aa --- /dev/null +++ b/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/libjava/java/awt/AWTKeyStroke$3.h b/libjava/java/awt/AWTKeyStroke$3.h new file mode 100644 index 000000000..94238cef1 --- /dev/null +++ b/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/libjava/java/awt/AWTKeyStroke.h b/libjava/java/awt/AWTKeyStroke.h new file mode 100644 index 000000000..0b0032dd8 --- /dev/null +++ b/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/libjava/java/awt/AWTPermission.h b/libjava/java/awt/AWTPermission.h new file mode 100644 index 000000000..4936c3dad --- /dev/null +++ b/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/libjava/java/awt/ActiveEvent.h b/libjava/java/awt/ActiveEvent.h new file mode 100644 index 000000000..a2183cfe1 --- /dev/null +++ b/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/libjava/java/awt/Adjustable.h b/libjava/java/awt/Adjustable.h new file mode 100644 index 000000000..9460f529a --- /dev/null +++ b/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/libjava/java/awt/AlphaComposite$1.h b/libjava/java/awt/AlphaComposite$1.h new file mode 100644 index 000000000..1bc20fa28 --- /dev/null +++ b/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/libjava/java/awt/AlphaComposite.h b/libjava/java/awt/AlphaComposite.h new file mode 100644 index 000000000..2113fb86d --- /dev/null +++ b/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/libjava/java/awt/AttributeValue.h b/libjava/java/awt/AttributeValue.h new file mode 100644 index 000000000..36294940b --- /dev/null +++ b/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/libjava/java/awt/BasicStroke.h b/libjava/java/awt/BasicStroke.h new file mode 100644 index 000000000..c3a923435 --- /dev/null +++ b/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/libjava/java/awt/BorderLayout.h b/libjava/java/awt/BorderLayout.h new file mode 100644 index 000000000..f78e97164 --- /dev/null +++ b/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/libjava/java/awt/BufferCapabilities$FlipContents.h b/libjava/java/awt/BufferCapabilities$FlipContents.h new file mode 100644 index 000000000..b5f45e4d0 --- /dev/null +++ b/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/libjava/java/awt/BufferCapabilities.h b/libjava/java/awt/BufferCapabilities.h new file mode 100644 index 000000000..bda4b752c --- /dev/null +++ b/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/libjava/java/awt/Button$AccessibleAWTButton.h b/libjava/java/awt/Button$AccessibleAWTButton.h new file mode 100644 index 000000000..be1dc9a11 --- /dev/null +++ b/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/libjava/java/awt/Button.h b/libjava/java/awt/Button.h new file mode 100644 index 000000000..19636de83 --- /dev/null +++ b/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/libjava/java/awt/Canvas$AccessibleAWTCanvas.h b/libjava/java/awt/Canvas$AccessibleAWTCanvas.h new file mode 100644 index 000000000..f4f6a3e37 --- /dev/null +++ b/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/libjava/java/awt/Canvas$CanvasBltBufferStrategy.h b/libjava/java/awt/Canvas$CanvasBltBufferStrategy.h new file mode 100644 index 000000000..f47ae7068 --- /dev/null +++ b/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/libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h b/libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h new file mode 100644 index 000000000..0af653f2c --- /dev/null +++ b/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/libjava/java/awt/Canvas.h b/libjava/java/awt/Canvas.h new file mode 100644 index 000000000..d7e031018 --- /dev/null +++ b/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/libjava/java/awt/CardLayout.h b/libjava/java/awt/CardLayout.h new file mode 100644 index 000000000..9affd84fb --- /dev/null +++ b/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/libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h b/libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h new file mode 100644 index 000000000..025c42a37 --- /dev/null +++ b/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/libjava/java/awt/Checkbox.h b/libjava/java/awt/Checkbox.h new file mode 100644 index 000000000..614f599f6 --- /dev/null +++ b/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/libjava/java/awt/CheckboxGroup.h b/libjava/java/awt/CheckboxGroup.h new file mode 100644 index 000000000..80a4557b3 --- /dev/null +++ b/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/libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h b/libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h new file mode 100644 index 000000000..c9111835f --- /dev/null +++ b/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/libjava/java/awt/CheckboxMenuItem.h b/libjava/java/awt/CheckboxMenuItem.h new file mode 100644 index 000000000..52b7223cb --- /dev/null +++ b/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/libjava/java/awt/Choice$AccessibleAWTChoice.h b/libjava/java/awt/Choice$AccessibleAWTChoice.h new file mode 100644 index 000000000..61b2d2377 --- /dev/null +++ b/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/libjava/java/awt/Choice.h b/libjava/java/awt/Choice.h new file mode 100644 index 000000000..fc0261391 --- /dev/null +++ b/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/libjava/java/awt/Color.h b/libjava/java/awt/Color.h new file mode 100644 index 000000000..a1bbaff49 --- /dev/null +++ b/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/libjava/java/awt/ColorPaintContext$ColorRaster.h b/libjava/java/awt/ColorPaintContext$ColorRaster.h new file mode 100644 index 000000000..d116f81c9 --- /dev/null +++ b/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/libjava/java/awt/ColorPaintContext.h b/libjava/java/awt/ColorPaintContext.h new file mode 100644 index 000000000..e96fc43ff --- /dev/null +++ b/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/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h b/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h new file mode 100644 index 000000000..4dda12238 --- /dev/null +++ b/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/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h b/libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h new file mode 100644 index 000000000..429c49aa7 --- /dev/null +++ b/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/libjava/java/awt/Component$AccessibleAWTComponent.h b/libjava/java/awt/Component$AccessibleAWTComponent.h new file mode 100644 index 000000000..c46ecf76c --- /dev/null +++ b/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/libjava/java/awt/Component$BltBufferStrategy.h b/libjava/java/awt/Component$BltBufferStrategy.h new file mode 100644 index 000000000..ca93face1 --- /dev/null +++ b/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/libjava/java/awt/Component$FlipBufferStrategy.h b/libjava/java/awt/Component$FlipBufferStrategy.h new file mode 100644 index 000000000..654cfd29a --- /dev/null +++ b/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/libjava/java/awt/Component$HeavyweightInLightweightListener.h b/libjava/java/awt/Component$HeavyweightInLightweightListener.h new file mode 100644 index 000000000..571b22dfa --- /dev/null +++ b/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/libjava/java/awt/Component.h b/libjava/java/awt/Component.h new file mode 100644 index 000000000..23edfa77e --- /dev/null +++ b/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/libjava/java/awt/ComponentOrientation.h b/libjava/java/awt/ComponentOrientation.h new file mode 100644 index 000000000..fe3ef9c17 --- /dev/null +++ b/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/libjava/java/awt/Composite.h b/libjava/java/awt/Composite.h new file mode 100644 index 000000000..1eed4bcae --- /dev/null +++ b/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/libjava/java/awt/CompositeContext.h b/libjava/java/awt/CompositeContext.h new file mode 100644 index 000000000..83195ab8b --- /dev/null +++ b/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/libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h b/libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h new file mode 100644 index 000000000..ae8aa684f --- /dev/null +++ b/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/libjava/java/awt/Container$AccessibleAWTContainer.h b/libjava/java/awt/Container$AccessibleAWTContainer.h new file mode 100644 index 000000000..fe132635d --- /dev/null +++ b/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/libjava/java/awt/Container$GfxPaintAllVisitor.h b/libjava/java/awt/Container$GfxPaintAllVisitor.h new file mode 100644 index 000000000..cd3e68e89 --- /dev/null +++ b/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/libjava/java/awt/Container$GfxPaintVisitor.h b/libjava/java/awt/Container$GfxPaintVisitor.h new file mode 100644 index 000000000..c75ddd1a3 --- /dev/null +++ b/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/libjava/java/awt/Container$GfxPrintAllVisitor.h b/libjava/java/awt/Container$GfxPrintAllVisitor.h new file mode 100644 index 000000000..acc4a8ba4 --- /dev/null +++ b/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/libjava/java/awt/Container$GfxPrintVisitor.h b/libjava/java/awt/Container$GfxPrintVisitor.h new file mode 100644 index 000000000..557530ba8 --- /dev/null +++ b/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/libjava/java/awt/Container$GfxVisitor.h b/libjava/java/awt/Container$GfxVisitor.h new file mode 100644 index 000000000..97322e8d5 --- /dev/null +++ b/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/libjava/java/awt/Container.h b/libjava/java/awt/Container.h new file mode 100644 index 000000000..3ea162aae --- /dev/null +++ b/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/libjava/java/awt/ContainerOrderFocusTraversalPolicy.h b/libjava/java/awt/ContainerOrderFocusTraversalPolicy.h new file mode 100644 index 000000000..8f0e89f9b --- /dev/null +++ b/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/libjava/java/awt/Cursor.h b/libjava/java/awt/Cursor.h new file mode 100644 index 000000000..3d50e6345 --- /dev/null +++ b/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/libjava/java/awt/DefaultFocusTraversalPolicy.h b/libjava/java/awt/DefaultFocusTraversalPolicy.h new file mode 100644 index 000000000..d6f22987d --- /dev/null +++ b/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/libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h b/libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h new file mode 100644 index 000000000..7061d499e --- /dev/null +++ b/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/libjava/java/awt/DefaultKeyboardFocusManager.h b/libjava/java/awt/DefaultKeyboardFocusManager.h new file mode 100644 index 000000000..ce9e4467c --- /dev/null +++ b/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/libjava/java/awt/Desktop$Action.h b/libjava/java/awt/Desktop$Action.h new file mode 100644 index 000000000..f862b4dc0 --- /dev/null +++ b/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/libjava/java/awt/Desktop.h b/libjava/java/awt/Desktop.h new file mode 100644 index 000000000..b50a063ff --- /dev/null +++ b/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/libjava/java/awt/Dialog$AccessibleAWTDialog.h b/libjava/java/awt/Dialog$AccessibleAWTDialog.h new file mode 100644 index 000000000..b8bf577db --- /dev/null +++ b/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/libjava/java/awt/Dialog$ModalExclusionType.h b/libjava/java/awt/Dialog$ModalExclusionType.h new file mode 100644 index 000000000..a47a2b4ae --- /dev/null +++ b/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/libjava/java/awt/Dialog$ModalityType.h b/libjava/java/awt/Dialog$ModalityType.h new file mode 100644 index 000000000..e7a3b736e --- /dev/null +++ b/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/libjava/java/awt/Dialog.h b/libjava/java/awt/Dialog.h new file mode 100644 index 000000000..b1d339157 --- /dev/null +++ b/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/libjava/java/awt/Dimension.h b/libjava/java/awt/Dimension.h new file mode 100644 index 000000000..7722cabc5 --- /dev/null +++ b/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/libjava/java/awt/DisplayMode.h b/libjava/java/awt/DisplayMode.h new file mode 100644 index 000000000..26561ca0c --- /dev/null +++ b/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/libjava/java/awt/Event.h b/libjava/java/awt/Event.h new file mode 100644 index 000000000..a0543818d --- /dev/null +++ b/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/libjava/java/awt/EventDispatchThread.h b/libjava/java/awt/EventDispatchThread.h new file mode 100644 index 000000000..a094bdc8a --- /dev/null +++ b/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/libjava/java/awt/EventQueue$Queue.h b/libjava/java/awt/EventQueue$Queue.h new file mode 100644 index 000000000..6504a9661 --- /dev/null +++ b/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/libjava/java/awt/EventQueue.h b/libjava/java/awt/EventQueue.h new file mode 100644 index 000000000..71da1550e --- /dev/null +++ b/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/libjava/java/awt/FileDialog.h b/libjava/java/awt/FileDialog.h new file mode 100644 index 000000000..b64300df0 --- /dev/null +++ b/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/libjava/java/awt/FlowLayout.h b/libjava/java/awt/FlowLayout.h new file mode 100644 index 000000000..202fe18bb --- /dev/null +++ b/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/libjava/java/awt/FocusTraversalPolicy.h b/libjava/java/awt/FocusTraversalPolicy.h new file mode 100644 index 000000000..f4add235f --- /dev/null +++ b/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/libjava/java/awt/Font.h b/libjava/java/awt/Font.h new file mode 100644 index 000000000..46f81a1b8 --- /dev/null +++ b/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/libjava/java/awt/FontFormatException.h b/libjava/java/awt/FontFormatException.h new file mode 100644 index 000000000..9d9ffec9d --- /dev/null +++ b/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/libjava/java/awt/FontMetrics.h b/libjava/java/awt/FontMetrics.h new file mode 100644 index 000000000..67d8b6b4f --- /dev/null +++ b/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/libjava/java/awt/Frame$AccessibleAWTFrame.h b/libjava/java/awt/Frame$AccessibleAWTFrame.h new file mode 100644 index 000000000..62ed120a9 --- /dev/null +++ b/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/libjava/java/awt/Frame.h b/libjava/java/awt/Frame.h new file mode 100644 index 000000000..5b1586631 --- /dev/null +++ b/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/libjava/java/awt/GradientPaint.h b/libjava/java/awt/GradientPaint.h new file mode 100644 index 000000000..075e139d6 --- /dev/null +++ b/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/libjava/java/awt/Graphics.h b/libjava/java/awt/Graphics.h new file mode 100644 index 000000000..504b30ec5 --- /dev/null +++ b/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/libjava/java/awt/Graphics2D.h b/libjava/java/awt/Graphics2D.h new file mode 100644 index 000000000..9815434cf --- /dev/null +++ b/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/libjava/java/awt/GraphicsConfigTemplate.h b/libjava/java/awt/GraphicsConfigTemplate.h new file mode 100644 index 000000000..53bbece33 --- /dev/null +++ b/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/libjava/java/awt/GraphicsConfiguration.h b/libjava/java/awt/GraphicsConfiguration.h new file mode 100644 index 000000000..603577ae4 --- /dev/null +++ b/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/libjava/java/awt/GraphicsDevice.h b/libjava/java/awt/GraphicsDevice.h new file mode 100644 index 000000000..a10d93d86 --- /dev/null +++ b/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/libjava/java/awt/GraphicsEnvironment.h b/libjava/java/awt/GraphicsEnvironment.h new file mode 100644 index 000000000..398e295bf --- /dev/null +++ b/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/libjava/java/awt/GridBagConstraints.h b/libjava/java/awt/GridBagConstraints.h new file mode 100644 index 000000000..95d359e19 --- /dev/null +++ b/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/libjava/java/awt/GridBagLayout.h b/libjava/java/awt/GridBagLayout.h new file mode 100644 index 000000000..b553aff4e --- /dev/null +++ b/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/libjava/java/awt/GridBagLayoutInfo.h b/libjava/java/awt/GridBagLayoutInfo.h new file mode 100644 index 000000000..b83497ff9 --- /dev/null +++ b/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/libjava/java/awt/GridLayout.h b/libjava/java/awt/GridLayout.h new file mode 100644 index 000000000..84b01a27c --- /dev/null +++ b/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/libjava/java/awt/HeadlessException.h b/libjava/java/awt/HeadlessException.h new file mode 100644 index 000000000..f57ea63fb --- /dev/null +++ b/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/libjava/java/awt/IllegalComponentStateException.h b/libjava/java/awt/IllegalComponentStateException.h new file mode 100644 index 000000000..9743e59f0 --- /dev/null +++ b/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/libjava/java/awt/Image.h b/libjava/java/awt/Image.h new file mode 100644 index 000000000..d49664a22 --- /dev/null +++ b/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/libjava/java/awt/ImageCapabilities.h b/libjava/java/awt/ImageCapabilities.h new file mode 100644 index 000000000..8a245f390 --- /dev/null +++ b/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/libjava/java/awt/Insets.h b/libjava/java/awt/Insets.h new file mode 100644 index 000000000..14d70fed5 --- /dev/null +++ b/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/libjava/java/awt/ItemSelectable.h b/libjava/java/awt/ItemSelectable.h new file mode 100644 index 000000000..3ff72d344 --- /dev/null +++ b/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/libjava/java/awt/JobAttributes$DefaultSelectionType.h b/libjava/java/awt/JobAttributes$DefaultSelectionType.h new file mode 100644 index 000000000..34779779d --- /dev/null +++ b/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/libjava/java/awt/JobAttributes$DestinationType.h b/libjava/java/awt/JobAttributes$DestinationType.h new file mode 100644 index 000000000..6c15bd59d --- /dev/null +++ b/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/libjava/java/awt/JobAttributes$DialogType.h b/libjava/java/awt/JobAttributes$DialogType.h new file mode 100644 index 000000000..77ae7916d --- /dev/null +++ b/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/libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h b/libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h new file mode 100644 index 000000000..a4b13448f --- /dev/null +++ b/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/libjava/java/awt/JobAttributes$SidesType.h b/libjava/java/awt/JobAttributes$SidesType.h new file mode 100644 index 000000000..349c3c077 --- /dev/null +++ b/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/libjava/java/awt/JobAttributes.h b/libjava/java/awt/JobAttributes.h new file mode 100644 index 000000000..400bbcfc5 --- /dev/null +++ b/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/libjava/java/awt/KeyEventDispatcher.h b/libjava/java/awt/KeyEventDispatcher.h new file mode 100644 index 000000000..fdb3195d1 --- /dev/null +++ b/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/libjava/java/awt/KeyEventPostProcessor.h b/libjava/java/awt/KeyEventPostProcessor.h new file mode 100644 index 000000000..806e1450b --- /dev/null +++ b/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/libjava/java/awt/KeyboardFocusManager.h b/libjava/java/awt/KeyboardFocusManager.h new file mode 100644 index 000000000..9fd045c46 --- /dev/null +++ b/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/libjava/java/awt/Label$AccessibleAWTLabel.h b/libjava/java/awt/Label$AccessibleAWTLabel.h new file mode 100644 index 000000000..7301841bc --- /dev/null +++ b/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/libjava/java/awt/Label.h b/libjava/java/awt/Label.h new file mode 100644 index 000000000..d3151604d --- /dev/null +++ b/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/libjava/java/awt/LayoutManager.h b/libjava/java/awt/LayoutManager.h new file mode 100644 index 000000000..464871c04 --- /dev/null +++ b/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/libjava/java/awt/LayoutManager2.h b/libjava/java/awt/LayoutManager2.h new file mode 100644 index 000000000..7c8331bd6 --- /dev/null +++ b/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/libjava/java/awt/LightweightDispatcher.h b/libjava/java/awt/LightweightDispatcher.h new file mode 100644 index 000000000..4fee8f8b4 --- /dev/null +++ b/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/libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h b/libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h new file mode 100644 index 000000000..7014fd930 --- /dev/null +++ b/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/libjava/java/awt/List$AccessibleAWTList.h b/libjava/java/awt/List$AccessibleAWTList.h new file mode 100644 index 000000000..ca0dcaa5f --- /dev/null +++ b/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/libjava/java/awt/List.h b/libjava/java/awt/List.h new file mode 100644 index 000000000..ba11b18d8 --- /dev/null +++ b/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/libjava/java/awt/MediaTracker$MediaEntry.h b/libjava/java/awt/MediaTracker$MediaEntry.h new file mode 100644 index 000000000..a21715b59 --- /dev/null +++ b/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/libjava/java/awt/MediaTracker.h b/libjava/java/awt/MediaTracker.h new file mode 100644 index 000000000..bc7286863 --- /dev/null +++ b/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/libjava/java/awt/Menu$AccessibleAWTMenu.h b/libjava/java/awt/Menu$AccessibleAWTMenu.h new file mode 100644 index 000000000..73c33a7b7 --- /dev/null +++ b/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/libjava/java/awt/Menu.h b/libjava/java/awt/Menu.h new file mode 100644 index 000000000..7d2ab26d2 --- /dev/null +++ b/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/libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h b/libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h new file mode 100644 index 000000000..2f4050059 --- /dev/null +++ b/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/libjava/java/awt/MenuBar.h b/libjava/java/awt/MenuBar.h new file mode 100644 index 000000000..f9eded3de --- /dev/null +++ b/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/libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h b/libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h new file mode 100644 index 000000000..05d724b70 --- /dev/null +++ b/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/libjava/java/awt/MenuComponent.h b/libjava/java/awt/MenuComponent.h new file mode 100644 index 000000000..d47e71853 --- /dev/null +++ b/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/libjava/java/awt/MenuContainer.h b/libjava/java/awt/MenuContainer.h new file mode 100644 index 000000000..3f2a1cf91 --- /dev/null +++ b/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/libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h b/libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h new file mode 100644 index 000000000..5bc263866 --- /dev/null +++ b/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/libjava/java/awt/MenuItem.h b/libjava/java/awt/MenuItem.h new file mode 100644 index 000000000..2b57ebf29 --- /dev/null +++ b/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/libjava/java/awt/MenuShortcut.h b/libjava/java/awt/MenuShortcut.h new file mode 100644 index 000000000..89ae7a873 --- /dev/null +++ b/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/libjava/java/awt/MouseInfo.h b/libjava/java/awt/MouseInfo.h new file mode 100644 index 000000000..20414cb31 --- /dev/null +++ b/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/libjava/java/awt/PageAttributes$ColorType.h b/libjava/java/awt/PageAttributes$ColorType.h new file mode 100644 index 000000000..ae67841f6 --- /dev/null +++ b/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/libjava/java/awt/PageAttributes$MediaType.h b/libjava/java/awt/PageAttributes$MediaType.h new file mode 100644 index 000000000..c085d0aa7 --- /dev/null +++ b/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/libjava/java/awt/PageAttributes$OrientationRequestedType.h b/libjava/java/awt/PageAttributes$OrientationRequestedType.h new file mode 100644 index 000000000..79e1602d3 --- /dev/null +++ b/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/libjava/java/awt/PageAttributes$OriginType.h b/libjava/java/awt/PageAttributes$OriginType.h new file mode 100644 index 000000000..16e04f866 --- /dev/null +++ b/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/libjava/java/awt/PageAttributes$PrintQualityType.h b/libjava/java/awt/PageAttributes$PrintQualityType.h new file mode 100644 index 000000000..3f2b68cab --- /dev/null +++ b/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/libjava/java/awt/PageAttributes.h b/libjava/java/awt/PageAttributes.h new file mode 100644 index 000000000..7ed2f7a42 --- /dev/null +++ b/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/libjava/java/awt/Paint.h b/libjava/java/awt/Paint.h new file mode 100644 index 000000000..85f7c9fce --- /dev/null +++ b/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/libjava/java/awt/PaintContext.h b/libjava/java/awt/PaintContext.h new file mode 100644 index 000000000..7658a30e4 --- /dev/null +++ b/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/libjava/java/awt/Panel$AccessibleAWTPanel.h b/libjava/java/awt/Panel$AccessibleAWTPanel.h new file mode 100644 index 000000000..386cf0a2b --- /dev/null +++ b/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/libjava/java/awt/Panel.h b/libjava/java/awt/Panel.h new file mode 100644 index 000000000..23a788e4b --- /dev/null +++ b/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/libjava/java/awt/Point.h b/libjava/java/awt/Point.h new file mode 100644 index 000000000..a161a00cd --- /dev/null +++ b/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/libjava/java/awt/PointerInfo.h b/libjava/java/awt/PointerInfo.h new file mode 100644 index 000000000..fc149bbf0 --- /dev/null +++ b/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/libjava/java/awt/Polygon$1.h b/libjava/java/awt/Polygon$1.h new file mode 100644 index 000000000..1073b6932 --- /dev/null +++ b/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/libjava/java/awt/Polygon.h b/libjava/java/awt/Polygon.h new file mode 100644 index 000000000..e692f132e --- /dev/null +++ b/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/libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h b/libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h new file mode 100644 index 000000000..f28ed4cac --- /dev/null +++ b/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/libjava/java/awt/PopupMenu.h b/libjava/java/awt/PopupMenu.h new file mode 100644 index 000000000..855809bb0 --- /dev/null +++ b/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/libjava/java/awt/PrintGraphics.h b/libjava/java/awt/PrintGraphics.h new file mode 100644 index 000000000..7027cb6b7 --- /dev/null +++ b/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/libjava/java/awt/PrintJob.h b/libjava/java/awt/PrintJob.h new file mode 100644 index 000000000..66c98e3e3 --- /dev/null +++ b/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/libjava/java/awt/Rectangle.h b/libjava/java/awt/Rectangle.h new file mode 100644 index 000000000..6a098adb5 --- /dev/null +++ b/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/libjava/java/awt/RenderingHints$Key.h b/libjava/java/awt/RenderingHints$Key.h new file mode 100644 index 000000000..7f4c9724c --- /dev/null +++ b/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/libjava/java/awt/RenderingHints$KeyImpl.h b/libjava/java/awt/RenderingHints$KeyImpl.h new file mode 100644 index 000000000..d81b7b9c1 --- /dev/null +++ b/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/libjava/java/awt/RenderingHints.h b/libjava/java/awt/RenderingHints.h new file mode 100644 index 000000000..6ceee1853 --- /dev/null +++ b/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/libjava/java/awt/Robot$1.h b/libjava/java/awt/Robot$1.h new file mode 100644 index 000000000..2fe884ab7 --- /dev/null +++ b/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/libjava/java/awt/Robot.h b/libjava/java/awt/Robot.h new file mode 100644 index 000000000..d283f7e97 --- /dev/null +++ b/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/libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h b/libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h new file mode 100644 index 000000000..dd103cde3 --- /dev/null +++ b/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/libjava/java/awt/ScrollPane.h b/libjava/java/awt/ScrollPane.h new file mode 100644 index 000000000..30110cf7e --- /dev/null +++ b/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/libjava/java/awt/ScrollPaneAdjustable.h b/libjava/java/awt/ScrollPaneAdjustable.h new file mode 100644 index 000000000..a07d48c0c --- /dev/null +++ b/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/libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h b/libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h new file mode 100644 index 000000000..1549a6a24 --- /dev/null +++ b/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/libjava/java/awt/Scrollbar.h b/libjava/java/awt/Scrollbar.h new file mode 100644 index 000000000..d13f504e9 --- /dev/null +++ b/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/libjava/java/awt/Shape.h b/libjava/java/awt/Shape.h new file mode 100644 index 000000000..facef7503 --- /dev/null +++ b/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/libjava/java/awt/Stroke.h b/libjava/java/awt/Stroke.h new file mode 100644 index 000000000..bb04e4886 --- /dev/null +++ b/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/libjava/java/awt/SystemColor.h b/libjava/java/awt/SystemColor.h new file mode 100644 index 000000000..5e561faca --- /dev/null +++ b/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/libjava/java/awt/TextArea$AccessibleAWTTextArea.h b/libjava/java/awt/TextArea$AccessibleAWTTextArea.h new file mode 100644 index 000000000..0803d6418 --- /dev/null +++ b/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/libjava/java/awt/TextArea.h b/libjava/java/awt/TextArea.h new file mode 100644 index 000000000..d1b0d66c8 --- /dev/null +++ b/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/libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h b/libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h new file mode 100644 index 000000000..94d0031a3 --- /dev/null +++ b/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/libjava/java/awt/TextComponent.h b/libjava/java/awt/TextComponent.h new file mode 100644 index 000000000..2b12f8b29 --- /dev/null +++ b/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/libjava/java/awt/TextField$AccessibleAWTTextField.h b/libjava/java/awt/TextField$AccessibleAWTTextField.h new file mode 100644 index 000000000..b49056a3f --- /dev/null +++ b/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/libjava/java/awt/TextField.h b/libjava/java/awt/TextField.h new file mode 100644 index 000000000..747fe3521 --- /dev/null +++ b/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/libjava/java/awt/TexturePaint.h b/libjava/java/awt/TexturePaint.h new file mode 100644 index 000000000..a6711ad6b --- /dev/null +++ b/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/libjava/java/awt/Toolkit$1.h b/libjava/java/awt/Toolkit$1.h new file mode 100644 index 000000000..2cf1986df --- /dev/null +++ b/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/libjava/java/awt/Toolkit$2.h b/libjava/java/awt/Toolkit$2.h new file mode 100644 index 000000000..f6e80d2e6 --- /dev/null +++ b/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/libjava/java/awt/Toolkit.h b/libjava/java/awt/Toolkit.h new file mode 100644 index 000000000..844ebe815 --- /dev/null +++ b/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/libjava/java/awt/Transparency.h b/libjava/java/awt/Transparency.h new file mode 100644 index 000000000..1304a4647 --- /dev/null +++ b/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/libjava/java/awt/Window$AccessibleAWTWindow.h b/libjava/java/awt/Window$AccessibleAWTWindow.h new file mode 100644 index 000000000..aa4d2ced1 --- /dev/null +++ b/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/libjava/java/awt/Window$WindowBltBufferStrategy.h b/libjava/java/awt/Window$WindowBltBufferStrategy.h new file mode 100644 index 000000000..eb29e0597 --- /dev/null +++ b/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/libjava/java/awt/Window$WindowFlipBufferStrategy.h b/libjava/java/awt/Window$WindowFlipBufferStrategy.h new file mode 100644 index 000000000..0fd395f3e --- /dev/null +++ b/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/libjava/java/awt/Window.h b/libjava/java/awt/Window.h new file mode 100644 index 000000000..c1c73992e --- /dev/null +++ b/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/libjava/java/awt/color/CMMException.h b/libjava/java/awt/color/CMMException.h new file mode 100644 index 000000000..b6ee5337a --- /dev/null +++ b/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/libjava/java/awt/color/ColorSpace.h b/libjava/java/awt/color/ColorSpace.h new file mode 100644 index 000000000..cb8ec13c3 --- /dev/null +++ b/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/libjava/java/awt/color/ICC_ColorSpace.h b/libjava/java/awt/color/ICC_ColorSpace.h new file mode 100644 index 000000000..6dd211791 --- /dev/null +++ b/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/libjava/java/awt/color/ICC_Profile.h b/libjava/java/awt/color/ICC_Profile.h new file mode 100644 index 000000000..d6a406e03 --- /dev/null +++ b/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/libjava/java/awt/color/ICC_ProfileGray.h b/libjava/java/awt/color/ICC_ProfileGray.h new file mode 100644 index 000000000..9ebeef8de --- /dev/null +++ b/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/libjava/java/awt/color/ICC_ProfileRGB.h b/libjava/java/awt/color/ICC_ProfileRGB.h new file mode 100644 index 000000000..7520d8af6 --- /dev/null +++ b/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/libjava/java/awt/color/ProfileDataException.h b/libjava/java/awt/color/ProfileDataException.h new file mode 100644 index 000000000..593bf1326 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/Clipboard.h b/libjava/java/awt/datatransfer/Clipboard.h new file mode 100644 index 000000000..5ae0769e1 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/ClipboardOwner.h b/libjava/java/awt/datatransfer/ClipboardOwner.h new file mode 100644 index 000000000..d20a514b3 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/DataFlavor.h b/libjava/java/awt/datatransfer/DataFlavor.h new file mode 100644 index 000000000..3a94cabef --- /dev/null +++ b/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/libjava/java/awt/datatransfer/FlavorEvent.h b/libjava/java/awt/datatransfer/FlavorEvent.h new file mode 100644 index 000000000..00cfae1c0 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/FlavorListener.h b/libjava/java/awt/datatransfer/FlavorListener.h new file mode 100644 index 000000000..0e23dbb78 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/FlavorMap.h b/libjava/java/awt/datatransfer/FlavorMap.h new file mode 100644 index 000000000..688576910 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/FlavorTable.h b/libjava/java/awt/datatransfer/FlavorTable.h new file mode 100644 index 000000000..cec940626 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/MimeType.h b/libjava/java/awt/datatransfer/MimeType.h new file mode 100644 index 000000000..9ccd153f7 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/MimeTypeParseException.h b/libjava/java/awt/datatransfer/MimeTypeParseException.h new file mode 100644 index 000000000..5ac3ff2d3 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/StringSelection.h b/libjava/java/awt/datatransfer/StringSelection.h new file mode 100644 index 000000000..09429bba1 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/SystemFlavorMap$1.h b/libjava/java/awt/datatransfer/SystemFlavorMap$1.h new file mode 100644 index 000000000..bfb3023aa --- /dev/null +++ b/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/libjava/java/awt/datatransfer/SystemFlavorMap.h b/libjava/java/awt/datatransfer/SystemFlavorMap.h new file mode 100644 index 000000000..de2495c8b --- /dev/null +++ b/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/libjava/java/awt/datatransfer/Transferable.h b/libjava/java/awt/datatransfer/Transferable.h new file mode 100644 index 000000000..0930f87d0 --- /dev/null +++ b/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/libjava/java/awt/datatransfer/UnsupportedFlavorException.h b/libjava/java/awt/datatransfer/UnsupportedFlavorException.h new file mode 100644 index 000000000..fffc2ace0 --- /dev/null +++ b/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/libjava/java/awt/dnd/Autoscroll.h b/libjava/java/awt/dnd/Autoscroll.h new file mode 100644 index 000000000..4ab4c6a5c --- /dev/null +++ b/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/libjava/java/awt/dnd/DnDConstants.h b/libjava/java/awt/dnd/DnDConstants.h new file mode 100644 index 000000000..a3cfb089f --- /dev/null +++ b/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/libjava/java/awt/dnd/DnDEventMulticaster.h b/libjava/java/awt/dnd/DnDEventMulticaster.h new file mode 100644 index 000000000..c70450f25 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragGestureEvent.h b/libjava/java/awt/dnd/DragGestureEvent.h new file mode 100644 index 000000000..7d34bc632 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragGestureListener.h b/libjava/java/awt/dnd/DragGestureListener.h new file mode 100644 index 000000000..044956739 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragGestureRecognizer.h b/libjava/java/awt/dnd/DragGestureRecognizer.h new file mode 100644 index 000000000..22e856d60 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSource.h b/libjava/java/awt/dnd/DragSource.h new file mode 100644 index 000000000..8f4246e1e --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceAdapter.h b/libjava/java/awt/dnd/DragSourceAdapter.h new file mode 100644 index 000000000..c3a4177e6 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceContext.h b/libjava/java/awt/dnd/DragSourceContext.h new file mode 100644 index 000000000..1e4646729 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceDragEvent.h b/libjava/java/awt/dnd/DragSourceDragEvent.h new file mode 100644 index 000000000..ec0c80eec --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceDropEvent.h b/libjava/java/awt/dnd/DragSourceDropEvent.h new file mode 100644 index 000000000..bc3341f02 --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceEvent.h b/libjava/java/awt/dnd/DragSourceEvent.h new file mode 100644 index 000000000..0d008a19c --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceListener.h b/libjava/java/awt/dnd/DragSourceListener.h new file mode 100644 index 000000000..fc845501a --- /dev/null +++ b/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/libjava/java/awt/dnd/DragSourceMotionListener.h b/libjava/java/awt/dnd/DragSourceMotionListener.h new file mode 100644 index 000000000..0db0603b2 --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h b/libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h new file mode 100644 index 000000000..cb72a909f --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTarget.h b/libjava/java/awt/dnd/DropTarget.h new file mode 100644 index 000000000..399889a95 --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetAdapter.h b/libjava/java/awt/dnd/DropTargetAdapter.h new file mode 100644 index 000000000..34f4f5b66 --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h b/libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h new file mode 100644 index 000000000..e670c079d --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetContext.h b/libjava/java/awt/dnd/DropTargetContext.h new file mode 100644 index 000000000..f6ea29be3 --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetDragEvent.h b/libjava/java/awt/dnd/DropTargetDragEvent.h new file mode 100644 index 000000000..d25da6004 --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetDropEvent.h b/libjava/java/awt/dnd/DropTargetDropEvent.h new file mode 100644 index 000000000..08851b68c --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetEvent.h b/libjava/java/awt/dnd/DropTargetEvent.h new file mode 100644 index 000000000..e090e197c --- /dev/null +++ b/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/libjava/java/awt/dnd/DropTargetListener.h b/libjava/java/awt/dnd/DropTargetListener.h new file mode 100644 index 000000000..83aba62d1 --- /dev/null +++ b/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/libjava/java/awt/dnd/InvalidDnDOperationException.h b/libjava/java/awt/dnd/InvalidDnDOperationException.h new file mode 100644 index 000000000..674f7ce2d --- /dev/null +++ b/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/libjava/java/awt/dnd/MouseDragGestureRecognizer.h b/libjava/java/awt/dnd/MouseDragGestureRecognizer.h new file mode 100644 index 000000000..00635da56 --- /dev/null +++ b/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/libjava/java/awt/dnd/peer/DragSourceContextPeer.h b/libjava/java/awt/dnd/peer/DragSourceContextPeer.h new file mode 100644 index 000000000..f5653f260 --- /dev/null +++ b/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/libjava/java/awt/dnd/peer/DropTargetContextPeer.h b/libjava/java/awt/dnd/peer/DropTargetContextPeer.h new file mode 100644 index 000000000..cb7ae0d65 --- /dev/null +++ b/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/libjava/java/awt/dnd/peer/DropTargetPeer.h b/libjava/java/awt/dnd/peer/DropTargetPeer.h new file mode 100644 index 000000000..d96222ba8 --- /dev/null +++ b/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/libjava/java/awt/event/AWTEventListener.h b/libjava/java/awt/event/AWTEventListener.h new file mode 100644 index 000000000..e85da18c5 --- /dev/null +++ b/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/libjava/java/awt/event/AWTEventListenerProxy.h b/libjava/java/awt/event/AWTEventListenerProxy.h new file mode 100644 index 000000000..90e1bc2d9 --- /dev/null +++ b/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/libjava/java/awt/event/ActionEvent.h b/libjava/java/awt/event/ActionEvent.h new file mode 100644 index 000000000..a1eff2632 --- /dev/null +++ b/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/libjava/java/awt/event/ActionListener.h b/libjava/java/awt/event/ActionListener.h new file mode 100644 index 000000000..0560d7caf --- /dev/null +++ b/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/libjava/java/awt/event/AdjustmentEvent.h b/libjava/java/awt/event/AdjustmentEvent.h new file mode 100644 index 000000000..71bef4d39 --- /dev/null +++ b/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/libjava/java/awt/event/AdjustmentListener.h b/libjava/java/awt/event/AdjustmentListener.h new file mode 100644 index 000000000..75e67203b --- /dev/null +++ b/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/libjava/java/awt/event/ComponentAdapter.h b/libjava/java/awt/event/ComponentAdapter.h new file mode 100644 index 000000000..0121a0de5 --- /dev/null +++ b/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/libjava/java/awt/event/ComponentEvent.h b/libjava/java/awt/event/ComponentEvent.h new file mode 100644 index 000000000..667ceb7c2 --- /dev/null +++ b/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/libjava/java/awt/event/ComponentListener.h b/libjava/java/awt/event/ComponentListener.h new file mode 100644 index 000000000..961c9a9d3 --- /dev/null +++ b/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/libjava/java/awt/event/ContainerAdapter.h b/libjava/java/awt/event/ContainerAdapter.h new file mode 100644 index 000000000..e483c5b0e --- /dev/null +++ b/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/libjava/java/awt/event/ContainerEvent.h b/libjava/java/awt/event/ContainerEvent.h new file mode 100644 index 000000000..f1d4680ef --- /dev/null +++ b/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/libjava/java/awt/event/ContainerListener.h b/libjava/java/awt/event/ContainerListener.h new file mode 100644 index 000000000..ac24d8ce0 --- /dev/null +++ b/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/libjava/java/awt/event/FocusAdapter.h b/libjava/java/awt/event/FocusAdapter.h new file mode 100644 index 000000000..f46f94e5c --- /dev/null +++ b/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/libjava/java/awt/event/FocusEvent.h b/libjava/java/awt/event/FocusEvent.h new file mode 100644 index 000000000..5c7315a9a --- /dev/null +++ b/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/libjava/java/awt/event/FocusListener.h b/libjava/java/awt/event/FocusListener.h new file mode 100644 index 000000000..f47a924b3 --- /dev/null +++ b/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/libjava/java/awt/event/HierarchyBoundsAdapter.h b/libjava/java/awt/event/HierarchyBoundsAdapter.h new file mode 100644 index 000000000..125cf864c --- /dev/null +++ b/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/libjava/java/awt/event/HierarchyBoundsListener.h b/libjava/java/awt/event/HierarchyBoundsListener.h new file mode 100644 index 000000000..2ae05003f --- /dev/null +++ b/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/libjava/java/awt/event/HierarchyEvent.h b/libjava/java/awt/event/HierarchyEvent.h new file mode 100644 index 000000000..fe9585ae0 --- /dev/null +++ b/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/libjava/java/awt/event/HierarchyListener.h b/libjava/java/awt/event/HierarchyListener.h new file mode 100644 index 000000000..e691edc27 --- /dev/null +++ b/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/libjava/java/awt/event/InputEvent.h b/libjava/java/awt/event/InputEvent.h new file mode 100644 index 000000000..863963ca0 --- /dev/null +++ b/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/libjava/java/awt/event/InputMethodEvent.h b/libjava/java/awt/event/InputMethodEvent.h new file mode 100644 index 000000000..0c0247045 --- /dev/null +++ b/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/libjava/java/awt/event/InputMethodListener.h b/libjava/java/awt/event/InputMethodListener.h new file mode 100644 index 000000000..4bb03de2b --- /dev/null +++ b/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/libjava/java/awt/event/InvocationEvent.h b/libjava/java/awt/event/InvocationEvent.h new file mode 100644 index 000000000..2dde3a421 --- /dev/null +++ b/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/libjava/java/awt/event/ItemEvent.h b/libjava/java/awt/event/ItemEvent.h new file mode 100644 index 000000000..61f483646 --- /dev/null +++ b/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/libjava/java/awt/event/ItemListener.h b/libjava/java/awt/event/ItemListener.h new file mode 100644 index 000000000..eee09ce9d --- /dev/null +++ b/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/libjava/java/awt/event/KeyAdapter.h b/libjava/java/awt/event/KeyAdapter.h new file mode 100644 index 000000000..b63023e66 --- /dev/null +++ b/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/libjava/java/awt/event/KeyEvent.h b/libjava/java/awt/event/KeyEvent.h new file mode 100644 index 000000000..6b3258677 --- /dev/null +++ b/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/libjava/java/awt/event/KeyListener.h b/libjava/java/awt/event/KeyListener.h new file mode 100644 index 000000000..a25e5b83e --- /dev/null +++ b/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/libjava/java/awt/event/MouseAdapter.h b/libjava/java/awt/event/MouseAdapter.h new file mode 100644 index 000000000..d0ee27ee7 --- /dev/null +++ b/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/libjava/java/awt/event/MouseEvent.h b/libjava/java/awt/event/MouseEvent.h new file mode 100644 index 000000000..82ef6c22d --- /dev/null +++ b/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/libjava/java/awt/event/MouseListener.h b/libjava/java/awt/event/MouseListener.h new file mode 100644 index 000000000..d3263ab8e --- /dev/null +++ b/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/libjava/java/awt/event/MouseMotionAdapter.h b/libjava/java/awt/event/MouseMotionAdapter.h new file mode 100644 index 000000000..2c29cdd9d --- /dev/null +++ b/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/libjava/java/awt/event/MouseMotionListener.h b/libjava/java/awt/event/MouseMotionListener.h new file mode 100644 index 000000000..84087bbf0 --- /dev/null +++ b/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/libjava/java/awt/event/MouseWheelEvent.h b/libjava/java/awt/event/MouseWheelEvent.h new file mode 100644 index 000000000..fd804a126 --- /dev/null +++ b/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/libjava/java/awt/event/MouseWheelListener.h b/libjava/java/awt/event/MouseWheelListener.h new file mode 100644 index 000000000..525b427e4 --- /dev/null +++ b/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/libjava/java/awt/event/PaintEvent.h b/libjava/java/awt/event/PaintEvent.h new file mode 100644 index 000000000..4d1802729 --- /dev/null +++ b/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/libjava/java/awt/event/TextEvent.h b/libjava/java/awt/event/TextEvent.h new file mode 100644 index 000000000..bd673f73c --- /dev/null +++ b/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/libjava/java/awt/event/TextListener.h b/libjava/java/awt/event/TextListener.h new file mode 100644 index 000000000..cb3ad2c91 --- /dev/null +++ b/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/libjava/java/awt/event/WindowAdapter.h b/libjava/java/awt/event/WindowAdapter.h new file mode 100644 index 000000000..fda064b21 --- /dev/null +++ b/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/libjava/java/awt/event/WindowEvent.h b/libjava/java/awt/event/WindowEvent.h new file mode 100644 index 000000000..886927787 --- /dev/null +++ b/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/libjava/java/awt/event/WindowFocusListener.h b/libjava/java/awt/event/WindowFocusListener.h new file mode 100644 index 000000000..5ff8d3ac1 --- /dev/null +++ b/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/libjava/java/awt/event/WindowListener.h b/libjava/java/awt/event/WindowListener.h new file mode 100644 index 000000000..b1b3109fc --- /dev/null +++ b/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/libjava/java/awt/event/WindowStateListener.h b/libjava/java/awt/event/WindowStateListener.h new file mode 100644 index 000000000..459ad6926 --- /dev/null +++ b/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/libjava/java/awt/font/FontRenderContext.h b/libjava/java/awt/font/FontRenderContext.h new file mode 100644 index 000000000..30fb5973a --- /dev/null +++ b/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/libjava/java/awt/font/GlyphJustificationInfo.h b/libjava/java/awt/font/GlyphJustificationInfo.h new file mode 100644 index 000000000..eb8806680 --- /dev/null +++ b/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/libjava/java/awt/font/GlyphMetrics.h b/libjava/java/awt/font/GlyphMetrics.h new file mode 100644 index 000000000..7c44a20f2 --- /dev/null +++ b/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/libjava/java/awt/font/GlyphVector.h b/libjava/java/awt/font/GlyphVector.h new file mode 100644 index 000000000..67826afa8 --- /dev/null +++ b/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/libjava/java/awt/font/GraphicAttribute.h b/libjava/java/awt/font/GraphicAttribute.h new file mode 100644 index 000000000..622cbed7b --- /dev/null +++ b/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/libjava/java/awt/font/ImageGraphicAttribute.h b/libjava/java/awt/font/ImageGraphicAttribute.h new file mode 100644 index 000000000..086fc3d1b --- /dev/null +++ b/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/libjava/java/awt/font/LineBreakMeasurer.h b/libjava/java/awt/font/LineBreakMeasurer.h new file mode 100644 index 000000000..3d862e748 --- /dev/null +++ b/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/libjava/java/awt/font/LineMetrics.h b/libjava/java/awt/font/LineMetrics.h new file mode 100644 index 000000000..35b8594dc --- /dev/null +++ b/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/libjava/java/awt/font/MultipleMaster.h b/libjava/java/awt/font/MultipleMaster.h new file mode 100644 index 000000000..99e4580ae --- /dev/null +++ b/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/libjava/java/awt/font/NumericShaper.h b/libjava/java/awt/font/NumericShaper.h new file mode 100644 index 000000000..85f0d4c31 --- /dev/null +++ b/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/libjava/java/awt/font/OpenType.h b/libjava/java/awt/font/OpenType.h new file mode 100644 index 000000000..bd1c0a622 --- /dev/null +++ b/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/libjava/java/awt/font/ShapeGraphicAttribute.h b/libjava/java/awt/font/ShapeGraphicAttribute.h new file mode 100644 index 000000000..fd8d1be57 --- /dev/null +++ b/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/libjava/java/awt/font/TextAttribute.h b/libjava/java/awt/font/TextAttribute.h new file mode 100644 index 000000000..050d71491 --- /dev/null +++ b/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/libjava/java/awt/font/TextHitInfo.h b/libjava/java/awt/font/TextHitInfo.h new file mode 100644 index 000000000..a38745895 --- /dev/null +++ b/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/libjava/java/awt/font/TextLayout$CaretPolicy.h b/libjava/java/awt/font/TextLayout$CaretPolicy.h new file mode 100644 index 000000000..adb7b0d1f --- /dev/null +++ b/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/libjava/java/awt/font/TextLayout$Run.h b/libjava/java/awt/font/TextLayout$Run.h new file mode 100644 index 000000000..3760b6eef --- /dev/null +++ b/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/libjava/java/awt/font/TextLayout.h b/libjava/java/awt/font/TextLayout.h new file mode 100644 index 000000000..f5c02bafd --- /dev/null +++ b/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/libjava/java/awt/font/TextMeasurer.h b/libjava/java/awt/font/TextMeasurer.h new file mode 100644 index 000000000..31ca7b27f --- /dev/null +++ b/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/libjava/java/awt/font/TransformAttribute.h b/libjava/java/awt/font/TransformAttribute.h new file mode 100644 index 000000000..16875a23d --- /dev/null +++ b/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/libjava/java/awt/geom/AffineTransform.h b/libjava/java/awt/geom/AffineTransform.h new file mode 100644 index 000000000..4c5efc8bb --- /dev/null +++ b/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/libjava/java/awt/geom/Arc2D$ArcIterator.h b/libjava/java/awt/geom/Arc2D$ArcIterator.h new file mode 100644 index 000000000..4fdf0e15c --- /dev/null +++ b/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/libjava/java/awt/geom/Arc2D$Double.h b/libjava/java/awt/geom/Arc2D$Double.h new file mode 100644 index 000000000..d39148b70 --- /dev/null +++ b/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/libjava/java/awt/geom/Arc2D$Float.h b/libjava/java/awt/geom/Arc2D$Float.h new file mode 100644 index 000000000..925c425ac --- /dev/null +++ b/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/libjava/java/awt/geom/Arc2D.h b/libjava/java/awt/geom/Arc2D.h new file mode 100644 index 000000000..d2bfc7527 --- /dev/null +++ b/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/libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h b/libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h new file mode 100644 index 000000000..2dfcf311e --- /dev/null +++ b/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/libjava/java/awt/geom/Area$AreaIterator.h b/libjava/java/awt/geom/Area$AreaIterator.h new file mode 100644 index 000000000..86824256a --- /dev/null +++ b/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/libjava/java/awt/geom/Area$CubicSegment.h b/libjava/java/awt/geom/Area$CubicSegment.h new file mode 100644 index 000000000..f5a31385e --- /dev/null +++ b/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/libjava/java/awt/geom/Area$Intersection.h b/libjava/java/awt/geom/Area$Intersection.h new file mode 100644 index 000000000..c4c716286 --- /dev/null +++ b/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/libjava/java/awt/geom/Area$LineSegment.h b/libjava/java/awt/geom/Area$LineSegment.h new file mode 100644 index 000000000..2eb0692a8 --- /dev/null +++ b/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/libjava/java/awt/geom/Area$QuadSegment.h b/libjava/java/awt/geom/Area$QuadSegment.h new file mode 100644 index 000000000..ca6dc99c5 --- /dev/null +++ b/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/libjava/java/awt/geom/Area$Segment.h b/libjava/java/awt/geom/Area$Segment.h new file mode 100644 index 000000000..866ecefdd --- /dev/null +++ b/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/libjava/java/awt/geom/Area.h b/libjava/java/awt/geom/Area.h new file mode 100644 index 000000000..47a87df4e --- /dev/null +++ b/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 * cc_intersections; + jint windingRule; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_awt_geom_Area__ diff --git a/libjava/java/awt/geom/CubicCurve2D$1.h b/libjava/java/awt/geom/CubicCurve2D$1.h new file mode 100644 index 000000000..960807e7d --- /dev/null +++ b/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/libjava/java/awt/geom/CubicCurve2D$Double.h b/libjava/java/awt/geom/CubicCurve2D$Double.h new file mode 100644 index 000000000..d3d47429c --- /dev/null +++ b/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/libjava/java/awt/geom/CubicCurve2D$Float.h b/libjava/java/awt/geom/CubicCurve2D$Float.h new file mode 100644 index 000000000..6e6cd4d2c --- /dev/null +++ b/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/libjava/java/awt/geom/CubicCurve2D.h b/libjava/java/awt/geom/CubicCurve2D.h new file mode 100644 index 000000000..f9f82b894 --- /dev/null +++ b/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/libjava/java/awt/geom/Dimension2D.h b/libjava/java/awt/geom/Dimension2D.h new file mode 100644 index 000000000..d201d7a5f --- /dev/null +++ b/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/libjava/java/awt/geom/Ellipse2D$Double.h b/libjava/java/awt/geom/Ellipse2D$Double.h new file mode 100644 index 000000000..06b28e6f3 --- /dev/null +++ b/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/libjava/java/awt/geom/Ellipse2D$Float.h b/libjava/java/awt/geom/Ellipse2D$Float.h new file mode 100644 index 000000000..52177dc02 --- /dev/null +++ b/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/libjava/java/awt/geom/Ellipse2D.h b/libjava/java/awt/geom/Ellipse2D.h new file mode 100644 index 000000000..a78c318d8 --- /dev/null +++ b/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/libjava/java/awt/geom/FlatteningPathIterator.h b/libjava/java/awt/geom/FlatteningPathIterator.h new file mode 100644 index 000000000..7936286da --- /dev/null +++ b/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/libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h b/libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h new file mode 100644 index 000000000..9bf63bd5f --- /dev/null +++ b/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/libjava/java/awt/geom/GeneralPath.h b/libjava/java/awt/geom/GeneralPath.h new file mode 100644 index 000000000..a2d37c73f --- /dev/null +++ b/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/libjava/java/awt/geom/IllegalPathStateException.h b/libjava/java/awt/geom/IllegalPathStateException.h new file mode 100644 index 000000000..4147334fd --- /dev/null +++ b/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/libjava/java/awt/geom/Line2D$1.h b/libjava/java/awt/geom/Line2D$1.h new file mode 100644 index 000000000..236ed0c96 --- /dev/null +++ b/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/libjava/java/awt/geom/Line2D$Double.h b/libjava/java/awt/geom/Line2D$Double.h new file mode 100644 index 000000000..a9915b73d --- /dev/null +++ b/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/libjava/java/awt/geom/Line2D$Float.h b/libjava/java/awt/geom/Line2D$Float.h new file mode 100644 index 000000000..1a829e2c6 --- /dev/null +++ b/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/libjava/java/awt/geom/Line2D.h b/libjava/java/awt/geom/Line2D.h new file mode 100644 index 000000000..5310eadc7 --- /dev/null +++ b/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/libjava/java/awt/geom/NoninvertibleTransformException.h b/libjava/java/awt/geom/NoninvertibleTransformException.h new file mode 100644 index 000000000..1e7b71249 --- /dev/null +++ b/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/libjava/java/awt/geom/PathIterator.h b/libjava/java/awt/geom/PathIterator.h new file mode 100644 index 000000000..a201f5604 --- /dev/null +++ b/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/libjava/java/awt/geom/Point2D$Double.h b/libjava/java/awt/geom/Point2D$Double.h new file mode 100644 index 000000000..b03db3fa7 --- /dev/null +++ b/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/libjava/java/awt/geom/Point2D$Float.h b/libjava/java/awt/geom/Point2D$Float.h new file mode 100644 index 000000000..f9da3d1be --- /dev/null +++ b/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/libjava/java/awt/geom/Point2D.h b/libjava/java/awt/geom/Point2D.h new file mode 100644 index 000000000..bddd3ab87 --- /dev/null +++ b/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/libjava/java/awt/geom/QuadCurve2D$1.h b/libjava/java/awt/geom/QuadCurve2D$1.h new file mode 100644 index 000000000..e653cc388 --- /dev/null +++ b/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/libjava/java/awt/geom/QuadCurve2D$Double.h b/libjava/java/awt/geom/QuadCurve2D$Double.h new file mode 100644 index 000000000..91a524b0d --- /dev/null +++ b/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/libjava/java/awt/geom/QuadCurve2D$Float.h b/libjava/java/awt/geom/QuadCurve2D$Float.h new file mode 100644 index 000000000..b2f36d624 --- /dev/null +++ b/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/libjava/java/awt/geom/QuadCurve2D.h b/libjava/java/awt/geom/QuadCurve2D.h new file mode 100644 index 000000000..f9adea41b --- /dev/null +++ b/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/libjava/java/awt/geom/Rectangle2D$1.h b/libjava/java/awt/geom/Rectangle2D$1.h new file mode 100644 index 000000000..d1b99d210 --- /dev/null +++ b/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/libjava/java/awt/geom/Rectangle2D$Double.h b/libjava/java/awt/geom/Rectangle2D$Double.h new file mode 100644 index 000000000..20105f932 --- /dev/null +++ b/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/libjava/java/awt/geom/Rectangle2D$Float.h b/libjava/java/awt/geom/Rectangle2D$Float.h new file mode 100644 index 000000000..61dbf373c --- /dev/null +++ b/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/libjava/java/awt/geom/Rectangle2D.h b/libjava/java/awt/geom/Rectangle2D.h new file mode 100644 index 000000000..e81e0a8e1 --- /dev/null +++ b/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/libjava/java/awt/geom/RectangularShape.h b/libjava/java/awt/geom/RectangularShape.h new file mode 100644 index 000000000..18e1360fa --- /dev/null +++ b/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/libjava/java/awt/geom/RoundRectangle2D$1.h b/libjava/java/awt/geom/RoundRectangle2D$1.h new file mode 100644 index 000000000..76a82e871 --- /dev/null +++ b/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/libjava/java/awt/geom/RoundRectangle2D$Double.h b/libjava/java/awt/geom/RoundRectangle2D$Double.h new file mode 100644 index 000000000..08010fd41 --- /dev/null +++ b/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/libjava/java/awt/geom/RoundRectangle2D$Float.h b/libjava/java/awt/geom/RoundRectangle2D$Float.h new file mode 100644 index 000000000..184c5f4b1 --- /dev/null +++ b/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/libjava/java/awt/geom/RoundRectangle2D.h b/libjava/java/awt/geom/RoundRectangle2D.h new file mode 100644 index 000000000..a9092ca5c --- /dev/null +++ b/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/libjava/java/awt/im/InputContext.h b/libjava/java/awt/im/InputContext.h new file mode 100644 index 000000000..59c02044a --- /dev/null +++ b/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/libjava/java/awt/im/InputMethodHighlight.h b/libjava/java/awt/im/InputMethodHighlight.h new file mode 100644 index 000000000..72eb74521 --- /dev/null +++ b/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/libjava/java/awt/im/InputMethodRequests.h b/libjava/java/awt/im/InputMethodRequests.h new file mode 100644 index 000000000..4552bc954 --- /dev/null +++ b/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/libjava/java/awt/im/InputSubset.h b/libjava/java/awt/im/InputSubset.h new file mode 100644 index 000000000..181a6af95 --- /dev/null +++ b/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/libjava/java/awt/im/spi/InputMethod.h b/libjava/java/awt/im/spi/InputMethod.h new file mode 100644 index 000000000..d48fc67a4 --- /dev/null +++ b/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/libjava/java/awt/im/spi/InputMethodContext.h b/libjava/java/awt/im/spi/InputMethodContext.h new file mode 100644 index 000000000..8dcef0e08 --- /dev/null +++ b/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/libjava/java/awt/im/spi/InputMethodDescriptor.h b/libjava/java/awt/im/spi/InputMethodDescriptor.h new file mode 100644 index 000000000..60d0829fe --- /dev/null +++ b/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/libjava/java/awt/image/AffineTransformOp.h b/libjava/java/awt/image/AffineTransformOp.h new file mode 100644 index 000000000..be0dee40b --- /dev/null +++ b/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/libjava/java/awt/image/AreaAveragingScaleFilter.h b/libjava/java/awt/image/AreaAveragingScaleFilter.h new file mode 100644 index 000000000..694ae79a7 --- /dev/null +++ b/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/libjava/java/awt/image/BandCombineOp.h b/libjava/java/awt/image/BandCombineOp.h new file mode 100644 index 000000000..0233ef4d3 --- /dev/null +++ b/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/libjava/java/awt/image/BandedSampleModel.h b/libjava/java/awt/image/BandedSampleModel.h new file mode 100644 index 000000000..5eca8194b --- /dev/null +++ b/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/libjava/java/awt/image/BufferStrategy.h b/libjava/java/awt/image/BufferStrategy.h new file mode 100644 index 000000000..682e73e07 --- /dev/null +++ b/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/libjava/java/awt/image/BufferedImage$1.h b/libjava/java/awt/image/BufferedImage$1.h new file mode 100644 index 000000000..d14d34ea8 --- /dev/null +++ b/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/libjava/java/awt/image/BufferedImage.h b/libjava/java/awt/image/BufferedImage.h new file mode 100644 index 000000000..9c54907a7 --- /dev/null +++ b/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/libjava/java/awt/image/BufferedImageFilter.h b/libjava/java/awt/image/BufferedImageFilter.h new file mode 100644 index 000000000..08da9be71 --- /dev/null +++ b/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/libjava/java/awt/image/BufferedImageOp.h b/libjava/java/awt/image/BufferedImageOp.h new file mode 100644 index 000000000..1af69aa02 --- /dev/null +++ b/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/libjava/java/awt/image/ByteLookupTable.h b/libjava/java/awt/image/ByteLookupTable.h new file mode 100644 index 000000000..d34b385b2 --- /dev/null +++ b/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/libjava/java/awt/image/ColorConvertOp.h b/libjava/java/awt/image/ColorConvertOp.h new file mode 100644 index 000000000..6455b46bb --- /dev/null +++ b/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/libjava/java/awt/image/ColorModel$SRGBColorModel.h b/libjava/java/awt/image/ColorModel$SRGBColorModel.h new file mode 100644 index 000000000..90428c429 --- /dev/null +++ b/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/libjava/java/awt/image/ColorModel.h b/libjava/java/awt/image/ColorModel.h new file mode 100644 index 000000000..1eccdc583 --- /dev/null +++ b/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/libjava/java/awt/image/ComponentColorModel.h b/libjava/java/awt/image/ComponentColorModel.h new file mode 100644 index 000000000..e40ab1d2d --- /dev/null +++ b/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/libjava/java/awt/image/ComponentSampleModel.h b/libjava/java/awt/image/ComponentSampleModel.h new file mode 100644 index 000000000..39fe6cdf7 --- /dev/null +++ b/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/libjava/java/awt/image/ConvolveOp.h b/libjava/java/awt/image/ConvolveOp.h new file mode 100644 index 000000000..e72a7033e --- /dev/null +++ b/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/libjava/java/awt/image/CropImageFilter.h b/libjava/java/awt/image/CropImageFilter.h new file mode 100644 index 000000000..23720dbdc --- /dev/null +++ b/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/libjava/java/awt/image/DataBuffer.h b/libjava/java/awt/image/DataBuffer.h new file mode 100644 index 000000000..5bb4ac293 --- /dev/null +++ b/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/libjava/java/awt/image/DataBufferByte.h b/libjava/java/awt/image/DataBufferByte.h new file mode 100644 index 000000000..224be27ce --- /dev/null +++ b/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/libjava/java/awt/image/DataBufferDouble.h b/libjava/java/awt/image/DataBufferDouble.h new file mode 100644 index 000000000..056c5e4bb --- /dev/null +++ b/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/libjava/java/awt/image/DataBufferFloat.h b/libjava/java/awt/image/DataBufferFloat.h new file mode 100644 index 000000000..621e3593f --- /dev/null +++ b/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/libjava/java/awt/image/DataBufferInt.h b/libjava/java/awt/image/DataBufferInt.h new file mode 100644 index 000000000..0526f607f --- /dev/null +++ b/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/libjava/java/awt/image/DataBufferShort.h b/libjava/java/awt/image/DataBufferShort.h new file mode 100644 index 000000000..c66067109 --- /dev/null +++ b/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/libjava/java/awt/image/DataBufferUShort.h b/libjava/java/awt/image/DataBufferUShort.h new file mode 100644 index 000000000..e67d26b1b --- /dev/null +++ b/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/libjava/java/awt/image/DirectColorModel.h b/libjava/java/awt/image/DirectColorModel.h new file mode 100644 index 000000000..476ab073d --- /dev/null +++ b/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/libjava/java/awt/image/FilteredImageSource.h b/libjava/java/awt/image/FilteredImageSource.h new file mode 100644 index 000000000..93174c44f --- /dev/null +++ b/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/libjava/java/awt/image/ImageConsumer.h b/libjava/java/awt/image/ImageConsumer.h new file mode 100644 index 000000000..ffca9fc3c --- /dev/null +++ b/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/libjava/java/awt/image/ImageFilter.h b/libjava/java/awt/image/ImageFilter.h new file mode 100644 index 000000000..84b6f53b0 --- /dev/null +++ b/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/libjava/java/awt/image/ImageObserver.h b/libjava/java/awt/image/ImageObserver.h new file mode 100644 index 000000000..563666a1a --- /dev/null +++ b/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/libjava/java/awt/image/ImageProducer.h b/libjava/java/awt/image/ImageProducer.h new file mode 100644 index 000000000..108f61f49 --- /dev/null +++ b/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/libjava/java/awt/image/ImagingOpException.h b/libjava/java/awt/image/ImagingOpException.h new file mode 100644 index 000000000..9ce51161f --- /dev/null +++ b/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/libjava/java/awt/image/IndexColorModel.h b/libjava/java/awt/image/IndexColorModel.h new file mode 100644 index 000000000..a79a5312f --- /dev/null +++ b/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/libjava/java/awt/image/Kernel.h b/libjava/java/awt/image/Kernel.h new file mode 100644 index 000000000..f0bacc123 --- /dev/null +++ b/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/libjava/java/awt/image/LookupOp.h b/libjava/java/awt/image/LookupOp.h new file mode 100644 index 000000000..07546043f --- /dev/null +++ b/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/libjava/java/awt/image/LookupTable.h b/libjava/java/awt/image/LookupTable.h new file mode 100644 index 000000000..2fcd64592 --- /dev/null +++ b/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/libjava/java/awt/image/MemoryImageSource.h b/libjava/java/awt/image/MemoryImageSource.h new file mode 100644 index 000000000..e717ee87c --- /dev/null +++ b/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/libjava/java/awt/image/MultiPixelPackedSampleModel.h b/libjava/java/awt/image/MultiPixelPackedSampleModel.h new file mode 100644 index 000000000..377ceaf1e --- /dev/null +++ b/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/libjava/java/awt/image/PackedColorModel.h b/libjava/java/awt/image/PackedColorModel.h new file mode 100644 index 000000000..2d98aa9e8 --- /dev/null +++ b/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/libjava/java/awt/image/PixelGrabber$1.h b/libjava/java/awt/image/PixelGrabber$1.h new file mode 100644 index 000000000..e6271042c --- /dev/null +++ b/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/libjava/java/awt/image/PixelGrabber.h b/libjava/java/awt/image/PixelGrabber.h new file mode 100644 index 000000000..f530f3431 --- /dev/null +++ b/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/libjava/java/awt/image/PixelInterleavedSampleModel.h b/libjava/java/awt/image/PixelInterleavedSampleModel.h new file mode 100644 index 000000000..42ba58217 --- /dev/null +++ b/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/libjava/java/awt/image/RGBImageFilter.h b/libjava/java/awt/image/RGBImageFilter.h new file mode 100644 index 000000000..34aea655f --- /dev/null +++ b/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/libjava/java/awt/image/Raster.h b/libjava/java/awt/image/Raster.h new file mode 100644 index 000000000..2c187d5af --- /dev/null +++ b/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/libjava/java/awt/image/RasterFormatException.h b/libjava/java/awt/image/RasterFormatException.h new file mode 100644 index 000000000..acfe3941c --- /dev/null +++ b/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/libjava/java/awt/image/RasterOp.h b/libjava/java/awt/image/RasterOp.h new file mode 100644 index 000000000..a54b9b022 --- /dev/null +++ b/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/libjava/java/awt/image/RenderedImage.h b/libjava/java/awt/image/RenderedImage.h new file mode 100644 index 000000000..f47ca93cc --- /dev/null +++ b/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/libjava/java/awt/image/ReplicateScaleFilter.h b/libjava/java/awt/image/ReplicateScaleFilter.h new file mode 100644 index 000000000..d518d793f --- /dev/null +++ b/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/libjava/java/awt/image/RescaleOp.h b/libjava/java/awt/image/RescaleOp.h new file mode 100644 index 000000000..ba67ec9fc --- /dev/null +++ b/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/libjava/java/awt/image/SampleModel.h b/libjava/java/awt/image/SampleModel.h new file mode 100644 index 000000000..5d51a65d9 --- /dev/null +++ b/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/libjava/java/awt/image/ShortLookupTable.h b/libjava/java/awt/image/ShortLookupTable.h new file mode 100644 index 000000000..053331b06 --- /dev/null +++ b/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/libjava/java/awt/image/SinglePixelPackedSampleModel.h b/libjava/java/awt/image/SinglePixelPackedSampleModel.h new file mode 100644 index 000000000..c7bf07cd4 --- /dev/null +++ b/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/libjava/java/awt/image/TileObserver.h b/libjava/java/awt/image/TileObserver.h new file mode 100644 index 000000000..9f7d0a1a4 --- /dev/null +++ b/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/libjava/java/awt/image/VolatileImage.h b/libjava/java/awt/image/VolatileImage.h new file mode 100644 index 000000000..ed2892863 --- /dev/null +++ b/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/libjava/java/awt/image/WritableRaster.h b/libjava/java/awt/image/WritableRaster.h new file mode 100644 index 000000000..5db229c33 --- /dev/null +++ b/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/libjava/java/awt/image/WritableRenderedImage.h b/libjava/java/awt/image/WritableRenderedImage.h new file mode 100644 index 000000000..f9b248123 --- /dev/null +++ b/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/libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h b/libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h new file mode 100644 index 000000000..d7ac12972 --- /dev/null +++ b/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/libjava/java/awt/image/renderable/ParameterBlock.h b/libjava/java/awt/image/renderable/ParameterBlock.h new file mode 100644 index 000000000..cafafbdbb --- /dev/null +++ b/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/libjava/java/awt/image/renderable/RenderContext.h b/libjava/java/awt/image/renderable/RenderContext.h new file mode 100644 index 000000000..4923ebc2d --- /dev/null +++ b/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/libjava/java/awt/image/renderable/RenderableImage.h b/libjava/java/awt/image/renderable/RenderableImage.h new file mode 100644 index 000000000..c7fed510a --- /dev/null +++ b/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/libjava/java/awt/image/renderable/RenderableImageOp.h b/libjava/java/awt/image/renderable/RenderableImageOp.h new file mode 100644 index 000000000..edc766d4e --- /dev/null +++ b/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/libjava/java/awt/image/renderable/RenderableImageProducer.h b/libjava/java/awt/image/renderable/RenderableImageProducer.h new file mode 100644 index 000000000..4e1968fb8 --- /dev/null +++ b/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/libjava/java/awt/image/renderable/RenderedImageFactory.h b/libjava/java/awt/image/renderable/RenderedImageFactory.h new file mode 100644 index 000000000..3e2eb9349 --- /dev/null +++ b/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/libjava/java/awt/peer/ButtonPeer.h b/libjava/java/awt/peer/ButtonPeer.h new file mode 100644 index 000000000..781fd0e6f --- /dev/null +++ b/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/libjava/java/awt/peer/CanvasPeer.h b/libjava/java/awt/peer/CanvasPeer.h new file mode 100644 index 000000000..2f9ba7c13 --- /dev/null +++ b/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/libjava/java/awt/peer/CheckboxMenuItemPeer.h b/libjava/java/awt/peer/CheckboxMenuItemPeer.h new file mode 100644 index 000000000..84a5ba9ae --- /dev/null +++ b/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/libjava/java/awt/peer/CheckboxPeer.h b/libjava/java/awt/peer/CheckboxPeer.h new file mode 100644 index 000000000..72e05ee20 --- /dev/null +++ b/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/libjava/java/awt/peer/ChoicePeer.h b/libjava/java/awt/peer/ChoicePeer.h new file mode 100644 index 000000000..9a152d693 --- /dev/null +++ b/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/libjava/java/awt/peer/ComponentPeer.h b/libjava/java/awt/peer/ComponentPeer.h new file mode 100644 index 000000000..5bcd8876f --- /dev/null +++ b/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/libjava/java/awt/peer/ContainerPeer.h b/libjava/java/awt/peer/ContainerPeer.h new file mode 100644 index 000000000..d1d26a02b --- /dev/null +++ b/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/libjava/java/awt/peer/DesktopPeer.h b/libjava/java/awt/peer/DesktopPeer.h new file mode 100644 index 000000000..fa5529abe --- /dev/null +++ b/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/libjava/java/awt/peer/DialogPeer.h b/libjava/java/awt/peer/DialogPeer.h new file mode 100644 index 000000000..95f9e0c1c --- /dev/null +++ b/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/libjava/java/awt/peer/FileDialogPeer.h b/libjava/java/awt/peer/FileDialogPeer.h new file mode 100644 index 000000000..22575b600 --- /dev/null +++ b/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/libjava/java/awt/peer/FontPeer.h b/libjava/java/awt/peer/FontPeer.h new file mode 100644 index 000000000..00f6f8a4f --- /dev/null +++ b/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/libjava/java/awt/peer/FramePeer.h b/libjava/java/awt/peer/FramePeer.h new file mode 100644 index 000000000..e340e134b --- /dev/null +++ b/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/libjava/java/awt/peer/LabelPeer.h b/libjava/java/awt/peer/LabelPeer.h new file mode 100644 index 000000000..5247a0d09 --- /dev/null +++ b/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/libjava/java/awt/peer/LightweightPeer.h b/libjava/java/awt/peer/LightweightPeer.h new file mode 100644 index 000000000..b18182f82 --- /dev/null +++ b/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/libjava/java/awt/peer/ListPeer.h b/libjava/java/awt/peer/ListPeer.h new file mode 100644 index 000000000..0edfd6251 --- /dev/null +++ b/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/libjava/java/awt/peer/MenuBarPeer.h b/libjava/java/awt/peer/MenuBarPeer.h new file mode 100644 index 000000000..e7d84c051 --- /dev/null +++ b/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/libjava/java/awt/peer/MenuComponentPeer.h b/libjava/java/awt/peer/MenuComponentPeer.h new file mode 100644 index 000000000..a0a1ea14c --- /dev/null +++ b/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/libjava/java/awt/peer/MenuItemPeer.h b/libjava/java/awt/peer/MenuItemPeer.h new file mode 100644 index 000000000..8c9a9eee8 --- /dev/null +++ b/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/libjava/java/awt/peer/MenuPeer.h b/libjava/java/awt/peer/MenuPeer.h new file mode 100644 index 000000000..4c813b118 --- /dev/null +++ b/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/libjava/java/awt/peer/MouseInfoPeer.h b/libjava/java/awt/peer/MouseInfoPeer.h new file mode 100644 index 000000000..18f0c59b8 --- /dev/null +++ b/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/libjava/java/awt/peer/PanelPeer.h b/libjava/java/awt/peer/PanelPeer.h new file mode 100644 index 000000000..b90c0570a --- /dev/null +++ b/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/libjava/java/awt/peer/PopupMenuPeer.h b/libjava/java/awt/peer/PopupMenuPeer.h new file mode 100644 index 000000000..e8bdd57b5 --- /dev/null +++ b/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/libjava/java/awt/peer/RobotPeer.h b/libjava/java/awt/peer/RobotPeer.h new file mode 100644 index 000000000..7947c5031 --- /dev/null +++ b/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/libjava/java/awt/peer/ScrollPanePeer.h b/libjava/java/awt/peer/ScrollPanePeer.h new file mode 100644 index 000000000..25f9431f5 --- /dev/null +++ b/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/libjava/java/awt/peer/ScrollbarPeer.h b/libjava/java/awt/peer/ScrollbarPeer.h new file mode 100644 index 000000000..b030ca5d9 --- /dev/null +++ b/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/libjava/java/awt/peer/TextAreaPeer.h b/libjava/java/awt/peer/TextAreaPeer.h new file mode 100644 index 000000000..24fb100d7 --- /dev/null +++ b/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/libjava/java/awt/peer/TextComponentPeer.h b/libjava/java/awt/peer/TextComponentPeer.h new file mode 100644 index 000000000..71afe17f5 --- /dev/null +++ b/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/libjava/java/awt/peer/TextFieldPeer.h b/libjava/java/awt/peer/TextFieldPeer.h new file mode 100644 index 000000000..a2785b1b6 --- /dev/null +++ b/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/libjava/java/awt/peer/WindowPeer.h b/libjava/java/awt/peer/WindowPeer.h new file mode 100644 index 000000000..0257d8cb8 --- /dev/null +++ b/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/libjava/java/awt/print/Book.h b/libjava/java/awt/print/Book.h new file mode 100644 index 000000000..cda28618c --- /dev/null +++ b/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/libjava/java/awt/print/NoPrinterJob.h b/libjava/java/awt/print/NoPrinterJob.h new file mode 100644 index 000000000..aac0af30b --- /dev/null +++ b/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/libjava/java/awt/print/PageFormat.h b/libjava/java/awt/print/PageFormat.h new file mode 100644 index 000000000..0f4af7b65 --- /dev/null +++ b/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/libjava/java/awt/print/Pageable.h b/libjava/java/awt/print/Pageable.h new file mode 100644 index 000000000..b97d4e522 --- /dev/null +++ b/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/libjava/java/awt/print/Paper.h b/libjava/java/awt/print/Paper.h new file mode 100644 index 000000000..3d7d3769f --- /dev/null +++ b/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/libjava/java/awt/print/Printable.h b/libjava/java/awt/print/Printable.h new file mode 100644 index 000000000..4160afcfd --- /dev/null +++ b/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/libjava/java/awt/print/PrinterAbortException.h b/libjava/java/awt/print/PrinterAbortException.h new file mode 100644 index 000000000..f8475d995 --- /dev/null +++ b/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/libjava/java/awt/print/PrinterException.h b/libjava/java/awt/print/PrinterException.h new file mode 100644 index 000000000..009ec510f --- /dev/null +++ b/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/libjava/java/awt/print/PrinterGraphics.h b/libjava/java/awt/print/PrinterGraphics.h new file mode 100644 index 000000000..74541c07a --- /dev/null +++ b/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/libjava/java/awt/print/PrinterIOException.h b/libjava/java/awt/print/PrinterIOException.h new file mode 100644 index 000000000..46d7908d9 --- /dev/null +++ b/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/libjava/java/awt/print/PrinterJob.h b/libjava/java/awt/print/PrinterJob.h new file mode 100644 index 000000000..39bb9a0e9 --- /dev/null +++ b/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/libjava/java/beans/AppletInitializer.h b/libjava/java/beans/AppletInitializer.h new file mode 100644 index 000000000..f0ea44fa5 --- /dev/null +++ b/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/libjava/java/beans/BeanDescriptor.h b/libjava/java/beans/BeanDescriptor.h new file mode 100644 index 000000000..b1779b928 --- /dev/null +++ b/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/libjava/java/beans/BeanInfo.h b/libjava/java/beans/BeanInfo.h new file mode 100644 index 000000000..dda472016 --- /dev/null +++ b/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/libjava/java/beans/Beans.h b/libjava/java/beans/Beans.h new file mode 100644 index 000000000..ed2fbadbe --- /dev/null +++ b/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/libjava/java/beans/ConstructorProperties.h b/libjava/java/beans/ConstructorProperties.h new file mode 100644 index 000000000..10c5c383c --- /dev/null +++ b/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/libjava/java/beans/Customizer.h b/libjava/java/beans/Customizer.h new file mode 100644 index 000000000..fbdae5ad1 --- /dev/null +++ b/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/libjava/java/beans/DefaultPersistenceDelegate.h b/libjava/java/beans/DefaultPersistenceDelegate.h new file mode 100644 index 000000000..b0225b54c --- /dev/null +++ b/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/libjava/java/beans/DesignMode.h b/libjava/java/beans/DesignMode.h new file mode 100644 index 000000000..a88d84468 --- /dev/null +++ b/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/libjava/java/beans/Encoder$1.h b/libjava/java/beans/Encoder$1.h new file mode 100644 index 000000000..703ee873c --- /dev/null +++ b/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/libjava/java/beans/Encoder.h b/libjava/java/beans/Encoder.h new file mode 100644 index 000000000..345e98ca4 --- /dev/null +++ b/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/libjava/java/beans/EventHandler.h b/libjava/java/beans/EventHandler.h new file mode 100644 index 000000000..b97ac5104 --- /dev/null +++ b/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/libjava/java/beans/EventSetDescriptor.h b/libjava/java/beans/EventSetDescriptor.h new file mode 100644 index 000000000..fb99b607b --- /dev/null +++ b/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/libjava/java/beans/ExceptionListener.h b/libjava/java/beans/ExceptionListener.h new file mode 100644 index 000000000..4356957fc --- /dev/null +++ b/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/libjava/java/beans/ExplicitInfo.h b/libjava/java/beans/ExplicitInfo.h new file mode 100644 index 000000000..16860b43e --- /dev/null +++ b/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/libjava/java/beans/Expression.h b/libjava/java/beans/Expression.h new file mode 100644 index 000000000..50fce1529 --- /dev/null +++ b/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/libjava/java/beans/FeatureDescriptor.h b/libjava/java/beans/FeatureDescriptor.h new file mode 100644 index 000000000..8f5f9327d --- /dev/null +++ b/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/libjava/java/beans/IndexedPropertyChangeEvent.h b/libjava/java/beans/IndexedPropertyChangeEvent.h new file mode 100644 index 000000000..85082d12e --- /dev/null +++ b/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/libjava/java/beans/IndexedPropertyDescriptor.h b/libjava/java/beans/IndexedPropertyDescriptor.h new file mode 100644 index 000000000..843eb1b94 --- /dev/null +++ b/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/libjava/java/beans/IntrospectionException.h b/libjava/java/beans/IntrospectionException.h new file mode 100644 index 000000000..87df2fd72 --- /dev/null +++ b/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/libjava/java/beans/Introspector.h b/libjava/java/beans/Introspector.h new file mode 100644 index 000000000..989c51333 --- /dev/null +++ b/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/libjava/java/beans/MethodDescriptor.h b/libjava/java/beans/MethodDescriptor.h new file mode 100644 index 000000000..cf3ca4acf --- /dev/null +++ b/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/libjava/java/beans/ParameterDescriptor.h b/libjava/java/beans/ParameterDescriptor.h new file mode 100644 index 000000000..66e201e14 --- /dev/null +++ b/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/libjava/java/beans/PersistenceDelegate.h b/libjava/java/beans/PersistenceDelegate.h new file mode 100644 index 000000000..93b7865b9 --- /dev/null +++ b/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/libjava/java/beans/PropertyChangeEvent.h b/libjava/java/beans/PropertyChangeEvent.h new file mode 100644 index 000000000..6ea915515 --- /dev/null +++ b/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/libjava/java/beans/PropertyChangeListener.h b/libjava/java/beans/PropertyChangeListener.h new file mode 100644 index 000000000..c72b2be73 --- /dev/null +++ b/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/libjava/java/beans/PropertyChangeListenerProxy.h b/libjava/java/beans/PropertyChangeListenerProxy.h new file mode 100644 index 000000000..14cce8e3c --- /dev/null +++ b/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/libjava/java/beans/PropertyChangeSupport.h b/libjava/java/beans/PropertyChangeSupport.h new file mode 100644 index 000000000..ae037a893 --- /dev/null +++ b/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/libjava/java/beans/PropertyDescriptor.h b/libjava/java/beans/PropertyDescriptor.h new file mode 100644 index 000000000..242c3d5db --- /dev/null +++ b/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/libjava/java/beans/PropertyEditor.h b/libjava/java/beans/PropertyEditor.h new file mode 100644 index 000000000..4fab8c8d6 --- /dev/null +++ b/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/libjava/java/beans/PropertyEditorManager.h b/libjava/java/beans/PropertyEditorManager.h new file mode 100644 index 000000000..88985b3b8 --- /dev/null +++ b/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/libjava/java/beans/PropertyEditorSupport.h b/libjava/java/beans/PropertyEditorSupport.h new file mode 100644 index 000000000..62500511a --- /dev/null +++ b/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/libjava/java/beans/PropertyVetoException.h b/libjava/java/beans/PropertyVetoException.h new file mode 100644 index 000000000..7de400634 --- /dev/null +++ b/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/libjava/java/beans/SimpleBeanInfo.h b/libjava/java/beans/SimpleBeanInfo.h new file mode 100644 index 000000000..ea77e4743 --- /dev/null +++ b/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/libjava/java/beans/Statement.h b/libjava/java/beans/Statement.h new file mode 100644 index 000000000..3df8477b4 --- /dev/null +++ b/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/libjava/java/beans/VetoableChangeListener.h b/libjava/java/beans/VetoableChangeListener.h new file mode 100644 index 000000000..2bf9d1d07 --- /dev/null +++ b/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/libjava/java/beans/VetoableChangeListenerProxy.h b/libjava/java/beans/VetoableChangeListenerProxy.h new file mode 100644 index 000000000..f713ac432 --- /dev/null +++ b/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/libjava/java/beans/VetoableChangeSupport.h b/libjava/java/beans/VetoableChangeSupport.h new file mode 100644 index 000000000..9dfdbc589 --- /dev/null +++ b/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/libjava/java/beans/Visibility.h b/libjava/java/beans/Visibility.h new file mode 100644 index 000000000..df5f7a628 --- /dev/null +++ b/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/libjava/java/beans/XMLDecoder.h b/libjava/java/beans/XMLDecoder.h new file mode 100644 index 000000000..f5055c4f6 --- /dev/null +++ b/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/libjava/java/beans/XMLEncoder.h b/libjava/java/beans/XMLEncoder.h new file mode 100644 index 000000000..3a6e01df1 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContext.h b/libjava/java/beans/beancontext/BeanContext.h new file mode 100644 index 000000000..e9935e0ea --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextChild.h b/libjava/java/beans/beancontext/BeanContextChild.h new file mode 100644 index 000000000..0e1c8685f --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextChildComponentProxy.h b/libjava/java/beans/beancontext/BeanContextChildComponentProxy.h new file mode 100644 index 000000000..7e515669f --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextChildSupport.h b/libjava/java/beans/beancontext/BeanContextChildSupport.h new file mode 100644 index 000000000..646217b30 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextContainerProxy.h b/libjava/java/beans/beancontext/BeanContextContainerProxy.h new file mode 100644 index 000000000..c3574f5db --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextEvent.h b/libjava/java/beans/beancontext/BeanContextEvent.h new file mode 100644 index 000000000..a74c1da04 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextMembershipEvent.h b/libjava/java/beans/beancontext/BeanContextMembershipEvent.h new file mode 100644 index 000000000..8b6c933bb --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextMembershipListener.h b/libjava/java/beans/beancontext/BeanContextMembershipListener.h new file mode 100644 index 000000000..89efed826 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextProxy.h b/libjava/java/beans/beancontext/BeanContextProxy.h new file mode 100644 index 000000000..3d18c0a81 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h b/libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h new file mode 100644 index 000000000..7b69fe82b --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServiceProvider.h b/libjava/java/beans/beancontext/BeanContextServiceProvider.h new file mode 100644 index 000000000..937bd5dec --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h b/libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h new file mode 100644 index 000000000..952edd1e0 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h b/libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h new file mode 100644 index 000000000..700da3ac4 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h b/libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h new file mode 100644 index 000000000..c74f48a08 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServices.h b/libjava/java/beans/beancontext/BeanContextServices.h new file mode 100644 index 000000000..fd6741976 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesListener.h b/libjava/java/beans/beancontext/BeanContextServicesListener.h new file mode 100644 index 000000000..2be375349 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h new file mode 100644 index 000000000..d74827c13 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h new file mode 100644 index 000000000..0453cc16c --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h new file mode 100644 index 000000000..999ce912f --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h new file mode 100644 index 000000000..64fb22766 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h new file mode 100644 index 000000000..0f6a32ea1 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h new file mode 100644 index 000000000..24465df70 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextServicesSupport.h b/libjava/java/beans/beancontext/BeanContextServicesSupport.h new file mode 100644 index 000000000..f16583166 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h b/libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h new file mode 100644 index 000000000..40720fb57 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h b/libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h new file mode 100644 index 000000000..551697939 --- /dev/null +++ b/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/libjava/java/beans/beancontext/BeanContextSupport.h b/libjava/java/beans/beancontext/BeanContextSupport.h new file mode 100644 index 000000000..36678b520 --- /dev/null +++ b/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/libjava/java/io/BufferedInputStream.h b/libjava/java/io/BufferedInputStream.h new file mode 100644 index 000000000..d2851da73 --- /dev/null +++ b/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/libjava/java/io/BufferedInputStream.java b/libjava/java/io/BufferedInputStream.java new file mode 100644 index 000000000..36e58f636 --- /dev/null +++ b/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/libjava/java/io/BufferedOutputStream.h b/libjava/java/io/BufferedOutputStream.h new file mode 100644 index 000000000..ce34567c6 --- /dev/null +++ b/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/libjava/java/io/BufferedReader.h b/libjava/java/io/BufferedReader.h new file mode 100644 index 000000000..110477377 --- /dev/null +++ b/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/libjava/java/io/BufferedWriter.h b/libjava/java/io/BufferedWriter.h new file mode 100644 index 000000000..68cfa095e --- /dev/null +++ b/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/libjava/java/io/ByteArrayInputStream.h b/libjava/java/io/ByteArrayInputStream.h new file mode 100644 index 000000000..85411b3e0 --- /dev/null +++ b/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/libjava/java/io/ByteArrayOutputStream.h b/libjava/java/io/ByteArrayOutputStream.h new file mode 100644 index 000000000..907c3d4ec --- /dev/null +++ b/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/libjava/java/io/CharArrayReader.h b/libjava/java/io/CharArrayReader.h new file mode 100644 index 000000000..f8b8f5d4c --- /dev/null +++ b/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/libjava/java/io/CharArrayWriter.h b/libjava/java/io/CharArrayWriter.h new file mode 100644 index 000000000..ee3f559a4 --- /dev/null +++ b/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/libjava/java/io/CharConversionException.h b/libjava/java/io/CharConversionException.h new file mode 100644 index 000000000..95034a89b --- /dev/null +++ b/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/libjava/java/io/Closeable.h b/libjava/java/io/Closeable.h new file mode 100644 index 000000000..4668f5089 --- /dev/null +++ b/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/libjava/java/io/DataInput.h b/libjava/java/io/DataInput.h new file mode 100644 index 000000000..9cb4952ff --- /dev/null +++ b/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/libjava/java/io/DataInputStream.h b/libjava/java/io/DataInputStream.h new file mode 100644 index 000000000..12371ff95 --- /dev/null +++ b/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/libjava/java/io/DataOutput.h b/libjava/java/io/DataOutput.h new file mode 100644 index 000000000..f18f5e454 --- /dev/null +++ b/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/libjava/java/io/DataOutputStream.h b/libjava/java/io/DataOutputStream.h new file mode 100644 index 000000000..aebd234db --- /dev/null +++ b/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/libjava/java/io/DeleteFileHelper$1.h b/libjava/java/io/DeleteFileHelper$1.h new file mode 100644 index 000000000..79c20f3d5 --- /dev/null +++ b/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/libjava/java/io/DeleteFileHelper.h b/libjava/java/io/DeleteFileHelper.h new file mode 100644 index 000000000..9b61c3aab --- /dev/null +++ b/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/libjava/java/io/EOFException.h b/libjava/java/io/EOFException.h new file mode 100644 index 000000000..be4b255e7 --- /dev/null +++ b/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/libjava/java/io/Externalizable.h b/libjava/java/io/Externalizable.h new file mode 100644 index 000000000..b74cf0860 --- /dev/null +++ b/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/libjava/java/io/File.h b/libjava/java/io/File.h new file mode 100644 index 000000000..b53f6ab7d --- /dev/null +++ b/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/libjava/java/io/File.java b/libjava/java/io/File.java new file mode 100644 index 000000000..0c4fb6932 --- /dev/null +++ b/libjava/java/io/File.java @@ -0,0 +1,1579 @@ +/* File.java -- Class representing a file on disk + 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.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); + // On OSF1 V5.0, `stat' is a macro. It is easiest to use the name + // `_stat' instead. We do the same thing for `_access' just in + // case. + 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/libjava/java/io/FileDescriptor.h b/libjava/java/io/FileDescriptor.h new file mode 100644 index 000000000..a3863f331 --- /dev/null +++ b/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/libjava/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java new file mode 100644 index 000000000..d300c9cb6 --- /dev/null +++ b/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/libjava/java/io/FileFilter.h b/libjava/java/io/FileFilter.h new file mode 100644 index 000000000..e90e43795 --- /dev/null +++ b/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/libjava/java/io/FileInputStream.h b/libjava/java/io/FileInputStream.h new file mode 100644 index 000000000..01efe5620 --- /dev/null +++ b/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/libjava/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java new file mode 100644 index 000000000..8ca38b02f --- /dev/null +++ b/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/libjava/java/io/FileNotFoundException.h b/libjava/java/io/FileNotFoundException.h new file mode 100644 index 000000000..794160dd5 --- /dev/null +++ b/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/libjava/java/io/FileOutputStream.h b/libjava/java/io/FileOutputStream.h new file mode 100644 index 000000000..b2bf0d942 --- /dev/null +++ b/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/libjava/java/io/FileOutputStream.java b/libjava/java/io/FileOutputStream.java new file mode 100644 index 000000000..10ea6b536 --- /dev/null +++ b/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/libjava/java/io/FilePermission.h b/libjava/java/io/FilePermission.h new file mode 100644 index 000000000..bace152f0 --- /dev/null +++ b/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/libjava/java/io/FileReader.h b/libjava/java/io/FileReader.h new file mode 100644 index 000000000..4d1fba212 --- /dev/null +++ b/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/libjava/java/io/FileWriter.h b/libjava/java/io/FileWriter.h new file mode 100644 index 000000000..b75ea008c --- /dev/null +++ b/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/libjava/java/io/FilenameFilter.h b/libjava/java/io/FilenameFilter.h new file mode 100644 index 000000000..2337ed327 --- /dev/null +++ b/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/libjava/java/io/FilterInputStream.h b/libjava/java/io/FilterInputStream.h new file mode 100644 index 000000000..1116639c1 --- /dev/null +++ b/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/libjava/java/io/FilterOutputStream.h b/libjava/java/io/FilterOutputStream.h new file mode 100644 index 000000000..571b255d6 --- /dev/null +++ b/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/libjava/java/io/FilterReader.h b/libjava/java/io/FilterReader.h new file mode 100644 index 000000000..52a1995fe --- /dev/null +++ b/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/libjava/java/io/FilterWriter.h b/libjava/java/io/FilterWriter.h new file mode 100644 index 000000000..146f01563 --- /dev/null +++ b/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/libjava/java/io/Flushable.h b/libjava/java/io/Flushable.h new file mode 100644 index 000000000..2acd25dec --- /dev/null +++ b/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/libjava/java/io/IOException.h b/libjava/java/io/IOException.h new file mode 100644 index 000000000..bdd92e0e4 --- /dev/null +++ b/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/libjava/java/io/InputStream.h b/libjava/java/io/InputStream.h new file mode 100644 index 000000000..263af2c81 --- /dev/null +++ b/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/libjava/java/io/InputStreamReader.h b/libjava/java/io/InputStreamReader.h new file mode 100644 index 000000000..46050d5c3 --- /dev/null +++ b/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/libjava/java/io/InputStreamReader.java b/libjava/java/io/InputStreamReader.java new file mode 100644 index 000000000..91568c5cc --- /dev/null +++ b/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/libjava/java/io/InterruptedIOException.h b/libjava/java/io/InterruptedIOException.h new file mode 100644 index 000000000..40922cd79 --- /dev/null +++ b/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/libjava/java/io/InvalidClassException.h b/libjava/java/io/InvalidClassException.h new file mode 100644 index 000000000..6216a9ad9 --- /dev/null +++ b/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/libjava/java/io/InvalidObjectException.h b/libjava/java/io/InvalidObjectException.h new file mode 100644 index 000000000..550dd439d --- /dev/null +++ b/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/libjava/java/io/LineNumberInputStream.h b/libjava/java/io/LineNumberInputStream.h new file mode 100644 index 000000000..676893d51 --- /dev/null +++ b/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/libjava/java/io/LineNumberReader.h b/libjava/java/io/LineNumberReader.h new file mode 100644 index 000000000..33564c949 --- /dev/null +++ b/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/libjava/java/io/NotActiveException.h b/libjava/java/io/NotActiveException.h new file mode 100644 index 000000000..9020e4e03 --- /dev/null +++ b/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/libjava/java/io/NotSerializableException.h b/libjava/java/io/NotSerializableException.h new file mode 100644 index 000000000..55699b406 --- /dev/null +++ b/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/libjava/java/io/ObjectInput.h b/libjava/java/io/ObjectInput.h new file mode 100644 index 000000000..7cfac2060 --- /dev/null +++ b/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/libjava/java/io/ObjectInputStream$1.h b/libjava/java/io/ObjectInputStream$1.h new file mode 100644 index 000000000..364cab09c --- /dev/null +++ b/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/libjava/java/io/ObjectInputStream$2.h b/libjava/java/io/ObjectInputStream$2.h new file mode 100644 index 000000000..22124d2c3 --- /dev/null +++ b/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/libjava/java/io/ObjectInputStream$GetField.h b/libjava/java/io/ObjectInputStream$GetField.h new file mode 100644 index 000000000..d61509c4a --- /dev/null +++ b/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/libjava/java/io/ObjectInputStream$ValidatorAndPriority.h b/libjava/java/io/ObjectInputStream$ValidatorAndPriority.h new file mode 100644 index 000000000..02e6ae623 --- /dev/null +++ b/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/libjava/java/io/ObjectInputStream.h b/libjava/java/io/ObjectInputStream.h new file mode 100644 index 000000000..ab7c47d2b --- /dev/null +++ b/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/libjava/java/io/ObjectInputValidation.h b/libjava/java/io/ObjectInputValidation.h new file mode 100644 index 000000000..6b0df7dfc --- /dev/null +++ b/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/libjava/java/io/ObjectOutput.h b/libjava/java/io/ObjectOutput.h new file mode 100644 index 000000000..ec45c0193 --- /dev/null +++ b/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/libjava/java/io/ObjectOutputStream$1.h b/libjava/java/io/ObjectOutputStream$1.h new file mode 100644 index 000000000..6c17fe723 --- /dev/null +++ b/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/libjava/java/io/ObjectOutputStream$PutField.h b/libjava/java/io/ObjectOutputStream$PutField.h new file mode 100644 index 000000000..790bb0e09 --- /dev/null +++ b/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/libjava/java/io/ObjectOutputStream.h b/libjava/java/io/ObjectOutputStream.h new file mode 100644 index 000000000..fe6f88f11 --- /dev/null +++ b/libjava/java/io/ObjectOutputStream.h @@ -0,0 +1,126 @@ + +// 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 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/libjava/java/io/ObjectStreamClass$1.h b/libjava/java/io/ObjectStreamClass$1.h new file mode 100644 index 000000000..e5c266a3b --- /dev/null +++ b/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/libjava/java/io/ObjectStreamClass$2.h b/libjava/java/io/ObjectStreamClass$2.h new file mode 100644 index 000000000..16d0499f0 --- /dev/null +++ b/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/libjava/java/io/ObjectStreamClass$InterfaceComparator.h b/libjava/java/io/ObjectStreamClass$InterfaceComparator.h new file mode 100644 index 000000000..7faddc7d7 --- /dev/null +++ b/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/libjava/java/io/ObjectStreamClass$MemberComparator.h b/libjava/java/io/ObjectStreamClass$MemberComparator.h new file mode 100644 index 000000000..81a8ca486 --- /dev/null +++ b/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/libjava/java/io/ObjectStreamClass.h b/libjava/java/io/ObjectStreamClass.h new file mode 100644 index 000000000..34514534b --- /dev/null +++ b/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/libjava/java/io/ObjectStreamConstants.h b/libjava/java/io/ObjectStreamConstants.h new file mode 100644 index 000000000..f4e950873 --- /dev/null +++ b/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/libjava/java/io/ObjectStreamException.h b/libjava/java/io/ObjectStreamException.h new file mode 100644 index 000000000..4ce583351 --- /dev/null +++ b/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/libjava/java/io/ObjectStreamField$1.h b/libjava/java/io/ObjectStreamField$1.h new file mode 100644 index 000000000..e5e897a0a --- /dev/null +++ b/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/libjava/java/io/ObjectStreamField.h b/libjava/java/io/ObjectStreamField.h new file mode 100644 index 000000000..5b3116fc1 --- /dev/null +++ b/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/libjava/java/io/OptionalDataException.h b/libjava/java/io/OptionalDataException.h new file mode 100644 index 000000000..b12a83909 --- /dev/null +++ b/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/libjava/java/io/OutputStream.h b/libjava/java/io/OutputStream.h new file mode 100644 index 000000000..28f158511 --- /dev/null +++ b/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/libjava/java/io/OutputStreamWriter.h b/libjava/java/io/OutputStreamWriter.h new file mode 100644 index 000000000..8ad6c8e69 --- /dev/null +++ b/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/libjava/java/io/OutputStreamWriter.java b/libjava/java/io/OutputStreamWriter.java new file mode 100644 index 000000000..aac1684c6 --- /dev/null +++ b/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/libjava/java/io/PipedInputStream.h b/libjava/java/io/PipedInputStream.h new file mode 100644 index 000000000..4055fa4ca --- /dev/null +++ b/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/libjava/java/io/PipedOutputStream.h b/libjava/java/io/PipedOutputStream.h new file mode 100644 index 000000000..79e069e40 --- /dev/null +++ b/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/libjava/java/io/PipedReader.h b/libjava/java/io/PipedReader.h new file mode 100644 index 000000000..1eac2f79e --- /dev/null +++ b/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/libjava/java/io/PipedWriter.h b/libjava/java/io/PipedWriter.h new file mode 100644 index 000000000..d1aac55ae --- /dev/null +++ b/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/libjava/java/io/PrintStream.h b/libjava/java/io/PrintStream.h new file mode 100644 index 000000000..6247ba829 --- /dev/null +++ b/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/libjava/java/io/PrintStream.java b/libjava/java/io/PrintStream.java new file mode 100644 index 000000000..be2861905 --- /dev/null +++ b/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/libjava/java/io/PrintWriter.h b/libjava/java/io/PrintWriter.h new file mode 100644 index 000000000..cf1fb324a --- /dev/null +++ b/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/libjava/java/io/PushbackInputStream.h b/libjava/java/io/PushbackInputStream.h new file mode 100644 index 000000000..032bfce98 --- /dev/null +++ b/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/libjava/java/io/PushbackReader.h b/libjava/java/io/PushbackReader.h new file mode 100644 index 000000000..8d1c2ee5e --- /dev/null +++ b/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/libjava/java/io/RandomAccessFile.h b/libjava/java/io/RandomAccessFile.h new file mode 100644 index 000000000..6b6076dfa --- /dev/null +++ b/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/libjava/java/io/RandomAccessFile.java b/libjava/java/io/RandomAccessFile.java new file mode 100644 index 000000000..d719a1e3b --- /dev/null +++ b/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 & 0xFF) << 8) | (byte2 & 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 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) + + * ((byte3 & 0xFF) << 8) + (byte4 & 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 & 0xFF) << 56) + (((long)byte2 & 0xFF) << 48) + + * (((long)byte3 & 0xFF) << 40) + (((long)byte4 & 0xFF) << 32) + + * (((long)byte5 & 0xFF) << 24) + (((long)byte6 & 0xFF) << 16) + + * (((long)byte7 & 0xFF) << 8) + ((long)byte9 & 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 & 0xFF) << 8) | (byte2 & 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 & 0xFF) << 8) + (byte2 & 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>\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>\u0001</code> to <code>\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>\u0080</code> to <code>\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>\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/libjava/java/io/Reader.h b/libjava/java/io/Reader.h new file mode 100644 index 000000000..678bc9181 --- /dev/null +++ b/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/libjava/java/io/SequenceInputStream.h b/libjava/java/io/SequenceInputStream.h new file mode 100644 index 000000000..f5baa7d10 --- /dev/null +++ b/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/libjava/java/io/Serializable.h b/libjava/java/io/Serializable.h new file mode 100644 index 000000000..12c36e55c --- /dev/null +++ b/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/libjava/java/io/SerializablePermission.h b/libjava/java/io/SerializablePermission.h new file mode 100644 index 000000000..04c3dcee4 --- /dev/null +++ b/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/libjava/java/io/StreamCorruptedException.h b/libjava/java/io/StreamCorruptedException.h new file mode 100644 index 000000000..79b0d02a9 --- /dev/null +++ b/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/libjava/java/io/StreamTokenizer.h b/libjava/java/io/StreamTokenizer.h new file mode 100644 index 000000000..ad9496cd4 --- /dev/null +++ b/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/libjava/java/io/StringBufferInputStream.h b/libjava/java/io/StringBufferInputStream.h new file mode 100644 index 000000000..077bc4d28 --- /dev/null +++ b/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/libjava/java/io/StringReader.h b/libjava/java/io/StringReader.h new file mode 100644 index 000000000..57a2d3f80 --- /dev/null +++ b/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/libjava/java/io/StringWriter.h b/libjava/java/io/StringWriter.h new file mode 100644 index 000000000..c2933e7af --- /dev/null +++ b/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/libjava/java/io/SyncFailedException.h b/libjava/java/io/SyncFailedException.h new file mode 100644 index 000000000..1088ca2dd --- /dev/null +++ b/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/libjava/java/io/UTFDataFormatException.h b/libjava/java/io/UTFDataFormatException.h new file mode 100644 index 000000000..48f8cf7a6 --- /dev/null +++ b/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/libjava/java/io/UnsupportedEncodingException.h b/libjava/java/io/UnsupportedEncodingException.h new file mode 100644 index 000000000..6291af255 --- /dev/null +++ b/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/libjava/java/io/VMObjectInputStream.h b/libjava/java/io/VMObjectInputStream.h new file mode 100644 index 000000000..307dd551f --- /dev/null +++ b/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/libjava/java/io/VMObjectInputStream.java b/libjava/java/io/VMObjectInputStream.java new file mode 100644 index 000000000..77bdf7170 --- /dev/null +++ b/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/libjava/java/io/VMObjectStreamClass.h b/libjava/java/io/VMObjectStreamClass.h new file mode 100644 index 000000000..5f2ef2cb0 --- /dev/null +++ b/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/libjava/java/io/VMObjectStreamClass.java b/libjava/java/io/VMObjectStreamClass.java new file mode 100644 index 000000000..3900855ab --- /dev/null +++ b/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/libjava/java/io/WriteAbortedException.h b/libjava/java/io/WriteAbortedException.h new file mode 100644 index 000000000..712c04d0f --- /dev/null +++ b/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/libjava/java/io/Writer.h b/libjava/java/io/Writer.h new file mode 100644 index 000000000..148501ac6 --- /dev/null +++ b/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/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc new file mode 100644 index 000000000..5b6ec8458 --- /dev/null +++ b/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 + 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/libjava/java/io/natFileWin32.cc b/libjava/java/io/natFileWin32.cc new file mode 100644 index 000000000..316977b08 --- /dev/null +++ b/libjava/java/io/natFileWin32.cc @@ -0,0 +1,374 @@ +// natFileWin32.cc - Native part of File class for Win32. + +/* Copyright (C) 1998, 1999, 2002, 2003 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/libjava/java/io/natVMObjectInputStream.cc b/libjava/java/io/natVMObjectInputStream.cc new file mode 100644 index 000000000..eccf0eb02 --- /dev/null +++ b/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/libjava/java/io/natVMObjectStreamClass.cc b/libjava/java/io/natVMObjectStreamClass.cc new file mode 100644 index 000000000..847b540f0 --- /dev/null +++ b/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/libjava/java/lang/AbstractMethodError.h b/libjava/java/lang/AbstractMethodError.h new file mode 100644 index 000000000..92a757da2 --- /dev/null +++ b/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/libjava/java/lang/AbstractStringBuffer.h b/libjava/java/lang/AbstractStringBuffer.h new file mode 100644 index 000000000..256004c24 --- /dev/null +++ b/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/libjava/java/lang/AbstractStringBuffer.java b/libjava/java/lang/AbstractStringBuffer.java new file mode 100644 index 000000000..fe128b8af --- /dev/null +++ b/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 >= 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 >= 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 >= 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 >= 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/libjava/java/lang/Appendable.h b/libjava/java/lang/Appendable.h new file mode 100644 index 000000000..d304ff9cf --- /dev/null +++ b/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/libjava/java/lang/ArithmeticException.h b/libjava/java/lang/ArithmeticException.h new file mode 100644 index 000000000..8d784adb7 --- /dev/null +++ b/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/libjava/java/lang/ArrayIndexOutOfBoundsException.h b/libjava/java/lang/ArrayIndexOutOfBoundsException.h new file mode 100644 index 000000000..8e65f70f7 --- /dev/null +++ b/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/libjava/java/lang/ArrayStoreException.h b/libjava/java/lang/ArrayStoreException.h new file mode 100644 index 000000000..8e120d11c --- /dev/null +++ b/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/libjava/java/lang/AssertionError.h b/libjava/java/lang/AssertionError.h new file mode 100644 index 000000000..0154c04b3 --- /dev/null +++ b/libjava/java/lang/AssertionError.h @@ -0,0 +1,29 @@ + +// 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); +private: + static const jlong serialVersionUID = -5013299493970297370LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_AssertionError__ diff --git a/libjava/java/lang/Boolean.h b/libjava/java/lang/Boolean.h new file mode 100644 index 000000000..0ead5b527 --- /dev/null +++ b/libjava/java/lang/Boolean.h @@ -0,0 +1,40 @@ + +// 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 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/libjava/java/lang/Byte.h b/libjava/java/lang/Byte.h new file mode 100644 index 000000000..fc9e3b33f --- /dev/null +++ b/libjava/java/lang/Byte.h @@ -0,0 +1,51 @@ + +// 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 *); + 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/libjava/java/lang/CharSequence.h b/libjava/java/lang/CharSequence.h new file mode 100644 index 000000000..1348b564d --- /dev/null +++ b/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/libjava/java/lang/Character$Subset.h b/libjava/java/lang/Character$Subset.h new file mode 100644 index 000000000..93f2ba1cb --- /dev/null +++ b/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/libjava/java/lang/Character$UnicodeBlock$NameType.h b/libjava/java/lang/Character$UnicodeBlock$NameType.h new file mode 100644 index 000000000..2b83115b0 --- /dev/null +++ b/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/libjava/java/lang/Character$UnicodeBlock.h b/libjava/java/lang/Character$UnicodeBlock.h new file mode 100644 index 000000000..b32f2121e --- /dev/null +++ b/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/libjava/java/lang/Character.h b/libjava/java/lang/Character.h new file mode 100644 index 000000000..a21447098 --- /dev/null +++ b/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/libjava/java/lang/Character.java b/libjava/java/lang/Character.java new file mode 100644 index 000000000..2edf72e67 --- /dev/null +++ b/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 >= 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 >= 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 >= + * limit, or if limit is negative or >= 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 >= 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 > start or > + * the length of the array, or if limit is negative or >= 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 >= 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/libjava/java/lang/Class$1.h b/libjava/java/lang/Class$1.h new file mode 100644 index 000000000..7c18cbb4e --- /dev/null +++ b/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/libjava/java/lang/Class.h b/libjava/java/lang/Class.h new file mode 100644 index 000000000..d4a918483 --- /dev/null +++ b/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 _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID, + jboolean); +jobject _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 (::_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/libjava/java/lang/Class.java b/libjava/java/lang/Class.java new file mode 100644 index 000000000..a4e8ee592 --- /dev/null +++ b/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>[<signature format>;</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 "<init>" in the class file) and class initializers + * (name "<clinit>") 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 "<init>" in the class file) and class + * initializers (name "<clinit>") 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: <dotted name> + * class or interface, as element type: L<dotted name>; + * </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<Object></code>, and a dynamic type of + * <code>Class<Rectangle></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<Shape></code>, to retain + * the same instance but with the type + * <code>Class<? extends Shape></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/libjava/java/lang/ClassCastException.h b/libjava/java/lang/ClassCastException.h new file mode 100644 index 000000000..55c0bcc88 --- /dev/null +++ b/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/libjava/java/lang/ClassCircularityError.h b/libjava/java/lang/ClassCircularityError.h new file mode 100644 index 000000000..81d6f93ad --- /dev/null +++ b/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/libjava/java/lang/ClassFormatError.h b/libjava/java/lang/ClassFormatError.h new file mode 100644 index 000000000..ee6664f56 --- /dev/null +++ b/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/libjava/java/lang/ClassLoader$AnnotationsKey.h b/libjava/java/lang/ClassLoader$AnnotationsKey.h new file mode 100644 index 000000000..1a395b07b --- /dev/null +++ b/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/libjava/java/lang/ClassLoader.h b/libjava/java/lang/ClassLoader.h new file mode 100644 index 000000000..5112eab98 --- /dev/null +++ b/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/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java new file mode 100644 index 000000000..d55573095 --- /dev/null +++ b/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/libjava/java/lang/ClassNotFoundException.h b/libjava/java/lang/ClassNotFoundException.h new file mode 100644 index 000000000..c0ab78158 --- /dev/null +++ b/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/Exception.h> + +class java::lang::ClassNotFoundException : public ::java::lang::Exception +{ + +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::Exception)))) ex; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_ClassNotFoundException__ diff --git a/libjava/java/lang/CloneNotSupportedException.h b/libjava/java/lang/CloneNotSupportedException.h new file mode 100644 index 000000000..19fa2124a --- /dev/null +++ b/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/libjava/java/lang/Cloneable.h b/libjava/java/lang/Cloneable.h new file mode 100644 index 000000000..ff5db98d0 --- /dev/null +++ b/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/libjava/java/lang/Comparable.h b/libjava/java/lang/Comparable.h new file mode 100644 index 000000000..b594e2ddc --- /dev/null +++ b/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/libjava/java/lang/Compiler.h b/libjava/java/lang/Compiler.h new file mode 100644 index 000000000..e21d90300 --- /dev/null +++ b/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/libjava/java/lang/Deprecated.h b/libjava/java/lang/Deprecated.h new file mode 100644 index 000000000..6ab34f11a --- /dev/null +++ b/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/libjava/java/lang/Double.h b/libjava/java/lang/Double.h new file mode 100644 index 000000000..54eb42b50 --- /dev/null +++ b/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/libjava/java/lang/EcosProcess.h b/libjava/java/lang/EcosProcess.h new file mode 100644 index 000000000..a0173c30a --- /dev/null +++ b/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/libjava/java/lang/EcosProcess.java b/libjava/java/lang/EcosProcess.java new file mode 100644 index 000000000..79c2f12a5 --- /dev/null +++ b/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/libjava/java/lang/Enum.h b/libjava/java/lang/Enum.h new file mode 100644 index 000000000..15ccb1615 --- /dev/null +++ b/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/libjava/java/lang/EnumConstantNotPresentException.h b/libjava/java/lang/EnumConstantNotPresentException.h new file mode 100644 index 000000000..b3bc11b28 --- /dev/null +++ b/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/libjava/java/lang/Error.h b/libjava/java/lang/Error.h new file mode 100644 index 000000000..9cb6019b4 --- /dev/null +++ b/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/libjava/java/lang/Exception.h b/libjava/java/lang/Exception.h new file mode 100644 index 000000000..9f3ab43a5 --- /dev/null +++ b/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/libjava/java/lang/ExceptionInInitializerError.h b/libjava/java/lang/ExceptionInInitializerError.h new file mode 100644 index 000000000..89fbaee7c --- /dev/null +++ b/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/libjava/java/lang/Float.h b/libjava/java/lang/Float.h new file mode 100644 index 000000000..603da6dd1 --- /dev/null +++ b/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/libjava/java/lang/IllegalAccessError.h b/libjava/java/lang/IllegalAccessError.h new file mode 100644 index 000000000..12b8747c4 --- /dev/null +++ b/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/libjava/java/lang/IllegalAccessException.h b/libjava/java/lang/IllegalAccessException.h new file mode 100644 index 000000000..c09174756 --- /dev/null +++ b/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/Exception.h> + +class java::lang::IllegalAccessException : public ::java::lang::Exception +{ + +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/libjava/java/lang/IllegalArgumentException.h b/libjava/java/lang/IllegalArgumentException.h new file mode 100644 index 000000000..187e430c1 --- /dev/null +++ b/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/libjava/java/lang/IllegalMonitorStateException.h b/libjava/java/lang/IllegalMonitorStateException.h new file mode 100644 index 000000000..ad9cb5902 --- /dev/null +++ b/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/libjava/java/lang/IllegalStateException.h b/libjava/java/lang/IllegalStateException.h new file mode 100644 index 000000000..e79bced81 --- /dev/null +++ b/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/libjava/java/lang/IllegalThreadStateException.h b/libjava/java/lang/IllegalThreadStateException.h new file mode 100644 index 000000000..066eb92cd --- /dev/null +++ b/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/libjava/java/lang/IncompatibleClassChangeError.h b/libjava/java/lang/IncompatibleClassChangeError.h new file mode 100644 index 000000000..ca4099194 --- /dev/null +++ b/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/libjava/java/lang/IndexOutOfBoundsException.h b/libjava/java/lang/IndexOutOfBoundsException.h new file mode 100644 index 000000000..4cd4184a7 --- /dev/null +++ b/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/libjava/java/lang/InheritableThreadLocal.h b/libjava/java/lang/InheritableThreadLocal.h new file mode 100644 index 000000000..9caf6f3df --- /dev/null +++ b/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/libjava/java/lang/InstantiationError.h b/libjava/java/lang/InstantiationError.h new file mode 100644 index 000000000..4b817d2b3 --- /dev/null +++ b/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/libjava/java/lang/InstantiationException.h b/libjava/java/lang/InstantiationException.h new file mode 100644 index 000000000..805ab3c70 --- /dev/null +++ b/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/Exception.h> + +class java::lang::InstantiationException : public ::java::lang::Exception +{ + +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/libjava/java/lang/Integer.h b/libjava/java/lang/Integer.h new file mode 100644 index 000000000..f1bd11bdb --- /dev/null +++ b/libjava/java/lang/Integer.h @@ -0,0 +1,77 @@ + +// 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 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/libjava/java/lang/InternalError.h b/libjava/java/lang/InternalError.h new file mode 100644 index 000000000..b0477bbe6 --- /dev/null +++ b/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/libjava/java/lang/InterruptedException.h b/libjava/java/lang/InterruptedException.h new file mode 100644 index 000000000..c452de6b5 --- /dev/null +++ b/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/libjava/java/lang/Iterable.h b/libjava/java/lang/Iterable.h new file mode 100644 index 000000000..3bdb2543b --- /dev/null +++ b/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/libjava/java/lang/LinkageError.h b/libjava/java/lang/LinkageError.h new file mode 100644 index 000000000..4368d8b9f --- /dev/null +++ b/libjava/java/lang/LinkageError.h @@ -0,0 +1,23 @@ + +// 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 *); +private: + static const jlong serialVersionUID = 3579600108157160122LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_LinkageError__ diff --git a/libjava/java/lang/Long.h b/libjava/java/lang/Long.h new file mode 100644 index 000000000..60c0d2437 --- /dev/null +++ b/libjava/java/lang/Long.h @@ -0,0 +1,77 @@ + +// 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 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/libjava/java/lang/Math.h b/libjava/java/lang/Math.h new file mode 100644 index 000000000..32707e9f8 --- /dev/null +++ b/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/libjava/java/lang/Math.java b/libjava/java/lang/Math.java new file mode 100644 index 000000000..836b8bd86 --- /dev/null +++ b/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) + * << 1) >>> 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 >= <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 <= <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/libjava/java/lang/NegativeArraySizeException.h b/libjava/java/lang/NegativeArraySizeException.h new file mode 100644 index 000000000..e05f7c515 --- /dev/null +++ b/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/libjava/java/lang/NoClassDefFoundError.h b/libjava/java/lang/NoClassDefFoundError.h new file mode 100644 index 000000000..90790a7b9 --- /dev/null +++ b/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/libjava/java/lang/NoSuchFieldError.h b/libjava/java/lang/NoSuchFieldError.h new file mode 100644 index 000000000..65f444e83 --- /dev/null +++ b/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/libjava/java/lang/NoSuchFieldException.h b/libjava/java/lang/NoSuchFieldException.h new file mode 100644 index 000000000..36fe841ed --- /dev/null +++ b/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/Exception.h> + +class java::lang::NoSuchFieldException : public ::java::lang::Exception +{ + +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/libjava/java/lang/NoSuchMethodError.h b/libjava/java/lang/NoSuchMethodError.h new file mode 100644 index 000000000..5db0a040e --- /dev/null +++ b/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/libjava/java/lang/NoSuchMethodException.h b/libjava/java/lang/NoSuchMethodException.h new file mode 100644 index 000000000..dc905d67f --- /dev/null +++ b/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/Exception.h> + +class java::lang::NoSuchMethodException : public ::java::lang::Exception +{ + +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/libjava/java/lang/NullPointerException.h b/libjava/java/lang/NullPointerException.h new file mode 100644 index 000000000..4af582cf4 --- /dev/null +++ b/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/libjava/java/lang/Number.h b/libjava/java/lang/Number.h new file mode 100644 index 000000000..65ba92019 --- /dev/null +++ b/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/libjava/java/lang/NumberFormatException.h b/libjava/java/lang/NumberFormatException.h new file mode 100644 index 000000000..34bd4d678 --- /dev/null +++ b/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/libjava/java/lang/Object.h b/libjava/java/lang/Object.h new file mode 100644 index 000000000..54fd447d1 --- /dev/null +++ b/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/libjava/java/lang/Object.java b/libjava/java/lang/Object.java new file mode 100644 index 000000000..740a7c78e --- /dev/null +++ b/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 < 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 < 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/libjava/java/lang/OutOfMemoryError.h b/libjava/java/lang/OutOfMemoryError.h new file mode 100644 index 000000000..7fac1f5a0 --- /dev/null +++ b/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/libjava/java/lang/Override.h b/libjava/java/lang/Override.h new file mode 100644 index 000000000..e6424ee6a --- /dev/null +++ b/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/libjava/java/lang/Package.h b/libjava/java/lang/Package.h new file mode 100644 index 000000000..6d12d9f36 --- /dev/null +++ b/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/libjava/java/lang/PosixProcess$EOFInputStream.h b/libjava/java/lang/PosixProcess$EOFInputStream.h new file mode 100644 index 000000000..bda16533a --- /dev/null +++ b/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/libjava/java/lang/PosixProcess$ProcessManager.h b/libjava/java/lang/PosixProcess$ProcessManager.h new file mode 100644 index 000000000..4b3b62e13 --- /dev/null +++ b/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/libjava/java/lang/PosixProcess.h b/libjava/java/lang/PosixProcess.h new file mode 100644 index 000000000..3254f5224 --- /dev/null +++ b/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/libjava/java/lang/PosixProcess.java b/libjava/java/lang/PosixProcess.java new file mode 100644 index 000000000..dd59e7b93 --- /dev/null +++ b/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/libjava/java/lang/Process.h b/libjava/java/lang/Process.h new file mode 100644 index 000000000..f363feb50 --- /dev/null +++ b/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/libjava/java/lang/ProcessBuilder.h b/libjava/java/lang/ProcessBuilder.h new file mode 100644 index 000000000..fd6029df0 --- /dev/null +++ b/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/libjava/java/lang/Readable.h b/libjava/java/lang/Readable.h new file mode 100644 index 000000000..d8e7d2185 --- /dev/null +++ b/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/libjava/java/lang/Runnable.h b/libjava/java/lang/Runnable.h new file mode 100644 index 000000000..ba5985cbf --- /dev/null +++ b/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/libjava/java/lang/Runtime.h b/libjava/java/lang/Runtime.h new file mode 100644 index 000000000..4679cc0b1 --- /dev/null +++ b/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/libjava/java/lang/Runtime.java b/libjava/java/lang/Runtime.java new file mode 100644 index 000000000..3466f19f2 --- /dev/null +++ b/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/libjava/java/lang/RuntimeException.h b/libjava/java/lang/RuntimeException.h new file mode 100644 index 000000000..0bce089c7 --- /dev/null +++ b/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/libjava/java/lang/RuntimePermission.h b/libjava/java/lang/RuntimePermission.h new file mode 100644 index 000000000..8b4817545 --- /dev/null +++ b/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/libjava/java/lang/SecurityException.h b/libjava/java/lang/SecurityException.h new file mode 100644 index 000000000..3b19ba203 --- /dev/null +++ b/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/libjava/java/lang/SecurityManager$1.h b/libjava/java/lang/SecurityManager$1.h new file mode 100644 index 000000000..4e5787541 --- /dev/null +++ b/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/libjava/java/lang/SecurityManager.h b/libjava/java/lang/SecurityManager.h new file mode 100644 index 000000000..8abaa6a7e --- /dev/null +++ b/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/libjava/java/lang/Short.h b/libjava/java/lang/Short.h new file mode 100644 index 000000000..4858db52f --- /dev/null +++ b/libjava/java/lang/Short.h @@ -0,0 +1,54 @@ + +// 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 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/libjava/java/lang/StackOverflowError.h b/libjava/java/lang/StackOverflowError.h new file mode 100644 index 000000000..6d1e06f65 --- /dev/null +++ b/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/libjava/java/lang/StackTraceElement.h b/libjava/java/lang/StackTraceElement.h new file mode 100644 index 000000000..7adf3dc31 --- /dev/null +++ b/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/libjava/java/lang/StrictMath.h b/libjava/java/lang/StrictMath.h new file mode 100644 index 000000000..d37d5d668 --- /dev/null +++ b/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/libjava/java/lang/String$CaseInsensitiveComparator.h b/libjava/java/lang/String$CaseInsensitiveComparator.h new file mode 100644 index 000000000..8a1b121bc --- /dev/null +++ b/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/libjava/java/lang/String.h b/libjava/java/lang/String.h new file mode 100644 index 000000000..32e0ccdfa --- /dev/null +++ b/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/libjava/java/lang/String.java b/libjava/java/lang/String.java new file mode 100644 index 000000000..b9ce3c016 --- /dev/null +++ b/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 < 0, 0, or > 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 < 0 || count < 0 + * || offset + count < 0 (overflow) + * || offset + count > 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 & 0xff) << 8) | (b & 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 < 0 || count < 0 + * || offset + count < 0 (overflow) + * || offset + count > 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 & 0xff) << 8) | (b & 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 < 0 || index >= 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 >= 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 >= 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 < 0 || begin > 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 < 0 || end > length() + * || begin > 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 < 0 || end > length() + * || begin > 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 < 0 || count < 0 + * || offset + count > 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 < 0 || count < 0 + * || offset + count < 0 (overflow) + * || offset + count > 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/libjava/java/lang/StringBuffer.h b/libjava/java/lang/StringBuffer.h new file mode 100644 index 000000000..487e2fcd3 --- /dev/null +++ b/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/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java new file mode 100644 index 000000000..0c61b4d9f --- /dev/null +++ b/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 >= 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 >= 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 >= 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 >= 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/libjava/java/lang/StringBuilder.h b/libjava/java/lang/StringBuilder.h new file mode 100644 index 000000000..c8b952a41 --- /dev/null +++ b/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/libjava/java/lang/StringBuilder.java b/libjava/java/lang/StringBuilder.java new file mode 100644 index 000000000..aefe9272b --- /dev/null +++ b/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/libjava/java/lang/StringIndexOutOfBoundsException.h b/libjava/java/lang/StringIndexOutOfBoundsException.h new file mode 100644 index 000000000..e3669a0d3 --- /dev/null +++ b/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/libjava/java/lang/SuppressWarnings.h b/libjava/java/lang/SuppressWarnings.h new file mode 100644 index 000000000..3f28104d9 --- /dev/null +++ b/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/libjava/java/lang/System$EnvironmentCollection.h b/libjava/java/lang/System$EnvironmentCollection.h new file mode 100644 index 000000000..8392e1782 --- /dev/null +++ b/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/libjava/java/lang/System$EnvironmentMap.h b/libjava/java/lang/System$EnvironmentMap.h new file mode 100644 index 000000000..c8ef8aade --- /dev/null +++ b/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/libjava/java/lang/System$EnvironmentSet.h b/libjava/java/lang/System$EnvironmentSet.h new file mode 100644 index 000000000..9a1e1a65d --- /dev/null +++ b/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/libjava/java/lang/System.h b/libjava/java/lang/System.h new file mode 100644 index 000000000..8a67628b0 --- /dev/null +++ b/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/libjava/java/lang/System.java b/libjava/java/lang/System.java new file mode 100644 index 000000000..ecfad2557 --- /dev/null +++ b/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/libjava/java/lang/Thread$State.h b/libjava/java/lang/Thread$State.h new file mode 100644 index 000000000..4620c7224 --- /dev/null +++ b/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/libjava/java/lang/Thread$UncaughtExceptionHandler.h b/libjava/java/lang/Thread$UncaughtExceptionHandler.h new file mode 100644 index 000000000..88d2b5b90 --- /dev/null +++ b/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/libjava/java/lang/Thread.h b/libjava/java/lang/Thread.h new file mode 100644 index 000000000..54764c83c --- /dev/null +++ b/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/libjava/java/lang/Thread.java b/libjava/java/lang/Thread.java new file mode 100644 index 000000000..8b6d4ba75 --- /dev/null +++ b/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/libjava/java/lang/ThreadDeath.h b/libjava/java/lang/ThreadDeath.h new file mode 100644 index 000000000..d06ce3458 --- /dev/null +++ b/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/libjava/java/lang/ThreadGroup.h b/libjava/java/lang/ThreadGroup.h new file mode 100644 index 000000000..a197ca16e --- /dev/null +++ b/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/libjava/java/lang/ThreadLocal.h b/libjava/java/lang/ThreadLocal.h new file mode 100644 index 000000000..13e1f84c6 --- /dev/null +++ b/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/libjava/java/lang/ThreadLocal.java b/libjava/java/lang/ThreadLocal.java new file mode 100644 index 000000000..9223dbaae --- /dev/null +++ b/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/libjava/java/lang/ThreadLocalMap$Entry.h b/libjava/java/lang/ThreadLocalMap$Entry.h new file mode 100644 index 000000000..51b4db9c2 --- /dev/null +++ b/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/libjava/java/lang/ThreadLocalMap.h b/libjava/java/lang/ThreadLocalMap.h new file mode 100644 index 000000000..3a1f107cf --- /dev/null +++ b/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/libjava/java/lang/Throwable$StaticData.h b/libjava/java/lang/Throwable$StaticData.h new file mode 100644 index 000000000..6bb0912de --- /dev/null +++ b/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/libjava/java/lang/Throwable.h b/libjava/java/lang/Throwable.h new file mode 100644 index 000000000..2e7532c3a --- /dev/null +++ b/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/libjava/java/lang/TypeNotPresentException.h b/libjava/java/lang/TypeNotPresentException.h new file mode 100644 index 000000000..076f0a6d4 --- /dev/null +++ b/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/libjava/java/lang/UnknownError.h b/libjava/java/lang/UnknownError.h new file mode 100644 index 000000000..2ed851aae --- /dev/null +++ b/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/libjava/java/lang/UnsatisfiedLinkError.h b/libjava/java/lang/UnsatisfiedLinkError.h new file mode 100644 index 000000000..a560313fe --- /dev/null +++ b/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/libjava/java/lang/UnsupportedClassVersionError.h b/libjava/java/lang/UnsupportedClassVersionError.h new file mode 100644 index 000000000..afa5b1875 --- /dev/null +++ b/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/libjava/java/lang/UnsupportedOperationException.h b/libjava/java/lang/UnsupportedOperationException.h new file mode 100644 index 000000000..ce808bded --- /dev/null +++ b/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/libjava/java/lang/VMClassLoader.h b/libjava/java/lang/VMClassLoader.h new file mode 100644 index 000000000..dce7092bf --- /dev/null +++ b/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/libjava/java/lang/VMClassLoader.java b/libjava/java/lang/VMClassLoader.java new file mode 100644 index 000000000..21019b757 --- /dev/null +++ b/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/libjava/java/lang/VMCompiler.h b/libjava/java/lang/VMCompiler.h new file mode 100644 index 000000000..e81f694e1 --- /dev/null +++ b/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/libjava/java/lang/VMCompiler.java b/libjava/java/lang/VMCompiler.java new file mode 100644 index 000000000..1f600f12e --- /dev/null +++ b/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/libjava/java/lang/VMDouble.h b/libjava/java/lang/VMDouble.h new file mode 100644 index 000000000..76b6d5020 --- /dev/null +++ b/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/libjava/java/lang/VMDouble.java b/libjava/java/lang/VMDouble.java new file mode 100644 index 000000000..9205eb3b3 --- /dev/null +++ b/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/libjava/java/lang/VMFloat.h b/libjava/java/lang/VMFloat.h new file mode 100644 index 000000000..fec037b2c --- /dev/null +++ b/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/libjava/java/lang/VMFloat.java b/libjava/java/lang/VMFloat.java new file mode 100644 index 000000000..72a8c3c6b --- /dev/null +++ b/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/libjava/java/lang/VMProcess.h b/libjava/java/lang/VMProcess.h new file mode 100644 index 000000000..c0912e5c2 --- /dev/null +++ b/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/libjava/java/lang/VMProcess.java b/libjava/java/lang/VMProcess.java new file mode 100644 index 000000000..c0c7bebc1 --- /dev/null +++ b/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/libjava/java/lang/VMThrowable.h b/libjava/java/lang/VMThrowable.h new file mode 100644 index 000000000..1991b6cd8 --- /dev/null +++ b/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/libjava/java/lang/VMThrowable.java b/libjava/java/lang/VMThrowable.java new file mode 100644 index 000000000..9dde28d29 --- /dev/null +++ b/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/libjava/java/lang/VerifyError.h b/libjava/java/lang/VerifyError.h new file mode 100644 index 000000000..54aafd27e --- /dev/null +++ b/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/libjava/java/lang/VirtualMachineError.h b/libjava/java/lang/VirtualMachineError.h new file mode 100644 index 000000000..9eb04ceaa --- /dev/null +++ b/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/libjava/java/lang/Void.h b/libjava/java/lang/Void.h new file mode 100644 index 000000000..be277b02a --- /dev/null +++ b/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/libjava/java/lang/Win32Process$EOFInputStream.h b/libjava/java/lang/Win32Process$EOFInputStream.h new file mode 100644 index 000000000..b0224f332 --- /dev/null +++ b/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/libjava/java/lang/Win32Process.h b/libjava/java/lang/Win32Process.h new file mode 100644 index 000000000..5e22934a9 --- /dev/null +++ b/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/libjava/java/lang/Win32Process.java b/libjava/java/lang/Win32Process.java new file mode 100644 index 000000000..f22b54882 --- /dev/null +++ b/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/libjava/java/lang/annotation/Annotation.h b/libjava/java/lang/annotation/Annotation.h new file mode 100644 index 000000000..9c9c3d7ab --- /dev/null +++ b/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/libjava/java/lang/annotation/AnnotationFormatError.h b/libjava/java/lang/annotation/AnnotationFormatError.h new file mode 100644 index 000000000..f5c43b241 --- /dev/null +++ b/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/libjava/java/lang/annotation/AnnotationTypeMismatchException.h b/libjava/java/lang/annotation/AnnotationTypeMismatchException.h new file mode 100644 index 000000000..082d9f6a3 --- /dev/null +++ b/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/libjava/java/lang/annotation/Documented.h b/libjava/java/lang/annotation/Documented.h new file mode 100644 index 000000000..d2a920dc7 --- /dev/null +++ b/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/libjava/java/lang/annotation/ElementType.h b/libjava/java/lang/annotation/ElementType.h new file mode 100644 index 000000000..c475967ab --- /dev/null +++ b/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/libjava/java/lang/annotation/IncompleteAnnotationException.h b/libjava/java/lang/annotation/IncompleteAnnotationException.h new file mode 100644 index 000000000..aff0f7e0b --- /dev/null +++ b/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/libjava/java/lang/annotation/Inherited.h b/libjava/java/lang/annotation/Inherited.h new file mode 100644 index 000000000..b1ebc883e --- /dev/null +++ b/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/libjava/java/lang/annotation/Retention.h b/libjava/java/lang/annotation/Retention.h new file mode 100644 index 000000000..42fb4a542 --- /dev/null +++ b/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/libjava/java/lang/annotation/RetentionPolicy.h b/libjava/java/lang/annotation/RetentionPolicy.h new file mode 100644 index 000000000..5d642601d --- /dev/null +++ b/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/libjava/java/lang/annotation/Target.h b/libjava/java/lang/annotation/Target.h new file mode 100644 index 000000000..96ac51788 --- /dev/null +++ b/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/libjava/java/lang/instrument/ClassDefinition.h b/libjava/java/lang/instrument/ClassDefinition.h new file mode 100644 index 000000000..b9106ed8e --- /dev/null +++ b/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/libjava/java/lang/instrument/ClassFileTransformer.h b/libjava/java/lang/instrument/ClassFileTransformer.h new file mode 100644 index 000000000..cda1510b0 --- /dev/null +++ b/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/libjava/java/lang/instrument/IllegalClassFormatException.h b/libjava/java/lang/instrument/IllegalClassFormatException.h new file mode 100644 index 000000000..c1b8783e7 --- /dev/null +++ b/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/libjava/java/lang/instrument/Instrumentation.h b/libjava/java/lang/instrument/Instrumentation.h new file mode 100644 index 000000000..d131d0c69 --- /dev/null +++ b/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/libjava/java/lang/instrument/UnmodifiableClassException.h b/libjava/java/lang/instrument/UnmodifiableClassException.h new file mode 100644 index 000000000..e5fac3cdd --- /dev/null +++ b/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/libjava/java/lang/management/ClassLoadingMXBean.h b/libjava/java/lang/management/ClassLoadingMXBean.h new file mode 100644 index 000000000..371b63d3d --- /dev/null +++ b/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/libjava/java/lang/management/CompilationMXBean.h b/libjava/java/lang/management/CompilationMXBean.h new file mode 100644 index 000000000..bbd1e0a21 --- /dev/null +++ b/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/libjava/java/lang/management/GarbageCollectorMXBean.h b/libjava/java/lang/management/GarbageCollectorMXBean.h new file mode 100644 index 000000000..35222cab0 --- /dev/null +++ b/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/libjava/java/lang/management/LockInfo.h b/libjava/java/lang/management/LockInfo.h new file mode 100644 index 000000000..ec4291753 --- /dev/null +++ b/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/libjava/java/lang/management/ManagementFactory$ManagementInvocationHandler.h b/libjava/java/lang/management/ManagementFactory$ManagementInvocationHandler.h new file mode 100644 index 000000000..33603be20 --- /dev/null +++ b/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/libjava/java/lang/management/ManagementFactory.h b/libjava/java/lang/management/ManagementFactory.h new file mode 100644 index 000000000..c51809371 --- /dev/null +++ b/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/libjava/java/lang/management/ManagementPermission.h b/libjava/java/lang/management/ManagementPermission.h new file mode 100644 index 000000000..4ac4a4fef --- /dev/null +++ b/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/libjava/java/lang/management/MemoryMXBean.h b/libjava/java/lang/management/MemoryMXBean.h new file mode 100644 index 000000000..2fb70add2 --- /dev/null +++ b/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/libjava/java/lang/management/MemoryManagerMXBean.h b/libjava/java/lang/management/MemoryManagerMXBean.h new file mode 100644 index 000000000..6509205a9 --- /dev/null +++ b/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/libjava/java/lang/management/MemoryNotificationInfo.h b/libjava/java/lang/management/MemoryNotificationInfo.h new file mode 100644 index 000000000..07cfefff3 --- /dev/null +++ b/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/libjava/java/lang/management/MemoryPoolMXBean.h b/libjava/java/lang/management/MemoryPoolMXBean.h new file mode 100644 index 000000000..4209d573a --- /dev/null +++ b/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/libjava/java/lang/management/MemoryType.h b/libjava/java/lang/management/MemoryType.h new file mode 100644 index 000000000..b93587d30 --- /dev/null +++ b/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/libjava/java/lang/management/MemoryUsage.h b/libjava/java/lang/management/MemoryUsage.h new file mode 100644 index 000000000..3b126f818 --- /dev/null +++ b/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/libjava/java/lang/management/MonitorInfo.h b/libjava/java/lang/management/MonitorInfo.h new file mode 100644 index 000000000..6d2a0f01f --- /dev/null +++ b/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/libjava/java/lang/management/OperatingSystemMXBean.h b/libjava/java/lang/management/OperatingSystemMXBean.h new file mode 100644 index 000000000..bbf37070b --- /dev/null +++ b/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/libjava/java/lang/management/RuntimeMXBean.h b/libjava/java/lang/management/RuntimeMXBean.h new file mode 100644 index 000000000..c26667440 --- /dev/null +++ b/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/libjava/java/lang/management/ThreadInfo.h b/libjava/java/lang/management/ThreadInfo.h new file mode 100644 index 000000000..4d87277be --- /dev/null +++ b/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/libjava/java/lang/management/ThreadMXBean.h b/libjava/java/lang/management/ThreadMXBean.h new file mode 100644 index 000000000..a1d4636c9 --- /dev/null +++ b/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/libjava/java/lang/management/VMManagementFactory.h b/libjava/java/lang/management/VMManagementFactory.h new file mode 100644 index 000000000..e712cbfc8 --- /dev/null +++ b/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/libjava/java/lang/management/VMManagementFactory.java b/libjava/java/lang/management/VMManagementFactory.java new file mode 100644 index 000000000..35b15e360 --- /dev/null +++ b/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/libjava/java/lang/natAbstractStringBuffer.cc b/libjava/java/lang/natAbstractStringBuffer.cc new file mode 100644 index 000000000..b2df69cc3 --- /dev/null +++ b/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/libjava/java/lang/natCharacter.cc b/libjava/java/lang/natCharacter.cc new file mode 100644 index 000000000..dea2086eb --- /dev/null +++ b/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/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc new file mode 100644 index 000000000..d6969d49b --- /dev/null +++ b/libjava/java/lang/natClass.cc @@ -0,0 +1,2089 @@ +// 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); + ((void (*) (jobject)) meth->ncode) (r); + 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/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc new file mode 100644 index 000000000..237e038d1 --- /dev/null +++ b/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/libjava/java/lang/natEcosProcess.cc b/libjava/java/lang/natEcosProcess.cc new file mode 100644 index 000000000..7d8edfb0e --- /dev/null +++ b/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/libjava/java/lang/natMath.cc b/libjava/java/lang/natMath.cc new file mode 100644 index 000000000..d86d6307d --- /dev/null +++ b/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/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc new file mode 100644 index 000000000..87f2044dd --- /dev/null +++ b/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/libjava/java/lang/natPosixProcess.cc b/libjava/java/lang/natPosixProcess.cc new file mode 100644 index 000000000..fbd3f6a0a --- /dev/null +++ b/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/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc new file mode 100644 index 000000000..02842b1df --- /dev/null +++ b/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/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc new file mode 100644 index 000000000..75006a7c9 --- /dev/null +++ b/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/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc new file mode 100644 index 000000000..42a13258d --- /dev/null +++ b/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/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc new file mode 100644 index 000000000..d6abff13f --- /dev/null +++ b/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/libjava/java/lang/natThreadLocal.cc b/libjava/java/lang/natThreadLocal.cc new file mode 100644 index 000000000..cd61f4a62 --- /dev/null +++ b/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/libjava/java/lang/natVMClassLoader.cc b/libjava/java/lang/natVMClassLoader.cc new file mode 100644 index 000000000..4edff7daf --- /dev/null +++ b/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/libjava/java/lang/natVMDouble.cc b/libjava/java/lang/natVMDouble.cc new file mode 100644 index 000000000..f770bc422 --- /dev/null +++ b/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/libjava/java/lang/natVMFloat.cc b/libjava/java/lang/natVMFloat.cc new file mode 100644 index 000000000..54ae5191d --- /dev/null +++ b/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/libjava/java/lang/natVMProcess.cc b/libjava/java/lang/natVMProcess.cc new file mode 100644 index 000000000..dfc6f6023 --- /dev/null +++ b/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/libjava/java/lang/natVMThrowable.cc b/libjava/java/lang/natVMThrowable.cc new file mode 100644 index 000000000..b198f9073 --- /dev/null +++ b/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/libjava/java/lang/natWin32Process.cc b/libjava/java/lang/natWin32Process.cc new file mode 100644 index 000000000..0e7f60d6c --- /dev/null +++ b/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/libjava/java/lang/ref/PhantomReference.h b/libjava/java/lang/ref/PhantomReference.h new file mode 100644 index 000000000..0c8a823d4 --- /dev/null +++ b/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/libjava/java/lang/ref/Reference.h b/libjava/java/lang/ref/Reference.h new file mode 100644 index 000000000..3eeaf65c6 --- /dev/null +++ b/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/libjava/java/lang/ref/Reference.java b/libjava/java/lang/ref/Reference.java new file mode 100644 index 000000000..a5184cee8 --- /dev/null +++ b/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/libjava/java/lang/ref/ReferenceQueue.h b/libjava/java/lang/ref/ReferenceQueue.h new file mode 100644 index 000000000..bd4a9d8b7 --- /dev/null +++ b/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/libjava/java/lang/ref/SoftReference.h b/libjava/java/lang/ref/SoftReference.h new file mode 100644 index 000000000..faa98e7bd --- /dev/null +++ b/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/libjava/java/lang/ref/WeakReference.h b/libjava/java/lang/ref/WeakReference.h new file mode 100644 index 000000000..b540274d3 --- /dev/null +++ b/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/libjava/java/lang/ref/natReference.cc b/libjava/java/lang/ref/natReference.cc new file mode 100644 index 000000000..ac7272cf5 --- /dev/null +++ b/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/libjava/java/lang/reflect/AccessibleObject.h b/libjava/java/lang/reflect/AccessibleObject.h new file mode 100644 index 000000000..d140e300c --- /dev/null +++ b/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/libjava/java/lang/reflect/AnnotatedElement.h b/libjava/java/lang/reflect/AnnotatedElement.h new file mode 100644 index 000000000..5792b75e0 --- /dev/null +++ b/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/libjava/java/lang/reflect/Array.h b/libjava/java/lang/reflect/Array.h new file mode 100644 index 000000000..48df7d3fa --- /dev/null +++ b/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/libjava/java/lang/reflect/Array.java b/libjava/java/lang/reflect/Array.java new file mode 100644 index 000000000..639cc0e02 --- /dev/null +++ b/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/libjava/java/lang/reflect/Constructor.h b/libjava/java/lang/reflect/Constructor.h new file mode 100644 index 000000000..5a200bc11 --- /dev/null +++ b/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 _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 (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean); + friend class java::lang::Class; +}; + +#endif // __java_lang_reflect_Constructor__ diff --git a/libjava/java/lang/reflect/Constructor.java b/libjava/java/lang/reflect/Constructor.java new file mode 100644 index 000000000..adebc600a --- /dev/null +++ b/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 "<modifier> <classname>(<paramtypes>) + * throws <exceptions>", 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/libjava/java/lang/reflect/Field.h b/libjava/java/lang/reflect/Field.h new file mode 100644 index 000000000..0af95652d --- /dev/null +++ b/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 _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 (::_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/libjava/java/lang/reflect/Field.java b/libjava/java/lang/reflect/Field.java new file mode 100644 index 000000000..61db14df5 --- /dev/null +++ b/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 "<modifiers> <type> + * <class>.<fieldname>".<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/libjava/java/lang/reflect/GenericArrayType.h b/libjava/java/lang/reflect/GenericArrayType.h new file mode 100644 index 000000000..cdeb0b2a3 --- /dev/null +++ b/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/libjava/java/lang/reflect/GenericDeclaration.h b/libjava/java/lang/reflect/GenericDeclaration.h new file mode 100644 index 000000000..5c484ea96 --- /dev/null +++ b/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/libjava/java/lang/reflect/GenericSignatureFormatError.h b/libjava/java/lang/reflect/GenericSignatureFormatError.h new file mode 100644 index 000000000..c46c9264a --- /dev/null +++ b/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/libjava/java/lang/reflect/InvocationHandler.h b/libjava/java/lang/reflect/InvocationHandler.h new file mode 100644 index 000000000..722195321 --- /dev/null +++ b/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/libjava/java/lang/reflect/InvocationTargetException.h b/libjava/java/lang/reflect/InvocationTargetException.h new file mode 100644 index 000000000..37e229c29 --- /dev/null +++ b/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/Exception.h> + +class java::lang::reflect::InvocationTargetException : public ::java::lang::Exception +{ + +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::Exception)))) target; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_reflect_InvocationTargetException__ diff --git a/libjava/java/lang/reflect/MalformedParameterizedTypeException.h b/libjava/java/lang/reflect/MalformedParameterizedTypeException.h new file mode 100644 index 000000000..a48f669c0 --- /dev/null +++ b/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/libjava/java/lang/reflect/Member.h b/libjava/java/lang/reflect/Member.h new file mode 100644 index 000000000..9e3522be0 --- /dev/null +++ b/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/libjava/java/lang/reflect/Method.h b/libjava/java/lang/reflect/Method.h new file mode 100644 index 000000000..8a843d5d1 --- /dev/null +++ b/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 _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 (::_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/libjava/java/lang/reflect/Method.java b/libjava/java/lang/reflect/Method.java new file mode 100644 index 000000000..878210abb --- /dev/null +++ b/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 "<modifiers> <returntype> + * <methodname>(<paramtypes>) throws <exceptions>", 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/libjava/java/lang/reflect/Modifier.h b/libjava/java/lang/reflect/Modifier.h new file mode 100644 index 000000000..4ee474a95 --- /dev/null +++ b/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/libjava/java/lang/reflect/Modifier.java b/libjava/java/lang/reflect/Modifier.java new file mode 100644 index 000000000..f9a9ca2c9 --- /dev/null +++ b/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><public|protected|private> 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/libjava/java/lang/reflect/ParameterizedType.h b/libjava/java/lang/reflect/ParameterizedType.h new file mode 100644 index 000000000..dab9ad953 --- /dev/null +++ b/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/libjava/java/lang/reflect/Proxy$ClassFactory.h b/libjava/java/lang/reflect/Proxy$ClassFactory.h new file mode 100644 index 000000000..c4cfb883d --- /dev/null +++ b/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/libjava/java/lang/reflect/Proxy$ProxyData.h b/libjava/java/lang/reflect/Proxy$ProxyData.h new file mode 100644 index 000000000..2c0d91e5e --- /dev/null +++ b/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/libjava/java/lang/reflect/Proxy$ProxySignature.h b/libjava/java/lang/reflect/Proxy$ProxySignature.h new file mode 100644 index 000000000..ae0f028de --- /dev/null +++ b/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/libjava/java/lang/reflect/Proxy$ProxyType.h b/libjava/java/lang/reflect/Proxy$ProxyType.h new file mode 100644 index 000000000..da7653539 --- /dev/null +++ b/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/libjava/java/lang/reflect/Proxy.h b/libjava/java/lang/reflect/Proxy.h new file mode 100644 index 000000000..4dad2cffd --- /dev/null +++ b/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/libjava/java/lang/reflect/ReflectPermission.h b/libjava/java/lang/reflect/ReflectPermission.h new file mode 100644 index 000000000..0e6a7c32e --- /dev/null +++ b/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/libjava/java/lang/reflect/Type.h b/libjava/java/lang/reflect/Type.h new file mode 100644 index 000000000..55c317fa4 --- /dev/null +++ b/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/libjava/java/lang/reflect/TypeVariable.h b/libjava/java/lang/reflect/TypeVariable.h new file mode 100644 index 000000000..6029c0190 --- /dev/null +++ b/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/libjava/java/lang/reflect/UndeclaredThrowableException.h b/libjava/java/lang/reflect/UndeclaredThrowableException.h new file mode 100644 index 000000000..01b969b0e --- /dev/null +++ b/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/libjava/java/lang/reflect/VMProxy.h b/libjava/java/lang/reflect/VMProxy.h new file mode 100644 index 000000000..e48e8e4e8 --- /dev/null +++ b/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/libjava/java/lang/reflect/VMProxy.java b/libjava/java/lang/reflect/VMProxy.java new file mode 100644 index 000000000..ea1c88506 --- /dev/null +++ b/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/libjava/java/lang/reflect/WildcardType.h b/libjava/java/lang/reflect/WildcardType.h new file mode 100644 index 000000000..2c5b93d65 --- /dev/null +++ b/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/libjava/java/lang/reflect/natArray.cc b/libjava/java/lang/reflect/natArray.cc new file mode 100644 index 000000000..b7bc8beff --- /dev/null +++ b/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/libjava/java/lang/reflect/natConstructor.cc b/libjava/java/lang/reflect/natConstructor.cc new file mode 100644 index 000000000..953d86dd4 --- /dev/null +++ b/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, + ¶meter_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/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc new file mode 100644 index 000000000..734f65316 --- /dev/null +++ b/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/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc new file mode 100644 index 000000000..d95c92f84 --- /dev/null +++ b/libjava/java/lang/reflect/natMethod.cc @@ -0,0 +1,701 @@ +// 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, + ¶meter_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; + } + + if (ffi_prep_cif (&cif, FFI_DEFAULT_ABI, 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/libjava/java/lang/reflect/natVMProxy.cc b/libjava/java/lang/reflect/natVMProxy.cc new file mode 100644 index 000000000..4c3fd74f9 --- /dev/null +++ b/libjava/java/lang/reflect/natVMProxy.cc @@ -0,0 +1,459 @@ +// 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 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/libjava/java/math/BigDecimal.h b/libjava/java/math/BigDecimal.h new file mode 100644 index 000000000..aeeab2523 --- /dev/null +++ b/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/libjava/java/math/BigInteger.h b/libjava/java/math/BigInteger.h new file mode 100644 index 000000000..a3ace698a --- /dev/null +++ b/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/libjava/java/math/MathContext.h b/libjava/java/math/MathContext.h new file mode 100644 index 000000000..bed83920b --- /dev/null +++ b/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/libjava/java/math/RoundingMode.h b/libjava/java/math/RoundingMode.h new file mode 100644 index 000000000..b72f7cff7 --- /dev/null +++ b/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/libjava/java/net/Authenticator.h b/libjava/java/net/Authenticator.h new file mode 100644 index 000000000..b8e26606b --- /dev/null +++ b/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/libjava/java/net/BindException.h b/libjava/java/net/BindException.h new file mode 100644 index 000000000..6056f55f7 --- /dev/null +++ b/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/libjava/java/net/ConnectException.h b/libjava/java/net/ConnectException.h new file mode 100644 index 000000000..324ff1fe7 --- /dev/null +++ b/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/libjava/java/net/ContentHandler.h b/libjava/java/net/ContentHandler.h new file mode 100644 index 000000000..62aecff06 --- /dev/null +++ b/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/libjava/java/net/ContentHandlerFactory.h b/libjava/java/net/ContentHandlerFactory.h new file mode 100644 index 000000000..ca1533104 --- /dev/null +++ b/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/libjava/java/net/DatagramPacket.h b/libjava/java/net/DatagramPacket.h new file mode 100644 index 000000000..068329e05 --- /dev/null +++ b/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/libjava/java/net/DatagramSocket.h b/libjava/java/net/DatagramSocket.h new file mode 100644 index 000000000..a1761e115 --- /dev/null +++ b/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/libjava/java/net/DatagramSocketImpl.h b/libjava/java/net/DatagramSocketImpl.h new file mode 100644 index 000000000..e29991b42 --- /dev/null +++ b/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/libjava/java/net/DatagramSocketImplFactory.h b/libjava/java/net/DatagramSocketImplFactory.h new file mode 100644 index 000000000..15e1780ec --- /dev/null +++ b/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/libjava/java/net/FileNameMap.h b/libjava/java/net/FileNameMap.h new file mode 100644 index 000000000..916f14023 --- /dev/null +++ b/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/libjava/java/net/HttpURLConnection.h b/libjava/java/net/HttpURLConnection.h new file mode 100644 index 000000000..d192e33ad --- /dev/null +++ b/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/libjava/java/net/Inet4Address.h b/libjava/java/net/Inet4Address.h new file mode 100644 index 000000000..5ff131546 --- /dev/null +++ b/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/libjava/java/net/Inet6Address.h b/libjava/java/net/Inet6Address.h new file mode 100644 index 000000000..933a4780a --- /dev/null +++ b/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/libjava/java/net/InetAddress.h b/libjava/java/net/InetAddress.h new file mode 100644 index 000000000..8cde4fb5d --- /dev/null +++ b/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/libjava/java/net/InetSocketAddress.h b/libjava/java/net/InetSocketAddress.h new file mode 100644 index 000000000..b4f14d41c --- /dev/null +++ b/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/libjava/java/net/JarURLConnection.h b/libjava/java/net/JarURLConnection.h new file mode 100644 index 000000000..6c89e6e4d --- /dev/null +++ b/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/libjava/java/net/MalformedURLException.h b/libjava/java/net/MalformedURLException.h new file mode 100644 index 000000000..713bf5e7d --- /dev/null +++ b/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/libjava/java/net/MimeTypeMapper.h b/libjava/java/net/MimeTypeMapper.h new file mode 100644 index 000000000..06fb2679e --- /dev/null +++ b/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/libjava/java/net/MulticastSocket.h b/libjava/java/net/MulticastSocket.h new file mode 100644 index 000000000..2faac45e3 --- /dev/null +++ b/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/libjava/java/net/MulticastSocket.java b/libjava/java/net/MulticastSocket.java new file mode 100644 index 000000000..efd66b3d5 --- /dev/null +++ b/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/libjava/java/net/NetPermission.h b/libjava/java/net/NetPermission.h new file mode 100644 index 000000000..a6c88555b --- /dev/null +++ b/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/libjava/java/net/NetworkInterface.h b/libjava/java/net/NetworkInterface.h new file mode 100644 index 000000000..66898a212 --- /dev/null +++ b/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/libjava/java/net/NetworkInterface.java b/libjava/java/net/NetworkInterface.java new file mode 100644 index 000000000..7ad62a713 --- /dev/null +++ b/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/libjava/java/net/NoRouteToHostException.h b/libjava/java/net/NoRouteToHostException.h new file mode 100644 index 000000000..7a639eaa7 --- /dev/null +++ b/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/libjava/java/net/PasswordAuthentication.h b/libjava/java/net/PasswordAuthentication.h new file mode 100644 index 000000000..2567fd0e5 --- /dev/null +++ b/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/libjava/java/net/PortUnreachableException.h b/libjava/java/net/PortUnreachableException.h new file mode 100644 index 000000000..5e0fff249 --- /dev/null +++ b/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/libjava/java/net/ProtocolException.h b/libjava/java/net/ProtocolException.h new file mode 100644 index 000000000..39e7b7b1e --- /dev/null +++ b/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/libjava/java/net/Proxy$Type.h b/libjava/java/net/Proxy$Type.h new file mode 100644 index 000000000..288bd8c51 --- /dev/null +++ b/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/libjava/java/net/Proxy.h b/libjava/java/net/Proxy.h new file mode 100644 index 000000000..b6b44e3a6 --- /dev/null +++ b/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/libjava/java/net/ProxySelector.h b/libjava/java/net/ProxySelector.h new file mode 100644 index 000000000..62382ee58 --- /dev/null +++ b/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/libjava/java/net/ResolverCache$Entry.h b/libjava/java/net/ResolverCache$Entry.h new file mode 100644 index 000000000..22b5da83f --- /dev/null +++ b/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/libjava/java/net/ResolverCache.h b/libjava/java/net/ResolverCache.h new file mode 100644 index 000000000..d274d235c --- /dev/null +++ b/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/libjava/java/net/ServerSocket.h b/libjava/java/net/ServerSocket.h new file mode 100644 index 000000000..98c77c61b --- /dev/null +++ b/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/libjava/java/net/Socket.h b/libjava/java/net/Socket.h new file mode 100644 index 000000000..776d6fc47 --- /dev/null +++ b/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/libjava/java/net/SocketAddress.h b/libjava/java/net/SocketAddress.h new file mode 100644 index 000000000..42f0f21b1 --- /dev/null +++ b/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/libjava/java/net/SocketException.h b/libjava/java/net/SocketException.h new file mode 100644 index 000000000..563e7f13b --- /dev/null +++ b/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/libjava/java/net/SocketImpl.h b/libjava/java/net/SocketImpl.h new file mode 100644 index 000000000..0daf5146d --- /dev/null +++ b/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/libjava/java/net/SocketImplFactory.h b/libjava/java/net/SocketImplFactory.h new file mode 100644 index 000000000..2089846df --- /dev/null +++ b/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/libjava/java/net/SocketOptions.h b/libjava/java/net/SocketOptions.h new file mode 100644 index 000000000..6a56d1346 --- /dev/null +++ b/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/libjava/java/net/SocketPermission.h b/libjava/java/net/SocketPermission.h new file mode 100644 index 000000000..dae8e83af --- /dev/null +++ b/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/libjava/java/net/SocketTimeoutException.h b/libjava/java/net/SocketTimeoutException.h new file mode 100644 index 000000000..a32424b91 --- /dev/null +++ b/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/libjava/java/net/URI.h b/libjava/java/net/URI.h new file mode 100644 index 000000000..143b35a74 --- /dev/null +++ b/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/libjava/java/net/URISyntaxException.h b/libjava/java/net/URISyntaxException.h new file mode 100644 index 000000000..93f1a4e66 --- /dev/null +++ b/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/libjava/java/net/URL$1.h b/libjava/java/net/URL$1.h new file mode 100644 index 000000000..c2867dc07 --- /dev/null +++ b/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/libjava/java/net/URL.h b/libjava/java/net/URL.h new file mode 100644 index 000000000..f0553c968 --- /dev/null +++ b/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/libjava/java/net/URLClassLoader$1.h b/libjava/java/net/URLClassLoader$1.h new file mode 100644 index 000000000..5eb7da2dc --- /dev/null +++ b/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/libjava/java/net/URLClassLoader$2.h b/libjava/java/net/URLClassLoader$2.h new file mode 100644 index 000000000..165bfd77d --- /dev/null +++ b/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/libjava/java/net/URLClassLoader.h b/libjava/java/net/URLClassLoader.h new file mode 100644 index 000000000..2e5f15c9b --- /dev/null +++ b/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/libjava/java/net/URLConnection.h b/libjava/java/net/URLConnection.h new file mode 100644 index 000000000..c40d9598b --- /dev/null +++ b/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/libjava/java/net/URLDecoder.h b/libjava/java/net/URLDecoder.h new file mode 100644 index 000000000..a6586cf74 --- /dev/null +++ b/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/libjava/java/net/URLEncoder.h b/libjava/java/net/URLEncoder.h new file mode 100644 index 000000000..87b3c574f --- /dev/null +++ b/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/libjava/java/net/URLStreamHandler.h b/libjava/java/net/URLStreamHandler.h new file mode 100644 index 000000000..ebcd44159 --- /dev/null +++ b/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/libjava/java/net/URLStreamHandlerFactory.h b/libjava/java/net/URLStreamHandlerFactory.h new file mode 100644 index 000000000..dde45e239 --- /dev/null +++ b/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/libjava/java/net/UnknownHostException.h b/libjava/java/net/UnknownHostException.h new file mode 100644 index 000000000..965d439f3 --- /dev/null +++ b/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/libjava/java/net/UnknownServiceException.h b/libjava/java/net/UnknownServiceException.h new file mode 100644 index 000000000..1bdc8021c --- /dev/null +++ b/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/libjava/java/net/VMInetAddress.h b/libjava/java/net/VMInetAddress.h new file mode 100644 index 000000000..e093e2c2e --- /dev/null +++ b/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/libjava/java/net/VMInetAddress.java b/libjava/java/net/VMInetAddress.java new file mode 100644 index 000000000..a99c216b9 --- /dev/null +++ b/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/libjava/java/net/VMNetworkInterface.h b/libjava/java/net/VMNetworkInterface.h new file mode 100644 index 000000000..792c5337a --- /dev/null +++ b/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/libjava/java/net/VMNetworkInterface.java b/libjava/java/net/VMNetworkInterface.java new file mode 100644 index 000000000..af71ce294 --- /dev/null +++ b/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/libjava/java/net/VMURLConnection.h b/libjava/java/net/VMURLConnection.h new file mode 100644 index 000000000..0c0828ae4 --- /dev/null +++ b/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/libjava/java/net/VMURLConnection.java b/libjava/java/net/VMURLConnection.java new file mode 100644 index 000000000..19bf5814e --- /dev/null +++ b/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/libjava/java/net/natVMInetAddressNoNet.cc b/libjava/java/net/natVMInetAddressNoNet.cc new file mode 100644 index 000000000..fd8303bbe --- /dev/null +++ b/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/libjava/java/net/natVMInetAddressPosix.cc b/libjava/java/net/natVMInetAddressPosix.cc new file mode 100644 index 000000000..bc25f3654 --- /dev/null +++ b/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/libjava/java/net/natVMInetAddressWin32.cc b/libjava/java/net/natVMInetAddressWin32.cc new file mode 100644 index 000000000..259480faa --- /dev/null +++ b/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/libjava/java/net/natVMNetworkInterfaceNoNet.cc b/libjava/java/net/natVMNetworkInterfaceNoNet.cc new file mode 100644 index 000000000..eda7f99f0 --- /dev/null +++ b/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/libjava/java/net/natVMNetworkInterfacePosix.cc b/libjava/java/net/natVMNetworkInterfacePosix.cc new file mode 100644 index 000000000..bfb11d21c --- /dev/null +++ b/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/libjava/java/net/natVMNetworkInterfaceWin32.cc b/libjava/java/net/natVMNetworkInterfaceWin32.cc new file mode 100644 index 000000000..c9b14d57d --- /dev/null +++ b/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/libjava/java/net/natVMURLConnection.cc b/libjava/java/net/natVMURLConnection.cc new file mode 100644 index 000000000..0a30a2197 --- /dev/null +++ b/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/libjava/java/nio/Buffer.h b/libjava/java/nio/Buffer.h new file mode 100644 index 000000000..3b958b496 --- /dev/null +++ b/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/libjava/java/nio/Buffer.java b/libjava/java/nio/Buffer.java new file mode 100644 index 000000000..222b84fd5 --- /dev/null +++ b/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/libjava/java/nio/BufferOverflowException.h b/libjava/java/nio/BufferOverflowException.h new file mode 100644 index 000000000..2c2a8c2c4 --- /dev/null +++ b/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/libjava/java/nio/BufferUnderflowException.h b/libjava/java/nio/BufferUnderflowException.h new file mode 100644 index 000000000..6b52f20c7 --- /dev/null +++ b/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/libjava/java/nio/ByteBuffer.h b/libjava/java/nio/ByteBuffer.h new file mode 100644 index 000000000..cf1f5be66 --- /dev/null +++ b/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/libjava/java/nio/ByteBufferHelper.h b/libjava/java/nio/ByteBufferHelper.h new file mode 100644 index 000000000..851b57aad --- /dev/null +++ b/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/libjava/java/nio/ByteBufferImpl.h b/libjava/java/nio/ByteBufferImpl.h new file mode 100644 index 000000000..12621a0c7 --- /dev/null +++ b/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/libjava/java/nio/ByteOrder.h b/libjava/java/nio/ByteOrder.h new file mode 100644 index 000000000..730cb7fd9 --- /dev/null +++ b/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/libjava/java/nio/CharBuffer.h b/libjava/java/nio/CharBuffer.h new file mode 100644 index 000000000..73b4ba917 --- /dev/null +++ b/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/libjava/java/nio/CharBufferImpl.h b/libjava/java/nio/CharBufferImpl.h new file mode 100644 index 000000000..4cbf50ec3 --- /dev/null +++ b/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/libjava/java/nio/CharSequenceBuffer.h b/libjava/java/nio/CharSequenceBuffer.h new file mode 100644 index 000000000..b46b2b60d --- /dev/null +++ b/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/libjava/java/nio/CharViewBufferImpl.h b/libjava/java/nio/CharViewBufferImpl.h new file mode 100644 index 000000000..fbde2de15 --- /dev/null +++ b/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/libjava/java/nio/DirectByteBufferImpl$ReadOnly.h b/libjava/java/nio/DirectByteBufferImpl$ReadOnly.h new file mode 100644 index 000000000..f94c05ace --- /dev/null +++ b/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/libjava/java/nio/DirectByteBufferImpl$ReadWrite.h b/libjava/java/nio/DirectByteBufferImpl$ReadWrite.h new file mode 100644 index 000000000..aa8c5ad0a --- /dev/null +++ b/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/libjava/java/nio/DirectByteBufferImpl.h b/libjava/java/nio/DirectByteBufferImpl.h new file mode 100644 index 000000000..b5a566907 --- /dev/null +++ b/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/libjava/java/nio/DirectByteBufferImpl.java b/libjava/java/nio/DirectByteBufferImpl.java new file mode 100644 index 000000000..dd40d5a41 --- /dev/null +++ b/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/libjava/java/nio/DoubleBuffer.h b/libjava/java/nio/DoubleBuffer.h new file mode 100644 index 000000000..cb7da18f2 --- /dev/null +++ b/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/libjava/java/nio/DoubleBufferImpl.h b/libjava/java/nio/DoubleBufferImpl.h new file mode 100644 index 000000000..f87e69c05 --- /dev/null +++ b/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/libjava/java/nio/DoubleViewBufferImpl.h b/libjava/java/nio/DoubleViewBufferImpl.h new file mode 100644 index 000000000..778a0aca2 --- /dev/null +++ b/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/libjava/java/nio/FloatBuffer.h b/libjava/java/nio/FloatBuffer.h new file mode 100644 index 000000000..334bdc482 --- /dev/null +++ b/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/libjava/java/nio/FloatBufferImpl.h b/libjava/java/nio/FloatBufferImpl.h new file mode 100644 index 000000000..6dad3a9b1 --- /dev/null +++ b/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/libjava/java/nio/FloatViewBufferImpl.h b/libjava/java/nio/FloatViewBufferImpl.h new file mode 100644 index 000000000..5ba181b5a --- /dev/null +++ b/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/libjava/java/nio/IntBuffer.h b/libjava/java/nio/IntBuffer.h new file mode 100644 index 000000000..fa2250712 --- /dev/null +++ b/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/libjava/java/nio/IntBufferImpl.h b/libjava/java/nio/IntBufferImpl.h new file mode 100644 index 000000000..2492f028f --- /dev/null +++ b/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/libjava/java/nio/IntViewBufferImpl.h b/libjava/java/nio/IntViewBufferImpl.h new file mode 100644 index 000000000..8dfe695e2 --- /dev/null +++ b/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/libjava/java/nio/InvalidMarkException.h b/libjava/java/nio/InvalidMarkException.h new file mode 100644 index 000000000..7b095c2cd --- /dev/null +++ b/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/libjava/java/nio/LongBuffer.h b/libjava/java/nio/LongBuffer.h new file mode 100644 index 000000000..622f2419c --- /dev/null +++ b/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/libjava/java/nio/LongBufferImpl.h b/libjava/java/nio/LongBufferImpl.h new file mode 100644 index 000000000..ad28128bd --- /dev/null +++ b/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/libjava/java/nio/LongViewBufferImpl.h b/libjava/java/nio/LongViewBufferImpl.h new file mode 100644 index 000000000..59e678c0f --- /dev/null +++ b/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/libjava/java/nio/MappedByteBuffer.h b/libjava/java/nio/MappedByteBuffer.h new file mode 100644 index 000000000..05fe81b3c --- /dev/null +++ b/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/libjava/java/nio/MappedByteBufferImpl.h b/libjava/java/nio/MappedByteBufferImpl.h new file mode 100644 index 000000000..71725bf1b --- /dev/null +++ b/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/libjava/java/nio/MappedByteBufferImpl.java b/libjava/java/nio/MappedByteBufferImpl.java new file mode 100644 index 000000000..c8d458a38 --- /dev/null +++ b/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/libjava/java/nio/ReadOnlyBufferException.h b/libjava/java/nio/ReadOnlyBufferException.h new file mode 100644 index 000000000..58fe414ff --- /dev/null +++ b/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/libjava/java/nio/ShortBuffer.h b/libjava/java/nio/ShortBuffer.h new file mode 100644 index 000000000..1cb82a085 --- /dev/null +++ b/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/libjava/java/nio/ShortBufferImpl.h b/libjava/java/nio/ShortBufferImpl.h new file mode 100644 index 000000000..a4150a8e9 --- /dev/null +++ b/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/libjava/java/nio/ShortViewBufferImpl.h b/libjava/java/nio/ShortViewBufferImpl.h new file mode 100644 index 000000000..179cc32c5 --- /dev/null +++ b/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/libjava/java/nio/VMDirectByteBuffer.h b/libjava/java/nio/VMDirectByteBuffer.h new file mode 100644 index 000000000..2434caf19 --- /dev/null +++ b/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/libjava/java/nio/VMDirectByteBuffer.java b/libjava/java/nio/VMDirectByteBuffer.java new file mode 100644 index 000000000..2aefaeb4b --- /dev/null +++ b/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/libjava/java/nio/channels/AlreadyConnectedException.h b/libjava/java/nio/channels/AlreadyConnectedException.h new file mode 100644 index 000000000..08d6d479e --- /dev/null +++ b/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/libjava/java/nio/channels/AsynchronousCloseException.h b/libjava/java/nio/channels/AsynchronousCloseException.h new file mode 100644 index 000000000..bfcbf2eb4 --- /dev/null +++ b/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/libjava/java/nio/channels/ByteChannel.h b/libjava/java/nio/channels/ByteChannel.h new file mode 100644 index 000000000..a81364813 --- /dev/null +++ b/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/libjava/java/nio/channels/CancelledKeyException.h b/libjava/java/nio/channels/CancelledKeyException.h new file mode 100644 index 000000000..742185f1f --- /dev/null +++ b/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/libjava/java/nio/channels/Channel.h b/libjava/java/nio/channels/Channel.h new file mode 100644 index 000000000..fc0177d6f --- /dev/null +++ b/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/libjava/java/nio/channels/Channels.h b/libjava/java/nio/channels/Channels.h new file mode 100644 index 000000000..384156483 --- /dev/null +++ b/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/libjava/java/nio/channels/ClosedByInterruptException.h b/libjava/java/nio/channels/ClosedByInterruptException.h new file mode 100644 index 000000000..742dddc60 --- /dev/null +++ b/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/libjava/java/nio/channels/ClosedChannelException.h b/libjava/java/nio/channels/ClosedChannelException.h new file mode 100644 index 000000000..3bca678e5 --- /dev/null +++ b/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/libjava/java/nio/channels/ClosedSelectorException.h b/libjava/java/nio/channels/ClosedSelectorException.h new file mode 100644 index 000000000..80b821ed4 --- /dev/null +++ b/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/libjava/java/nio/channels/ConnectionPendingException.h b/libjava/java/nio/channels/ConnectionPendingException.h new file mode 100644 index 000000000..29f483071 --- /dev/null +++ b/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/libjava/java/nio/channels/DatagramChannel.h b/libjava/java/nio/channels/DatagramChannel.h new file mode 100644 index 000000000..cb2dabcc0 --- /dev/null +++ b/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/libjava/java/nio/channels/FileChannel$MapMode.h b/libjava/java/nio/channels/FileChannel$MapMode.h new file mode 100644 index 000000000..954e6979e --- /dev/null +++ b/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/libjava/java/nio/channels/FileChannel.h b/libjava/java/nio/channels/FileChannel.h new file mode 100644 index 000000000..10cc314cc --- /dev/null +++ b/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/libjava/java/nio/channels/FileLock.h b/libjava/java/nio/channels/FileLock.h new file mode 100644 index 000000000..fb3585835 --- /dev/null +++ b/libjava/java/nio/channels/FileLock.h @@ -0,0 +1,48 @@ + +// 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(); +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/libjava/java/nio/channels/FileLockInterruptionException.h b/libjava/java/nio/channels/FileLockInterruptionException.h new file mode 100644 index 000000000..ad5e25076 --- /dev/null +++ b/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/libjava/java/nio/channels/GatheringByteChannel.h b/libjava/java/nio/channels/GatheringByteChannel.h new file mode 100644 index 000000000..c69c1954a --- /dev/null +++ b/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/libjava/java/nio/channels/IllegalBlockingModeException.h b/libjava/java/nio/channels/IllegalBlockingModeException.h new file mode 100644 index 000000000..38eda0379 --- /dev/null +++ b/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/libjava/java/nio/channels/IllegalSelectorException.h b/libjava/java/nio/channels/IllegalSelectorException.h new file mode 100644 index 000000000..9f137e423 --- /dev/null +++ b/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/libjava/java/nio/channels/InterruptibleChannel.h b/libjava/java/nio/channels/InterruptibleChannel.h new file mode 100644 index 000000000..fa8a68385 --- /dev/null +++ b/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/libjava/java/nio/channels/NoConnectionPendingException.h b/libjava/java/nio/channels/NoConnectionPendingException.h new file mode 100644 index 000000000..5be57aefd --- /dev/null +++ b/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/libjava/java/nio/channels/NonReadableChannelException.h b/libjava/java/nio/channels/NonReadableChannelException.h new file mode 100644 index 000000000..210d8369b --- /dev/null +++ b/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/libjava/java/nio/channels/NonWritableChannelException.h b/libjava/java/nio/channels/NonWritableChannelException.h new file mode 100644 index 000000000..4a56ef988 --- /dev/null +++ b/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/libjava/java/nio/channels/NotYetBoundException.h b/libjava/java/nio/channels/NotYetBoundException.h new file mode 100644 index 000000000..d4f1ad2d6 --- /dev/null +++ b/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/libjava/java/nio/channels/NotYetConnectedException.h b/libjava/java/nio/channels/NotYetConnectedException.h new file mode 100644 index 000000000..a38417a82 --- /dev/null +++ b/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/libjava/java/nio/channels/OverlappingFileLockException.h b/libjava/java/nio/channels/OverlappingFileLockException.h new file mode 100644 index 000000000..b2551f907 --- /dev/null +++ b/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/libjava/java/nio/channels/Pipe$SinkChannel.h b/libjava/java/nio/channels/Pipe$SinkChannel.h new file mode 100644 index 000000000..d6842b79b --- /dev/null +++ b/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/libjava/java/nio/channels/Pipe$SourceChannel.h b/libjava/java/nio/channels/Pipe$SourceChannel.h new file mode 100644 index 000000000..9bc78ea3b --- /dev/null +++ b/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/libjava/java/nio/channels/Pipe.h b/libjava/java/nio/channels/Pipe.h new file mode 100644 index 000000000..771dca23e --- /dev/null +++ b/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/libjava/java/nio/channels/ReadableByteChannel.h b/libjava/java/nio/channels/ReadableByteChannel.h new file mode 100644 index 000000000..9f3e4cf01 --- /dev/null +++ b/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/libjava/java/nio/channels/ScatteringByteChannel.h b/libjava/java/nio/channels/ScatteringByteChannel.h new file mode 100644 index 000000000..eeba864d4 --- /dev/null +++ b/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/libjava/java/nio/channels/SelectableChannel.h b/libjava/java/nio/channels/SelectableChannel.h new file mode 100644 index 000000000..82cf82880 --- /dev/null +++ b/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/libjava/java/nio/channels/SelectionKey.h b/libjava/java/nio/channels/SelectionKey.h new file mode 100644 index 000000000..1b6b03974 --- /dev/null +++ b/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/libjava/java/nio/channels/Selector.h b/libjava/java/nio/channels/Selector.h new file mode 100644 index 000000000..7d561adff --- /dev/null +++ b/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/libjava/java/nio/channels/ServerSocketChannel.h b/libjava/java/nio/channels/ServerSocketChannel.h new file mode 100644 index 000000000..b68d0b9a5 --- /dev/null +++ b/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/libjava/java/nio/channels/SocketChannel.h b/libjava/java/nio/channels/SocketChannel.h new file mode 100644 index 000000000..b742cdbdc --- /dev/null +++ b/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/libjava/java/nio/channels/UnresolvedAddressException.h b/libjava/java/nio/channels/UnresolvedAddressException.h new file mode 100644 index 000000000..2a3eefdce --- /dev/null +++ b/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/libjava/java/nio/channels/UnsupportedAddressTypeException.h b/libjava/java/nio/channels/UnsupportedAddressTypeException.h new file mode 100644 index 000000000..7f63dd76e --- /dev/null +++ b/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/libjava/java/nio/channels/VMChannels.h b/libjava/java/nio/channels/VMChannels.h new file mode 100644 index 000000000..3706d9d85 --- /dev/null +++ b/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/libjava/java/nio/channels/VMChannels.java b/libjava/java/nio/channels/VMChannels.java new file mode 100644 index 000000000..4f43a42ad --- /dev/null +++ b/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/libjava/java/nio/channels/WritableByteChannel.h b/libjava/java/nio/channels/WritableByteChannel.h new file mode 100644 index 000000000..ff413d27a --- /dev/null +++ b/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/libjava/java/nio/channels/natVMChannels.cc b/libjava/java/nio/channels/natVMChannels.cc new file mode 100644 index 000000000..d40a51653 --- /dev/null +++ b/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/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h b/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h new file mode 100644 index 000000000..f830a752b --- /dev/null +++ b/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/libjava/java/nio/channels/spi/AbstractSelectableChannel.h b/libjava/java/nio/channels/spi/AbstractSelectableChannel.h new file mode 100644 index 000000000..f126f441e --- /dev/null +++ b/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/libjava/java/nio/channels/spi/AbstractSelectionKey.h b/libjava/java/nio/channels/spi/AbstractSelectionKey.h new file mode 100644 index 000000000..d64a73bfd --- /dev/null +++ b/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/libjava/java/nio/channels/spi/AbstractSelector.h b/libjava/java/nio/channels/spi/AbstractSelector.h new file mode 100644 index 000000000..cf3d2b7c4 --- /dev/null +++ b/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/libjava/java/nio/channels/spi/SelectorProvider.h b/libjava/java/nio/channels/spi/SelectorProvider.h new file mode 100644 index 000000000..a6b7052be --- /dev/null +++ b/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/libjava/java/nio/charset/CharacterCodingException.h b/libjava/java/nio/charset/CharacterCodingException.h new file mode 100644 index 000000000..35935cd1f --- /dev/null +++ b/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/libjava/java/nio/charset/Charset.h b/libjava/java/nio/charset/Charset.h new file mode 100644 index 000000000..dabf4671d --- /dev/null +++ b/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/libjava/java/nio/charset/Charset.java b/libjava/java/nio/charset/Charset.java new file mode 100644 index 000000000..04b381948 --- /dev/null +++ b/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/libjava/java/nio/charset/CharsetDecoder.h b/libjava/java/nio/charset/CharsetDecoder.h new file mode 100644 index 000000000..fe75d48a5 --- /dev/null +++ b/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/libjava/java/nio/charset/CharsetEncoder.h b/libjava/java/nio/charset/CharsetEncoder.h new file mode 100644 index 000000000..5a64e44f7 --- /dev/null +++ b/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/libjava/java/nio/charset/CoderMalfunctionError.h b/libjava/java/nio/charset/CoderMalfunctionError.h new file mode 100644 index 000000000..b3ae83adf --- /dev/null +++ b/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/libjava/java/nio/charset/CoderResult$1.h b/libjava/java/nio/charset/CoderResult$1.h new file mode 100644 index 000000000..421777005 --- /dev/null +++ b/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/libjava/java/nio/charset/CoderResult$2.h b/libjava/java/nio/charset/CoderResult$2.h new file mode 100644 index 000000000..60dcbdcb2 --- /dev/null +++ b/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/libjava/java/nio/charset/CoderResult$Cache.h b/libjava/java/nio/charset/CoderResult$Cache.h new file mode 100644 index 000000000..38416bd9e --- /dev/null +++ b/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/libjava/java/nio/charset/CoderResult.h b/libjava/java/nio/charset/CoderResult.h new file mode 100644 index 000000000..e2c84a61c --- /dev/null +++ b/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/libjava/java/nio/charset/CodingErrorAction.h b/libjava/java/nio/charset/CodingErrorAction.h new file mode 100644 index 000000000..c0bf2aa66 --- /dev/null +++ b/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/libjava/java/nio/charset/IllegalCharsetNameException.h b/libjava/java/nio/charset/IllegalCharsetNameException.h new file mode 100644 index 000000000..c4b42474f --- /dev/null +++ b/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/libjava/java/nio/charset/MalformedInputException.h b/libjava/java/nio/charset/MalformedInputException.h new file mode 100644 index 000000000..03a6d8d98 --- /dev/null +++ b/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/libjava/java/nio/charset/UnmappableCharacterException.h b/libjava/java/nio/charset/UnmappableCharacterException.h new file mode 100644 index 000000000..f0ced263f --- /dev/null +++ b/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/libjava/java/nio/charset/UnsupportedCharsetException.h b/libjava/java/nio/charset/UnsupportedCharsetException.h new file mode 100644 index 000000000..7f09678fe --- /dev/null +++ b/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/libjava/java/nio/charset/spi/CharsetProvider.h b/libjava/java/nio/charset/spi/CharsetProvider.h new file mode 100644 index 000000000..b194e106b --- /dev/null +++ b/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/libjava/java/nio/charset/spi/CharsetProvider.java b/libjava/java/nio/charset/spi/CharsetProvider.java new file mode 100644 index 000000000..d56723c3f --- /dev/null +++ b/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/libjava/java/nio/natVMDirectByteBufferImpl.cc b/libjava/java/nio/natVMDirectByteBufferImpl.cc new file mode 100644 index 000000000..3119fdea3 --- /dev/null +++ b/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/libjava/java/rmi/AccessException.h b/libjava/java/rmi/AccessException.h new file mode 100644 index 000000000..1b49620a9 --- /dev/null +++ b/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/libjava/java/rmi/AlreadyBoundException.h b/libjava/java/rmi/AlreadyBoundException.h new file mode 100644 index 000000000..f24f4f906 --- /dev/null +++ b/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/libjava/java/rmi/ConnectException.h b/libjava/java/rmi/ConnectException.h new file mode 100644 index 000000000..a992a0471 --- /dev/null +++ b/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/libjava/java/rmi/ConnectIOException.h b/libjava/java/rmi/ConnectIOException.h new file mode 100644 index 000000000..c841a61fd --- /dev/null +++ b/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/libjava/java/rmi/MarshalException.h b/libjava/java/rmi/MarshalException.h new file mode 100644 index 000000000..db8ed5e1a --- /dev/null +++ b/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/libjava/java/rmi/MarshalledObject.h b/libjava/java/rmi/MarshalledObject.h new file mode 100644 index 000000000..e287ab26c --- /dev/null +++ b/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/libjava/java/rmi/Naming.h b/libjava/java/rmi/Naming.h new file mode 100644 index 000000000..ac47cea0d --- /dev/null +++ b/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/libjava/java/rmi/NoSuchObjectException.h b/libjava/java/rmi/NoSuchObjectException.h new file mode 100644 index 000000000..0f02109e8 --- /dev/null +++ b/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/libjava/java/rmi/NotBoundException.h b/libjava/java/rmi/NotBoundException.h new file mode 100644 index 000000000..1bdb01737 --- /dev/null +++ b/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/libjava/java/rmi/RMISecurityException.h b/libjava/java/rmi/RMISecurityException.h new file mode 100644 index 000000000..f3207f5e2 --- /dev/null +++ b/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/libjava/java/rmi/RMISecurityManager.h b/libjava/java/rmi/RMISecurityManager.h new file mode 100644 index 000000000..267543e68 --- /dev/null +++ b/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/libjava/java/rmi/Remote.h b/libjava/java/rmi/Remote.h new file mode 100644 index 000000000..f74cf3cba --- /dev/null +++ b/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/libjava/java/rmi/RemoteException.h b/libjava/java/rmi/RemoteException.h new file mode 100644 index 000000000..1e5213214 --- /dev/null +++ b/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/libjava/java/rmi/ServerError.h b/libjava/java/rmi/ServerError.h new file mode 100644 index 000000000..3c31a4949 --- /dev/null +++ b/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/libjava/java/rmi/ServerException.h b/libjava/java/rmi/ServerException.h new file mode 100644 index 000000000..958445a88 --- /dev/null +++ b/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/libjava/java/rmi/ServerRuntimeException.h b/libjava/java/rmi/ServerRuntimeException.h new file mode 100644 index 000000000..42dff2da6 --- /dev/null +++ b/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/libjava/java/rmi/StubNotFoundException.h b/libjava/java/rmi/StubNotFoundException.h new file mode 100644 index 000000000..79fcaf43d --- /dev/null +++ b/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/libjava/java/rmi/UnexpectedException.h b/libjava/java/rmi/UnexpectedException.h new file mode 100644 index 000000000..e6154b47f --- /dev/null +++ b/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/libjava/java/rmi/UnknownHostException.h b/libjava/java/rmi/UnknownHostException.h new file mode 100644 index 000000000..a516ebc26 --- /dev/null +++ b/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/libjava/java/rmi/UnmarshalException.h b/libjava/java/rmi/UnmarshalException.h new file mode 100644 index 000000000..0e6c471c8 --- /dev/null +++ b/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/libjava/java/rmi/activation/Activatable.h b/libjava/java/rmi/activation/Activatable.h new file mode 100644 index 000000000..a5398f48c --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivateFailedException.h b/libjava/java/rmi/activation/ActivateFailedException.h new file mode 100644 index 000000000..7d231a245 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationDesc.h b/libjava/java/rmi/activation/ActivationDesc.h new file mode 100644 index 000000000..618997bc3 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationException.h b/libjava/java/rmi/activation/ActivationException.h new file mode 100644 index 000000000..81f55e23e --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationGroup.h b/libjava/java/rmi/activation/ActivationGroup.h new file mode 100644 index 000000000..b9bf86d28 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h b/libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h new file mode 100644 index 000000000..f1cc49558 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationGroupDesc.h b/libjava/java/rmi/activation/ActivationGroupDesc.h new file mode 100644 index 000000000..8229e57fe --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationGroupID.h b/libjava/java/rmi/activation/ActivationGroupID.h new file mode 100644 index 000000000..be942fef7 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationGroup_Stub.h b/libjava/java/rmi/activation/ActivationGroup_Stub.h new file mode 100644 index 000000000..4dc223cb3 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationID.h b/libjava/java/rmi/activation/ActivationID.h new file mode 100644 index 000000000..831962e7c --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationInstantiator.h b/libjava/java/rmi/activation/ActivationInstantiator.h new file mode 100644 index 000000000..5249407e8 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationMonitor.h b/libjava/java/rmi/activation/ActivationMonitor.h new file mode 100644 index 000000000..a41dc6340 --- /dev/null +++ b/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/libjava/java/rmi/activation/ActivationSystem.h b/libjava/java/rmi/activation/ActivationSystem.h new file mode 100644 index 000000000..cb4f1458e --- /dev/null +++ b/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/libjava/java/rmi/activation/Activator.h b/libjava/java/rmi/activation/Activator.h new file mode 100644 index 000000000..7976abc83 --- /dev/null +++ b/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/libjava/java/rmi/activation/UnknownGroupException.h b/libjava/java/rmi/activation/UnknownGroupException.h new file mode 100644 index 000000000..27afe4cfb --- /dev/null +++ b/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/libjava/java/rmi/activation/UnknownObjectException.h b/libjava/java/rmi/activation/UnknownObjectException.h new file mode 100644 index 000000000..9bda5977c --- /dev/null +++ b/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/libjava/java/rmi/dgc/DGC.h b/libjava/java/rmi/dgc/DGC.h new file mode 100644 index 000000000..b240c1acb --- /dev/null +++ b/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/libjava/java/rmi/dgc/Lease.h b/libjava/java/rmi/dgc/Lease.h new file mode 100644 index 000000000..e3ad0bf45 --- /dev/null +++ b/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/libjava/java/rmi/dgc/VMID.h b/libjava/java/rmi/dgc/VMID.h new file mode 100644 index 000000000..082553bc1 --- /dev/null +++ b/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/libjava/java/rmi/registry/LocateRegistry.h b/libjava/java/rmi/registry/LocateRegistry.h new file mode 100644 index 000000000..75b0b4a65 --- /dev/null +++ b/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/libjava/java/rmi/registry/Registry.h b/libjava/java/rmi/registry/Registry.h new file mode 100644 index 000000000..470ef2bf4 --- /dev/null +++ b/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/libjava/java/rmi/registry/RegistryHandler.h b/libjava/java/rmi/registry/RegistryHandler.h new file mode 100644 index 000000000..cd2909402 --- /dev/null +++ b/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/libjava/java/rmi/server/ExportException.h b/libjava/java/rmi/server/ExportException.h new file mode 100644 index 000000000..471a944d2 --- /dev/null +++ b/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/libjava/java/rmi/server/LoaderHandler.h b/libjava/java/rmi/server/LoaderHandler.h new file mode 100644 index 000000000..6b515f795 --- /dev/null +++ b/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/libjava/java/rmi/server/LogStream.h b/libjava/java/rmi/server/LogStream.h new file mode 100644 index 000000000..6dfcfbf73 --- /dev/null +++ b/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/libjava/java/rmi/server/ObjID.h b/libjava/java/rmi/server/ObjID.h new file mode 100644 index 000000000..f830f0f4d --- /dev/null +++ b/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/libjava/java/rmi/server/Operation.h b/libjava/java/rmi/server/Operation.h new file mode 100644 index 000000000..e7b70ecd1 --- /dev/null +++ b/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/libjava/java/rmi/server/RMIClassLoader.h b/libjava/java/rmi/server/RMIClassLoader.h new file mode 100644 index 000000000..1d29dfd61 --- /dev/null +++ b/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/libjava/java/rmi/server/RMIClassLoaderSpi.h b/libjava/java/rmi/server/RMIClassLoaderSpi.h new file mode 100644 index 000000000..978a11a08 --- /dev/null +++ b/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/libjava/java/rmi/server/RMIClientSocketFactory.h b/libjava/java/rmi/server/RMIClientSocketFactory.h new file mode 100644 index 000000000..4a0731962 --- /dev/null +++ b/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/libjava/java/rmi/server/RMIFailureHandler.h b/libjava/java/rmi/server/RMIFailureHandler.h new file mode 100644 index 000000000..da177a063 --- /dev/null +++ b/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/libjava/java/rmi/server/RMIServerSocketFactory.h b/libjava/java/rmi/server/RMIServerSocketFactory.h new file mode 100644 index 000000000..daf42af56 --- /dev/null +++ b/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/libjava/java/rmi/server/RMISocketFactory.h b/libjava/java/rmi/server/RMISocketFactory.h new file mode 100644 index 000000000..f79b04cc4 --- /dev/null +++ b/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/libjava/java/rmi/server/RemoteCall.h b/libjava/java/rmi/server/RemoteCall.h new file mode 100644 index 000000000..e416f0b81 --- /dev/null +++ b/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/libjava/java/rmi/server/RemoteObject.h b/libjava/java/rmi/server/RemoteObject.h new file mode 100644 index 000000000..5a35b02c8 --- /dev/null +++ b/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/libjava/java/rmi/server/RemoteObjectInvocationHandler.h b/libjava/java/rmi/server/RemoteObjectInvocationHandler.h new file mode 100644 index 000000000..babacb8b3 --- /dev/null +++ b/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/libjava/java/rmi/server/RemoteRef.h b/libjava/java/rmi/server/RemoteRef.h new file mode 100644 index 000000000..e73eb3ca6 --- /dev/null +++ b/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/libjava/java/rmi/server/RemoteServer.h b/libjava/java/rmi/server/RemoteServer.h new file mode 100644 index 000000000..9822a79a8 --- /dev/null +++ b/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/libjava/java/rmi/server/RemoteStub.h b/libjava/java/rmi/server/RemoteStub.h new file mode 100644 index 000000000..75e1a7fd7 --- /dev/null +++ b/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/libjava/java/rmi/server/ServerCloneException.h b/libjava/java/rmi/server/ServerCloneException.h new file mode 100644 index 000000000..37d027cd8 --- /dev/null +++ b/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/libjava/java/rmi/server/ServerNotActiveException.h b/libjava/java/rmi/server/ServerNotActiveException.h new file mode 100644 index 000000000..6064177a6 --- /dev/null +++ b/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/libjava/java/rmi/server/ServerRef.h b/libjava/java/rmi/server/ServerRef.h new file mode 100644 index 000000000..d0c37822e --- /dev/null +++ b/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/libjava/java/rmi/server/Skeleton.h b/libjava/java/rmi/server/Skeleton.h new file mode 100644 index 000000000..492385b77 --- /dev/null +++ b/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/libjava/java/rmi/server/SkeletonMismatchException.h b/libjava/java/rmi/server/SkeletonMismatchException.h new file mode 100644 index 000000000..6d5d49218 --- /dev/null +++ b/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/libjava/java/rmi/server/SkeletonNotFoundException.h b/libjava/java/rmi/server/SkeletonNotFoundException.h new file mode 100644 index 000000000..f4030294c --- /dev/null +++ b/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/libjava/java/rmi/server/SocketSecurityException.h b/libjava/java/rmi/server/SocketSecurityException.h new file mode 100644 index 000000000..39c34411c --- /dev/null +++ b/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/libjava/java/rmi/server/UID.h b/libjava/java/rmi/server/UID.h new file mode 100644 index 000000000..85887ea3f --- /dev/null +++ b/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/libjava/java/rmi/server/UnicastRemoteObject.h b/libjava/java/rmi/server/UnicastRemoteObject.h new file mode 100644 index 000000000..274507ff9 --- /dev/null +++ b/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/libjava/java/rmi/server/Unreferenced.h b/libjava/java/rmi/server/Unreferenced.h new file mode 100644 index 000000000..70f802a7a --- /dev/null +++ b/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/libjava/java/security/AccessControlContext.h b/libjava/java/security/AccessControlContext.h new file mode 100644 index 000000000..e83852a77 --- /dev/null +++ b/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/libjava/java/security/AccessControlException.h b/libjava/java/security/AccessControlException.h new file mode 100644 index 000000000..1dcd122ca --- /dev/null +++ b/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/libjava/java/security/AccessController.h b/libjava/java/security/AccessController.h new file mode 100644 index 000000000..96cc367c7 --- /dev/null +++ b/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/libjava/java/security/AlgorithmParameterGenerator.h b/libjava/java/security/AlgorithmParameterGenerator.h new file mode 100644 index 000000000..02c9dbf3d --- /dev/null +++ b/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/libjava/java/security/AlgorithmParameterGeneratorSpi.h b/libjava/java/security/AlgorithmParameterGeneratorSpi.h new file mode 100644 index 000000000..c40dfd3df --- /dev/null +++ b/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/libjava/java/security/AlgorithmParameters.h b/libjava/java/security/AlgorithmParameters.h new file mode 100644 index 000000000..630b04312 --- /dev/null +++ b/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/libjava/java/security/AlgorithmParametersSpi.h b/libjava/java/security/AlgorithmParametersSpi.h new file mode 100644 index 000000000..a3c269677 --- /dev/null +++ b/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/libjava/java/security/AllPermission$AllPermissionCollection.h b/libjava/java/security/AllPermission$AllPermissionCollection.h new file mode 100644 index 000000000..bf88353db --- /dev/null +++ b/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/libjava/java/security/AllPermission.h b/libjava/java/security/AllPermission.h new file mode 100644 index 000000000..7700a9350 --- /dev/null +++ b/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/libjava/java/security/BasicPermission$BasicPermissionCollection.h b/libjava/java/security/BasicPermission$BasicPermissionCollection.h new file mode 100644 index 000000000..a2d14544c --- /dev/null +++ b/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/libjava/java/security/BasicPermission.h b/libjava/java/security/BasicPermission.h new file mode 100644 index 000000000..368386287 --- /dev/null +++ b/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/libjava/java/security/Certificate.h b/libjava/java/security/Certificate.h new file mode 100644 index 000000000..9c7af2842 --- /dev/null +++ b/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/libjava/java/security/CodeSource.h b/libjava/java/security/CodeSource.h new file mode 100644 index 000000000..35dffd9ab --- /dev/null +++ b/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/libjava/java/security/DigestException.h b/libjava/java/security/DigestException.h new file mode 100644 index 000000000..d216415c9 --- /dev/null +++ b/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/libjava/java/security/DigestInputStream.h b/libjava/java/security/DigestInputStream.h new file mode 100644 index 000000000..b112ad2c5 --- /dev/null +++ b/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/libjava/java/security/DigestOutputStream.h b/libjava/java/security/DigestOutputStream.h new file mode 100644 index 000000000..5c1605c76 --- /dev/null +++ b/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/libjava/java/security/DomainCombiner.h b/libjava/java/security/DomainCombiner.h new file mode 100644 index 000000000..18906b929 --- /dev/null +++ b/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/libjava/java/security/DummyKeyPairGenerator.h b/libjava/java/security/DummyKeyPairGenerator.h new file mode 100644 index 000000000..c0f35818b --- /dev/null +++ b/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/libjava/java/security/DummyMessageDigest.h b/libjava/java/security/DummyMessageDigest.h new file mode 100644 index 000000000..431096dfe --- /dev/null +++ b/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/libjava/java/security/DummySignature.h b/libjava/java/security/DummySignature.h new file mode 100644 index 000000000..34547473f --- /dev/null +++ b/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/libjava/java/security/GeneralSecurityException.h b/libjava/java/security/GeneralSecurityException.h new file mode 100644 index 000000000..6b309b5eb --- /dev/null +++ b/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/libjava/java/security/Guard.h b/libjava/java/security/Guard.h new file mode 100644 index 000000000..07cc6437d --- /dev/null +++ b/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/libjava/java/security/GuardedObject.h b/libjava/java/security/GuardedObject.h new file mode 100644 index 000000000..379651249 --- /dev/null +++ b/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/libjava/java/security/Identity.h b/libjava/java/security/Identity.h new file mode 100644 index 000000000..8208e7ff6 --- /dev/null +++ b/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/libjava/java/security/IdentityScope.h b/libjava/java/security/IdentityScope.h new file mode 100644 index 000000000..90a493031 --- /dev/null +++ b/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/libjava/java/security/IntersectingDomainCombiner.h b/libjava/java/security/IntersectingDomainCombiner.h new file mode 100644 index 000000000..f192c2615 --- /dev/null +++ b/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/libjava/java/security/InvalidAlgorithmParameterException.h b/libjava/java/security/InvalidAlgorithmParameterException.h new file mode 100644 index 000000000..8ff0d7ed3 --- /dev/null +++ b/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/libjava/java/security/InvalidKeyException.h b/libjava/java/security/InvalidKeyException.h new file mode 100644 index 000000000..f79473c40 --- /dev/null +++ b/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/libjava/java/security/InvalidParameterException.h b/libjava/java/security/InvalidParameterException.h new file mode 100644 index 000000000..fd9c9a732 --- /dev/null +++ b/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/libjava/java/security/Key.h b/libjava/java/security/Key.h new file mode 100644 index 000000000..630f8123b --- /dev/null +++ b/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/libjava/java/security/KeyException.h b/libjava/java/security/KeyException.h new file mode 100644 index 000000000..0d3ce5138 --- /dev/null +++ b/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/libjava/java/security/KeyFactory.h b/libjava/java/security/KeyFactory.h new file mode 100644 index 000000000..adcec17f7 --- /dev/null +++ b/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/libjava/java/security/KeyFactorySpi.h b/libjava/java/security/KeyFactorySpi.h new file mode 100644 index 000000000..518893b59 --- /dev/null +++ b/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/libjava/java/security/KeyManagementException.h b/libjava/java/security/KeyManagementException.h new file mode 100644 index 000000000..20d6964f9 --- /dev/null +++ b/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/libjava/java/security/KeyPair.h b/libjava/java/security/KeyPair.h new file mode 100644 index 000000000..c6c607bb0 --- /dev/null +++ b/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/libjava/java/security/KeyPairGenerator.h b/libjava/java/security/KeyPairGenerator.h new file mode 100644 index 000000000..f1bef60c5 --- /dev/null +++ b/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/libjava/java/security/KeyPairGeneratorSpi.h b/libjava/java/security/KeyPairGeneratorSpi.h new file mode 100644 index 000000000..0aa4389e5 --- /dev/null +++ b/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/libjava/java/security/KeyStore.h b/libjava/java/security/KeyStore.h new file mode 100644 index 000000000..80f79814a --- /dev/null +++ b/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/libjava/java/security/KeyStoreException.h b/libjava/java/security/KeyStoreException.h new file mode 100644 index 000000000..e056a68a7 --- /dev/null +++ b/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/libjava/java/security/KeyStoreSpi.h b/libjava/java/security/KeyStoreSpi.h new file mode 100644 index 000000000..054cea6f1 --- /dev/null +++ b/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/libjava/java/security/MessageDigest.h b/libjava/java/security/MessageDigest.h new file mode 100644 index 000000000..5cd6cf3b1 --- /dev/null +++ b/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/libjava/java/security/MessageDigestSpi.h b/libjava/java/security/MessageDigestSpi.h new file mode 100644 index 000000000..fea06bf49 --- /dev/null +++ b/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/libjava/java/security/NoSuchAlgorithmException.h b/libjava/java/security/NoSuchAlgorithmException.h new file mode 100644 index 000000000..413821e72 --- /dev/null +++ b/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/libjava/java/security/NoSuchProviderException.h b/libjava/java/security/NoSuchProviderException.h new file mode 100644 index 000000000..16878c337 --- /dev/null +++ b/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/libjava/java/security/Permission.h b/libjava/java/security/Permission.h new file mode 100644 index 000000000..c565f2b58 --- /dev/null +++ b/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/libjava/java/security/PermissionCollection.h b/libjava/java/security/PermissionCollection.h new file mode 100644 index 000000000..868c23e0e --- /dev/null +++ b/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/libjava/java/security/Permissions$1.h b/libjava/java/security/Permissions$1.h new file mode 100644 index 000000000..22e0e412f --- /dev/null +++ b/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/libjava/java/security/Permissions$PermissionsHash.h b/libjava/java/security/Permissions$PermissionsHash.h new file mode 100644 index 000000000..870065a4b --- /dev/null +++ b/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/libjava/java/security/Permissions.h b/libjava/java/security/Permissions.h new file mode 100644 index 000000000..5484fa980 --- /dev/null +++ b/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/libjava/java/security/Policy.h b/libjava/java/security/Policy.h new file mode 100644 index 000000000..116209544 --- /dev/null +++ b/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/libjava/java/security/Principal.h b/libjava/java/security/Principal.h new file mode 100644 index 000000000..e3cfb3126 --- /dev/null +++ b/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/libjava/java/security/PrivateKey.h b/libjava/java/security/PrivateKey.h new file mode 100644 index 000000000..2be7e6395 --- /dev/null +++ b/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/libjava/java/security/PrivilegedAction.h b/libjava/java/security/PrivilegedAction.h new file mode 100644 index 000000000..17481fd00 --- /dev/null +++ b/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/libjava/java/security/PrivilegedActionException.h b/libjava/java/security/PrivilegedActionException.h new file mode 100644 index 000000000..165a1c597 --- /dev/null +++ b/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/libjava/java/security/PrivilegedExceptionAction.h b/libjava/java/security/PrivilegedExceptionAction.h new file mode 100644 index 000000000..bfb3046e5 --- /dev/null +++ b/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/libjava/java/security/ProtectionDomain.h b/libjava/java/security/ProtectionDomain.h new file mode 100644 index 000000000..7f204667a --- /dev/null +++ b/libjava/java/security/ProtectionDomain.h @@ -0,0 +1,52 @@ + +// 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; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_security_ProtectionDomain__ diff --git a/libjava/java/security/Provider.h b/libjava/java/security/Provider.h new file mode 100644 index 000000000..5954805f8 --- /dev/null +++ b/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/libjava/java/security/ProviderException.h b/libjava/java/security/ProviderException.h new file mode 100644 index 000000000..843a100ab --- /dev/null +++ b/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/libjava/java/security/PublicKey.h b/libjava/java/security/PublicKey.h new file mode 100644 index 000000000..6a2a72bd8 --- /dev/null +++ b/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/libjava/java/security/SecureClassLoader.h b/libjava/java/security/SecureClassLoader.h new file mode 100644 index 000000000..c8431a7bc --- /dev/null +++ b/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/libjava/java/security/SecureRandom.h b/libjava/java/security/SecureRandom.h new file mode 100644 index 000000000..b54318c44 --- /dev/null +++ b/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/libjava/java/security/SecureRandomSpi.h b/libjava/java/security/SecureRandomSpi.h new file mode 100644 index 000000000..8b2b6d7d1 --- /dev/null +++ b/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/libjava/java/security/Security.h b/libjava/java/security/Security.h new file mode 100644 index 000000000..201c9957d --- /dev/null +++ b/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/libjava/java/security/SecurityPermission.h b/libjava/java/security/SecurityPermission.h new file mode 100644 index 000000000..c28bdc630 --- /dev/null +++ b/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/libjava/java/security/Signature.h b/libjava/java/security/Signature.h new file mode 100644 index 000000000..43f4d5233 --- /dev/null +++ b/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/libjava/java/security/SignatureException.h b/libjava/java/security/SignatureException.h new file mode 100644 index 000000000..32e3d7562 --- /dev/null +++ b/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/libjava/java/security/SignatureSpi.h b/libjava/java/security/SignatureSpi.h new file mode 100644 index 000000000..7e2406e5a --- /dev/null +++ b/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/libjava/java/security/SignedObject.h b/libjava/java/security/SignedObject.h new file mode 100644 index 000000000..430053721 --- /dev/null +++ b/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/libjava/java/security/Signer.h b/libjava/java/security/Signer.h new file mode 100644 index 000000000..080bc8a0b --- /dev/null +++ b/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/libjava/java/security/UnrecoverableKeyException.h b/libjava/java/security/UnrecoverableKeyException.h new file mode 100644 index 000000000..51c0c8a01 --- /dev/null +++ b/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/libjava/java/security/UnresolvedPermission.h b/libjava/java/security/UnresolvedPermission.h new file mode 100644 index 000000000..ceebc5b72 --- /dev/null +++ b/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/libjava/java/security/UnresolvedPermissionCollection$1.h b/libjava/java/security/UnresolvedPermissionCollection$1.h new file mode 100644 index 000000000..2e7537858 --- /dev/null +++ b/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/libjava/java/security/UnresolvedPermissionCollection.h b/libjava/java/security/UnresolvedPermissionCollection.h new file mode 100644 index 000000000..2d31d0e6c --- /dev/null +++ b/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/libjava/java/security/VMAccessControlState.h b/libjava/java/security/VMAccessControlState.h new file mode 100644 index 000000000..5c71033ca --- /dev/null +++ b/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/libjava/java/security/VMAccessControlState.java b/libjava/java/security/VMAccessControlState.java new file mode 100644 index 000000000..360f08a5b --- /dev/null +++ b/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/libjava/java/security/VMAccessController.h b/libjava/java/security/VMAccessController.h new file mode 100644 index 000000000..20cd9ce73 --- /dev/null +++ b/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/libjava/java/security/VMAccessController.java b/libjava/java/security/VMAccessController.java new file mode 100644 index 000000000..66ada1952 --- /dev/null +++ b/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/libjava/java/security/acl/Acl.h b/libjava/java/security/acl/Acl.h new file mode 100644 index 000000000..82c8d6de7 --- /dev/null +++ b/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/libjava/java/security/acl/AclEntry.h b/libjava/java/security/acl/AclEntry.h new file mode 100644 index 000000000..3b098b0f8 --- /dev/null +++ b/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/libjava/java/security/acl/AclNotFoundException.h b/libjava/java/security/acl/AclNotFoundException.h new file mode 100644 index 000000000..9daea6522 --- /dev/null +++ b/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/libjava/java/security/acl/Group.h b/libjava/java/security/acl/Group.h new file mode 100644 index 000000000..780774d41 --- /dev/null +++ b/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/libjava/java/security/acl/LastOwnerException.h b/libjava/java/security/acl/LastOwnerException.h new file mode 100644 index 000000000..eb03366e0 --- /dev/null +++ b/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/libjava/java/security/acl/NotOwnerException.h b/libjava/java/security/acl/NotOwnerException.h new file mode 100644 index 000000000..627e4e57b --- /dev/null +++ b/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/libjava/java/security/acl/Owner.h b/libjava/java/security/acl/Owner.h new file mode 100644 index 000000000..b8bc09bf2 --- /dev/null +++ b/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/libjava/java/security/acl/Permission.h b/libjava/java/security/acl/Permission.h new file mode 100644 index 000000000..f1c9b2525 --- /dev/null +++ b/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/libjava/java/security/cert/CRL.h b/libjava/java/security/cert/CRL.h new file mode 100644 index 000000000..e1b5298e0 --- /dev/null +++ b/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/libjava/java/security/cert/CRLException.h b/libjava/java/security/cert/CRLException.h new file mode 100644 index 000000000..7e2401eb4 --- /dev/null +++ b/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/libjava/java/security/cert/CRLSelector.h b/libjava/java/security/cert/CRLSelector.h new file mode 100644 index 000000000..fb5fe7a62 --- /dev/null +++ b/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/libjava/java/security/cert/CertPath$CertPathRep.h b/libjava/java/security/cert/CertPath$CertPathRep.h new file mode 100644 index 000000000..a688e1b6d --- /dev/null +++ b/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/libjava/java/security/cert/CertPath.h b/libjava/java/security/cert/CertPath.h new file mode 100644 index 000000000..ed7378982 --- /dev/null +++ b/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/libjava/java/security/cert/CertPathBuilder.h b/libjava/java/security/cert/CertPathBuilder.h new file mode 100644 index 000000000..2905f7423 --- /dev/null +++ b/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/libjava/java/security/cert/CertPathBuilderException.h b/libjava/java/security/cert/CertPathBuilderException.h new file mode 100644 index 000000000..c2cb71b8f --- /dev/null +++ b/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/libjava/java/security/cert/CertPathBuilderResult.h b/libjava/java/security/cert/CertPathBuilderResult.h new file mode 100644 index 000000000..74849e8df --- /dev/null +++ b/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/libjava/java/security/cert/CertPathBuilderSpi.h b/libjava/java/security/cert/CertPathBuilderSpi.h new file mode 100644 index 000000000..8b9524a5a --- /dev/null +++ b/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/libjava/java/security/cert/CertPathParameters.h b/libjava/java/security/cert/CertPathParameters.h new file mode 100644 index 000000000..a6752dfae --- /dev/null +++ b/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/libjava/java/security/cert/CertPathValidator$1.h b/libjava/java/security/cert/CertPathValidator$1.h new file mode 100644 index 000000000..162f3d3bc --- /dev/null +++ b/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/libjava/java/security/cert/CertPathValidator.h b/libjava/java/security/cert/CertPathValidator.h new file mode 100644 index 000000000..4424264fc --- /dev/null +++ b/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/libjava/java/security/cert/CertPathValidatorException.h b/libjava/java/security/cert/CertPathValidatorException.h new file mode 100644 index 000000000..14289c79a --- /dev/null +++ b/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/libjava/java/security/cert/CertPathValidatorResult.h b/libjava/java/security/cert/CertPathValidatorResult.h new file mode 100644 index 000000000..1a453205d --- /dev/null +++ b/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/libjava/java/security/cert/CertPathValidatorSpi.h b/libjava/java/security/cert/CertPathValidatorSpi.h new file mode 100644 index 000000000..cb737ef64 --- /dev/null +++ b/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/libjava/java/security/cert/CertSelector.h b/libjava/java/security/cert/CertSelector.h new file mode 100644 index 000000000..2288bcc29 --- /dev/null +++ b/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/libjava/java/security/cert/CertStore$1.h b/libjava/java/security/cert/CertStore$1.h new file mode 100644 index 000000000..9268dcd79 --- /dev/null +++ b/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/libjava/java/security/cert/CertStore.h b/libjava/java/security/cert/CertStore.h new file mode 100644 index 000000000..af7e7488c --- /dev/null +++ b/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/libjava/java/security/cert/CertStoreException.h b/libjava/java/security/cert/CertStoreException.h new file mode 100644 index 000000000..72e42f9ab --- /dev/null +++ b/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/libjava/java/security/cert/CertStoreParameters.h b/libjava/java/security/cert/CertStoreParameters.h new file mode 100644 index 000000000..57eda812d --- /dev/null +++ b/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/libjava/java/security/cert/CertStoreSpi.h b/libjava/java/security/cert/CertStoreSpi.h new file mode 100644 index 000000000..30dc3a4db --- /dev/null +++ b/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/libjava/java/security/cert/Certificate$CertificateRep.h b/libjava/java/security/cert/Certificate$CertificateRep.h new file mode 100644 index 000000000..3eb75f2cb --- /dev/null +++ b/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/libjava/java/security/cert/Certificate.h b/libjava/java/security/cert/Certificate.h new file mode 100644 index 000000000..350d78a9c --- /dev/null +++ b/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/libjava/java/security/cert/CertificateEncodingException.h b/libjava/java/security/cert/CertificateEncodingException.h new file mode 100644 index 000000000..f97e40e16 --- /dev/null +++ b/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/libjava/java/security/cert/CertificateException.h b/libjava/java/security/cert/CertificateException.h new file mode 100644 index 000000000..11658e289 --- /dev/null +++ b/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/libjava/java/security/cert/CertificateExpiredException.h b/libjava/java/security/cert/CertificateExpiredException.h new file mode 100644 index 000000000..a92013dc7 --- /dev/null +++ b/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/libjava/java/security/cert/CertificateFactory.h b/libjava/java/security/cert/CertificateFactory.h new file mode 100644 index 000000000..184e3e4e9 --- /dev/null +++ b/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/libjava/java/security/cert/CertificateFactorySpi.h b/libjava/java/security/cert/CertificateFactorySpi.h new file mode 100644 index 000000000..2370e6794 --- /dev/null +++ b/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/libjava/java/security/cert/CertificateNotYetValidException.h b/libjava/java/security/cert/CertificateNotYetValidException.h new file mode 100644 index 000000000..510bb39fe --- /dev/null +++ b/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/libjava/java/security/cert/CertificateParsingException.h b/libjava/java/security/cert/CertificateParsingException.h new file mode 100644 index 000000000..2827e8961 --- /dev/null +++ b/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/libjava/java/security/cert/CollectionCertStoreParameters.h b/libjava/java/security/cert/CollectionCertStoreParameters.h new file mode 100644 index 000000000..cabf8dfa3 --- /dev/null +++ b/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/libjava/java/security/cert/LDAPCertStoreParameters.h b/libjava/java/security/cert/LDAPCertStoreParameters.h new file mode 100644 index 000000000..2cdde192f --- /dev/null +++ b/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/libjava/java/security/cert/PKIXBuilderParameters.h b/libjava/java/security/cert/PKIXBuilderParameters.h new file mode 100644 index 000000000..bb9ffd707 --- /dev/null +++ b/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/libjava/java/security/cert/PKIXCertPathBuilderResult.h b/libjava/java/security/cert/PKIXCertPathBuilderResult.h new file mode 100644 index 000000000..ad6ee690b --- /dev/null +++ b/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/libjava/java/security/cert/PKIXCertPathChecker.h b/libjava/java/security/cert/PKIXCertPathChecker.h new file mode 100644 index 000000000..375e8f33c --- /dev/null +++ b/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/libjava/java/security/cert/PKIXCertPathValidatorResult.h b/libjava/java/security/cert/PKIXCertPathValidatorResult.h new file mode 100644 index 000000000..879bc2bf9 --- /dev/null +++ b/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/libjava/java/security/cert/PKIXParameters.h b/libjava/java/security/cert/PKIXParameters.h new file mode 100644 index 000000000..7a953696c --- /dev/null +++ b/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/libjava/java/security/cert/PolicyNode.h b/libjava/java/security/cert/PolicyNode.h new file mode 100644 index 000000000..04cadaf05 --- /dev/null +++ b/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/libjava/java/security/cert/PolicyQualifierInfo.h b/libjava/java/security/cert/PolicyQualifierInfo.h new file mode 100644 index 000000000..ed16d26f7 --- /dev/null +++ b/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/libjava/java/security/cert/TrustAnchor.h b/libjava/java/security/cert/TrustAnchor.h new file mode 100644 index 000000000..3afc671bc --- /dev/null +++ b/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/libjava/java/security/cert/X509CRL.h b/libjava/java/security/cert/X509CRL.h new file mode 100644 index 000000000..1c9266502 --- /dev/null +++ b/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/libjava/java/security/cert/X509CRLEntry.h b/libjava/java/security/cert/X509CRLEntry.h new file mode 100644 index 000000000..8d9c8d5f9 --- /dev/null +++ b/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/libjava/java/security/cert/X509CRLSelector.h b/libjava/java/security/cert/X509CRLSelector.h new file mode 100644 index 000000000..e888f633e --- /dev/null +++ b/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/libjava/java/security/cert/X509CertSelector.h b/libjava/java/security/cert/X509CertSelector.h new file mode 100644 index 000000000..f1d5b3a8f --- /dev/null +++ b/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/libjava/java/security/cert/X509Certificate.h b/libjava/java/security/cert/X509Certificate.h new file mode 100644 index 000000000..9f8afe1f4 --- /dev/null +++ b/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/libjava/java/security/cert/X509Extension.h b/libjava/java/security/cert/X509Extension.h new file mode 100644 index 000000000..53eb5d1b6 --- /dev/null +++ b/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/libjava/java/security/interfaces/DSAKey.h b/libjava/java/security/interfaces/DSAKey.h new file mode 100644 index 000000000..ee58f377d --- /dev/null +++ b/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/libjava/java/security/interfaces/DSAKeyPairGenerator.h b/libjava/java/security/interfaces/DSAKeyPairGenerator.h new file mode 100644 index 000000000..424348c80 --- /dev/null +++ b/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/libjava/java/security/interfaces/DSAParams.h b/libjava/java/security/interfaces/DSAParams.h new file mode 100644 index 000000000..e6963fb11 --- /dev/null +++ b/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/libjava/java/security/interfaces/DSAPrivateKey.h b/libjava/java/security/interfaces/DSAPrivateKey.h new file mode 100644 index 000000000..e1fb8e86c --- /dev/null +++ b/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/libjava/java/security/interfaces/DSAPublicKey.h b/libjava/java/security/interfaces/DSAPublicKey.h new file mode 100644 index 000000000..079161074 --- /dev/null +++ b/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/libjava/java/security/interfaces/RSAKey.h b/libjava/java/security/interfaces/RSAKey.h new file mode 100644 index 000000000..76985bdb6 --- /dev/null +++ b/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/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h b/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h new file mode 100644 index 000000000..3e4ff331f --- /dev/null +++ b/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/libjava/java/security/interfaces/RSAPrivateCrtKey.h b/libjava/java/security/interfaces/RSAPrivateCrtKey.h new file mode 100644 index 000000000..7c6943d43 --- /dev/null +++ b/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/libjava/java/security/interfaces/RSAPrivateKey.h b/libjava/java/security/interfaces/RSAPrivateKey.h new file mode 100644 index 000000000..b1e613978 --- /dev/null +++ b/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/libjava/java/security/interfaces/RSAPublicKey.h b/libjava/java/security/interfaces/RSAPublicKey.h new file mode 100644 index 000000000..d2cd7e703 --- /dev/null +++ b/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/libjava/java/security/natVMAccessControlState.cc b/libjava/java/security/natVMAccessControlState.cc new file mode 100644 index 000000000..a4c14cdd4 --- /dev/null +++ b/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/libjava/java/security/natVMAccessController.cc b/libjava/java/security/natVMAccessController.cc new file mode 100644 index 000000000..9a0ae489e --- /dev/null +++ b/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/libjava/java/security/spec/AlgorithmParameterSpec.h b/libjava/java/security/spec/AlgorithmParameterSpec.h new file mode 100644 index 000000000..9fa07b0a3 --- /dev/null +++ b/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/libjava/java/security/spec/DSAParameterSpec.h b/libjava/java/security/spec/DSAParameterSpec.h new file mode 100644 index 000000000..83a2cb8ec --- /dev/null +++ b/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/libjava/java/security/spec/DSAPrivateKeySpec.h b/libjava/java/security/spec/DSAPrivateKeySpec.h new file mode 100644 index 000000000..fe1cae312 --- /dev/null +++ b/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/libjava/java/security/spec/DSAPublicKeySpec.h b/libjava/java/security/spec/DSAPublicKeySpec.h new file mode 100644 index 000000000..aa0cc5c2a --- /dev/null +++ b/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/libjava/java/security/spec/EncodedKeySpec.h b/libjava/java/security/spec/EncodedKeySpec.h new file mode 100644 index 000000000..bc913b1e5 --- /dev/null +++ b/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/libjava/java/security/spec/InvalidKeySpecException.h b/libjava/java/security/spec/InvalidKeySpecException.h new file mode 100644 index 000000000..ff2ea69fe --- /dev/null +++ b/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/libjava/java/security/spec/InvalidParameterSpecException.h b/libjava/java/security/spec/InvalidParameterSpecException.h new file mode 100644 index 000000000..e80550deb --- /dev/null +++ b/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/libjava/java/security/spec/KeySpec.h b/libjava/java/security/spec/KeySpec.h new file mode 100644 index 000000000..cdb7b40cf --- /dev/null +++ b/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/libjava/java/security/spec/PKCS8EncodedKeySpec.h b/libjava/java/security/spec/PKCS8EncodedKeySpec.h new file mode 100644 index 000000000..20e7007e1 --- /dev/null +++ b/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/libjava/java/security/spec/PSSParameterSpec.h b/libjava/java/security/spec/PSSParameterSpec.h new file mode 100644 index 000000000..01253a2ca --- /dev/null +++ b/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/libjava/java/security/spec/RSAKeyGenParameterSpec.h b/libjava/java/security/spec/RSAKeyGenParameterSpec.h new file mode 100644 index 000000000..a047dd668 --- /dev/null +++ b/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/libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h b/libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h new file mode 100644 index 000000000..bebb3d3a9 --- /dev/null +++ b/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/libjava/java/security/spec/RSAOtherPrimeInfo.h b/libjava/java/security/spec/RSAOtherPrimeInfo.h new file mode 100644 index 000000000..878e3e58e --- /dev/null +++ b/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/libjava/java/security/spec/RSAPrivateCrtKeySpec.h b/libjava/java/security/spec/RSAPrivateCrtKeySpec.h new file mode 100644 index 000000000..4f25ac678 --- /dev/null +++ b/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/libjava/java/security/spec/RSAPrivateKeySpec.h b/libjava/java/security/spec/RSAPrivateKeySpec.h new file mode 100644 index 000000000..4b0136b45 --- /dev/null +++ b/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/libjava/java/security/spec/RSAPublicKeySpec.h b/libjava/java/security/spec/RSAPublicKeySpec.h new file mode 100644 index 000000000..d6f80a316 --- /dev/null +++ b/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/libjava/java/security/spec/X509EncodedKeySpec.h b/libjava/java/security/spec/X509EncodedKeySpec.h new file mode 100644 index 000000000..426ea1be7 --- /dev/null +++ b/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/libjava/java/sql/Array.h b/libjava/java/sql/Array.h new file mode 100644 index 000000000..34a1e840c --- /dev/null +++ b/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/libjava/java/sql/BatchUpdateException.h b/libjava/java/sql/BatchUpdateException.h new file mode 100644 index 000000000..b9d28cf88 --- /dev/null +++ b/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/libjava/java/sql/Blob.h b/libjava/java/sql/Blob.h new file mode 100644 index 000000000..a1b00c2ed --- /dev/null +++ b/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/libjava/java/sql/CallableStatement.h b/libjava/java/sql/CallableStatement.h new file mode 100644 index 000000000..143184e5c --- /dev/null +++ b/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/libjava/java/sql/Clob.h b/libjava/java/sql/Clob.h new file mode 100644 index 000000000..a402a0308 --- /dev/null +++ b/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/libjava/java/sql/Connection.h b/libjava/java/sql/Connection.h new file mode 100644 index 000000000..3ce236fc8 --- /dev/null +++ b/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/libjava/java/sql/DataTruncation.h b/libjava/java/sql/DataTruncation.h new file mode 100644 index 000000000..584c65bcf --- /dev/null +++ b/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/libjava/java/sql/DatabaseMetaData.h b/libjava/java/sql/DatabaseMetaData.h new file mode 100644 index 000000000..0d1feb748 --- /dev/null +++ b/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/libjava/java/sql/Date.h b/libjava/java/sql/Date.h new file mode 100644 index 000000000..8a7939b31 --- /dev/null +++ b/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/libjava/java/sql/Driver.h b/libjava/java/sql/Driver.h new file mode 100644 index 000000000..f9800b060 --- /dev/null +++ b/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/libjava/java/sql/DriverManager.h b/libjava/java/sql/DriverManager.h new file mode 100644 index 000000000..f9d87eabe --- /dev/null +++ b/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/libjava/java/sql/DriverPropertyInfo.h b/libjava/java/sql/DriverPropertyInfo.h new file mode 100644 index 000000000..46e21af13 --- /dev/null +++ b/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/libjava/java/sql/ParameterMetaData.h b/libjava/java/sql/ParameterMetaData.h new file mode 100644 index 000000000..a377668ea --- /dev/null +++ b/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/libjava/java/sql/PreparedStatement.h b/libjava/java/sql/PreparedStatement.h new file mode 100644 index 000000000..dcb2e5dea --- /dev/null +++ b/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/libjava/java/sql/Ref.h b/libjava/java/sql/Ref.h new file mode 100644 index 000000000..79cfc9a9c --- /dev/null +++ b/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/libjava/java/sql/ResultSet.h b/libjava/java/sql/ResultSet.h new file mode 100644 index 000000000..969c0ecc3 --- /dev/null +++ b/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/libjava/java/sql/ResultSetMetaData.h b/libjava/java/sql/ResultSetMetaData.h new file mode 100644 index 000000000..d871adee6 --- /dev/null +++ b/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/libjava/java/sql/SQLData.h b/libjava/java/sql/SQLData.h new file mode 100644 index 000000000..d63205a72 --- /dev/null +++ b/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/libjava/java/sql/SQLException.h b/libjava/java/sql/SQLException.h new file mode 100644 index 000000000..3f88d9456 --- /dev/null +++ b/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/libjava/java/sql/SQLInput.h b/libjava/java/sql/SQLInput.h new file mode 100644 index 000000000..d19ffc03c --- /dev/null +++ b/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/libjava/java/sql/SQLOutput.h b/libjava/java/sql/SQLOutput.h new file mode 100644 index 000000000..f0be2db59 --- /dev/null +++ b/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/libjava/java/sql/SQLPermission.h b/libjava/java/sql/SQLPermission.h new file mode 100644 index 000000000..a426f31a0 --- /dev/null +++ b/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/libjava/java/sql/SQLWarning.h b/libjava/java/sql/SQLWarning.h new file mode 100644 index 000000000..5cb2572ff --- /dev/null +++ b/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/libjava/java/sql/Savepoint.h b/libjava/java/sql/Savepoint.h new file mode 100644 index 000000000..d22773c9f --- /dev/null +++ b/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/libjava/java/sql/Statement.h b/libjava/java/sql/Statement.h new file mode 100644 index 000000000..b4cba4489 --- /dev/null +++ b/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/libjava/java/sql/Struct.h b/libjava/java/sql/Struct.h new file mode 100644 index 000000000..ff9be27b9 --- /dev/null +++ b/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/libjava/java/sql/Time.h b/libjava/java/sql/Time.h new file mode 100644 index 000000000..a9c5d12af --- /dev/null +++ b/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/libjava/java/sql/Timestamp.h b/libjava/java/sql/Timestamp.h new file mode 100644 index 000000000..90333692e --- /dev/null +++ b/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/libjava/java/sql/Types.h b/libjava/java/sql/Types.h new file mode 100644 index 000000000..8f6388fe2 --- /dev/null +++ b/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/libjava/java/text/Annotation.h b/libjava/java/text/Annotation.h new file mode 100644 index 000000000..7170a3f91 --- /dev/null +++ b/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/libjava/java/text/AttributedCharacterIterator$Attribute.h b/libjava/java/text/AttributedCharacterIterator$Attribute.h new file mode 100644 index 000000000..f47224044 --- /dev/null +++ b/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/libjava/java/text/AttributedCharacterIterator.h b/libjava/java/text/AttributedCharacterIterator.h new file mode 100644 index 000000000..c5b04f6fa --- /dev/null +++ b/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/libjava/java/text/AttributedString$AttributeRange.h b/libjava/java/text/AttributedString$AttributeRange.h new file mode 100644 index 000000000..49e33d1ad --- /dev/null +++ b/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/libjava/java/text/AttributedString.h b/libjava/java/text/AttributedString.h new file mode 100644 index 000000000..51b4c0bc2 --- /dev/null +++ b/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/libjava/java/text/AttributedStringIterator.h b/libjava/java/text/AttributedStringIterator.h new file mode 100644 index 000000000..bc2e77f89 --- /dev/null +++ b/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/libjava/java/text/Bidi.h b/libjava/java/text/Bidi.h new file mode 100644 index 000000000..59b80ed5a --- /dev/null +++ b/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/libjava/java/text/BreakIterator.h b/libjava/java/text/BreakIterator.h new file mode 100644 index 000000000..2c6f90ea1 --- /dev/null +++ b/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/libjava/java/text/CharacterIterator.h b/libjava/java/text/CharacterIterator.h new file mode 100644 index 000000000..d13612ff3 --- /dev/null +++ b/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/libjava/java/text/ChoiceFormat.h b/libjava/java/text/ChoiceFormat.h new file mode 100644 index 000000000..92852ebff --- /dev/null +++ b/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/libjava/java/text/CollationElementIterator.h b/libjava/java/text/CollationElementIterator.h new file mode 100644 index 000000000..a3b75de18 --- /dev/null +++ b/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 * > * text_decomposition; + JArray< jint > * text_indexes; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_text_CollationElementIterator__ diff --git a/libjava/java/text/CollationKey.h b/libjava/java/text/CollationKey.h new file mode 100644 index 000000000..ac110813f --- /dev/null +++ b/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/libjava/java/text/Collator.h b/libjava/java/text/Collator.h new file mode 100644 index 000000000..075dcb2b1 --- /dev/null +++ b/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/libjava/java/text/Collator.java b/libjava/java/text/Collator.java new file mode 100644 index 000000000..e493182b1 --- /dev/null +++ b/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 < str2, 0 if str1 == str2, or + * a positive integer if str1 > 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 < obj2, 0 if obj1 == obj2, or + * a positive integer if obj1 > 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/libjava/java/text/DateFormat$Field.h b/libjava/java/text/DateFormat$Field.h new file mode 100644 index 000000000..47480476f --- /dev/null +++ b/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/libjava/java/text/DateFormat.h b/libjava/java/text/DateFormat.h new file mode 100644 index 000000000..5f5241fcb --- /dev/null +++ b/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/libjava/java/text/DateFormatSymbols.h b/libjava/java/text/DateFormatSymbols.h new file mode 100644 index 000000000..b5cce7f5d --- /dev/null +++ b/libjava/java/text/DateFormatSymbols.h @@ -0,0 +1,80 @@ + +// 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 java::text::DateFormatSymbols : public ::java::lang::Object +{ + + static JArray< ::java::lang::String * > * getStringArray(::java::util::ResourceBundle *, ::java::lang::String *); + JArray< JArray< ::java::lang::String * > * > * getZoneStrings(::java::util::ResourceBundle *, ::java::util::Locale *); + JArray< ::java::lang::String * > * formatsForKey(::java::util::ResourceBundle *, ::java::lang::String *); +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 *); +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: + static ::java::util::Properties * properties; + 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/libjava/java/text/DecimalFormat.h b/libjava/java/text/DecimalFormat.h new file mode 100644 index 000000000..a3172d742 --- /dev/null +++ b/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/libjava/java/text/DecimalFormatSymbols.h b/libjava/java/text/DecimalFormatSymbols.h new file mode 100644 index 000000000..8d2937757 --- /dev/null +++ b/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/libjava/java/text/FieldPosition.h b/libjava/java/text/FieldPosition.h new file mode 100644 index 000000000..d61f9115f --- /dev/null +++ b/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/libjava/java/text/Format$Field.h b/libjava/java/text/Format$Field.h new file mode 100644 index 000000000..197dd7dce --- /dev/null +++ b/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/libjava/java/text/Format.h b/libjava/java/text/Format.h new file mode 100644 index 000000000..a0b6d515d --- /dev/null +++ b/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/libjava/java/text/MessageFormat$Field.h b/libjava/java/text/MessageFormat$Field.h new file mode 100644 index 000000000..78a9bebba --- /dev/null +++ b/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/libjava/java/text/MessageFormat$MessageFormatElement.h b/libjava/java/text/MessageFormat$MessageFormatElement.h new file mode 100644 index 000000000..9a95f1f7f --- /dev/null +++ b/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/libjava/java/text/MessageFormat.h b/libjava/java/text/MessageFormat.h new file mode 100644 index 000000000..961b09541 --- /dev/null +++ b/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/libjava/java/text/NumberFormat$Field.h b/libjava/java/text/NumberFormat$Field.h new file mode 100644 index 000000000..6b72af0a4 --- /dev/null +++ b/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/libjava/java/text/NumberFormat.h b/libjava/java/text/NumberFormat.h new file mode 100644 index 000000000..0b480da4a --- /dev/null +++ b/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/libjava/java/text/ParseException.h b/libjava/java/text/ParseException.h new file mode 100644 index 000000000..e8b314fa2 --- /dev/null +++ b/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/libjava/java/text/ParsePosition.h b/libjava/java/text/ParsePosition.h new file mode 100644 index 000000000..4f7970cea --- /dev/null +++ b/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/libjava/java/text/RuleBasedCollator$CollationElement.h b/libjava/java/text/RuleBasedCollator$CollationElement.h new file mode 100644 index 000000000..8baa2a46d --- /dev/null +++ b/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/libjava/java/text/RuleBasedCollator$CollationSorter.h b/libjava/java/text/RuleBasedCollator$CollationSorter.h new file mode 100644 index 000000000..fb3d18895 --- /dev/null +++ b/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/libjava/java/text/RuleBasedCollator.h b/libjava/java/text/RuleBasedCollator.h new file mode 100644 index 000000000..74b5aa8ea --- /dev/null +++ b/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/libjava/java/text/SimpleDateFormat$CompiledField.h b/libjava/java/text/SimpleDateFormat$CompiledField.h new file mode 100644 index 000000000..b18879201 --- /dev/null +++ b/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/libjava/java/text/SimpleDateFormat.h b/libjava/java/text/SimpleDateFormat.h new file mode 100644 index 000000000..dbdb8169f --- /dev/null +++ b/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/libjava/java/text/StringCharacterIterator.h b/libjava/java/text/StringCharacterIterator.h new file mode 100644 index 000000000..d17696356 --- /dev/null +++ b/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/libjava/java/text/natCollator.cc b/libjava/java/text/natCollator.cc new file mode 100644 index 000000000..676a4a41a --- /dev/null +++ b/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/libjava/java/text/spi/BreakIteratorProvider.h b/libjava/java/text/spi/BreakIteratorProvider.h new file mode 100644 index 000000000..663dff22f --- /dev/null +++ b/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/libjava/java/text/spi/CollatorProvider.h b/libjava/java/text/spi/CollatorProvider.h new file mode 100644 index 000000000..bf072711b --- /dev/null +++ b/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/libjava/java/text/spi/DateFormatProvider.h b/libjava/java/text/spi/DateFormatProvider.h new file mode 100644 index 000000000..15f6e36e2 --- /dev/null +++ b/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/libjava/java/text/spi/DateFormatSymbolsProvider.h b/libjava/java/text/spi/DateFormatSymbolsProvider.h new file mode 100644 index 000000000..4a7012920 --- /dev/null +++ b/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/libjava/java/text/spi/DecimalFormatSymbolsProvider.h b/libjava/java/text/spi/DecimalFormatSymbolsProvider.h new file mode 100644 index 000000000..ceead0294 --- /dev/null +++ b/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/libjava/java/text/spi/NumberFormatProvider.h b/libjava/java/text/spi/NumberFormatProvider.h new file mode 100644 index 000000000..4224aeaa4 --- /dev/null +++ b/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/libjava/java/util/AbstractCollection.h b/libjava/java/util/AbstractCollection.h new file mode 100644 index 000000000..15d129d1c --- /dev/null +++ b/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/libjava/java/util/AbstractList$1.h b/libjava/java/util/AbstractList$1.h new file mode 100644 index 000000000..d7aaf2d08 --- /dev/null +++ b/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/libjava/java/util/AbstractList$2.h b/libjava/java/util/AbstractList$2.h new file mode 100644 index 000000000..eb15682f3 --- /dev/null +++ b/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/libjava/java/util/AbstractList$3.h b/libjava/java/util/AbstractList$3.h new file mode 100644 index 000000000..8c3254167 --- /dev/null +++ b/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/libjava/java/util/AbstractList$RandomAccessSubList.h b/libjava/java/util/AbstractList$RandomAccessSubList.h new file mode 100644 index 000000000..49b23bc39 --- /dev/null +++ b/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/libjava/java/util/AbstractList$SubList.h b/libjava/java/util/AbstractList$SubList.h new file mode 100644 index 000000000..e258ed4df --- /dev/null +++ b/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/libjava/java/util/AbstractList.h b/libjava/java/util/AbstractList.h new file mode 100644 index 000000000..ace35d68d --- /dev/null +++ b/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/libjava/java/util/AbstractMap$1.h b/libjava/java/util/AbstractMap$1.h new file mode 100644 index 000000000..4df6b0ce6 --- /dev/null +++ b/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/libjava/java/util/AbstractMap$2.h b/libjava/java/util/AbstractMap$2.h new file mode 100644 index 000000000..d1e110698 --- /dev/null +++ b/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/libjava/java/util/AbstractMap$3.h b/libjava/java/util/AbstractMap$3.h new file mode 100644 index 000000000..baf7a313a --- /dev/null +++ b/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/libjava/java/util/AbstractMap$4.h b/libjava/java/util/AbstractMap$4.h new file mode 100644 index 000000000..9ea122f68 --- /dev/null +++ b/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/libjava/java/util/AbstractMap$SimpleEntry.h b/libjava/java/util/AbstractMap$SimpleEntry.h new file mode 100644 index 000000000..581205048 --- /dev/null +++ b/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/libjava/java/util/AbstractMap$SimpleImmutableEntry.h b/libjava/java/util/AbstractMap$SimpleImmutableEntry.h new file mode 100644 index 000000000..f979f8a0c --- /dev/null +++ b/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/libjava/java/util/AbstractMap.h b/libjava/java/util/AbstractMap.h new file mode 100644 index 000000000..fba927661 --- /dev/null +++ b/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/libjava/java/util/AbstractQueue.h b/libjava/java/util/AbstractQueue.h new file mode 100644 index 000000000..f194c25d6 --- /dev/null +++ b/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/libjava/java/util/AbstractSequentialList.h b/libjava/java/util/AbstractSequentialList.h new file mode 100644 index 000000000..7763024e5 --- /dev/null +++ b/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/libjava/java/util/AbstractSet.h b/libjava/java/util/AbstractSet.h new file mode 100644 index 000000000..b3ec39939 --- /dev/null +++ b/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/libjava/java/util/ArrayDeque$DeqIterator.h b/libjava/java/util/ArrayDeque$DeqIterator.h new file mode 100644 index 000000000..bbe30bc53 --- /dev/null +++ b/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/libjava/java/util/ArrayDeque$DescendingIterator.h b/libjava/java/util/ArrayDeque$DescendingIterator.h new file mode 100644 index 000000000..ee72fd7b6 --- /dev/null +++ b/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/libjava/java/util/ArrayDeque.h b/libjava/java/util/ArrayDeque.h new file mode 100644 index 000000000..d1ac9e514 --- /dev/null +++ b/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/libjava/java/util/ArrayList.h b/libjava/java/util/ArrayList.h new file mode 100644 index 000000000..4bbdb1ae0 --- /dev/null +++ b/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/libjava/java/util/Arrays$ArrayList.h b/libjava/java/util/Arrays$ArrayList.h new file mode 100644 index 000000000..3fe968639 --- /dev/null +++ b/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/libjava/java/util/Arrays.h b/libjava/java/util/Arrays.h new file mode 100644 index 000000000..8860ee35a --- /dev/null +++ b/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/libjava/java/util/BitSet.h b/libjava/java/util/BitSet.h new file mode 100644 index 000000000..1470ca0b2 --- /dev/null +++ b/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/libjava/java/util/Calendar.h b/libjava/java/util/Calendar.h new file mode 100644 index 000000000..9abfba539 --- /dev/null +++ b/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/libjava/java/util/Collection.h b/libjava/java/util/Collection.h new file mode 100644 index 000000000..afeb7ffee --- /dev/null +++ b/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/libjava/java/util/Collections$1$SynchronizedMapEntry.h b/libjava/java/util/Collections$1$SynchronizedMapEntry.h new file mode 100644 index 000000000..754898749 --- /dev/null +++ b/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/libjava/java/util/Collections$1.h b/libjava/java/util/Collections$1.h new file mode 100644 index 000000000..2e3d80c9d --- /dev/null +++ b/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/libjava/java/util/Collections$2.h b/libjava/java/util/Collections$2.h new file mode 100644 index 000000000..5beb1eca5 --- /dev/null +++ b/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/libjava/java/util/Collections$3.h b/libjava/java/util/Collections$3.h new file mode 100644 index 000000000..1629d8d26 --- /dev/null +++ b/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/libjava/java/util/Collections$4.h b/libjava/java/util/Collections$4.h new file mode 100644 index 000000000..6aa2182b1 --- /dev/null +++ b/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/libjava/java/util/Collections$5.h b/libjava/java/util/Collections$5.h new file mode 100644 index 000000000..36f8bd13f --- /dev/null +++ b/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/libjava/java/util/Collections$6.h b/libjava/java/util/Collections$6.h new file mode 100644 index 000000000..d5e2691f8 --- /dev/null +++ b/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/libjava/java/util/Collections$7.h b/libjava/java/util/Collections$7.h new file mode 100644 index 000000000..1b320b9f6 --- /dev/null +++ b/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/libjava/java/util/Collections$8.h b/libjava/java/util/Collections$8.h new file mode 100644 index 000000000..4f3faf043 --- /dev/null +++ b/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/libjava/java/util/Collections$9.h b/libjava/java/util/Collections$9.h new file mode 100644 index 000000000..a425a6c51 --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedCollection.h b/libjava/java/util/Collections$CheckedCollection.h new file mode 100644 index 000000000..688439f04 --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedIterator.h b/libjava/java/util/Collections$CheckedIterator.h new file mode 100644 index 000000000..cce1f0bcc --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedList.h b/libjava/java/util/Collections$CheckedList.h new file mode 100644 index 000000000..6158bc2a7 --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedListIterator.h b/libjava/java/util/Collections$CheckedListIterator.h new file mode 100644 index 000000000..2c1b9f03d --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h b/libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h new file mode 100644 index 000000000..1882b9a9b --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedMap.h b/libjava/java/util/Collections$CheckedMap.h new file mode 100644 index 000000000..e32b255f7 --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedRandomAccessList.h b/libjava/java/util/Collections$CheckedRandomAccessList.h new file mode 100644 index 000000000..4fad9a793 --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedSet.h b/libjava/java/util/Collections$CheckedSet.h new file mode 100644 index 000000000..e58a98d2e --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedSortedMap.h b/libjava/java/util/Collections$CheckedSortedMap.h new file mode 100644 index 000000000..54d830569 --- /dev/null +++ b/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/libjava/java/util/Collections$CheckedSortedSet.h b/libjava/java/util/Collections$CheckedSortedSet.h new file mode 100644 index 000000000..f65817529 --- /dev/null +++ b/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/libjava/java/util/Collections$CopiesList.h b/libjava/java/util/Collections$CopiesList.h new file mode 100644 index 000000000..3ff503da4 --- /dev/null +++ b/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/libjava/java/util/Collections$EmptyList.h b/libjava/java/util/Collections$EmptyList.h new file mode 100644 index 000000000..8133e1643 --- /dev/null +++ b/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/libjava/java/util/Collections$EmptyMap.h b/libjava/java/util/Collections$EmptyMap.h new file mode 100644 index 000000000..6b09265c4 --- /dev/null +++ b/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/libjava/java/util/Collections$EmptySet.h b/libjava/java/util/Collections$EmptySet.h new file mode 100644 index 000000000..cbd01262f --- /dev/null +++ b/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/libjava/java/util/Collections$LIFOQueue.h b/libjava/java/util/Collections$LIFOQueue.h new file mode 100644 index 000000000..c053a4932 --- /dev/null +++ b/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/libjava/java/util/Collections$MapSet.h b/libjava/java/util/Collections$MapSet.h new file mode 100644 index 000000000..70caba782 --- /dev/null +++ b/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/libjava/java/util/Collections$ReverseComparator.h b/libjava/java/util/Collections$ReverseComparator.h new file mode 100644 index 000000000..006c27cbf --- /dev/null +++ b/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/libjava/java/util/Collections$SingletonList.h b/libjava/java/util/Collections$SingletonList.h new file mode 100644 index 000000000..03340f1d9 --- /dev/null +++ b/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/libjava/java/util/Collections$SingletonMap.h b/libjava/java/util/Collections$SingletonMap.h new file mode 100644 index 000000000..a5b07689a --- /dev/null +++ b/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/libjava/java/util/Collections$SingletonSet.h b/libjava/java/util/Collections$SingletonSet.h new file mode 100644 index 000000000..51deccdd3 --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedCollection.h b/libjava/java/util/Collections$SynchronizedCollection.h new file mode 100644 index 000000000..a41b8d2b1 --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedIterator.h b/libjava/java/util/Collections$SynchronizedIterator.h new file mode 100644 index 000000000..bc0950b6d --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedList.h b/libjava/java/util/Collections$SynchronizedList.h new file mode 100644 index 000000000..3404a091d --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedListIterator.h b/libjava/java/util/Collections$SynchronizedListIterator.h new file mode 100644 index 000000000..87cd16b0b --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedMap.h b/libjava/java/util/Collections$SynchronizedMap.h new file mode 100644 index 000000000..6232204d1 --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedRandomAccessList.h b/libjava/java/util/Collections$SynchronizedRandomAccessList.h new file mode 100644 index 000000000..3bf085ee1 --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedSet.h b/libjava/java/util/Collections$SynchronizedSet.h new file mode 100644 index 000000000..bb5b67697 --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedSortedMap.h b/libjava/java/util/Collections$SynchronizedSortedMap.h new file mode 100644 index 000000000..d31025f26 --- /dev/null +++ b/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/libjava/java/util/Collections$SynchronizedSortedSet.h b/libjava/java/util/Collections$SynchronizedSortedSet.h new file mode 100644 index 000000000..dd25a17b7 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableCollection.h b/libjava/java/util/Collections$UnmodifiableCollection.h new file mode 100644 index 000000000..2241b880a --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableIterator.h b/libjava/java/util/Collections$UnmodifiableIterator.h new file mode 100644 index 000000000..3782626aa --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableList.h b/libjava/java/util/Collections$UnmodifiableList.h new file mode 100644 index 000000000..e1da47730 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableListIterator.h b/libjava/java/util/Collections$UnmodifiableListIterator.h new file mode 100644 index 000000000..f921a5c0b --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h b/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h new file mode 100644 index 000000000..c0358c9b8 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h b/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h new file mode 100644 index 000000000..8299dc468 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableMap.h b/libjava/java/util/Collections$UnmodifiableMap.h new file mode 100644 index 000000000..3aaee0a7b --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableRandomAccessList.h b/libjava/java/util/Collections$UnmodifiableRandomAccessList.h new file mode 100644 index 000000000..62a310b41 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableSet.h b/libjava/java/util/Collections$UnmodifiableSet.h new file mode 100644 index 000000000..3633ae299 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableSortedMap.h b/libjava/java/util/Collections$UnmodifiableSortedMap.h new file mode 100644 index 000000000..6c5a37426 --- /dev/null +++ b/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/libjava/java/util/Collections$UnmodifiableSortedSet.h b/libjava/java/util/Collections$UnmodifiableSortedSet.h new file mode 100644 index 000000000..50d776d6d --- /dev/null +++ b/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/libjava/java/util/Collections.h b/libjava/java/util/Collections.h new file mode 100644 index 000000000..2ca25f898 --- /dev/null +++ b/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/libjava/java/util/Comparator.h b/libjava/java/util/Comparator.h new file mode 100644 index 000000000..f14275e58 --- /dev/null +++ b/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/libjava/java/util/ConcurrentModificationException.h b/libjava/java/util/ConcurrentModificationException.h new file mode 100644 index 000000000..012ab658d --- /dev/null +++ b/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/libjava/java/util/Currency.h b/libjava/java/util/Currency.h new file mode 100644 index 000000000..2697c97ad --- /dev/null +++ b/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/libjava/java/util/Date.h b/libjava/java/util/Date.h new file mode 100644 index 000000000..0f801d87a --- /dev/null +++ b/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/libjava/java/util/Deque.h b/libjava/java/util/Deque.h new file mode 100644 index 000000000..0ceb91f82 --- /dev/null +++ b/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/libjava/java/util/Dictionary.h b/libjava/java/util/Dictionary.h new file mode 100644 index 000000000..5f02531a5 --- /dev/null +++ b/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/libjava/java/util/DuplicateFormatFlagsException.h b/libjava/java/util/DuplicateFormatFlagsException.h new file mode 100644 index 000000000..c384bc026 --- /dev/null +++ b/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/libjava/java/util/EmptyStackException.h b/libjava/java/util/EmptyStackException.h new file mode 100644 index 000000000..7b5b16759 --- /dev/null +++ b/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/libjava/java/util/EnumMap$1.h b/libjava/java/util/EnumMap$1.h new file mode 100644 index 000000000..9d36b6f39 --- /dev/null +++ b/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/libjava/java/util/EnumMap$2.h b/libjava/java/util/EnumMap$2.h new file mode 100644 index 000000000..d7753d7ca --- /dev/null +++ b/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/libjava/java/util/EnumMap$3.h b/libjava/java/util/EnumMap$3.h new file mode 100644 index 000000000..54fa6aff5 --- /dev/null +++ b/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/libjava/java/util/EnumMap$4.h b/libjava/java/util/EnumMap$4.h new file mode 100644 index 000000000..2c8a392b1 --- /dev/null +++ b/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/libjava/java/util/EnumMap$5.h b/libjava/java/util/EnumMap$5.h new file mode 100644 index 000000000..67aff5608 --- /dev/null +++ b/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/libjava/java/util/EnumMap$6.h b/libjava/java/util/EnumMap$6.h new file mode 100644 index 000000000..f57eb42fe --- /dev/null +++ b/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/libjava/java/util/EnumMap$7.h b/libjava/java/util/EnumMap$7.h new file mode 100644 index 000000000..7f7ef4f72 --- /dev/null +++ b/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/libjava/java/util/EnumMap.h b/libjava/java/util/EnumMap.h new file mode 100644 index 000000000..074f87839 --- /dev/null +++ b/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/libjava/java/util/EnumSet$1.h b/libjava/java/util/EnumSet$1.h new file mode 100644 index 000000000..4d7e3a2b9 --- /dev/null +++ b/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/libjava/java/util/EnumSet$2.h b/libjava/java/util/EnumSet$2.h new file mode 100644 index 000000000..14464a1ac --- /dev/null +++ b/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/libjava/java/util/EnumSet.h b/libjava/java/util/EnumSet.h new file mode 100644 index 000000000..5497e306d --- /dev/null +++ b/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/libjava/java/util/Enumeration.h b/libjava/java/util/Enumeration.h new file mode 100644 index 000000000..a79045f0e --- /dev/null +++ b/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/libjava/java/util/EventListener.h b/libjava/java/util/EventListener.h new file mode 100644 index 000000000..7ab4585c9 --- /dev/null +++ b/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/libjava/java/util/EventListenerProxy.h b/libjava/java/util/EventListenerProxy.h new file mode 100644 index 000000000..06f165097 --- /dev/null +++ b/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/libjava/java/util/EventObject.h b/libjava/java/util/EventObject.h new file mode 100644 index 000000000..bd1862b95 --- /dev/null +++ b/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/libjava/java/util/FormatFlagsConversionMismatchException.h b/libjava/java/util/FormatFlagsConversionMismatchException.h new file mode 100644 index 000000000..ce0d3fe3d --- /dev/null +++ b/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/libjava/java/util/Formattable.h b/libjava/java/util/Formattable.h new file mode 100644 index 000000000..7af1df738 --- /dev/null +++ b/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/libjava/java/util/FormattableFlags.h b/libjava/java/util/FormattableFlags.h new file mode 100644 index 000000000..36fba012b --- /dev/null +++ b/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/libjava/java/util/Formatter$BigDecimalLayoutForm.h b/libjava/java/util/Formatter$BigDecimalLayoutForm.h new file mode 100644 index 000000000..a6ea3a893 --- /dev/null +++ b/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/libjava/java/util/Formatter.h b/libjava/java/util/Formatter.h new file mode 100644 index 000000000..71a659f66 --- /dev/null +++ b/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/libjava/java/util/FormatterClosedException.h b/libjava/java/util/FormatterClosedException.h new file mode 100644 index 000000000..e4e950bca --- /dev/null +++ b/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/libjava/java/util/GregorianCalendar.h b/libjava/java/util/GregorianCalendar.h new file mode 100644 index 000000000..9fe77cde5 --- /dev/null +++ b/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/libjava/java/util/HashMap$1.h b/libjava/java/util/HashMap$1.h new file mode 100644 index 000000000..abf0354c9 --- /dev/null +++ b/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/libjava/java/util/HashMap$2.h b/libjava/java/util/HashMap$2.h new file mode 100644 index 000000000..8b90c54f5 --- /dev/null +++ b/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/libjava/java/util/HashMap$3.h b/libjava/java/util/HashMap$3.h new file mode 100644 index 000000000..dc988a071 --- /dev/null +++ b/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/libjava/java/util/HashMap$HashEntry.h b/libjava/java/util/HashMap$HashEntry.h new file mode 100644 index 000000000..9f0093d7f --- /dev/null +++ b/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/libjava/java/util/HashMap$HashIterator.h b/libjava/java/util/HashMap$HashIterator.h new file mode 100644 index 000000000..b56fb350c --- /dev/null +++ b/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/libjava/java/util/HashMap.h b/libjava/java/util/HashMap.h new file mode 100644 index 000000000..5b8c77f10 --- /dev/null +++ b/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 = 11; + 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/libjava/java/util/HashSet.h b/libjava/java/util/HashSet.h new file mode 100644 index 000000000..0d96ab91c --- /dev/null +++ b/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/libjava/java/util/Hashtable$1.h b/libjava/java/util/Hashtable$1.h new file mode 100644 index 000000000..c2dbaf0c1 --- /dev/null +++ b/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/libjava/java/util/Hashtable$2.h b/libjava/java/util/Hashtable$2.h new file mode 100644 index 000000000..12939c75c --- /dev/null +++ b/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/libjava/java/util/Hashtable$3.h b/libjava/java/util/Hashtable$3.h new file mode 100644 index 000000000..9804a67d8 --- /dev/null +++ b/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/libjava/java/util/Hashtable$EntryEnumerator.h b/libjava/java/util/Hashtable$EntryEnumerator.h new file mode 100644 index 000000000..a0f160153 --- /dev/null +++ b/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/libjava/java/util/Hashtable$EntryIterator.h b/libjava/java/util/Hashtable$EntryIterator.h new file mode 100644 index 000000000..7927391ef --- /dev/null +++ b/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/libjava/java/util/Hashtable$HashEntry.h b/libjava/java/util/Hashtable$HashEntry.h new file mode 100644 index 000000000..c0a1c581b --- /dev/null +++ b/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/libjava/java/util/Hashtable$KeyEnumerator.h b/libjava/java/util/Hashtable$KeyEnumerator.h new file mode 100644 index 000000000..db4765da7 --- /dev/null +++ b/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/libjava/java/util/Hashtable$KeyIterator.h b/libjava/java/util/Hashtable$KeyIterator.h new file mode 100644 index 000000000..faf1d9322 --- /dev/null +++ b/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/libjava/java/util/Hashtable$ValueEnumerator.h b/libjava/java/util/Hashtable$ValueEnumerator.h new file mode 100644 index 000000000..4dce71ab7 --- /dev/null +++ b/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/libjava/java/util/Hashtable$ValueIterator.h b/libjava/java/util/Hashtable$ValueIterator.h new file mode 100644 index 000000000..d25279837 --- /dev/null +++ b/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/libjava/java/util/Hashtable.h b/libjava/java/util/Hashtable.h new file mode 100644 index 000000000..bc33cb149 --- /dev/null +++ b/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/libjava/java/util/IdentityHashMap$1.h b/libjava/java/util/IdentityHashMap$1.h new file mode 100644 index 000000000..e2e37f47b --- /dev/null +++ b/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/libjava/java/util/IdentityHashMap$2.h b/libjava/java/util/IdentityHashMap$2.h new file mode 100644 index 000000000..f45ba8f72 --- /dev/null +++ b/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/libjava/java/util/IdentityHashMap$3.h b/libjava/java/util/IdentityHashMap$3.h new file mode 100644 index 000000000..42deb4932 --- /dev/null +++ b/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/libjava/java/util/IdentityHashMap$IdentityEntry.h b/libjava/java/util/IdentityHashMap$IdentityEntry.h new file mode 100644 index 000000000..be9fa72da --- /dev/null +++ b/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/libjava/java/util/IdentityHashMap$IdentityIterator.h b/libjava/java/util/IdentityHashMap$IdentityIterator.h new file mode 100644 index 000000000..d2ab43e48 --- /dev/null +++ b/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/libjava/java/util/IdentityHashMap.h b/libjava/java/util/IdentityHashMap.h new file mode 100644 index 000000000..9e77a4b29 --- /dev/null +++ b/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/libjava/java/util/IllegalFormatCodePointException.h b/libjava/java/util/IllegalFormatCodePointException.h new file mode 100644 index 000000000..30801b6d2 --- /dev/null +++ b/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/libjava/java/util/IllegalFormatConversionException.h b/libjava/java/util/IllegalFormatConversionException.h new file mode 100644 index 000000000..b6b7e8124 --- /dev/null +++ b/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/libjava/java/util/IllegalFormatException.h b/libjava/java/util/IllegalFormatException.h new file mode 100644 index 000000000..bf5f4088f --- /dev/null +++ b/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/libjava/java/util/IllegalFormatFlagsException.h b/libjava/java/util/IllegalFormatFlagsException.h new file mode 100644 index 000000000..c5c13c01b --- /dev/null +++ b/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/libjava/java/util/IllegalFormatPrecisionException.h b/libjava/java/util/IllegalFormatPrecisionException.h new file mode 100644 index 000000000..a4ca0ec23 --- /dev/null +++ b/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/libjava/java/util/IllegalFormatWidthException.h b/libjava/java/util/IllegalFormatWidthException.h new file mode 100644 index 000000000..e278642db --- /dev/null +++ b/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/libjava/java/util/InputMismatchException.h b/libjava/java/util/InputMismatchException.h new file mode 100644 index 000000000..d1d7216bf --- /dev/null +++ b/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/libjava/java/util/InvalidPropertiesFormatException.h b/libjava/java/util/InvalidPropertiesFormatException.h new file mode 100644 index 000000000..0380e88d6 --- /dev/null +++ b/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/libjava/java/util/Iterator.h b/libjava/java/util/Iterator.h new file mode 100644 index 000000000..27343a5b8 --- /dev/null +++ b/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/libjava/java/util/LinkedHashMap$1.h b/libjava/java/util/LinkedHashMap$1.h new file mode 100644 index 000000000..7341014cd --- /dev/null +++ b/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/libjava/java/util/LinkedHashMap$LinkedHashEntry.h b/libjava/java/util/LinkedHashMap$LinkedHashEntry.h new file mode 100644 index 000000000..8db632b32 --- /dev/null +++ b/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/libjava/java/util/LinkedHashMap.h b/libjava/java/util/LinkedHashMap.h new file mode 100644 index 000000000..d57308875 --- /dev/null +++ b/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/libjava/java/util/LinkedHashSet.h b/libjava/java/util/LinkedHashSet.h new file mode 100644 index 000000000..d63aec8e6 --- /dev/null +++ b/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/libjava/java/util/LinkedList$1.h b/libjava/java/util/LinkedList$1.h new file mode 100644 index 000000000..a570d6e1a --- /dev/null +++ b/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/libjava/java/util/LinkedList$Entry.h b/libjava/java/util/LinkedList$Entry.h new file mode 100644 index 000000000..c44d48c3e --- /dev/null +++ b/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/libjava/java/util/LinkedList$LinkedListItr.h b/libjava/java/util/LinkedList$LinkedListItr.h new file mode 100644 index 000000000..2756e206e --- /dev/null +++ b/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/libjava/java/util/LinkedList.h b/libjava/java/util/LinkedList.h new file mode 100644 index 000000000..0c5e681d1 --- /dev/null +++ b/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/libjava/java/util/List.h b/libjava/java/util/List.h new file mode 100644 index 000000000..89e637b09 --- /dev/null +++ b/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/libjava/java/util/ListIterator.h b/libjava/java/util/ListIterator.h new file mode 100644 index 000000000..947ad3ccf --- /dev/null +++ b/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/libjava/java/util/ListResourceBundle.h b/libjava/java/util/ListResourceBundle.h new file mode 100644 index 000000000..216d14b4d --- /dev/null +++ b/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/libjava/java/util/Locale.h b/libjava/java/util/Locale.h new file mode 100644 index 000000000..041dab342 --- /dev/null +++ b/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/libjava/java/util/Map$Entry.h b/libjava/java/util/Map$Entry.h new file mode 100644 index 000000000..694a37e7a --- /dev/null +++ b/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/libjava/java/util/Map.h b/libjava/java/util/Map.h new file mode 100644 index 000000000..05cc5e900 --- /dev/null +++ b/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/libjava/java/util/MissingFormatArgumentException.h b/libjava/java/util/MissingFormatArgumentException.h new file mode 100644 index 000000000..d0908d2d4 --- /dev/null +++ b/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/libjava/java/util/MissingFormatWidthException.h b/libjava/java/util/MissingFormatWidthException.h new file mode 100644 index 000000000..dac93c0c4 --- /dev/null +++ b/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/libjava/java/util/MissingResourceException.h b/libjava/java/util/MissingResourceException.h new file mode 100644 index 000000000..0523e031a --- /dev/null +++ b/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/libjava/java/util/NavigableMap.h b/libjava/java/util/NavigableMap.h new file mode 100644 index 000000000..9e4834834 --- /dev/null +++ b/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/libjava/java/util/NavigableSet.h b/libjava/java/util/NavigableSet.h new file mode 100644 index 000000000..c7e228ea1 --- /dev/null +++ b/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/libjava/java/util/NoSuchElementException.h b/libjava/java/util/NoSuchElementException.h new file mode 100644 index 000000000..43cd64676 --- /dev/null +++ b/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/libjava/java/util/Observable.h b/libjava/java/util/Observable.h new file mode 100644 index 000000000..070e97d23 --- /dev/null +++ b/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/libjava/java/util/Observer.h b/libjava/java/util/Observer.h new file mode 100644 index 000000000..05964feea --- /dev/null +++ b/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/libjava/java/util/PriorityQueue$1.h b/libjava/java/util/PriorityQueue$1.h new file mode 100644 index 000000000..9268616f0 --- /dev/null +++ b/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/libjava/java/util/PriorityQueue.h b/libjava/java/util/PriorityQueue.h new file mode 100644 index 000000000..7072486a1 --- /dev/null +++ b/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/libjava/java/util/Properties.h b/libjava/java/util/Properties.h new file mode 100644 index 000000000..ccb76b5a2 --- /dev/null +++ b/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/libjava/java/util/PropertyPermission.h b/libjava/java/util/PropertyPermission.h new file mode 100644 index 000000000..afd551447 --- /dev/null +++ b/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/libjava/java/util/PropertyPermissionCollection.h b/libjava/java/util/PropertyPermissionCollection.h new file mode 100644 index 000000000..0c00a4e0b --- /dev/null +++ b/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/libjava/java/util/PropertyResourceBundle.h b/libjava/java/util/PropertyResourceBundle.h new file mode 100644 index 000000000..fa6528511 --- /dev/null +++ b/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/libjava/java/util/Queue.h b/libjava/java/util/Queue.h new file mode 100644 index 000000000..c4e8f0573 --- /dev/null +++ b/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/libjava/java/util/Random.h b/libjava/java/util/Random.h new file mode 100644 index 000000000..93bcf2e6c --- /dev/null +++ b/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/libjava/java/util/RandomAccess.h b/libjava/java/util/RandomAccess.h new file mode 100644 index 000000000..e2bfce761 --- /dev/null +++ b/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/libjava/java/util/ResourceBundle$1.h b/libjava/java/util/ResourceBundle$1.h new file mode 100644 index 000000000..b2b883175 --- /dev/null +++ b/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/libjava/java/util/ResourceBundle$BundleKey.h b/libjava/java/util/ResourceBundle$BundleKey.h new file mode 100644 index 000000000..49c051cfb --- /dev/null +++ b/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/libjava/java/util/ResourceBundle.h b/libjava/java/util/ResourceBundle.h new file mode 100644 index 000000000..e14e4539f --- /dev/null +++ b/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/libjava/java/util/Scanner.h b/libjava/java/util/Scanner.h new file mode 100644 index 000000000..bca1ab77e --- /dev/null +++ b/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/libjava/java/util/ServiceConfigurationError.h b/libjava/java/util/ServiceConfigurationError.h new file mode 100644 index 000000000..7a2a905ad --- /dev/null +++ b/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/libjava/java/util/ServiceLoader$1.h b/libjava/java/util/ServiceLoader$1.h new file mode 100644 index 000000000..52e883d3e --- /dev/null +++ b/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/libjava/java/util/ServiceLoader.h b/libjava/java/util/ServiceLoader.h new file mode 100644 index 000000000..f3a91601f --- /dev/null +++ b/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/libjava/java/util/Set.h b/libjava/java/util/Set.h new file mode 100644 index 000000000..a56347218 --- /dev/null +++ b/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/libjava/java/util/SimpleTimeZone.h b/libjava/java/util/SimpleTimeZone.h new file mode 100644 index 000000000..311e31f32 --- /dev/null +++ b/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/libjava/java/util/SortedMap.h b/libjava/java/util/SortedMap.h new file mode 100644 index 000000000..881489248 --- /dev/null +++ b/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/libjava/java/util/SortedSet.h b/libjava/java/util/SortedSet.h new file mode 100644 index 000000000..157019a55 --- /dev/null +++ b/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/libjava/java/util/Stack.h b/libjava/java/util/Stack.h new file mode 100644 index 000000000..b6e25f268 --- /dev/null +++ b/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/libjava/java/util/StringTokenizer.h b/libjava/java/util/StringTokenizer.h new file mode 100644 index 000000000..45d8cb893 --- /dev/null +++ b/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/libjava/java/util/TimeZone$1.h b/libjava/java/util/TimeZone$1.h new file mode 100644 index 000000000..4137030e0 --- /dev/null +++ b/libjava/java/util/TimeZone$1.h @@ -0,0 +1,21 @@ + +// 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::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __java_util_TimeZone$1__ diff --git a/libjava/java/util/TimeZone.h b/libjava/java/util/TimeZone.h new file mode 100644 index 000000000..9ae0ebc3f --- /dev/null +++ b/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/libjava/java/util/Timer$Scheduler.h b/libjava/java/util/Timer$Scheduler.h new file mode 100644 index 000000000..ca61c0f76 --- /dev/null +++ b/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/libjava/java/util/Timer$TaskQueue.h b/libjava/java/util/Timer$TaskQueue.h new file mode 100644 index 000000000..13416d32e --- /dev/null +++ b/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/libjava/java/util/Timer.h b/libjava/java/util/Timer.h new file mode 100644 index 000000000..2246cfd30 --- /dev/null +++ b/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/libjava/java/util/TimerTask.h b/libjava/java/util/TimerTask.h new file mode 100644 index 000000000..a38b66ed8 --- /dev/null +++ b/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/libjava/java/util/TooManyListenersException.h b/libjava/java/util/TooManyListenersException.h new file mode 100644 index 000000000..da5e72a0e --- /dev/null +++ b/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/libjava/java/util/TreeMap$1.h b/libjava/java/util/TreeMap$1.h new file mode 100644 index 000000000..07e719ba9 --- /dev/null +++ b/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/libjava/java/util/TreeMap$2.h b/libjava/java/util/TreeMap$2.h new file mode 100644 index 000000000..ffb6dbe75 --- /dev/null +++ b/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/libjava/java/util/TreeMap$3.h b/libjava/java/util/TreeMap$3.h new file mode 100644 index 000000000..73b8f825d --- /dev/null +++ b/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/libjava/java/util/TreeMap$4.h b/libjava/java/util/TreeMap$4.h new file mode 100644 index 000000000..31cdf766a --- /dev/null +++ b/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/libjava/java/util/TreeMap$5.h b/libjava/java/util/TreeMap$5.h new file mode 100644 index 000000000..c7629276f --- /dev/null +++ b/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/libjava/java/util/TreeMap$6.h b/libjava/java/util/TreeMap$6.h new file mode 100644 index 000000000..8b0bb5bc8 --- /dev/null +++ b/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/libjava/java/util/TreeMap$7.h b/libjava/java/util/TreeMap$7.h new file mode 100644 index 000000000..09086a467 --- /dev/null +++ b/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/libjava/java/util/TreeMap$DescendingMap.h b/libjava/java/util/TreeMap$DescendingMap.h new file mode 100644 index 000000000..70d6e6c76 --- /dev/null +++ b/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/libjava/java/util/TreeMap$DescendingSet.h b/libjava/java/util/TreeMap$DescendingSet.h new file mode 100644 index 000000000..4824a2747 --- /dev/null +++ b/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/libjava/java/util/TreeMap$EntrySet.h b/libjava/java/util/TreeMap$EntrySet.h new file mode 100644 index 000000000..ed03318b8 --- /dev/null +++ b/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/libjava/java/util/TreeMap$KeySet.h b/libjava/java/util/TreeMap$KeySet.h new file mode 100644 index 000000000..0559a4dd7 --- /dev/null +++ b/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/libjava/java/util/TreeMap$NavigableEntrySet.h b/libjava/java/util/TreeMap$NavigableEntrySet.h new file mode 100644 index 000000000..cdbed6ee3 --- /dev/null +++ b/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/libjava/java/util/TreeMap$NavigableKeySet.h b/libjava/java/util/TreeMap$NavigableKeySet.h new file mode 100644 index 000000000..247ac276b --- /dev/null +++ b/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/libjava/java/util/TreeMap$Node.h b/libjava/java/util/TreeMap$Node.h new file mode 100644 index 000000000..1f0740099 --- /dev/null +++ b/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/libjava/java/util/TreeMap$SubMap$EntrySet.h b/libjava/java/util/TreeMap$SubMap$EntrySet.h new file mode 100644 index 000000000..70a2ffc51 --- /dev/null +++ b/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/libjava/java/util/TreeMap$SubMap$KeySet.h b/libjava/java/util/TreeMap$SubMap$KeySet.h new file mode 100644 index 000000000..812d7cd58 --- /dev/null +++ b/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/libjava/java/util/TreeMap$SubMap$NavigableEntrySet.h b/libjava/java/util/TreeMap$SubMap$NavigableEntrySet.h new file mode 100644 index 000000000..34c997702 --- /dev/null +++ b/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/libjava/java/util/TreeMap$SubMap$NavigableKeySet.h b/libjava/java/util/TreeMap$SubMap$NavigableKeySet.h new file mode 100644 index 000000000..66509d11f --- /dev/null +++ b/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/libjava/java/util/TreeMap$SubMap.h b/libjava/java/util/TreeMap$SubMap.h new file mode 100644 index 000000000..accd468bf --- /dev/null +++ b/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/libjava/java/util/TreeMap$TreeIterator.h b/libjava/java/util/TreeMap$TreeIterator.h new file mode 100644 index 000000000..5d8603eed --- /dev/null +++ b/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/libjava/java/util/TreeMap.h b/libjava/java/util/TreeMap.h new file mode 100644 index 000000000..b87c89262 --- /dev/null +++ b/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/libjava/java/util/TreeSet.h b/libjava/java/util/TreeSet.h new file mode 100644 index 000000000..1e19c1933 --- /dev/null +++ b/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/libjava/java/util/UUID.h b/libjava/java/util/UUID.h new file mode 100644 index 000000000..0eda9d67b --- /dev/null +++ b/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/libjava/java/util/UnknownFormatConversionException.h b/libjava/java/util/UnknownFormatConversionException.h new file mode 100644 index 000000000..53f8917be --- /dev/null +++ b/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/libjava/java/util/UnknownFormatFlagsException.h b/libjava/java/util/UnknownFormatFlagsException.h new file mode 100644 index 000000000..62c277a2f --- /dev/null +++ b/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/libjava/java/util/VMTimeZone.h b/libjava/java/util/VMTimeZone.h new file mode 100644 index 000000000..26ca5e224 --- /dev/null +++ b/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/libjava/java/util/VMTimeZone.java b/libjava/java/util/VMTimeZone.java new file mode 100644 index 000000000..992ecaf28 --- /dev/null +++ b/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/libjava/java/util/Vector$1.h b/libjava/java/util/Vector$1.h new file mode 100644 index 000000000..d7edea6c6 --- /dev/null +++ b/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/libjava/java/util/Vector.h b/libjava/java/util/Vector.h new file mode 100644 index 000000000..c903819c4 --- /dev/null +++ b/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/libjava/java/util/WeakHashMap$1.h b/libjava/java/util/WeakHashMap$1.h new file mode 100644 index 000000000..4f49b672c --- /dev/null +++ b/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/libjava/java/util/WeakHashMap$2.h b/libjava/java/util/WeakHashMap$2.h new file mode 100644 index 000000000..79f65500d --- /dev/null +++ b/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/libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h b/libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h new file mode 100644 index 000000000..5ddfa8738 --- /dev/null +++ b/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/libjava/java/util/WeakHashMap$WeakBucket.h b/libjava/java/util/WeakHashMap$WeakBucket.h new file mode 100644 index 000000000..9fc29d8dc --- /dev/null +++ b/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/libjava/java/util/WeakHashMap$WeakEntrySet.h b/libjava/java/util/WeakHashMap$WeakEntrySet.h new file mode 100644 index 000000000..cfd558e42 --- /dev/null +++ b/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/libjava/java/util/WeakHashMap.h b/libjava/java/util/WeakHashMap.h new file mode 100644 index 000000000..e5875adf6 --- /dev/null +++ b/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/libjava/java/util/concurrent/AbstractExecutorService.h b/libjava/java/util/concurrent/AbstractExecutorService.h new file mode 100644 index 000000000..796171e61 --- /dev/null +++ b/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/libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h b/libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h new file mode 100644 index 000000000..fdddf6c31 --- /dev/null +++ b/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/libjava/java/util/concurrent/ArrayBlockingQueue.h b/libjava/java/util/concurrent/ArrayBlockingQueue.h new file mode 100644 index 000000000..a431043c6 --- /dev/null +++ b/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/libjava/java/util/concurrent/BlockingDeque.h b/libjava/java/util/concurrent/BlockingDeque.h new file mode 100644 index 000000000..4aa4cb533 --- /dev/null +++ b/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/libjava/java/util/concurrent/BlockingQueue.h b/libjava/java/util/concurrent/BlockingQueue.h new file mode 100644 index 000000000..66cc905fb --- /dev/null +++ b/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/libjava/java/util/concurrent/BrokenBarrierException.h b/libjava/java/util/concurrent/BrokenBarrierException.h new file mode 100644 index 000000000..e5930d5d5 --- /dev/null +++ b/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/libjava/java/util/concurrent/Callable.h b/libjava/java/util/concurrent/Callable.h new file mode 100644 index 000000000..636260e03 --- /dev/null +++ b/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/libjava/java/util/concurrent/CancellationException.h b/libjava/java/util/concurrent/CancellationException.h new file mode 100644 index 000000000..7695b0162 --- /dev/null +++ b/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/libjava/java/util/concurrent/CompletionService.h b/libjava/java/util/concurrent/CompletionService.h new file mode 100644 index 000000000..90d79023c --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h b/libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h new file mode 100644 index 000000000..4c4c191b5 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h b/libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h new file mode 100644 index 000000000..999c02283 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h b/libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h new file mode 100644 index 000000000..2667ed07c --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h b/libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h new file mode 100644 index 000000000..2a3895cb1 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h b/libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h new file mode 100644 index 000000000..afa1b8a0d --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h b/libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h new file mode 100644 index 000000000..31b002fed --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$Segment.h b/libjava/java/util/concurrent/ConcurrentHashMap$Segment.h new file mode 100644 index 000000000..55d06e869 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h b/libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h new file mode 100644 index 000000000..6ccd9057c --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$Values.h b/libjava/java/util/concurrent/ConcurrentHashMap$Values.h new file mode 100644 index 000000000..9470ec452 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h b/libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h new file mode 100644 index 000000000..9c7398ee9 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentHashMap.h b/libjava/java/util/concurrent/ConcurrentHashMap.h new file mode 100644 index 000000000..0e733c065 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h b/libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h new file mode 100644 index 000000000..ddf3f7e88 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h b/libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h new file mode 100644 index 000000000..af69ba60a --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentLinkedQueue.h b/libjava/java/util/concurrent/ConcurrentLinkedQueue.h new file mode 100644 index 000000000..512bc0e07 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentMap.h b/libjava/java/util/concurrent/ConcurrentMap.h new file mode 100644 index 000000000..a3357e304 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentNavigableMap.h b/libjava/java/util/concurrent/ConcurrentNavigableMap.h new file mode 100644 index 000000000..68f4d01c9 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h new file mode 100644 index 000000000..b64afd554 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h new file mode 100644 index 000000000..67d71928f --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h new file mode 100644 index 000000000..e235ffc8d --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h new file mode 100644 index 000000000..f20214ce6 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h new file mode 100644 index 000000000..629cff881 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h new file mode 100644 index 000000000..f9170b317 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h new file mode 100644 index 000000000..03eb3e84a --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h new file mode 100644 index 000000000..e52b30ea1 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h new file mode 100644 index 000000000..c9d5d890d --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h new file mode 100644 index 000000000..0c0c9e552 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h new file mode 100644 index 000000000..a4f569348 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h new file mode 100644 index 000000000..5af0bca1d --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h new file mode 100644 index 000000000..deefc73c9 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h new file mode 100644 index 000000000..345fb2551 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h new file mode 100644 index 000000000..fa671d814 --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h b/libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h new file mode 100644 index 000000000..1fc3b1b8e --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListMap.h b/libjava/java/util/concurrent/ConcurrentSkipListMap.h new file mode 100644 index 000000000..2f4da898b --- /dev/null +++ b/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/libjava/java/util/concurrent/ConcurrentSkipListSet.h b/libjava/java/util/concurrent/ConcurrentSkipListSet.h new file mode 100644 index 000000000..65ea1a9a9 --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h new file mode 100644 index 000000000..207ce148b --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h new file mode 100644 index 000000000..7e5ba9319 --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h new file mode 100644 index 000000000..b0cec8e53 --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h new file mode 100644 index 000000000..66adf0209 --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h new file mode 100644 index 000000000..de285a9f8 --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArrayList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList.h new file mode 100644 index 000000000..95eec88d9 --- /dev/null +++ b/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/libjava/java/util/concurrent/CopyOnWriteArraySet.h b/libjava/java/util/concurrent/CopyOnWriteArraySet.h new file mode 100644 index 000000000..9fb8c8396 --- /dev/null +++ b/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/libjava/java/util/concurrent/CountDownLatch$Sync.h b/libjava/java/util/concurrent/CountDownLatch$Sync.h new file mode 100644 index 000000000..ee8e75126 --- /dev/null +++ b/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/libjava/java/util/concurrent/CountDownLatch.h b/libjava/java/util/concurrent/CountDownLatch.h new file mode 100644 index 000000000..68609d313 --- /dev/null +++ b/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/libjava/java/util/concurrent/CyclicBarrier$Generation.h b/libjava/java/util/concurrent/CyclicBarrier$Generation.h new file mode 100644 index 000000000..c3d7e4ab1 --- /dev/null +++ b/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/libjava/java/util/concurrent/CyclicBarrier.h b/libjava/java/util/concurrent/CyclicBarrier.h new file mode 100644 index 000000000..c6c4b3e4f --- /dev/null +++ b/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/libjava/java/util/concurrent/DelayQueue$Itr.h b/libjava/java/util/concurrent/DelayQueue$Itr.h new file mode 100644 index 000000000..cdcc1bf20 --- /dev/null +++ b/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/libjava/java/util/concurrent/DelayQueue.h b/libjava/java/util/concurrent/DelayQueue.h new file mode 100644 index 000000000..b97f32248 --- /dev/null +++ b/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/libjava/java/util/concurrent/Delayed.h b/libjava/java/util/concurrent/Delayed.h new file mode 100644 index 000000000..2a8d4e5d1 --- /dev/null +++ b/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/libjava/java/util/concurrent/Exchanger$Node.h b/libjava/java/util/concurrent/Exchanger$Node.h new file mode 100644 index 000000000..4bd3890ea --- /dev/null +++ b/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/libjava/java/util/concurrent/Exchanger$Slot.h b/libjava/java/util/concurrent/Exchanger$Slot.h new file mode 100644 index 000000000..4d1d41654 --- /dev/null +++ b/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/libjava/java/util/concurrent/Exchanger.h b/libjava/java/util/concurrent/Exchanger.h new file mode 100644 index 000000000..5a0993e26 --- /dev/null +++ b/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/libjava/java/util/concurrent/ExecutionException.h b/libjava/java/util/concurrent/ExecutionException.h new file mode 100644 index 000000000..3f210c7df --- /dev/null +++ b/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/libjava/java/util/concurrent/Executor.h b/libjava/java/util/concurrent/Executor.h new file mode 100644 index 000000000..2e59bc466 --- /dev/null +++ b/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/libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h b/libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h new file mode 100644 index 000000000..806cecfe2 --- /dev/null +++ b/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/libjava/java/util/concurrent/ExecutorCompletionService.h b/libjava/java/util/concurrent/ExecutorCompletionService.h new file mode 100644 index 000000000..922e2d98e --- /dev/null +++ b/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/libjava/java/util/concurrent/ExecutorService.h b/libjava/java/util/concurrent/ExecutorService.h new file mode 100644 index 000000000..3c2431495 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$1.h b/libjava/java/util/concurrent/Executors$1.h new file mode 100644 index 000000000..9830f9f39 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$2.h b/libjava/java/util/concurrent/Executors$2.h new file mode 100644 index 000000000..2a9c2e096 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$3.h b/libjava/java/util/concurrent/Executors$3.h new file mode 100644 index 000000000..d8f9cd780 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$4.h b/libjava/java/util/concurrent/Executors$4.h new file mode 100644 index 000000000..e38ca3f40 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$5.h b/libjava/java/util/concurrent/Executors$5.h new file mode 100644 index 000000000..e69ed2f36 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$6.h b/libjava/java/util/concurrent/Executors$6.h new file mode 100644 index 000000000..26291e25d --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$DefaultThreadFactory.h b/libjava/java/util/concurrent/Executors$DefaultThreadFactory.h new file mode 100644 index 000000000..7a2d8a757 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$DelegatedExecutorService.h b/libjava/java/util/concurrent/Executors$DelegatedExecutorService.h new file mode 100644 index 000000000..6bca4b1f2 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h b/libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h new file mode 100644 index 000000000..a7efdb071 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h b/libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h new file mode 100644 index 000000000..fd4f2bd76 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$PrivilegedCallable.h b/libjava/java/util/concurrent/Executors$PrivilegedCallable.h new file mode 100644 index 000000000..09609857d --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h b/libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h new file mode 100644 index 000000000..452f6ef25 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h b/libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h new file mode 100644 index 000000000..0258eea5e --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors$RunnableAdapter.h b/libjava/java/util/concurrent/Executors$RunnableAdapter.h new file mode 100644 index 000000000..5d75fe835 --- /dev/null +++ b/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/libjava/java/util/concurrent/Executors.h b/libjava/java/util/concurrent/Executors.h new file mode 100644 index 000000000..8e6a428a1 --- /dev/null +++ b/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/libjava/java/util/concurrent/Future.h b/libjava/java/util/concurrent/Future.h new file mode 100644 index 000000000..9f70627a7 --- /dev/null +++ b/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/libjava/java/util/concurrent/FutureTask$Sync.h b/libjava/java/util/concurrent/FutureTask$Sync.h new file mode 100644 index 000000000..edaa1cad7 --- /dev/null +++ b/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/libjava/java/util/concurrent/FutureTask.h b/libjava/java/util/concurrent/FutureTask.h new file mode 100644 index 000000000..a86215f43 --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h b/libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h new file mode 100644 index 000000000..2aeec8a97 --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h b/libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h new file mode 100644 index 000000000..a18b4d979 --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h b/libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h new file mode 100644 index 000000000..ad17e7a5e --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingDeque$Node.h b/libjava/java/util/concurrent/LinkedBlockingDeque$Node.h new file mode 100644 index 000000000..423279f47 --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingDeque.h b/libjava/java/util/concurrent/LinkedBlockingDeque.h new file mode 100644 index 000000000..43d3adf4a --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h b/libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h new file mode 100644 index 000000000..e7e0e526d --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingQueue$Node.h b/libjava/java/util/concurrent/LinkedBlockingQueue$Node.h new file mode 100644 index 000000000..1cf8cda9d --- /dev/null +++ b/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/libjava/java/util/concurrent/LinkedBlockingQueue.h b/libjava/java/util/concurrent/LinkedBlockingQueue.h new file mode 100644 index 000000000..42028ec38 --- /dev/null +++ b/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/libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h b/libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h new file mode 100644 index 000000000..c64407182 --- /dev/null +++ b/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/libjava/java/util/concurrent/PriorityBlockingQueue.h b/libjava/java/util/concurrent/PriorityBlockingQueue.h new file mode 100644 index 000000000..ad5d8bb40 --- /dev/null +++ b/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/libjava/java/util/concurrent/RejectedExecutionException.h b/libjava/java/util/concurrent/RejectedExecutionException.h new file mode 100644 index 000000000..4606d2d94 --- /dev/null +++ b/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/libjava/java/util/concurrent/RejectedExecutionHandler.h b/libjava/java/util/concurrent/RejectedExecutionHandler.h new file mode 100644 index 000000000..8e1ac4f3f --- /dev/null +++ b/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/libjava/java/util/concurrent/RunnableFuture.h b/libjava/java/util/concurrent/RunnableFuture.h new file mode 100644 index 000000000..281dccc83 --- /dev/null +++ b/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/libjava/java/util/concurrent/RunnableScheduledFuture.h b/libjava/java/util/concurrent/RunnableScheduledFuture.h new file mode 100644 index 000000000..0846d65c9 --- /dev/null +++ b/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/libjava/java/util/concurrent/ScheduledExecutorService.h b/libjava/java/util/concurrent/ScheduledExecutorService.h new file mode 100644 index 000000000..9041e395b --- /dev/null +++ b/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/libjava/java/util/concurrent/ScheduledFuture.h b/libjava/java/util/concurrent/ScheduledFuture.h new file mode 100644 index 000000000..4cbf3b0fb --- /dev/null +++ b/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/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h b/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h new file mode 100644 index 000000000..4991c96ca --- /dev/null +++ b/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/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h b/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h new file mode 100644 index 000000000..26fac6254 --- /dev/null +++ b/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/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h b/libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h new file mode 100644 index 000000000..ba9ad31a4 --- /dev/null +++ b/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/libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h b/libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h new file mode 100644 index 000000000..8e651b36a --- /dev/null +++ b/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/libjava/java/util/concurrent/Semaphore$FairSync.h b/libjava/java/util/concurrent/Semaphore$FairSync.h new file mode 100644 index 000000000..ac323695b --- /dev/null +++ b/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/libjava/java/util/concurrent/Semaphore$NonfairSync.h b/libjava/java/util/concurrent/Semaphore$NonfairSync.h new file mode 100644 index 000000000..2a03f1ac2 --- /dev/null +++ b/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/libjava/java/util/concurrent/Semaphore$Sync.h b/libjava/java/util/concurrent/Semaphore$Sync.h new file mode 100644 index 000000000..98464b2e5 --- /dev/null +++ b/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/libjava/java/util/concurrent/Semaphore.h b/libjava/java/util/concurrent/Semaphore.h new file mode 100644 index 000000000..41755ddcd --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h b/libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h new file mode 100644 index 000000000..793fb9a10 --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h b/libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h new file mode 100644 index 000000000..ba636900d --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h b/libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h new file mode 100644 index 000000000..dedfaca8c --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h b/libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h new file mode 100644 index 000000000..105c64e66 --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h b/libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h new file mode 100644 index 000000000..921c36377 --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h b/libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h new file mode 100644 index 000000000..48e22f2a6 --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$TransferStack.h b/libjava/java/util/concurrent/SynchronousQueue$TransferStack.h new file mode 100644 index 000000000..5722c419b --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$Transferer.h b/libjava/java/util/concurrent/SynchronousQueue$Transferer.h new file mode 100644 index 000000000..1b135af58 --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h b/libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h new file mode 100644 index 000000000..36f384d32 --- /dev/null +++ b/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/libjava/java/util/concurrent/SynchronousQueue.h b/libjava/java/util/concurrent/SynchronousQueue.h new file mode 100644 index 000000000..7606ddcfe --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadFactory.h b/libjava/java/util/concurrent/ThreadFactory.h new file mode 100644 index 000000000..c1037df60 --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h b/libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h new file mode 100644 index 000000000..9f61c798b --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h b/libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h new file mode 100644 index 000000000..169a9c3b9 --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h b/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h new file mode 100644 index 000000000..77b8e0535 --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h b/libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h new file mode 100644 index 000000000..771f828c6 --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h b/libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h new file mode 100644 index 000000000..a1b5dc3fe --- /dev/null +++ b/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/libjava/java/util/concurrent/ThreadPoolExecutor.h b/libjava/java/util/concurrent/ThreadPoolExecutor.h new file mode 100644 index 000000000..b69b1f655 --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$1.h b/libjava/java/util/concurrent/TimeUnit$1.h new file mode 100644 index 000000000..8d3121d2e --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$2.h b/libjava/java/util/concurrent/TimeUnit$2.h new file mode 100644 index 000000000..dff67ed15 --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$3.h b/libjava/java/util/concurrent/TimeUnit$3.h new file mode 100644 index 000000000..f587ef899 --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$4.h b/libjava/java/util/concurrent/TimeUnit$4.h new file mode 100644 index 000000000..9a3bf8e2a --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$5.h b/libjava/java/util/concurrent/TimeUnit$5.h new file mode 100644 index 000000000..342b88eaf --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$6.h b/libjava/java/util/concurrent/TimeUnit$6.h new file mode 100644 index 000000000..3fad9aa60 --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit$7.h b/libjava/java/util/concurrent/TimeUnit$7.h new file mode 100644 index 000000000..8fc3ec0b4 --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeUnit.h b/libjava/java/util/concurrent/TimeUnit.h new file mode 100644 index 000000000..fa6d497f6 --- /dev/null +++ b/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/libjava/java/util/concurrent/TimeoutException.h b/libjava/java/util/concurrent/TimeoutException.h new file mode 100644 index 000000000..6ce42b180 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicBoolean.h b/libjava/java/util/concurrent/atomic/AtomicBoolean.h new file mode 100644 index 000000000..60d22a952 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicInteger.h b/libjava/java/util/concurrent/atomic/AtomicInteger.h new file mode 100644 index 000000000..136a578b5 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicIntegerArray.h b/libjava/java/util/concurrent/atomic/AtomicIntegerArray.h new file mode 100644 index 000000000..f8db2173f --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h b/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h new file mode 100644 index 000000000..ba2b7a5dc --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h b/libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h new file mode 100644 index 000000000..e72055006 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicLong.h b/libjava/java/util/concurrent/atomic/AtomicLong.h new file mode 100644 index 000000000..0d0c3b00f --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicLongArray.h b/libjava/java/util/concurrent/atomic/AtomicLongArray.h new file mode 100644 index 000000000..797c60943 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h b/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h new file mode 100644 index 000000000..465b5333e --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h b/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h new file mode 100644 index 000000000..f13fb1817 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h b/libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h new file mode 100644 index 000000000..4fb8137d1 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h b/libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h new file mode 100644 index 000000000..499b73b52 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicMarkableReference.h b/libjava/java/util/concurrent/atomic/AtomicMarkableReference.h new file mode 100644 index 000000000..fe97809c5 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicReference.h b/libjava/java/util/concurrent/atomic/AtomicReference.h new file mode 100644 index 000000000..363fca6ea --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicReferenceArray.h b/libjava/java/util/concurrent/atomic/AtomicReferenceArray.h new file mode 100644 index 000000000..4715f0cba --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h b/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h new file mode 100644 index 000000000..e74a4507e --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h b/libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h new file mode 100644 index 000000000..d7e91e977 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h b/libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h new file mode 100644 index 000000000..d76e45b1d --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/AtomicStampedReference.h b/libjava/java/util/concurrent/atomic/AtomicStampedReference.h new file mode 100644 index 000000000..8e1169299 --- /dev/null +++ b/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/libjava/java/util/concurrent/atomic/natAtomicLong.cc b/libjava/java/util/concurrent/atomic/natAtomicLong.cc new file mode 100644 index 000000000..3f78c8aa6 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h b/libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h new file mode 100644 index 000000000..8a14257c9 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h b/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h new file mode 100644 index 000000000..123ab81b5 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h b/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h new file mode 100644 index 000000000..097692062 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h b/libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h new file mode 100644 index 000000000..41f1f7cba --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h b/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h new file mode 100644 index 000000000..67ca64f6e --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h b/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h new file mode 100644 index 000000000..cc4955057 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h b/libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h new file mode 100644 index 000000000..e50fcef61 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/Condition.h b/libjava/java/util/concurrent/locks/Condition.h new file mode 100644 index 000000000..141a4e919 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/Lock.h b/libjava/java/util/concurrent/locks/Lock.h new file mode 100644 index 000000000..b00f601e7 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/LockSupport.h b/libjava/java/util/concurrent/locks/LockSupport.h new file mode 100644 index 000000000..15ef7306f --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReadWriteLock.h b/libjava/java/util/concurrent/locks/ReadWriteLock.h new file mode 100644 index 000000000..1f4ae2e72 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h b/libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h new file mode 100644 index 000000000..d4268afcd --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h b/libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h new file mode 100644 index 000000000..743a0bd75 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantLock$Sync.h b/libjava/java/util/concurrent/locks/ReentrantLock$Sync.h new file mode 100644 index 000000000..b3656d0df --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantLock.h b/libjava/java/util/concurrent/locks/ReentrantLock.h new file mode 100644 index 000000000..5cac4b27f --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h new file mode 100644 index 000000000..05090b5b1 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h new file mode 100644 index 000000000..29a565ae4 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h new file mode 100644 index 000000000..0f48a6cb8 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h new file mode 100644 index 000000000..4813f0d8f --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h new file mode 100644 index 000000000..10f87c922 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h new file mode 100644 index 000000000..d1d43078f --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h new file mode 100644 index 000000000..4e57d53c6 --- /dev/null +++ b/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/libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h b/libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h new file mode 100644 index 000000000..e7da50a75 --- /dev/null +++ b/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/libjava/java/util/jar/Attributes$Name.h b/libjava/java/util/jar/Attributes$Name.h new file mode 100644 index 000000000..867bcea77 --- /dev/null +++ b/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/libjava/java/util/jar/Attributes.h b/libjava/java/util/jar/Attributes.h new file mode 100644 index 000000000..628be03df --- /dev/null +++ b/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/libjava/java/util/jar/JarEntry.h b/libjava/java/util/jar/JarEntry.h new file mode 100644 index 000000000..c95ab9486 --- /dev/null +++ b/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/libjava/java/util/jar/JarException.h b/libjava/java/util/jar/JarException.h new file mode 100644 index 000000000..4ea6da37b --- /dev/null +++ b/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/libjava/java/util/jar/JarFile$EntryInputStream.h b/libjava/java/util/jar/JarFile$EntryInputStream.h new file mode 100644 index 000000000..cf68dbf45 --- /dev/null +++ b/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/libjava/java/util/jar/JarFile$JarEnumeration.h b/libjava/java/util/jar/JarFile$JarEnumeration.h new file mode 100644 index 000000000..60aea6996 --- /dev/null +++ b/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/libjava/java/util/jar/JarFile.h b/libjava/java/util/jar/JarFile.h new file mode 100644 index 000000000..081be76bf --- /dev/null +++ b/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/libjava/java/util/jar/JarInputStream.h b/libjava/java/util/jar/JarInputStream.h new file mode 100644 index 000000000..7e4441d7e --- /dev/null +++ b/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/libjava/java/util/jar/JarOutputStream.h b/libjava/java/util/jar/JarOutputStream.h new file mode 100644 index 000000000..184f307c5 --- /dev/null +++ b/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/libjava/java/util/jar/Manifest.h b/libjava/java/util/jar/Manifest.h new file mode 100644 index 000000000..b0f2e9932 --- /dev/null +++ b/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/libjava/java/util/logging/ConsoleHandler.h b/libjava/java/util/logging/ConsoleHandler.h new file mode 100644 index 000000000..0d1bbe02d --- /dev/null +++ b/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/libjava/java/util/logging/ErrorManager.h b/libjava/java/util/logging/ErrorManager.h new file mode 100644 index 000000000..58d48c9e2 --- /dev/null +++ b/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/libjava/java/util/logging/FileHandler$ostr.h b/libjava/java/util/logging/FileHandler$ostr.h new file mode 100644 index 000000000..e34a3db87 --- /dev/null +++ b/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/libjava/java/util/logging/FileHandler.h b/libjava/java/util/logging/FileHandler.h new file mode 100644 index 000000000..16feec2b2 --- /dev/null +++ b/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/libjava/java/util/logging/Filter.h b/libjava/java/util/logging/Filter.h new file mode 100644 index 000000000..23b8ca6a1 --- /dev/null +++ b/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/libjava/java/util/logging/Formatter.h b/libjava/java/util/logging/Formatter.h new file mode 100644 index 000000000..def22454c --- /dev/null +++ b/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/libjava/java/util/logging/Handler.h b/libjava/java/util/logging/Handler.h new file mode 100644 index 000000000..2c722be60 --- /dev/null +++ b/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/libjava/java/util/logging/Level.h b/libjava/java/util/logging/Level.h new file mode 100644 index 000000000..34f516093 --- /dev/null +++ b/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/libjava/java/util/logging/LogManager$1.h b/libjava/java/util/logging/LogManager$1.h new file mode 100644 index 000000000..0d1ed2152 --- /dev/null +++ b/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/libjava/java/util/logging/LogManager.h b/libjava/java/util/logging/LogManager.h new file mode 100644 index 000000000..f552d65d7 --- /dev/null +++ b/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/libjava/java/util/logging/LogManager.java b/libjava/java/util/logging/LogManager.java new file mode 100644 index 000000000..811310c70 --- /dev/null +++ b/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/libjava/java/util/logging/LogRecord.h b/libjava/java/util/logging/LogRecord.h new file mode 100644 index 000000000..445415909 --- /dev/null +++ b/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/libjava/java/util/logging/Logger$1.h b/libjava/java/util/logging/Logger$1.h new file mode 100644 index 000000000..69189e73b --- /dev/null +++ b/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/libjava/java/util/logging/Logger.h b/libjava/java/util/logging/Logger.h new file mode 100644 index 000000000..c73a8d3c8 --- /dev/null +++ b/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/libjava/java/util/logging/Logger.java b/libjava/java/util/logging/Logger.java new file mode 100644 index 000000000..04f24d354 --- /dev/null +++ b/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/libjava/java/util/logging/LoggingMXBean.h b/libjava/java/util/logging/LoggingMXBean.h new file mode 100644 index 000000000..4bac932e4 --- /dev/null +++ b/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/libjava/java/util/logging/LoggingPermission.h b/libjava/java/util/logging/LoggingPermission.h new file mode 100644 index 000000000..a3b803ac2 --- /dev/null +++ b/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/libjava/java/util/logging/MemoryHandler.h b/libjava/java/util/logging/MemoryHandler.h new file mode 100644 index 000000000..4ce638af9 --- /dev/null +++ b/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/libjava/java/util/logging/SimpleFormatter.h b/libjava/java/util/logging/SimpleFormatter.h new file mode 100644 index 000000000..6afece719 --- /dev/null +++ b/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/libjava/java/util/logging/SocketHandler.h b/libjava/java/util/logging/SocketHandler.h new file mode 100644 index 000000000..8286f1352 --- /dev/null +++ b/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/libjava/java/util/logging/StreamHandler.h b/libjava/java/util/logging/StreamHandler.h new file mode 100644 index 000000000..11dca983f --- /dev/null +++ b/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/libjava/java/util/logging/XMLFormatter.h b/libjava/java/util/logging/XMLFormatter.h new file mode 100644 index 000000000..a5de35435 --- /dev/null +++ b/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/libjava/java/util/logging/natLogger.cc b/libjava/java/util/logging/natLogger.cc new file mode 100644 index 000000000..5c68b1722 --- /dev/null +++ b/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/libjava/java/util/natVMTimeZone.cc b/libjava/java/util/natVMTimeZone.cc new file mode 100644 index 000000000..d45ebf978 --- /dev/null +++ b/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(¤t_time); +#if defined(HAVE_LOCALTIME_R) && defined(_POSIX_PTHREAD_SEMANTICS) + localtime_r(¤t_time, &tim); +#else + /* Fall back on non-thread safe localtime. */ + lt_tim = localtime(¤t_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/libjava/java/util/prefs/AbstractPreferences$1.h b/libjava/java/util/prefs/AbstractPreferences$1.h new file mode 100644 index 000000000..8e3bb1221 --- /dev/null +++ b/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/libjava/java/util/prefs/AbstractPreferences$2.h b/libjava/java/util/prefs/AbstractPreferences$2.h new file mode 100644 index 000000000..7729ccfdb --- /dev/null +++ b/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/libjava/java/util/prefs/AbstractPreferences.h b/libjava/java/util/prefs/AbstractPreferences.h new file mode 100644 index 000000000..a4e3a028a --- /dev/null +++ b/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/libjava/java/util/prefs/BackingStoreException.h b/libjava/java/util/prefs/BackingStoreException.h new file mode 100644 index 000000000..a68513852 --- /dev/null +++ b/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/libjava/java/util/prefs/InvalidPreferencesFormatException.h b/libjava/java/util/prefs/InvalidPreferencesFormatException.h new file mode 100644 index 000000000..dd81f5dc0 --- /dev/null +++ b/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/libjava/java/util/prefs/NodeChangeEvent.h b/libjava/java/util/prefs/NodeChangeEvent.h new file mode 100644 index 000000000..7a51b708b --- /dev/null +++ b/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/libjava/java/util/prefs/NodeChangeListener.h b/libjava/java/util/prefs/NodeChangeListener.h new file mode 100644 index 000000000..2ad05d6e1 --- /dev/null +++ b/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/libjava/java/util/prefs/PreferenceChangeEvent.h b/libjava/java/util/prefs/PreferenceChangeEvent.h new file mode 100644 index 000000000..790a957d2 --- /dev/null +++ b/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/libjava/java/util/prefs/PreferenceChangeListener.h b/libjava/java/util/prefs/PreferenceChangeListener.h new file mode 100644 index 000000000..d450a31b7 --- /dev/null +++ b/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/libjava/java/util/prefs/Preferences$1.h b/libjava/java/util/prefs/Preferences$1.h new file mode 100644 index 000000000..1d61c4f1e --- /dev/null +++ b/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/libjava/java/util/prefs/Preferences.h b/libjava/java/util/prefs/Preferences.h new file mode 100644 index 000000000..b19a03445 --- /dev/null +++ b/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/libjava/java/util/prefs/PreferencesFactory.h b/libjava/java/util/prefs/PreferencesFactory.h new file mode 100644 index 000000000..40207d480 --- /dev/null +++ b/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/libjava/java/util/regex/MatchResult.h b/libjava/java/util/regex/MatchResult.h new file mode 100644 index 000000000..6b6acf8ab --- /dev/null +++ b/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/libjava/java/util/regex/Matcher.h b/libjava/java/util/regex/Matcher.h new file mode 100644 index 000000000..74230ef51 --- /dev/null +++ b/libjava/java/util/regex/Matcher.h @@ -0,0 +1,80 @@ + +// 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 * 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(); +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/libjava/java/util/regex/Pattern.h b/libjava/java/util/regex/Pattern.h new file mode 100644 index 000000000..267cafdc0 --- /dev/null +++ b/libjava/java/util/regex/Pattern.h @@ -0,0 +1,63 @@ + +// 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(); + ::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/libjava/java/util/regex/PatternSyntaxException.h b/libjava/java/util/regex/PatternSyntaxException.h new file mode 100644 index 000000000..670549a6a --- /dev/null +++ b/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/libjava/java/util/spi/CurrencyNameProvider.h b/libjava/java/util/spi/CurrencyNameProvider.h new file mode 100644 index 000000000..1375c1574 --- /dev/null +++ b/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/libjava/java/util/spi/LocaleNameProvider.h b/libjava/java/util/spi/LocaleNameProvider.h new file mode 100644 index 000000000..d4194c529 --- /dev/null +++ b/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/libjava/java/util/spi/LocaleServiceProvider.h b/libjava/java/util/spi/LocaleServiceProvider.h new file mode 100644 index 000000000..69cc23170 --- /dev/null +++ b/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/libjava/java/util/spi/TimeZoneNameProvider.h b/libjava/java/util/spi/TimeZoneNameProvider.h new file mode 100644 index 000000000..8e4309312 --- /dev/null +++ b/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/libjava/java/util/zip/Adler32.h b/libjava/java/util/zip/Adler32.h new file mode 100644 index 000000000..ebd8e33cf --- /dev/null +++ b/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/libjava/java/util/zip/CRC32.h b/libjava/java/util/zip/CRC32.h new file mode 100644 index 000000000..af515fc99 --- /dev/null +++ b/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/libjava/java/util/zip/CheckedInputStream.h b/libjava/java/util/zip/CheckedInputStream.h new file mode 100644 index 000000000..d9e80abe9 --- /dev/null +++ b/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/libjava/java/util/zip/CheckedOutputStream.h b/libjava/java/util/zip/CheckedOutputStream.h new file mode 100644 index 000000000..5cf53c9f2 --- /dev/null +++ b/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/libjava/java/util/zip/Checksum.h b/libjava/java/util/zip/Checksum.h new file mode 100644 index 000000000..66ab907c8 --- /dev/null +++ b/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/libjava/java/util/zip/DataFormatException.h b/libjava/java/util/zip/DataFormatException.h new file mode 100644 index 000000000..5ebfbcf4b --- /dev/null +++ b/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/libjava/java/util/zip/Deflater.h b/libjava/java/util/zip/Deflater.h new file mode 100644 index 000000000..61d21899f --- /dev/null +++ b/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/libjava/java/util/zip/Deflater.java b/libjava/java/util/zip/Deflater.java new file mode 100644 index 000000000..47383ab4b --- /dev/null +++ b/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/libjava/java/util/zip/DeflaterOutputStream.h b/libjava/java/util/zip/DeflaterOutputStream.h new file mode 100644 index 000000000..307f364ad --- /dev/null +++ b/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/libjava/java/util/zip/GZIPInputStream.h b/libjava/java/util/zip/GZIPInputStream.h new file mode 100644 index 000000000..20777faba --- /dev/null +++ b/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/libjava/java/util/zip/GZIPOutputStream.h b/libjava/java/util/zip/GZIPOutputStream.h new file mode 100644 index 000000000..1680d8964 --- /dev/null +++ b/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/libjava/java/util/zip/Inflater.h b/libjava/java/util/zip/Inflater.h new file mode 100644 index 000000000..25ebdc6d6 --- /dev/null +++ b/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/libjava/java/util/zip/Inflater.java b/libjava/java/util/zip/Inflater.java new file mode 100644 index 000000000..c51cde802 --- /dev/null +++ b/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/libjava/java/util/zip/InflaterInputStream.h b/libjava/java/util/zip/InflaterInputStream.h new file mode 100644 index 000000000..b576c3646 --- /dev/null +++ b/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/libjava/java/util/zip/ZipConstants.h b/libjava/java/util/zip/ZipConstants.h new file mode 100644 index 000000000..3cf795d7b --- /dev/null +++ b/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/libjava/java/util/zip/ZipEntry.h b/libjava/java/util/zip/ZipEntry.h new file mode 100644 index 000000000..47cb903a8 --- /dev/null +++ b/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/libjava/java/util/zip/ZipException.h b/libjava/java/util/zip/ZipException.h new file mode 100644 index 000000000..3a7b1fc5e --- /dev/null +++ b/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/libjava/java/util/zip/ZipFile$1.h b/libjava/java/util/zip/ZipFile$1.h new file mode 100644 index 000000000..d181256c2 --- /dev/null +++ b/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/libjava/java/util/zip/ZipFile$PartialInputStream.h b/libjava/java/util/zip/ZipFile$PartialInputStream.h new file mode 100644 index 000000000..f258f9f0c --- /dev/null +++ b/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/libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h b/libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h new file mode 100644 index 000000000..f041ae04a --- /dev/null +++ b/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/libjava/java/util/zip/ZipFile.h b/libjava/java/util/zip/ZipFile.h new file mode 100644 index 000000000..7c0f69ca2 --- /dev/null +++ b/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/libjava/java/util/zip/ZipInputStream.h b/libjava/java/util/zip/ZipInputStream.h new file mode 100644 index 000000000..4a8439506 --- /dev/null +++ b/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/libjava/java/util/zip/ZipOutputStream.h b/libjava/java/util/zip/ZipOutputStream.h new file mode 100644 index 000000000..0de152efc --- /dev/null +++ b/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/libjava/java/util/zip/natDeflater.cc b/libjava/java/util/zip/natDeflater.cc new file mode 100644 index 000000000..9ff172109 --- /dev/null +++ b/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/libjava/java/util/zip/natInflater.cc b/libjava/java/util/zip/natInflater.cc new file mode 100644 index 000000000..69de6c335 --- /dev/null +++ b/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; +} |